viernes, 31 de mayo de 2013

Arduino básico. ¿Como empezar?

Ya se, ya se que en estos primeros posts (y quizás en todos los demás) voy saltando de un tema a otro sin un aparente orden o concierto. Pero creerme  sí que lo hay (o no). El orden que sigo es el que yo mismo me voy buscando, de temáticas diferentes pero siempre con el objetivo de aprender y facilitar que mi nene (o quien lea este blog) pueda ir aprendiendo pausadamente y desde la base sin demasiado encasillamiento en un tema concreto.

Arduino es una maravilla. Paradigma del hardware libre, nos facilita todo un ordenador en la palma de la mano. No es un ordenador de sobremesa o portátil como estamos acostumbrados a ver, pero si es todo un ordenador en el sentido de contener una CPU, una memoria, entradas y salidas digitales y analógicas, y capacidad de programarse.

Cualquier "cosa" externa al Arduino con la que queramos que interactue necesitará no solo de saber programarlo, sino de la necesidad de entrar en temas de electrónica, y por lo tanto hardware. Y es que un robot es eso, hardware y software.

Manos a la obra!. Seguidamente vamos a ver como empezar a utilizar Arduino.

NOTA: Este primer ejemplo básico, y casi todo lo que aquí se condensa en pocos pasos, ha sido obtenido directamente de la propia web de Arduino, tanto de la versión en Español como en la Inglesa.

1 - Adquirir una placa Arduino. De cualquier modelo. Yo uso una Arduino UNO.


2 - Conectar la Placa al puerto USB del ordenador. Esto proporciona alimentación a la Placa (seguramente se encenderá alguna lucecita por ahi), y por tanto alimentará también a los componentes que conectes a ella. Pero no te confíes, la alimentación no te dará mucha potencia, con lo que si quieres conectar varios cacharrillos necesitaras alimentarlos externamente con pilas.

3 - Descargar sofware de aquí. Descargar y luego instalar, claro.

4 - Abrir entorno IDE de Arduino. Tras instalar aparecerá un entorno IDE como este:


5 - Configurar entorno para el acceso a Arduino. Lo primero que hay que hacer es:
  • Ir al menú de Herramientas>Tarjetas y seleccionar el modelo de tarjeta Arduino. Como he dicho en mi caso es Arduino UNO. 
  • Ir al menú de Herramientas>Puerto Serial y seleccionar el puerto serie al que esta conectado la placa Arduino. En un Windows puedes tratar de buscar esto yendo al Administrador de Dispositivos de Windows y abrir la opción de ver los puertos COM, como la imagen siguiente, donde se ve que en mi caso se me ha conectado al puerto COM10. Y si no, pues pruébalos todos hasta que funcione... :-)

6 - Cargar el primer ejemplo básico: Blink. Ir al menú Archivo>Ejemplos>01.Basics>Blink.
Este ejemplo simplemente hace parpadear a un LED. Pero claro, hay que conectar el LED. Considerar también que el lenguaje de programación de Arduino esta basado en C/C++, aunque también se puede utilizar otros como Scratch.

7 - Conectar un LED al Arduino. Aquí podéis ver un ejemplo tanto "real" como en plan esquemático de donde y como hay que conectar el LED. Si tenéis Arduino conectado por USB y el LED no va a estar encendido mucho rato, podéis probar sin poner en medio la resistencia, y cruzar los dedos para que el LED no se estropeé a la primera...

Recordar que la pata larga del LED es el positivo (y por lo tanto va al PIN 13 de Arduino, en este ejemplo), y la corta es el negativo y va al PIN GND (ground, toma de tierra).

8 - Cargar el programa al Arduino. Ya esta todo listo. Tenemos nuestro Arduino encendido, con el LED conectado, el IDE en marcha y configurado con el programa Link en pantalla. Solo queda cargar ese programa al Arduino. Para esto, y si todo esta bien, solo hay que darle al icono del entorno IDE del Arduino.

