1.3 Hardware y software
HARDWARE
Placa Arduino
Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores.
Entradas y salidas
La placa Arduino Duemilanove o UNO consta de:
- DIGITALES:
- 14 entradas/salidas digitales D0-D13 previamente hay que configurarlas o entradas o salidas. Que operan a 5 ó 0 voltios. Cada pin puede proporcionar o recibir como máximo 40 mA.
- Los pines D0 y D1 son compartidos por el puerto USB por lo tanto no se pueden utilizar si se está comunicando con el ordenador, están marcados como TX/RX (transmisión y recepción puerto serie).
- 14 entradas/salidas digitales D0-D13 previamente hay que configurarlas o entradas o salidas. Que operan a 5 ó 0 voltios. Cada pin puede proporcionar o recibir como máximo 40 mA.
- ANALOGICAS
- 6 entradas analógicas A0 al A5 con una resolución de 10 bits que proporcionan un número entero de 0 a 1023. Por defecto miden de 0 voltios (masa) hasta 5 voltios.
- 6 salidas pseudo-analógicas, en los pines digitales 3, 5, 6, 8, 10 y 11 son PWM (Pulse Width Modulation) y como hemos visto, pueden proporcionar una salida cuadrada que su valor medio puede estar entre 0 y 5V
La intensidad de corriente que pueden proporcionar como salida son 20mA.
Pines de la placa
Elementos con los que podemos interactuar: (tomando como ejemplo la placa USB). Empezando en el sentido de las agujas del reloj desde el centro de la parte superior:
- Pin de referencia analógica (naranja).
- Señal de tierra digital (verde claro).
- Pines digitales 2-13 (verde).
- Pines digitales 0-1 / entrada y salida del puerto serie: TX/RX (azul) (estándar de comunicación serie IC2).
- Botón de reset (negro).
- Entrada del circuito del programador serie (marrón).
- Pines de entrada analógica 0-5 (azul oscuro).
- Pines de alimentación y tierra (naranja y naranja claro).
- Entrada de la fuente de alimentación externa (9-12V DC)
- X1 (gris). - Entrada fuente de alimentación externa
- SV1: En las placas antiguas existen estos pines para conmutar si la alimentación es por el puerto USB, ahora lo realiza automáticamente un transistor MOSFET
- Puerto USB (rojo).
Las placas: Arduino Diecimila, Arduino Duemilanove o UNO y Arduino Mega están basados en los microcontroladores Atmega168, Atmega 328 y Atmega1280 respectivamente. Trabajan a 16MHz, una velocidad suficiente para proyectos de robótica. Su capacidad de memoria Flash van desde 16k el Atmega168 hasta 128k Atmega1280, suficientes para que quepan nuestros programas de robótica.
SHIELDS para Arduino
Las llamadas Shields (escudos) para Arduino son tarjetas que se acoplan a la placa Arduino y añaden funciones y potencialidad a la placa Arduino. Según mi criterio hay dos tipos de Shields: Las educativas y las no educativas
Shields educativas
Hay muchas Shields Educativas, vamos a ver unos pocos ejemplos
- La shield del curso Arduino con código EDUBASICA, que integra algunos sensores y actuadores, pero lo que destaca es que además tiene la opción de conexión de motores o actuadores que requieran potencia, pues la placa Arduino por sí sola no puede proporcionar la suficiente intensidad para alimentar motores, relés o electroválvulas. El límite de intensidad que proporciona cada una de las salidas digitales es de 40 mA. Para poder activar estos dispositivos tendremos que montar un circuito externo adicional con transistores o circuitos integrados específicos para motores, como es el caso del LM293, que entregan la intensidad suficiente. Para facilitarnos la tarea esta placa integra un LM293 y un transistor de potencia, en total 5 salidas de potencia.
- La shield del curso ECHIDNA que tiene integrados sensores y actuadores como el acelerómetro, sensor de luz, pulsadores, potenciómetro, altavoz... y destaca el Joystick con la posibilidades de gamificación que se puede hacer con este elemento. También destaca el modo MAKEY que permite convertir los pines analógicos y los digitales D2 D3 en pines sensibles al tacto, con las mismas posibilidades que la placa MAKEY MAKEY (ver curso Makey Makey). Actualmente Echidna ya no fabrica esta Shield sino comercializa la ECHIDNA BLACK que no es una shield sino es autónoma (es decir, NO necesita la placa Arduino, la tiene integrada)
.
- La shield del curso ARDUINOBLOCKS EN EL AULA la TDR-STEAM que tiene muchas posibilidades didácticas por su sensores (temperatura, humedad, luz, potenciometro, pulsador, receptor IR).
- La Shield k5864195 muy sencilla y barata, si lo que se busca son sensores sencillos (pulsadores, potenciómetro) y actuadores sencillos (altavoz, leds y display 7 segmentos).
- Shield Protoboard que simplemente tiene una placa para hacer los prototipos. Por ejemplo Curso de Domótica con Arduino
Shields no educativas
Es difícil elegir unos ejemplos de toda la variedad comercial que existe y tanta vitalidad de versiones(ver lista), preferimos que en caso de que necesites alguna función extra a tu Arduino, busques en ese momento. Es importante que sepas que existen Shields para todo, por ejemplo para...
- Agregar conectividad al Arduino, ya sea por red móvil (3G, 4G), por Wifi, Bluetooth o por cable Ethernet o incluso localización GPS.
- Agregar potencia a las salidas para conectar por ejemplo motores, como el de Edubásica pero más especializado en esto y con más salidas.
- Shields con relés para conectar sensores y actuadores con tensión para no tener problemas de quemar el Arduino.
- Shields con batería que en el caso de corte de alimentación, permiten que el Arduino no se quede sin funcionamiento.
- Entrada y salida de imagen con pantalla líquida y cámara
Y encima se pueden apilar !! consiguiendo aumentar la capacidad de tu Arduino tanto como necesites (sin pasarte, pues pues alimentación del Arduino es limitada al menos que la Shield tenga su propia alimentación.
Alimentación eléctrica de Arduino
Uno de los aspectos claves para el buen funcionamiento de proyectos con Arduino, es que incluyan elementos que consuman una intensidad superior a 200 mA como motores, relés, electroválvulas, etc... entonces todo falla, debido a que no has alimentado correctamente la placa.
Tenemos dos posibilidades para alimentar Arduino:
A .- Mediante el cable USB conectado al ordenador:
- Cada pin proporciona 40 mA.
- El límite proporcionado por el USB es de 500 mA en total.
B .- Utilizando una fuente de alimentación externa conectada al jack de Arduino (fuente de voltaje, adaptador de corriente, batería o portapilas) :
- El voltaje recomendado de la fuente externa está entre 7 y 12 V.
- La intensidad máxima que puede entregar Arduino a los actuadores que queramos controlar (servos, motores, relés,...) es de 1A, aunque una exposición prolongada a esta corriente puede estropear la placa. Lo recomendable son 800 mA.
- El pin serigrafiado con Vin proporciona directamente el voltaje de la fuente conectada al jack de Arduino (menos la caída de tensión del diodo de protección), desde ese pin podemos sacar un cable y alimentar a los actuadores que necesitemos. Por ejemplo, si alimentamos con una pila externa de 9 V conectada al jack, en el pin Vin tendremos aproximadamente 9 V (hay que restar la caída de tensión del diodo de protección que serán de medio voltio). Además en los pines 5V y 3.3V dispondremos también de dichos voltajes aunque la fuente externa sea de 9V.
Si conectamos demasiada carga, la placa Arduino suele tener un comportamiento anómalo pudiéndose resetear el micro.
C.- No recomendable: Conectando el positivo (+Vcc) de la fuente externa a Vin y el negativo a GND:
Podemos alimentar Arduino externamente si necesidad de conector Jack a través de Vin y GND el problema es que nos saltamos un diodo de protección que evita que se queme el circuito por un exceso de corriente.
CONCLUSIÓN:
- Si necesitamos hacer funcionar actuadores de bajo consumo (luces, zumbadores, etc...) podremos trabajar directamente con el USB conectado al ordenador o conectado a un PowerBank.
- Si necesitamos mover cargas, excitar bobinas u otros elementos de mayor consumo lo recomendable es alimentar externamente Arduino desde el Jack con un rango de 9 a 12 V.
SOFTWARE
El microcontrolador en la placa Arduino se programa mediante dos tipos de programación:
LENGUAJE POR CÓDIGO
Recomendable a partir de secundaria. Es un lenguaje basado en Wiring y permite la programación del Arduino. El entorno de desarrollo Arduino (basado en Processing) es ARDUINO IDE y se puede descargar en esta página https://www.arduino.cc/en/software. teniendo la posibilidad de utilizarlo online o descarga offline para todo tipo de sistema operativo:
En elos cursos de CATEDU se ha utilizado el lenguaje por código empezando desde cero en:
lcursoCurso Arduino con código donde se trabaja con el Arduiino yenconediferentes sensores y actuadores, con o sin placa Shield Edubásica.lCurso de Domótica con Arduinotienescon ejemplos con lenguaje gráficos por bloques ytutorialescondecódigo.
LENGUAJE GRAFICO POR BLOQUES
Recomendado para primaria. Tenemos muchas posibilidades de lenguajes gráficos, destacamos dos:
- ARDUINOBLOCKS se trabaja online, muy visual y muy amigable. Está adaptado tanto para trabajar tanto Arduino como muchas placas controladoras y en el aula. Podemos verlo en los siguientes cursos:
- CURSO ROVER CON ARDUINO aunque no se utiliza un Arduino, sino un NodeMCU pero la programación es exactamente igual
- CURSO DE ARDUINO CON ARDUINOBLOCKS donde se utiliza el Arduino con una placa protoboard
- CURSO ARDUINOBLOCKS EN EL AULA donde se utiliza la Shield TDR-STEAM
- MBLOCK Basado en Scratch. Aunque es un programa especializado en el robot comercial mBot, (basado en Arduino), el mismo programa esta adaptado para programar Arduino. Tiene la ventaja del modo de funcionamiento "conectado" que puede interactuar nuestra placa con el ordenador, pudiendo por ejemplo apretando una tecla de ordenador encender un led en el Arduino o si hay luz en el sensor LDR conectado en el Arduino que suene una canción en el ordenador.
- CURSO ARDUINO CON MBLOCK se utiliza Arduino y placa Protoboard
- CURSO DE ECHIDNA CON MBLOCK se utiliza la Shielld Echidna
- CURSO DE MBOT se utiliza el robot mBot
- CURSO ARDUINO CON MBLOCK se utiliza Arduino y placa Protoboard
SIMULACIÓN
Hay aplicaciones que permiten simular el Arduino, y por ejemplo en el Curso Arduino con código en la práctica Comunicación entre dos Arduinos se ha utilizado por si no tienes dos placas
Pueden ser aplicaciones online como https://www.tinkercad.com pero nuestra experiencia es que es algo lento, pero tiene la ventaja de ser online y muy muy visual cercano a la realidad.
Si quieres trabajar con más velocidad puedes descargar alguna aplicaciones locales, como UnoArduSim además es una aplicación portable fácil de instalar y con los elementos de leds, motores servos ya preparados, ideal para ejemplos sencillos y para examinar señales, pero no es tan versátil como el anterior, por eso te mostramos vídeos de ejemplo para que tú decidas.
En este vídeo se puede ver el mismo ejemplo del led parpadeando: