Arduino Blocks Practicas
Arduino Blocks Practicas
ArduinoBlocks.
Versión 3.0
Índice
1 Introducción. ....................................................................................... 3
2 Cómo funciona un sistema de control programado. ............................ 5
3 Componentes de la placa Imagina TDR STEAM. ............................... 7
4 Placa de control Keyestudio UNO (compatible con Arduino UNO). ..... 9
5 Programación con Arduinoblocks. ..................................................... 14
6 Instalación de Arduinoblocks............................................................. 16
7 Actividades con la placa Imagina TDR STEAM. ................................ 18
7.1 A01. El led. ................................................................................. 21
7.1.1 A01.1. ON/OFF led rojo. ....................................................... 22
7.1.2 A01.2. ON/OFF led rojo y azul. ............................................. 24
7.1.3 A01.3. ON/OFF led rojo y azul con repeticiones. .................. 25
7.2 A02. El led RGB. ........................................................................ 26
7.2.1 A02.1. Identificación de colores RGB. .................................. 29
7.2.2 A02.2. Múltiples colores con el led RGB. .............................. 30
7.2.3 A02.3. Control de intensidad del led RGB............................. 32
7.2.4 A02.4. Regulación de la intensidad del led RGB. ................. 33
7.2.5 A02.5. Más control de la intensidad del led RGB. ................. 35
7.3 A03. El zumbador. ...................................................................... 36
7.3.1 A03.1. Primeros sonidos con el zumbador............................ 39
7.3.2 A03.2. Escalas musicales con el zumbador. ......................... 40
7.3.3 A03.3. Notas musicales con el zumbador. ............................ 41
7.3.4 A03.4. Melodías con RTTTL. ................................................ 42
7.4 A04. El pulsador. ........................................................................ 43
7.4.1 A04.1. Control ON/OFF de un led con un pulsador I............. 45
7.4.2 A04.2. Control ON/OFF de un led con un pulsador II. ........... 47
7.4.3 A04.3. Control ON/OFF de un led con un pulsador III. .......... 49
Pin de
Sensor/ Actuador/ Módulo
conexión
1 Dos pulsadores (SW1, SW2) D2 y D7
2 Dos leds (Azul Led3 y Rojo Led4) D13 y D12
3 Led RGB D6-D9-D10
4 Módulo DHT11 Sensor de Temperatura y Humedad D4
5 Zumbador o Piezoeléctrico D8
6 Dos puertos (Entradas/Salidas) digitales D3 y D5
7 Módulo receptor de infrarrojos (IR) D11
8 Módulo potenciómetro giratorio A0
9 Sensor de luminosidad (LDR) A1
10 Sensor de temperatura (LM35) A2
SDA-A4
11 Interface I2C compatible con sensores y módulos Keyestudio
SCL-A5
12 Puerto Entrada Analógico A3
13 Conexión de comunicaciones Bluetooth y Wifi (Swich On/Off) Rx - Tx
14 Botón de reinicio. -
Especificaciones:
Voltaje de funcionamiento: + 5V
Voltaje de entrada externo: + 7V ~ + 12V. (Límite: +6 V. <+ 20 V).
Corriente de interfaz DCI / O: 20mA
FlashMemory: 32 KB (ATmega328) de los cuales 0,5 KB utilizados por el gestor
de arranque
Capacidad de almacenamiento EEPROM: 1KB
Frecuencia del reloj: 16MHZ
Microcontrolador ATmega328P-PU
Pines de E / S digital 14 (de los cuales 6 proporcionan salida PWM)
Pines de E / S digitales PWM 6 (D3, D5, D6, D9, D10, D11)
Pines de entrada analógica 6 (A0-A5)
LED_BUILTIN D13
Los distintos bloques sirven para leer y escribir las distintas entradas y
salidas de la placa, así como programar funciones lógicas, de control, etc.
ArduinoBlocks ArduinoBlocks
(Entrada/Salida) (Sensores/Actuadores)
A.03 Zumbador.
Componente electrónico: Zumbador.
Programación:
o Zumbador.
A.04 Pulsador.
Componente: Pulsador.
Programación:
o Pulsador.
o Condicional.
A.05 Potenciómetro.
Componente: Potenciómetro.
Programación:
o Potenciómetro.
o Puerto serie.
o Mapear.
o Rangos (condicionales encadenados).
A.06 LDR
Componente: LDR.
Programación:
o LDR.
A.11 Micrófono.
Componente: Micrófono.
Programación:
o Micrófono.
A.12 Termohigrómetro.
Componente: -.
Programación: Bloques TDR STEAM.
Vamos a empezar con nuestro primer programa que será encender y apagar
el led rojo correspondiente al pin D12.
La placa Imagina TDR STEAM dispone de dos leds (uno azul y otro rojo),
conectados en los pines D13 (azul) y D12 (rojo)
Pero este programa no es correcto del todo. No hay tiempos que indiquen
cuanto tiempo tiene que estar encendido o apagado el led. Necesitamos ir
al bloque de TIEMPO y seleccionar Esperar (valor) milisegundos (recuerda:
1.000 milisegundos son 1 segundo).
Actividad de ampliación: prueba ahora de hacer que los leds rojo y azul se
enciendan a la vez y con los siguientes tiempos: 500ms ON y 250ms OFF.
En Arduino, cada uno de esos leds podría tomar 256 colores diferentes, es
decir, el Rojo podría ir desde 0 hasta 255, el verde de 0 a 255 y el azul de 0
a 255, en total un led RGB podría dar más de 16,5 millones de colores
diferentes.
La placa Keyestudio UNO tiene un total de 6 salidas PWM, que son digitales
3, 5, 6, 9, 10 y 11, pero en la placa Imagina TDR STEAM sólo se puede
controlar por PWM el led RGB (pines 6, 9 y 10) y los pines 3 y 5 que están
libres para conectar elementos externos-.
Con este sencillo programa vamos a identificar cada color del led RGB con
su pin correspondiente.
El rango de VALOR lo podemos variar desde 0 hasta 255, de tal modo que,
si el valor es 0, el led estará totalmente apagado y, si el valor es 255, el led
brillará al máximo. Haremos un programa que muestre la intensidad máxima
(ON) y mínima (OFF) del led RGB rojo.
Pero Arduinoblocks aún nos guarda una sorpresa más. Tiene un bloque
específico dentro del menú ACTUADORES en el cual podemos programar
los tres colores del led RGB por PWM directamente.
¿Qué es la frecuencia? La
frecuencia es el número de
repeticiones por unidad de tiempo
de cualquier evento periódico.
Sabemos que el sonido se
transmite en forma de onda y la
frecuencia de un sonido es el
número de oscilaciones o
variaciones de la presión por
segundo, nos indica cuantos
ciclos por segundo tiene una
onda, dándonos una idea de la
rapidez con que se producen.
1 2
Vamos a hacer una escala de DO4 a DO5 utilizando estos valores de la tabla
de notas y frecuencias.
Condiciones “Si…hacer”.
Se trata del famoso bucle Si (if en inglés) que es uno de los pilares de la
programación, ya que permite evaluar estados y tomar decisiones en
consecuencia.
Con este otro programa al pulsar el SW1 se enciende el led azul y al pulsar
el SW2 se apaga.
Actividad de ampliación: prueba ahora de apaga los dos leds con el pulsador
SW1 y encenderlos con SW2.
Necesitar dos pulsadores para tener que controlar un solo Led no parece la
mejor opción, necesitamos introducir un “SINO”. Usando un único debemos
poner una nueva condición; un SINO para en ella cambiar el estado del led
a OFF. Para ello debemos ampliar el condicional de la siguiente manera;
Opción A
Opción B
Para realizar una lectura de los valores del sensor es necesario utilizar la
consola serie que nos ofrece Arduinoblocks, vamos a ver como se hace.
En primer lugar, generamos una variable a la que llamaremos
“VALORPOTEN”. Vamos al menú “Variables” y seleccionamos
“Establecer…… =…”
Continuando con el programa, ahora nos faltan los bloques del Puerto
Serie. El primero que debemos utilizar es el Iniciar Baudios 9.600 que
siempre lo colocaremos en el Inicio y después el bloque Enviar….
En la siguiente actividad vamos a controlar los colores del led RGB utilizando
el potenciómetro. Vamos a hacer que cambie de color según varíe el valor
del potenciómetro. Es decir, cuando el valor del potenciómetro se encuentre
entre 0 y 100 que el color del led sea rojo, cuando se encuentre entre 101 y
200 que sea verde y cuando esté entre 201 y 300 que sea azul.
Ahora que ya sabemos usar el Puerto Serie para leer los valores de los
sensores, vamos a utilizarlo para ver el valor de una fotocélula (LDR).
¿Qué es una LDR? Una LDR (Light Dependent Resistor) es un resistor que
varía su valor de resistencia eléctrica
dependiendo de la cantidad de luz que
incide sobre él. El valor de la resistencia
disminuye con el aumento de intensidad de
luz incidente.
Para ello vamos a utilizar las Funciones. Las funciones permiten agrupar
bloques de código. Esto es útil cuando un bloque de código se repite en
varias partes del programa y así evitamos escribirlo varias veces o cuando
queremos dividir el código de nuestro programa en bloques funcionales para
realizar un programa más entendible.
Por último, debes crear una función, que la puedes llamar “Alarma”, mira
como el dar un color negro al led RGB es apagarlo.
Actividad de ampliación: realiza un programa con las tres zonas por colores.
Ten cuidado con las zonas donde se unen los rangos, ya que si el valor es
justo (por ejemplo 40) deberás poner el símbolo >= o <=. También puedes
mostrar los valores de humedad y temperatura por el puerto serie.
Ahora vamos a utilizar los bloques propios que tiene Arduinoblocks para la
placa Imagina TDR STEAM. Estos bloques solamente son accesibles si
cuando creamos el proyecto seleccionamos esta placa (en lugar de la placa
Arduino UNO).
Para poder hacer la comunicación por Bluetooth con nuestra placa Imagina
TDR STEAM hemos de conectar un módulo Bluetooth (en nuestro caso
utilizaremos un módulo HC-06).
Primero conectaremos el módulo Bluetooth al conector marcado de nuestra
placa. Hemos de tener en cuenta la posición del interruptor:
OFF: transmisión del programa desde Arduinoblocks.
ON: funcionamiento en modo Bluetooth.
Y la luz del módulo Bluetooth de la placa Imagina TDR STEAM quedará fija
en el color rojo.
Arduinoblocks:
Para poder visualizar los datos enviados desde la placa Imagina TDR
STEAM utilizaremos el programa ThingSpeak y la aplicación ThingView. Por
tanto, hemos de preparar los siguientes programas:
Arduinoblocks: programa de recogida y envío de datos.
ThingSpeak: programa per ver los datos en el ordenador a través de
Internet.
ThingView: aplicación para ver los datos en el teléfono móvil.
Para configurar los tres elementos hemos de seguir los pasos descritos a
continuación.