Y ya esta!!!. Felicidades!!!. Si todos los pasos han salido bien el LED empezará a parpadear. Misión cumplida. De ahí a construir el robot que ha de aniquilar a toda la humanidad ya solo queda conectar algunos cables y componentes más y tirar unas cuantas más lineas de código... ;-D

martes, 28 de mayo de 2013

Recursos externos Lego WeDo

Y ya llego el día en que Lego WeDo se acabo para mi, que no para mi nene, claro. Se acabo quiero decir que como programador que soy creo que ya he superado todos los misterios necesarios para desarrollar aplicaciones (utilizando Scratch) que hagan uso de su motor, su sensor de proximidad y su sensor de inclinación (ver dos entradas anteriores). Misterio resuelto.

De ahí a mi pretensión real de construir un robot que someta, esclavice y aniquile a toda la humanidad ya solo quedan unos temillas mecánicos sin importancia por resolver. Cuestión de ir ensamblando piececitas lego...

Para tan glorioso logro, salvar los temas mecánicos que a mi particularmente no se me dan nada bien, he encontrado por ahí un conjunto de documentos PowerPoint (.ppt) y PDF que os pueden ser muy útiles para tomar ideas y así avanzaros a mi diabólica creación.

Aquí podéis descargar un didáctico documento PPT donde explica el uso de ruedas y ejes. A mi este documento es el que me ha parecido más básico y evidente de todos, y tampoco aporta nada especial a mi entender.

Esto otro en cambio explica el uso de palancas. Y para los que (como yo) no habían montado jamas ni la tapa de una caja de zapatos, aquí pueden empezar a encontrar alguna idea interesante que hacer con piezas lego wedo y sus engranajes.

Yendo un poco más allá en este otro vemos el uso muy didáctico de poleas, donde también muestra diversas formas de uso de las correas (vamos, las gomas de pollo amarillas que vienen con wedo).


Y también este específico sobre el uso de engranajes, que también me ha sido muy instructivo.


Y para finalizar tenemos el detalle de unos ejemplos prácticos, donde algunos son los que aparecen en el propio vídeo promocional de Lego Wedo:


Y sin con todo esto no tenéis suficiente y de verdad queréis estar preparados para un ataque robot, entonces tratar vosotros mismos de construir este impresionante Marine Helicopter.


Espero que todos estos recursos externos sean de vuestro interés, y del de vuestros peques.

viernes, 24 de mayo de 2013

Cochecito: el primer robot de verdad

Vale!. Si, es solo un cochecito en realidad, y bastante pero que muy bastante limitado. Sea como sea es programable, por lo que entiendo que podría entrar en la categoría de robot. No me quitéis mi ilusión, ¿eh?

Un cochecito robot hecho con las piezas Lego WeDo, y programado con Scratch.

El programa como se ve es bien simple, tras inicializar el motor entramos en un par de bucles al interior del cual se mueve el motor (y el coche) y se realizan pequeñas pausas. Del bucle interior solo se sale si el sensor detecta que el cochecito se acerca a un punto de colisión. En ese momento el coche se para, y vuelve a la marcha cuando desaparece el obstáculo.

Muy simple, pero perfectamente efectivo e ilustrativo de como funcionan algunos de los componentes principales de WeDo, es decir, el motor y el sensor de distancia.

A modo ilustrativo podéis ver alguna que otra imagen de como ha quedado este cochecito.

