En este proyecto, se trata de construir un robot que se coma lo que depositamos en su bandeja.
Para ello, hemos impreso las piezas del robot descargando los ficheros stl desde THINGIVERSE ( https://www.thingiverse.com/thing:2824451/files) y generando los ficheros gcode con el programa CURA.
El robot, originalmente, fue diseñado para ser controlado por Arduino utilizando un sensor IR, pero en nuestro caso, lo hemos adaptado para que sea más sencillo utilizando un motor de los kits de robótica accionado a través de su mando de control remoto. Más adelante programaremos el robot con la idea del creador original.
Aquí os compartimos el vídeo con el resultado y la explicación del alumno, esperamos que os guste.
Ya vimos como configurar el IDE de Arduino, preparar la placa seleccionada, cargar un programa ejemplo (Blink) y descargar este programa en el microcontrolador.
Ahora, le daremos un vistazo al programa y explicaremos las instrucciones que se han utilizado.
Programa de Ejemplo: BLINK
Empezamos con el contenido de la función “void setup”:
En esta función, debemos escribir las instrucciones necesarias para configurar el hardware del microcontrolador. Para el ejemplo, debemos utilizar una salida digital para energizar al LED.
Esto lo logramos utilizando la instrucción
pinMode ( )
Descripción:
Configura el pin especificado para que se comporte como entrada o salida.
Sintaxis:
pinMode(pin, mode)
Parámetros:
pin: el número de pin Arduino a utilizar.
En el ejemplo han utilizado el LED que ya viene conectado por defecto en la placa, este pin es llamado LED_BUILTIN y el compilador del Arduino reconoce que se trata del pin 13.
mode: INPUT, OUTPUT, or INPUT_PULLUP
Como queremos que se comporte como una salida digital y de esa forma energizar al LED, debemos indicar que el “modo” debe ser OUTPUT.
Por lo tanto, la instrucción debe escribirse de la siguiente forma:
pinMode(LED_BUILTIN, OUTPUT);
De esta forma pin digital 13 (LED_BUILTIN), queda configurado como salida.
Luego, analizaremos la función void loop( ):
En esta función, debemos escribir las instrucciones que se deben ejecutar en forma cíclica.
En el ejemplo han utilizado dos instrucciones dentro de la función void loop, estas son digitalWrite y delay.
digitalWrite ( )
Descripción:
Con esta instrucción se escribe un valor ALTO o BAJO en el pin digital. Si el pin se ha configurado como una SALIDA con pinMode (), su voltaje se establecerá en el valor correspondiente: 5V (o 3.3V en placas de 3.3V) para ALTO, 0V (tierra) para BAJO.
Sintaxis:
digitalWrite(pin, valor)
Parámetros:
pin: el número de pin de Arduino.
valor: ALTO o BAJO.
delay ( )
Descripción:
Pausa el programa por la cantidad de tiempo (en milisegundos) especificado como parámetro.
Sintaxis:
delay(ms)
Parámetros:
ms: el número de milisegundos para pausar.
Si observamos el código escrito, vemos que la primera instrucción escribirá un “UNO Lógico” en el pin 13. Esto significa que si medimos con un multímetro, tendremos 5 vdc en el pin 13 correspondiente a la placa Arduino, con lo cual se encenderá el LED_BUILTIN.
digitalWrite(LED_BUILTIN, HIGH);
Luego se ejecuta la instrucción delay , lo cual ejecutara una pausa con duración de 1000 milisegundos, lo cual es equivalente a 1 segundo.
delay(1000);
Luego, se ejecuta la tercera instrucción digitalWrite(LED_BUILTIN, LOW), con lo cual se escribe un “Cero Logico” en el pin 13. De forma que el LED_BUILTIN se apagara.
Luego se ejecuta nuevamente la instrucción delay, manteniendo apagado al led por el tiempo establecido por el argumento de la instrucción, lo cual es equivalente a 1 segundo.
Como explicamos anteriormente, las instrucciones escritas dentro de la función void loop, se repetirán cíclicamente, por lo tanto el led se encenderá durante un segundo y se apagara durante un segundo y se volverá a encender cíclicamente.
Con la instrucción delay, podemos modificar el tiempo de duración de encendido y apagado que tendrá el Led.
Los invito a modificar el valor del argumento utilizados en las instrucciones delay (1000).
Con delay (100) aumentamos velocidad del parpadeo, debido a que el tiempo de encendido y apagado se han reducido.
Adrián está en su segundo año de robótica y sigue siendo un fan del kit de Lego Wedo 2.0, hoy nos habla de su robot Milo y de la programación que le ha realizado al mismo.
Un robot con un sensor que detecta objetos e interactúa con ellos, ¿quieres verlo? ¡nos encanta!
Para continuar con el encendido del LED utilizando un Arduino UNO, debemos ahora pasar a la fase de programación del microcontrolador. Por lo tanto, debemos aprender a utilizar el IDE de programación su configuración.
IDE de Programación:
1.- Iniciamos el IDE de Arduino.
Este tendrá el siguiente aspecto.
Encabezado. Contiene el nombre del archivo que se esta modificando.
Barra de Herramientas. Contiene los nombres de las diferentes ventanas con opciones que permitirán la configuración del IDE a utilizar en relación a la placa Arduino a utilizar.
Comandos Rápidos. Botones con varios comandos de acceso rápido muy útiles durante la programación del microcontrolador. Verificación del código, Subir código al microcontrolador, Nuevo boceto, Abrir boceto, Salvar boceto.
Barra de Estado. Mensajes del IDE de Arduino hacia el usuario y códigos de errores luego de la verificación del programa.
Abriremos nuestro primer archivo.
Hacemos clic sobre “File” contenido en la barra de herramientas, luego en “Examples”, seleccionamos “01.Basics” y luego “Blink”
Con esto tendremos cargado el siguiente código en la IDE de Arduino.
Para proceder a cargar este programa en el microcontrolador, debemos realizar los siguientes pasos:
1-. Seleccionar el tipo de tarjeta que vamos a utilizar, para este ejemplo Arduino UNO. Hacemos clic sobre “Tools”, luego en “Board” y seleccionamos la tarjeta “Arduino/Genuino Uno”.
2-. Seleccionamos el puerto USB que utilizara el IDE de Arduino para comunicarse con la placa del microcontrolador. Hacemos clic nuevamente sobre “Tools”, luego en “Port” y seleccionamos el puerto que el sistema ha seleccionado al microcontrolador, para este ejemplo el “COM6 (Arduino/Genuino Uno)”.
3-. Subimos el programa al Microcontrolador. Hacemos clic sobre el botón “UPLOAD” ubicado en la barra de comandos rápidos y esperamos unos segundos hasta que aparezca el mensaje “Done uploading” en la barra de estado.
La siguiente entrada explicaremos al detalle el programa de ejemplo “Blink” y las modificaciones que podemos hacer para energizar el LED que vimos en la parte 4.
Nuestras mini ingenieras Mae y Estrella han construido y programado una caja egoísta para que nadie se acerque a sus caramelos…
En este proyecto han aprendido a programar muchos componentes de Arduino ¿qué os parece? son unas super programadoras!!
Mirar cómo nos lo enseñan ellas mismas:
También os compartimos el código de este proyecto por si alguien está interesado en realizarlo.
/*
* La caja egoísta 1.0
*
* RGG 2019
*
* 1 Zumbador
* 1 Sensor de infrarrojos
* 1 Servo
*
* Incialmente la caja esta abierta
* Si se mete la mano la caja se cierra
* y emite un sonido
*/
// incluimos la librería Servo
#include <Servo.h>
//Creamos un objeto Servo
Servo myServo;
//Indicamos el pin donde está conectado el Zumbador
const int pinZum = 9;
//Indicamos el pin donde está conectado el sensor de Infrarrojos
const int pinSI = 3;
//Indicamos el pin donde está conectado el Servo (señal PWM)
const int pinServo = 11;
//Iniciamos el servo en el valor 90 (Centrado)
int valorServo = 90;
void setup() {
//Indicamos los pines de Salida
pinMode(pinZum, OUTPUT);
//Indicamos los pines de Entrada
pinMode(pinSI, INPUT);
//Indicamos al objeto servo a qué pin está conectado
myServo.attach(pinServo);
//Movemos el servo a su posición
myServo.write(valorServo);
//Abrimos una conexión serie con el PC
Serial.begin(9600);
}
void caja_celebrando() {
//Al cerrarse la caja, lo celebra con un sonido 'terrorífico'
tone(pinZum,100,30);
delay(30);
tone(pinZum,180,80);
delay(80);
tone(pinZum,200,200);
delay(200);
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(pinSI) == 1) {
Serial.println("Detector a 1 no hay objeto, caja abierta");
myServo.write(90);
delay(500);
}else {
Serial.println("Detector a cero hay un objeto");
myServo.write(0);
Serial.println ("Cerramos caja");
caja_celebrando();
}
}
Antes debemos calcular el valor de la resistencia que limitara la corriente que circulara por el diodo, con la finalidad de proteger a la salida digital del Arduino.
Empezamos por obtener las características eléctricas del LED.
En cuanto a tensiones:
LED color Verde, Amarillo y Rojo, aproximadamente 2V.
LED Azul y Blanco, 3V.
Podemos trabajar con dos supuestos:
Un LED trabaja con una tensión de 1,5 V y consume una corriente de 0,015 A.
Ahora, calcularemos la resistencia limitadora para un LED conectado entre dos puntos (Salida Digital ARDUINO UNO) en los que existe una tensión de 5V.
La caída de tensión que estará presente en la resistencia limitadora será de:
Vcircuito – Vled –> en este caso: 5 V – 1,5 V = 3,5 V.
Luego, la resistencia será:
R = V / I
donde la V serán los voltios sobre la resistencia y la I será la corriente que consume el LED.
R = 3,5 V / 0,015 A R = 233,3 Ω
El circuito que debemos realizar tendrá los siguientes elementos y conexiones:
Un led o diodo emisor de luz, es un dispositivo electrónico capaz de permitir el paso de la corriente en un único sentido, esto se conoce como polarización directa, mientras el diodo emitirá luz. Cuando el diodo se polariza en sentido contrario, funcionará idealmente como un circuito abierto y no habrá circulación de corriente ni emisión de luz.
Diodo Led
Los diodos leds tienen dos patillas de conexión una larga y otra corta. Para que pase la corriente y emita luz se debe conectar la patilla larga al polo positivo y la corta al negativo. En caso contrario la corriente no pasará y no emitirá luz.
En la imagen siguiente vemos un diodo led por dentro.
Este es el símbolo que se usa para los diodos led en los esquemas eléctricos, donde el ánodo será la patilla larga.
Los led trabajan a tensiones más o menos de 2V (dos voltios). Si queremos conectarlos a otra tensión diferente deberemos conectar una resistencia en serie con él para que parte de la tensión se quede en la resistencia y al led solo le queden los 2V.
Las grandes ventajas de los led:
La primera es que consumen menos energía que las lámparas convencionales. ¿Por qué?.
Las bombillas normales emiten luz pero también calor. El calor es energía que perdemos (lo que queremos es luz no calor). Bien pues los leds también pierden en forma de calor energía pero en cantidades mucho menores. Esto hace que casi toda la energía que consuman se utilice en dar luz y no calor, con el consiguiente ahorro.
El 80% de la energía que consume un led se transforma en luz, sin embargo, las bombillas convencionales solo transforman el 20% de lo que consumen en luz, todo lo demás se vuelve calor.
Otra ventaja es que el tiempo de duración es mucho mayor. Mientras que una bombilla normal cuenta con una vida útil de unas 5.000 horas, la vida útil de un LED es superior a las 100.000 horas de luz, estamos hablando de 11 años de continua emisión lumínica.
Os presentamos a dos alumnos Iván y Daniela, que ya han terminado su proyecto guiado en Scratch. Han programado dos videojuegos con ayuda de la guía y le han realizado sus mejoras y modificaciones dando su toque personal al videojuego.
De mayor ¿serán programadores de videojuegos?, ¡manos a la obra y a programar!
Nosotros vamos a practicar un poco a mejorar su record de puntos. ¿Vosotros ya estáis suscritos a nuestro canal?
No te pierdas nada de nuestros mini ingenieros ¡suscríbete!
Antes de empezar a usar la placa ARDUINO UNO, debemos conocer primero los dispositivos electrónicos que vamos a utilizar en función de la aplicación que deseamos que sea ejercida por el microcontrolador y, qué debemos programar en él.
Comenzamos por las resistencias
Todos los conductores eléctricos se oponen al paso de la corriente eléctrica en mayor o menor medida. Esto es debido a que los electrones se encuentran con ciertas dificultades para desplazarse dentro del material del que forman parte. Esta oposición se denomina resistencia eléctrica de un conductor.
El valor de las resistencias se mide en ohmios (se representa por la letra griega omega: Ω)
El valor de cada resistencia lo podemos identificar haciendo uso del código de colores que contienen.
El comportamiento de la resistencia dentro de un circuito eléctrico esta relacionado con la siguiente formula llamada Ley de Ohm: V=I×R
V: Voltaje sobre la resistencia (Voltios)
I: Corriente que circula a través de la resistencia (Amperios)
R: Valor de la resistencia (Ohmios)
Lo primero que cualquier proyecto que se inicie en Arduino va a requerir son un buen puñado de resistencias de diferentes valores.