Robótica con Arduino: sensor de luz

Vamos a ver un ejemplo de cómo controlar las entradas de arduino. En este caso el sensor que nos va a facilitar información del exterior es un sensor de luz. El objetivo es que, dependiendo de la cantidad de luz encendamos o apaguemos leds y; además, que funcione un servo motor.

Los materiales son:
– Placa arduino uno
– Protoboard
– Cables
– Dos diodos led
– Dos resistencias
– Un servomotor
– Un sensor de luz

Las conexiones de cada uno de los elementos son:
– Entrada para el sensor de luz: A0
– Salidas para los leds: pin 13 y 11
– Salida para el control de la señal del servomotor: 8

Cabe destacar que el sensor de luz sólo tiene 2 patas; sin embargo, necesitamos 3:
– Alimentación
– Tierra
– Entrada al pin A0
Para ello, gracias a una resistencia, crearemos una “tercera pata”. En el siguiente dibujo vemos las conexiones.

En cuanto al servo motor, los colores son los siguientes:
– Rojo – Alimentación(Normalmente 5 V aunque pueden ser mas)
– Negro o Marrón -Masa Blanco o Naranja
– Señal de control (pulso enviado al servomotor

Básicamente un servomotor es un motor de corriente continua con un potenciometro que le permite saber la posición en la que se encuentra y así poder controlarla. Para controlar el servomotor se le envía pulsos cada 20 ms es decir 50Hz. La anchura del pulso es lo que codifica el angulo de giro , es decir lo que se conoce como PWM, codificación por ancho de pulso. Esta anchura varia según el servomotor pero normalmente va entre 0.5 y 2.5 ms aunque pueden variar. Dependiendo del tamaño del servo y su consumo es posible que no puedas alimentarlo desde tu placa arduino, en ese caso es necesario una fuente de 5V independiente para poder moverlo.

En el siguiente dibujo se puede observar el diagrama de conexión del servo motor.

En el siguiente video podemos ver la explicación de uno de nuestros alumnos (Luís).

En el siguiente video nos lo explica Santi.

Robótica con Arduino: Led RGB (parte I)

Este es un ejemplo de cómo controlar leds RGB con arduino. Un LED RGB es en realidad tres LEDs en una bombilla. La carcasa contiene diferentes LEDs de color rojo, azul y verde que comparten un cátodo común, o polo negativo. El brillo de cada color se determina por su tensión de entrada. Mediante la combinación de los tres colores en diferentes cantidades, puedes convertir el LED de cualquier color que desees. 


El esquema interno del led RGB es el siguiente:


La utilidad de cada una de las patas del LED se puede ver en el siguiente dibujo.



Los materiales son:
– Placa arduino uno
– Protoboard
– Cables
– Diodo LED RGB
– Tres resistencias

Las conexiones de cada uno de los elementos son:
– Salidas para el LED RGB: pin 5, 6 y 9

El programa en scratch queda de la siguiente manera:


Se va seleccionando de manera aleatoria un valor para cada uno de los pines de salida de la placa arduino. El valor estará entre 0 y 255. El presionar la tecla espacio se quitan todos los colores (para ello se usa el valor 255 para cada uno de los pines). También, dependiendo de las teclas que pulsemos: a, m, v, r, etc. se generarán colores determinados por los calores indicados en las variables rojo, azul y verde.

Aquí os dejo un video explicativo.




Robótica y Google

En marzo de este año, sólo un mes después de una de la mayor feria de telefonía móvil del mundo (el Mobile World Congress de Barcelona), Google anunció un cambio de organigrama. Andy Rubin abandonaría el cargo de responsable de Android en la compañía para ceder el testigo a Sundar Pichai, hasta entonces máximo responsable de Chrome.
La decisión fue toda una sorpresa. Andy Rubin, después de todo, fue el fundador de Android Inc., la empresa que Google compró en 2005 para hacerse con el ahora famoso sistema operativo. Rubin no escogió el nombre de Android por casualidad. Su vida laboral comenzó como ingeniero robótico en Carl Zeiss y posteriormente trabajó como ingeniero de hardware en Apple. En la compañía de la manzana su afición por la robótica era bien conocida y sus colegas le pusieron precisamente ese nombre, Android, como mote.
Su batuta, unida a los extensos recursos de Google, fue la responsable del éxito de la plataforma. Pero,¿por qué abandonar? Su interés, apunta The Verge, se ha enfocado siempre a los objetos físicos con una utilidad práctica. Android, la plataforma, fue un feliz accidente, una desviación de su pasión principal que tuvo la suerte de tomar en el momento justo y en el lugar adecuado.
El destino de Rubin ha permanecido borroso hasta esta misma semana. En marzo reconoció que seguiría trabajando en la compañía en proyectos especiales, pero sin concretar exactamente a a qué proyectos dirigiría su atención. Ahora ya se puede afirmar con certeza que será el responsable de la nueva obsesión de Mountain View: la robótica.
En lo que va de año Google ha adquirido ocho compañías diferentes dedicadas a desarrollar máquinas autónomas. La última es posiblemente la más famosa. Boston Dynamics es la creadora de varias máquinas cuadrúpedas y bípedas de alta capacidad de carga y velocidad, ideadas como parte de un programa de la agencia DARPA (la rama de desarrollo de armamento y defensa del ejército de los EE.UU.) para ayudar a los soldados a mover equipo por cualquier tipo de terreno.


No parece que Google vaya a continuar con la vertiente militar de Boston Dynamics aunque ha asegurado que mantendrá los contratos ya existentes. Más que un negocio, lo que está comprando es una increíble experiencia en uno de los campos más complejos de la robótica, el del movimiento y equilibrio. Otro de sus proyectos, el del coche autónomo, le ha permitido avanzar también rápidamente en los campos de visión artificial y negociación de obstáculos. Todavía es pronto para imaginar “Googlebots” a la venta y listos para el mercado doméstico, pero tal vez en un futuro no muy lejano estas máquinas también formen parte de la creciente oferta de productos de la compañía.

Robótica con Arduino: leds digitales y analógicos de manera simultánea

En este caso vamos a realizar el circuito digital que ya vimos en http://roboticadidactica.blogspot.com.es/2013/10/robotica-con-arduino-nuestro-primer.html y en http://roboticadidactica.blogspot.com.es/2013/10/robotica-con-arduino-circuito-analogico.html; pero  de manera simultánea con el objetivo de que podamos observar la diferencia de intensidad de encendido entre el led controlado por la salida 13 de aruino (salida digital para S4A) y la salida 9 de arduino (salida analógica para S4A).

Los materiales son:
– Placa arduino uno
– Protoboard
– Cables
– Dos diodos led
– Dos resistencias

En el siguiente diagrama se puede observar el circuito:

La salida 9 de arduino es utilizada para alimentar uno de los led, y la salida 13 para alimentar el segundo led. A la salida analógica se le indica un valor entre 0 y 255 (el valor 0 es el valor de apagado), y a la salida digital el valor de “encendido” o “pagado”.

Como siempre, la resistencia se usa para evitar fundir el led.

El encendido y apagado del led se controla gracias a Scratch for arduino (S4A).

Con este programa mantenemos los leds encendidos durante un segundo y después, los mantenemos apagados también durante un segundo. Variando los tiempos de espera, el led se podrá encender/apagar más lentamente (esperando más tiempo) o más rápidamente (esperando menos tiempo). Para el caso de la salida analógica, cada vez se le indica que se encienda con una intensidad diferente, para ello usamos la generación de un número al azar entre 50 y 255.

Si queremos controlar varios leds con la misma salida 9 ó 13 de la placa arduino, estos leds han de situarse en serie.

Robótica con Arduino: leds analógicos de distinta intensidad

En este caso vamos a realizar el circuito que utiliza las salidas analógicas 5, 6 y 9 de la tarjeta arduino con scratch for arduino. Cada salida va a controlar un conjunto de leds que se van a encender con distinta intensidad y distintos comportamientos.

Los materiales son:
– Placa arduino uno
– Protoboard
– Cables
– Diodos led
– Resistencias

En el siguiente diagrama se puede observar el circuito:

Las salidas 9, 6 y 5 de arduino son utilizadas para alimentar cada conjunto de leds. A la salida analógica se le indica un valor entre 0 y 255 (el valor 0 es el valor de apagado), y a la salida digital el valor de “encendido” o “pagado”.

Como siempre, la resistencia se usa para evitar fundir el led.

El encendido y apagado del led se controla gracias a Scratch for arduino (S4A).

Con este programa mantenemos los leds encendidos durante 0,1 segundos y después, los mantenemos apagados también durante 0,1 segundos. Además la intensidad de encendido, al tratarse de salidas analógicas, pueden tomar valores entre 0 y 255. En este caso, se generan números al azar entre 1 y 255 para que siempre estén encendidos, aunque sea con una intensidad muy baja.

En caso de pulsar la tecla “f” todo se para (poner el valor de la salida analógica a cero implica que los leds se apagan).

Una mera todavía más vistosa es no apagar los leds nunca; sino dejar que cambien constantemente de intensidad, tal y como se muestra en el siguiente código.

Variando los tiempos de espera, el led se podrá encender/apagar más lentamente (esperando más tiempo) o más rápidamente (esperando menos tiempo). El efecto queda más vistoso si los tiempos de espera son bajos.

Veamos como explican su funcionamiento nuestros alumnos.

Y también veamos como nos explican el funcionamiento del programa realizado con Scratch for arduino.

Robótica con Arduino: circuito analógico con leds

En este caso vamos a realizar el circuito digital que ya vimos en http://roboticadidactica.blogspot.com.es/2013/10/robotica-con-arduino-nuestro-primer.html; pero analógico, de manera que podamos controla la intensidad de encendido del led. Para ello haremos uso de una salida analógica, en el caso de usar S4A, por ejemplo la salida 9.

Los materiales son:
– Placa arduino uno
– Protoboard
– Cables
– Diodo led
– Resistencia

En el siguiente diagrama se puede observar el circuito:

La salida 9 de arduino es utilizada para alimentar el led. Al tratarse de una salida analógica, si se indica un valor mayor que cero para dicha salida, nuestro circuito conducirá electricidad al estar alimentado y el led se encenderá. Si la salida 9 se apaga (indicando un valor 0), al no estar alimentado nuestro circuito, el led se apagará.

La resistencia se usa para evitar fundir el led. Si activamos la salida 9 y nunca la desactivamos, el diodo led termina por fundirse. Sin embargo, si usamos una resistencia, evitamos que el led se funda.

El encendido y apagado del led se controla gracias a Scratch for arduino (S4A).

Con este programa mantenemos el led encendido durante un segundo y después, lo mantenemos apagado también durante un segundo. Variando los tiempos de espera, el led se podrá encender/apagar más lentamente (esperando más tiempo) o más rápidamente (esperando menos tiempo). Además, al estar controlado por una salida analógica, cada vez se le indica que se encienda con una intensidad diferente, para ello usamos la generación de un número al azar entre 50 y 255.

Si queremos controlar varios leds con la misma salida 9 de la placa arduino, estos leds han de situarse en serie.

Robótica con Arduino: Nuestro primer circuito

Nuestro primer circuito consiste en el encendido de un led haciendo uso de la alimentación (5V) y la tierra (GND-ground) de la placa arduino.

Los materiales son:
– Placa arduino uno
– Protoboard
– Cables
– Diodo led
– Resistencia

En el siguiente diagrama se puede observar el circuito:

La salida 13 de arduino es utilizada para alimentar el led. Al tratarse de una salida digital, si se enciende dicha salida, nuestro circuito conducirá electricidad al estar alimentado y el led se encenderá. Si la salida 13 se apaga, al no estar alimentado nuestro circuito, el led se apagará.

La resistencia se usa para evitar fundir el led. Si activamos la salida 13 y nunca la desactivamos, el diodo led termina por fundirse. Sin embargo, si usamos una resistencia, evitamos que el led se funda.

El encendido y apagado del led se controla gracias a Scratch for arduino (S4A).

Con este programa mantenemos el led encendido durante un segundo y después, lo mantenemos apagado también durante un segundo. Variando los tiempos de espera, el led se podrá encender/apagar más lentamente (esperando más tiempo) o más rápidamente (esperando menos tiempo).
Si queremos controlar varios leds con la misma salida 13 de la placa arduino, estos leds han de situarse en serie tal y como muestra la siguiente figura para, por ejemplo, 4 leds.

Programación y Robótica, una experiencia a disfrutar desde la infancia

Llevamos dos años impartiendo cursos de programación y robótica orientados a niños. Para ello utilizamos un entorno de programación llamado Scratch. Scratch es un lenguaje de programación creado por el Instituto Tecnológico de Massachusetts (MIT), destinado a niños, niñas y jóvenes en edad escolar que permite la creación de animaciones, juegos y otras muchas cosas que se les puede ocurrir. Los límites los pone únicamente la imaginación. Por una parte, aprenden ideas de matemáticas y de computación que hacen parte de la experiencia con Scratch. A medida que los estudiantes crean programas en Scratch, aprenden conceptos de computación fundamentales tales como iteración (repetición) y condicionales. También ganan comprensión de conceptos matemáticos importantes tales como coordenadas, variables y números aleatorios. Lo más importante es que los estudiantes aprenden estos conceptos en un  contexto significativo y motivador
  imaginar
A esto le añadimos el reto de poder crear, manipular, diseñar y programar mecanismos robotizados. Para ello nos basamos en las plataformas WeDO de LEGO Education y Arduino. Ambas plataformas nos ofrecen una forma divertida de iniciarse en la construcción y programación de robots, mediante la utilización de sensores sencillos, motores y piezas básicas que se conectan al ordenador.

  alumna

El resultado de todo ello es una experiencia altamente enriquecedora tanto para los alumnos, como para los profesores, una experiencia que todo niño debería disfrutar.

Autor: Javier Sahuquillo Vírseda (javier.sahuquillo@gmail.com)

Organización: Club Ajedrez Rivas
Referencias: http://www.guardian.co.uk/education/series/digital-literacy-campaign

Acto de clausura curso programación y robótica temporada 2012-2013

Aquí os dejamos el enlace a un video sobre el acto de clausura del curso de programación y robótica de la temporada 2012-2013:

Y también algunas fotos

  grupoRobotica premioIvan

Partido de fútbol con scratch

En esta ocasión Marcos nos enseña su “creación”. Se trata de una variante del juego de rebotes, en este caso orientada al fútbol.