Ah, y lo siento por la parte trasera..., el paquete Lego WeDo básico solo trae dos ruedas... :-(
Para las traseras he tenido que hacer un apaño...

NOTA: Estoy enfrascado ahora en un nuevo cacharro WeDo, que es el manejo de un "avión" moviendo su hélice a un lado y a otro en función de la inclinación (usando el sensor de inclinación) de WeDo, pero parece que el HUB WeDo no soporta más de dos componentes conectados.

Esto lo digo porque al introducir el sensor de proximidad en el cacharro (Motor+Sensor inclinación+Sensor proximidad) empiezo a tener comportamientos no esperados. Vamos, que o me falla el motor o me falla el sensor de proximidad...
:-(.

¿Alguien de los numerosos seguidores de este blog podría constatar esto?. Gracias...

ACTUALIZACION: Comprobado!. El HUB Lego WeDo soporta un máximo de dos componentes conectados. He cambiado de posicion el sensor de distancia por el de inclinación, y ahora es la inclinación el que falla. A parte de que el motor no enciende. Una gran limitación a mi entender.

Tampoco no alcanzo a entender como no esta previsto esto, ya que aun cuando el HUB solo tiene dos conectores, el propio conector del motor tiene como una extensión que parece permitir que otros componentes se conecten a él como si se tratara de una extensión del HUB, tal como se ve en la imagen.

Pero no funciona...

lunes, 20 de mayo de 2013

Y por fin, Lego WeDo

Y por fin llego el día en que mi nene cumple 6 años, y yo, con mucha más emoción que él, me dispongo a abril la caja de Lego WeDo que adquirí hacen un mes y la dejé sin abrir esperando este momento.

¿Y como hacer para programar los robots hechos con WeDo?. Pues para empezar, con Scratch.
Pasos básicos:

  1. Descarga Scratch v1.4 (la versión 2.0 de momento es solo online) desde "http://scratch.mit.edu/scratch_1.4/", e instálalo.
  2. En el menú superior de Scracth, en la opción Editar, activa la opción "Mostrar bloques de motor". Esto permite la comunicación exterior con los motores de Lego (y supongo que de otros). En la práctica esto hace aparecer nuevas opciones de motor al final de las opciones del menú "Movimiento", y nuevas opciones de sensores al final del menú "Sensores".
  3. Conectar el HUB Lego WeDo al puerto USB del ordenador.
  4. Conectar los sensores o motores de WeDo al HUB.










Así pues ya esta todo listo para hacer un programa que controle nuestro primer robot de verdad. De ahí a Terminator solo es un paso. :-D

Y como primer programa pues podríamos hacer uno muy requetebásico que simplemente mueva un motor hacia un lado y hacia otro durante unos 10 ciclos esperando dos segundos entre que se mueve a un lado y se mueve al otro. Montando alguna barrera, engranaje o cosa enganchada al motor podemos crear una primera impresión de "Uaaaauuuu!!!" a nuestro nene.

Ahí al ladito se puede ver este primer programa ejemplo. Realmente por la facilidad de Scratch no hace falta ni comentarlo, aunque si el nene todavía esta aprendiendo a leer o esto es uno de los primeros programas que le mostráis tampoco esperéis que lo pille a la primera.

No soy especialista en psicología infantil (por suerte), pero creo que es mejor no presionar al chaval, porque supongo que si se siente frustrado puede tener una reacción de rechazo hacia este mundillo. Y los Terminators alguien los va ha hacer algún día igualmente, así que es mejor que los entienda y este preparado... :-D

Para aprender más sobre la programación de Scratch con Lego WeDo, aquí tenéis este documento básico.

sábado, 11 de mayo de 2013

Programación para niños: Scratch

Hoy toca empezar con temas de programación, prácticamente el único de los temas que trato en este blog que si controlo bien. Y para seguir el espíritu de este blog, toca programación para niños.

Y hoy, programación para niños es Scratch.
Click para vídeo
Scratch es un software creado por el MIT para facilitar el aprendizaje de la programación, y principalmente para niños. Aunque es necesario saber leer (por lo tanto estamos hablando de una edad de aproximadamente 7 años) utiliza ciertos trucos visuales y un entorno sencillo con el que facilitar el aprendizaje.

Yo le enseñé el resultado de este pequeño programa a mi nene (Olai, que cumple 6 años la semana que viene) y le gusto. Sobre todo cuando tras hacer el baile del gato (que se muestra como ejemplo en el propio Scratch) le dije "y también puedo hacer que el gato le salte a la cabeza".

Este es el código del programa en Scratch.
Como podéis ver es bien sencillo. Instrucciones simples, en castellano, con colores, con representación gráfica de los bucles, etc.

Las imágenes como el sprite del gato, o el fondo (como Snoopy) se cargan a parte, y luego las acciones del programa se aplican sobre esos sprites.

¿Cual es la gracia de Scratch? ¿Solo animar sprites? Bueno. Eso es importante, pero no es lo único. La gracia de Scratch es que es abierto, y como tal se puede adaptar y ha sido adaptado para utilizar y controlar otros elementos externos. Así tenemos Scratch para Arduino, y Scratch para Lego WeDo, y seguramente para muchos más "scratch para ...".

Así que con todo esto hoy era solo un post presentación de Scracth. Vendrán otros, espero, donde iremos trabajando este lenguaje con estos elementos externos que comentaba.

NOTA: Scratch es fantástico, pero para mi nene de 6 años (que solo está empezando a aprender a leer), ojalá pueda utilizar el Software de Lego WeDo. Mirad esto, que maravilla:



miércoles, 8 de mayo de 2013

De la teoría a la práctica

En la anterior entrada comentaba un primer circuito eléctrico básico con el que empezar, y mostraba un dibujo teórico de la conexión. Para pasar de la teoría a la práctica es necesario empezar con los cables, las pilas, etc... Una primera duda básica es ¿como lo conecto todo?. La respuesta es sencilla: mediante una protoboard.
Esta es una de las más típicas y prácticas para empezar:


Nos ofrece un cableado interno y un conjunto de orificios donde conectar los componentes. Claro que para ello hay que saber como va el cableado interno, cosa que al menos a mi me ha costado algo encontrar, aunque como todo una vez lo sabes se ve tan evidente... Para este modelo el cableado interno es este:


Básicamente he dibujado lineas negras sobre la protoboard para ilustrar ese cableado interno. La idea es conectar en los extremos la alimentación (rojo para positivo y azul para negativo), con lo que toda la linea lateral queda alimentada. Si se quieren alimentar las dos lineas laterales pues se conecta un par de cables (de linea roja a linea roja, y de azul a azul). Y ahora solo falta en las partes intermedias conectar los componentes y alimentarlos con cables desde las lineas de alimentación. Fácil. La separación entre puntos y también la separación intermedia entre las dos bandas centrales tiene el tamaño justo para conectar diferentes componentes y chips, que se conectaran entre los orificios de la banda intermedia superior y los de la banda intermedia inferior.


Podéis ver también aquí un ejemplo de esto.

Este tipo de placas, junto a un kit básico de electrónica, podréis adquirirlas en casi cualquier tienda de electrónica. Yo personalmente la compre junto a mi Arduino en la tienda Ro-botica de Barcelona.

Y ya con todo esto solo os hace falta un par de cables rojo(+) y negro(-) con conector cocodrilo (como en la imagen) y una pila de petaca y listos para empezar.






domingo, 5 de mayo de 2013

El primer circuito eléctrico

Si un nene de unos 6 años no ha visto antes trabajar de cerca los circuitos eléctricos ahora es un buen momento para mostrarle una primera impresión práctica de "de que va esto de la electricidad".

Y un primer circuito eléctrico puede ser el de encender un LED con una pila. Yo utilicé una pila de petaca de 4.5V, y claro, el primer LED se petó, aunque otros aguantaron.

Ya me lo imaginaba, que sería necesario "amortiguar" el golpe de tensión del LED con una resistencia. Pero claro, la impaciencia por encenderlo me pudo, y el LED no aguanto demasiado, aunque también me extraño que aguantara tan poco. Otros han tenido mejor aguante de unos pocos segundos tras los cuales los desconecto para evitar seguir petando LEDs.


Oks. Pues ahí va. Primer circuito para niños. Fácil, ¿no?. Pero al nene le gustará.



Connsiderar que los LEDs tienen polaridad, y que la pata larga de LED es el positivo (+) y debe conectarse a ese extremo de la álimentación, y la corta es el negativo (-). Las resistencias en cambio no tienen polaridad, y da igual como la conectes.

Y con esto un poco de calculo de ley de Ohm básica, que dice que:
R (Resistencia) = V (Voltaje) / I (Intensidad)

Vamos a suponer que:
  • El LED está diseñado para aguantar un voltaje de 2V (2 Volts, que por ahí he leído que es bastante típico en LED rojo).
  • El LED está diseñado para soportar una intensidad de unos 20mA (mili Amperios = 0,02 Amperios).
  • El voltaje de la pila es de 4.5V.
Pues con estos datos tenemos que según dicha ley de Ohm: R =  V(4,5 - 2) / I(0,02) = 125 Ohms.
Pues eso, que para que el diodo aguante bien (con los datos del ejemplo) necesitará una resistencia de unos 125 Ohms.

Muy bien ahora solo falta encontrar esa resistencia. Como los diseñadores de resistencias están muy locos, pues se han inventado un código de colores para saber cada resistencia de cuantos Ohms es. Si no existe ninguna resistencia para el valor calculado, basta utilizar una con el valor posible inmediatamente superior. En nuestro ejemplo esta sería de 127 Ohms.

Pues bien. Nada más por hoy. Espero que vuestros nenes se lo pasen bien con esto, y vosotros si sois principiantes también.

El origen

Si. Nuevo blog. En esta ocasión sobre robótica de aprendizaje, informática infantil, e inteligencia artificial para bebes... Vamos, que básicamente trataré temas de tecnología para principiantes.

¿Porque este blog? Pues porque siempre me han interesado estos temas, aunque nunca he podido dedicarme, y ahora mi nene de 6 años (a cumplir en una semana) empieza también a interesarle. Momento ideal para empezar yo también  tanto desde una óptica de principiante como de una óptica infantil. Así que ya veremos lo que sale...

Temáticas
¿Y que temas trataré? Pues básicamente todos aquellos, de diferentes materias y sin orden alguno, que sirvan para atraer la atención de un niño y/o sirvan para motivar mi cerebro: Lenguajes de programación (Scratch), robótica (Lego WeDo), electrónica (Arduino), y tantas otras cosas que irán apareciendo.

La base
¿Cual es mi base para todo esto?. ¿Sobre robótica?. Ninguna!. ¿Ninguna? Ninguna!.
¿Y sobre inteligencia artificial? Ninguna. ¿Pero...? Ninguna!!!.
¿Y sobre electrónica? Esto...., ninguna..., bueno casi. Hice hace mas de 20 años Formación Profesional de Electrónica. ¿De que me acuerdo? De nada. ¿De nada? De nadaaa!!!.
¿Y sobre informática?. Ah, eso si!. Yo soy un programador. Puedo programar en cualquier lenguaje que se me cruce, y lo he hecho en Assembler, C/C+, Java JSE/JEE, y unos cuantos mas...
Esta es mi base de la que parto. Esta y las ganas. Así que si eres un principiante como yo, no creo que te cueste seguirme...

Dedicación
¿Y cuanto tiempo puedes dedicar a esto?. Ninguno. ¿¿¿...??? Ninguno!!!. No tengo tiempo!!!. Mi nene de 6 años reclama atención (bueno, si lo enchufo a la consola no, pero no me parece un muy buen método educativo), por lo que mientras le intento dar la atención que reclama no puedo dedicar tiempo a investigar nuevos temas para después darle más atención... Pero hasta aquí todo es fácil. La vida se complica hasta la extenuación con mi nena de 2 años recién cumplidos, e incapaz de dejarme en paz un solo instante. Así que mientras leo, mientras investigo, mientras pruebo, mientras explico cosas a mi nene, mi guapiiisima nena va incordiando todo el rato hasta que se quiebran los nervios (después de quebrar el ratón, el tablet,  los mandos a distancia, las piezas y componentes electrónicos, etc..)

Con todo esto no me queda otra..., robaré horas al sueño y a mi preciosa pareja..., empiezo!.