Por mas de un año nos ha estado rondando la cabeza la idea de realizar un taller de programación con Python en Minecraft.
Ya el año pasado por estas fechas dimos una charla de tecnificación basada en este tema a profesores de secundaria y FP en el IES Al-Andalus de Almería.
Pero las dificultades técnicas y organizativas que un taller así suponía no nos han permitido ponerlo en marcha hasta este pasado fin de semana , que lo hemos conseguido implementar en el centro Guadalinfo de Uleila del Campo.
Dos semanas de locos preparando el material didáctico e instalando y configurando equipos para que quince jóvenes de una de las zonas rurales mas deprimidas de Andalucia tuviesen acceso a lo último de la tecnología de programación y aprendiesen a manejarla motivados con su uso en un ambiente lúdico como es el Minecraft.
La idea en principio era un poco (muy) descabellada, a saber , poner en manos de adolescentes de un pueblo del interior de Almería, sin conocimientos previos de lenguajes de programación lo último de lo último en lenguajes de programación científica como es el entorno de los ipython notebooks
para que, con él , y a medida que aprenden el lenguaje de programación, fuesen modificando su mundo favorito del Video Juego Minecraft.
Ha sido como poner un Ferrari en manos de alguien que no ha cogido nunca un coche, muchos sustos y atranques al principio pero el gran talento y ganas de aprender que tienen estos chavales ha tomado pronto el volante y han conseguido un manejo y unos logros sorprendentes tal y como atestiguan los vídeos adjuntos.
Por nuestra parte, desde el punto de vista de los ponentes del taller, los nervios eran máximos ante semejante apuesta educativa, pero las noticias que nos llegaban desde el otro lado del charco eran ciertas, los notebooks de ipython se han revelado como una impresionante herramienta didáctica, y ya estamos deseando volver a repetir la experiencia armados con el bagaje adquirido en Uleila.
Todo ello no habría sido posible sin el inestimable apoyo de la Diputación de Almería , en concreto de su área de Juventud , que lleva ya cerca de un año apoyando de manera muy activa el acercamiento de los jóvenes de la provincia al mundo de las nuevas tecnologías, ya sea con su remarcable participación en el tecnocampus Almeriense , como con una serie de actividades de Robótica educativa en los pueblos de la provincia, que intentan fomentar la cultura científico-tecnológica en las nuevas generaciones del entorno rural de Almería.
Tampoco hay que olvidar el apoyo del Ayuntamiento de Uleila , con su alcalde Juan José que se interesó personalmente por el devenir del taller personándose en el mismo para dar ánimos a los chavales.
Y como no, en el capítulo de agradecimientos, hacer especial mención de Juan Manuel el dinamizador del centro Guadalinfo de Uleila que , a pesar de estar pasando por un difícil trance profesional , nos abrió de par en par las puertas de su centro durante todo un fin de semana , participando el mismo de manera muy activa tal y como se puede comprobar en los videos adjuntos.
Hola
soy María una joven Pulpileña que pertenezco al grupo Fénix del
equipo de robótica que participaré en el II tecno campus provincial
Almería 2015.
Este
tecno campus consistirá en un encuentro donde los más jóvenes
participarán en un torneo de robótica que tendrá lugar el sábado
20 de junio de 2015 en San Juan de los Terreros (Pulpí).
Mi
equipo consta de cuatro integrantes que son María (12), Jesús (14),
Cristóbal (16), Francisco José (16), más el tutora que es Laura.
Llevamos
realizando talleres de robótica desde febrero. Para mí lo más
divertido ha sido el diseño y la construcción del robot.
Con
todo lo aprendido sobre raspberry Pi y phyton en los talleres hemos
construido un robot para la competición, aquí os presento a mis
compañeros.
Soy Cristóbal
el mecánico del equipo encargado de realizar el montaje de la
estructura y de adaptar los numerosos sistemas de inovadores que nos
permiten realizar estas pruebas. Tanto mis compañeros como yo hemos
realizado con ilusión este gran proyecto desde el primer día. Me he
implicado en este proyecto porque creo que en la zona agrícola a la
que pertenecemos son muy importantes los avances tecnológicos para
mejorar el rendimiento y agilidad de las labores agrícolas. A
continuación les cedo la palabra mis compañeros de proyecto.
Buenas
mi nombre es Jesús tengo 14 años soy un estudiante del I.E.S Mar
Serena pertenezco al equipo “Fénix” junto a mis compañeros:
Fran, Cristobal y María más nuestra tutora Laura. Llevamos desde febrero en el taller de
robótica, empezamos con la programación del robot en abril. Nuestro
robot costa de una Raspberry Pi 2 que hace de cerebro para el "Thymio".
Yo me encargo de la parte de la visión he realizado muchos programas
has dar con el bueno. Este programa hace que el rojo se convierta en
blanco y los demás colores se transformen en negro para que lo único
que vea el robot se la cesta.El programa hace que el robot vea la cesta y con el programa de mi compañero Fran haga que se desplace hasta ella y recoja la cesta. En caso de que el “Thymio” no detecte ninguna cesta gira 20º hasta detectar otra. Elegimos la Rasberry Pi 2 porque la programación era más compleja pero más difícil, y al unirlo con el “Thymio” formando un robot bastante complejo y posible ganador en el concurso “II TecnoCampus Provincial 2015”. Al principio construimos la estructura del robot pero al hacer unas cuantas pruebas nos dimos cuanta de que no podía andar con ese hardware por lo que tuvimos que cambiar la estructura. Este trabajo podría servir para la agricultura el día de mañana de forma que podrían detectar cultivos defectuosos mediante el área, porque en el programa te calcula el área del el objeto. El código consta de la visión artificial trato del que el robot tome una imagen y hago que resalte el color elegido depende de lo que nos interese para que el robot lo resalte. Yo creo que si otra persona de otro equipo vea nuestro programa sepa de que hace y como funciona, excepto si dejamos las instrucciones comentadas. Hemos organizado los programas en varias carpetas para no liar el movimiento con la visión. No se podría simplificar porque todos los programas son necesarios para su coordinación y su movimiento. Si se simplificará algo fallaría seguro cada uno de los programas es necesario.
Hola, me llamo Fran, tengo
15 años y estoy en el grupo de los Fénix del equipo de robótica
que participaré en el tecno campus provincial Almería 2015. Mi
equipo consta de 4 integrantes que son María, Jesús, Fran y
Cristobal más el tutor que es Laura.
Mi trabajo consiste en el
movimiento del robot, que está constituido por piezas de lego, una
Raspberry pi, una web cam y un tymio.
Ser encargado de
movimiento implica tener que programar el robot y ajustarlo para que
realice giros perfectos, recorra distancias y que haga un recorrido.
Para todo esto, utilizamos
el lenguaje de Pyton que también lo utilizamos para Minecraft
Aquí explico brevemente
los pasos que tengo que seguir para calibrar el robot:
1º PASO: Se introduce una
variable “muevePorUnTiempo” que consiste en introducir un tiempo
(5 s) y una velocidad por cada motor del Thymio (100) y (101), si el
robot hace el recorrido sin desviarse, a continuación se podrá
pasar al siguiente paso.
2º PASO: Se introduce una
variable “mueveUnosMetros” que cosiste introducir una distancia
en centímetros (50) y la velocidad de los motores (100) (101), si el
robot hace el recorrido sin pasarse de los 50 centímetros, a
continuación se podrá pasar al siguiente paso.
3º PASO: Se introduce una
variable “giraUnosGrados” que consiste en que el robot tiene que
girar mientras el Thymio no detecte el color negro, cuando lo detecte
el color negro se parará, cuando se consiga sacar el tiempo justo
que tarda en girar, por ejemplo 180º se podrá pasar al siguiente
paso.
Una vez realizados estos
pasos se puede proceder a ejecutar programa para hacer un recorrido;
por ejemplo un recorrido con forma de U.
En la programación se
optó por una solución sencilla y eficaz.
RESPUESTAS A LAS
PREGUNTAS:
-Solución
innovadora:
Consideramos que nuestra solución es la más innovadora
ya que hemos ultilizado la cámara de la Raspberry pi.
La idea se nos ocurrió cuando terminamos de realizar
programas de visión artificial y de movimiento, llegamos a la
conclusión de que ya que nos había ido bien al realizar los
programas, debíamos hacer un robot con visión artificial y con un
Thymio.
Teníamos un abanico de muchas posibilidades que nos
aportaron nuestros tutores y decidimos entre tantas utilizar el
sistema más innovador y que más posibilidades tiene para otras
tareas.
Tuvimos una idea que consistía en recoger todas las
cestas de una vez sin tener que llevarlas a la base, pero por
desgracia nuestro robot sobrepasaba las dimensiones permitidas y no
pudimos realizarla
-Software
y hardware libre:
Hemos utilizado YouTube y Blogger, las hemos elegido por que son
las más utilizadas para la difusión entre nuestros compañeros,
hemos compartido fotos y videos de cada integrante y de la función
que cumple cada uno.
Pienso que con algunas modificaciones podría ayudar
bastante a la agricultura ya que se recolectarian las cosechas con
mayor eficacia
Programación:
Dependiendo de que sea lo que quiera cambiar del programa, si me
resultaría sencillo cambiar el programa, otro equipo sin explicación
alguna, posiblemente no lo entienda, pero no es tan complejo como
para no entenderlo.
En un mundo cada vez más tecnificado se hace cada vez más patente la necesidad de que los más jóvenes tengan un plus educativo en las asignaturas de tipo científico-tecnológico.
En ello se centra la metodología STEM puesta en marcha por el Gobierno de EEUU en la que se pretende integrar en una sola entidad orgánica las ciencias las matemáticas y la tecnología.
Además nosotros le añadimos el término “i” de idiomas para remarcar la necesidad de familiarizarse con los idiomas francos actuales, el inglés para comunicarse internacionalmente y el lenguaje de programación para comunicarse con las máquinas.
Conceptos a desarrollar y potenciar
Desarrollar el pensamiento estructurado y algorítmico.
Aprender de los errores, aprender a convivir con ellos y aceptarlos, no desanimarse a la primera.
Hacer un enfoque lúdico de los problemas
Apoyarse en hombros de gigantes , aprender a apoyarse en la comunidad del Software y el Hardware Libre
Abstracción de conceptos, división del trabajo en hitos manejables
Etc ...
El taller estará compuesto por los siguientes módulos didácticos:
Módulo de Matemáticas recreativas
Módulo de Lenguaje Inglés
Módulo de programación de videojuegos con Scratch
Módulo de programación avanzada con Python
Módulo de Sistemas operativos embebidos con Software Libre en Raspberry Pi
Módulo de Autogestión tecnológica DIY
Módulo de Robótica
Módulo de Diseño e Impresión 3D
Las plazas están muy limitadas, y el taller se impartirá de Febrero a Junio en los centros Guadalinfo de Uleila del Campo, Sorbas y Pulpí.
Habrá reuniones informativas en Sorbas el Lunes 26 de Enero y en Pulpí el Martes 27.
Hacer un robot con brazo y visión artificial que juegue físicamente al conecta cuatro.
Motivación
Aprender más y mejor Python
Aprender visión artificial, librería SimpleCV
Aprender programación Gráfica con Qt
Aprender y aplicar la metodología TDD
Aprender y aplicar la metodología SOLID
Aprender y aplicar el desarrollo ágil con frecuente uso de Git
Aprender programación y coordinación entre dispositivos embebidos en red (Raspberry Pi)
Aprender ROS
…
Requerimientos
El proyecto , tal y como se puede ver en el esquema , tiene cuatro partes bien diferenciadas:
Visión Artificial: Con dos Raspberrys y dos camaras. Harán un estudio del tablero y de la posición del brazo con SimpleCV
Brazo Robótico: Una Raspberry que controla el Brazo Robótico
Coordinación de las partes: Que se comunican la información a través de una red Wifi privada con router propio
Un portátil que el programador/operario utilizará para las fases de depuración , entrenamiento y seguimiento del funcionamiento. Aunque el producto final ha de ser completamente autónomo.
Partes a desarrollar
GUI gráfica en Qt que se cargará en el portátil del usuario para controlar y entrenar el Brazo y para ver lo que ven las cámaras.
IA que gestione la inteligencia para jugar al juego. En esta parte se hará especial hincapié en la metodología TDD.
Algoritmo de visión artificial que visualice y entregue el estado del tablero.
Algoritmos de visión artificial que visualicen y entreguen el estado del brazo.
Algoritmo para el control del brazo que lo mueva de manera fina utilizando la información que le envían las cámaras.
Programa de coordinación global que coordine todo lo anterior.
Temporización
La idea sería tener un prototipo operativo antes de final de año.
Filosofía del proyecto
Totalmente "open source" , "creative commons" , o como queráis llamarla, como todas las iniciativas Guadatech tiene un claro carácter abierto y didáctico. Todo el código será publicado en Github con el mayor número de comentarios y explicaciones posibles.
Grupo de trabajo
Actualmente está compuesto por tres personas, dos aprendices de programadores y un aprendiz de ingeniero mecánico ;-).
Pero por supuesto que estamos abiertos a nuevas colaboraciones, este post se ha echo en parte por eso. Gente que esté interesada en Python, la visión artificial, la Raspberry Pi, la robótica, etc, ... será bienvenida a participar tanto presencial como telemáticamente.
Durante los fines de semana del mes de Julio se ha desarrollado en varios Guadalinfos de la provincia de Almería el Tecnocampus Guadatech 2014.
Las sedes han sido tres, Sorbas, Pulpí y Huércal-Overa y además han participado los dinamizadores Guadalinfo de Uleila del Campo y de Vera. Un total de 30 alumnos han participado en el Tecnocampus.
A las mismas asistieron tanto aficionados como profesionales de la programación a aprender. Charlar y relacionarse en torno a su inquietud común, Python y sus distintas facetas: científica, educativa, diseño web, robótica, etc …
Arduino
Tras esto, el tecnocampus se trasladó a la localidad de San Juan de los Terreros en Pulpí donde del Viernes 18 al Domingo 20 los dinamizadores Guadalinfo implicados impartieron un taller introductorio de Arduino, una pequeña placa electrónica, de bajo coste, utilizada cada vez más para la realización de productos tecnológicos de todo tipo.
El último fin de semana del tecnocampus tuvo lugar en Huércal-Overa del Viernes 25 al Domingo 27, allí los alumnos se hicieron con el control del taller creando y explicando ellos mismos sus montajes y programas a los demás asistentes y , mediante votación, eligieron un proyecto en el que trabajar y desarrollar en común durante el fin de semana.
Tareas de los alumnos
Los alumnos presentaron sus proyectos personales creados con Arduino y nuestro kit educativo, durante la semana. Nos encontramos con proyectos diversos, actuales y de gran nivel, como un termómetro para niños integrado en el peluche GuadaTux creado por Laura. Daniel nos presentó un Theremin con control automático de niveles. Una caja de seguridad con control por teclado fue la creación semanal de Carlos. José nos sorprendió con una completísima casa domótica, con control de luces, ventanas puertas y creación de escenas. David y Cristóbal presentaron un control de inundaciones y sensor de lluvia. Mario y Pablo crearon una versión del mítico Simon con colores. Juanma nos presentó un control de invernadero para monitorizar la humedad y temperatura y poder actuar para modificar estos parámetros. Y por último, Diego nos instruyó en la manera de poder conectar varios sistemas de arduino.
Proyecto colaborativo
Después de la presentación de proyectos individuales, cada participante presentó su idea de proyecto para realizar en las jornadas del sábado y el domingo.
Después del pertinente debate, y puesta en común, se decidió crear un juego de mesa en red, ALMERIA EMPIRE.
Al inicio de la jornada del sábado se realizó el reparto de equipos y tareas: Comunicación, display LCD, matriz de leds, mando de control, lógica del juego, interfaz física y marketing.
Cada equipo se encargó de la programación de su tarea asignada, estableciéndose períodos de feedback, y definiendo nuevos requerimientos de tareas.
Un duro e intenso trabajo llevó a la primera versión de ALMERIA EMPIRE, un juego de mesa electrónico, en el que dos jugadores lucharán por tener el control del Imperio Almeriense.
Conseguir el control del mercado y emprender en la industria alimentaria y de transporte, partiendo desde un pequeño negocio con pocos recursos tendrá que expandir su empresa y competir en un mercado global.
Durante la dinámica del juego nuestro emprendedor, decidirá entre varias posibilidades, transformar su huerto tradicional en un invernadero con la última tecnología o bien ampliar su línea de negocio, creando un floreciente negocio de transporte por carretera.
Pero, ¡cuidado, porque tu rival también está en el mercado y la competencia requerirá de tu mejor estrategia!
Esta primera edición del tecnocampus ha destacado por el nivel y la hetereogeniedad de los alumnos asistentes que iban desde un Arquitecto interesado en usar Arduino para el control domótico de edificios a un Guardia Civil buscando su aplicación en el campo de la seguridad, pasando por un Ingeniero Aeronáutico que necesita Arduino como controlador del Drone que va a construir.
También es de destacar el alto nivel organizativo de las sedes implicadas en el tecnocampus , los centros Guadalinfo de Sorbas, Pulpí y Huércal-Overa , que con amplios conexionados eléctricos, wifis de alta velocidad , aire acondicionado y otras comodidades facilitaron en gran manera el trabajo de los asistentes.
Claro está, que todo estas comodidades y facilidades no habrían sido posibles sin la existencia de la red de centros Guadalinfo que facilitan el acceso a las nuevas tecnologías en el medio rural y la alta implicación de los Ayuntamientos adheridos a la red, en este caso particular, el agradecimiento ha de ir dirigido a los responsables municipales, que comprendiendo el alcance provincial del tecnocampus han prestado sus instalaciones y/o a sus dinamizadores locales para la realización del mismo.
Al final fuimos unos 16 los asistentes a las jornadas, con perfiles profesionales muy variados, desde estudiantes a programadores profesionales, pasando por dinamizadores guadalinfo.
El horario se cumplió (mas o menos) y a las 10:15 dio inicio Javier Imbernón su charla sobre la filosofía, las bases y las partes que le atraen de Python. Todo un lujo contar con una charla de tanto nivel de este crack, que precisamente, comienza esta semana su carrera como programador profesional en Barcelona, solo nos queda desearle mucha suerte, que talento no le falta.
Javier comenzando su disertación
Panorámica del evento
Tras Javier, fueron Eulogio y Diego los encargados de presentar su programa de control con Python en Raspberry Pi del brazo robótico Maplin. Todo un ejemplo de como la comunidad puede mejorar un producto propietario, con muy pocos conocimientos previos usando Python y la documentación generada por la comunidad.
Diego y Eulogio enseñando el Brazo de Maplin
Luego fue el turno del que escribe de charlar un poco sobre IPython enfocado sobre todo en el uso del notebook para aprender Python y ciencia.
Después llegó la hora de la conexión con Sevilla para que Javier Gutierrez nos diese una charla tan breve como brillante en la que nos habló sobre el falso concepto de velocidad que tienen algunos programadores y sus fatales consecuenciass. Sobre como organizar equipos de trabajo y sobre la metodología SOLID que está tan de moda. Doy fe de que el personal no dejó de tomar notas en toda la intervención.
En el coding Dojo se mostraron tres de las alternativas gratuitas para aprender Python resolviendo retos online: Codecademy, CheckIO y Python Challenge.
Justo antes de la comida Ismael Olea hizo una ronda de certificaciones digitales de identidades basadas en CAcert , una entidad de certificación administrada por la comunidad.
Todos de pie para el lunch de networking
La comida final de hermandad sirvió para cambiar impresiones sobre el evento , hablar de los próximos , estrechar lazos , crearlos si no existían y recomendar recursos y fuentes educativas de Python.
Así por ejemplo Luis G. Merino me comentó lo activa que era la comunidad argentina del lenguaje y las interesantes iniciativas que están llevando a cabo.
"Ha estado muy bien, pero para la próxima hay que picar código en serio", esta u otra equivalente, era la frase mas repetida al final del evento. La gente claramente quedó con ganas de más e intentaremos poner nuestro granito de arena en la organización de próximos eventos de este tipo.
Nuestro primer post en GeekyTheory va sobre como aprender a programar en Python con Minecraft haciendo cosas chulas como atacar células con virus ...
... o hacer crecer árboles gigantes en segundos ...
el artículo lleva ya más de mil visitas, lo que no está nada mal, y nos motiva a seguir trabajando para futuros artículos que difundan los proyectos que llevamos a cabo en Guadatech.