Kitabı oku: «Taller de Arduino. Experimentando con Arduino MKR 1010»

Yazı tipi:



Taller de Arduino

Experimentando con Arduino MKR 1010

Segunda edición, 2021

© 2021 Germán Tojeiro Calaza y Gerardo Reino Bértoa

© 2021 MARCOMBO, S. L.

www.marcombo.com

Diseño de cubierta: ENEDENÚ DISEÑO GRÁFICO

Maquetación: Giancarlo Salinas

Correctora: Nuria Barroso

Directora de producción: M.a Rosa Castillo Producció del ebook: booqlab

«Cualquier forma de reproducción, distribución, comunicación publica o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».

ISBN: 978-84-267-3235-4

A todas las personas afectadas directa o indirectamente por la COVID-19.

A Marga Abeal, por su sonrisa.

Índice

Prólogo

Agradecimientos

1. Empezando con Arduino MKR

1.1 ¿Qué es Arduino y para qué sirve?

1.2 Configuración e instalación

1.2.1 Instalación del entorno de desarrollo

1.2.2 Instalación de controladores para el MKR 1010

1.3 Una primera práctica: parpadeo de un LED

1.4 La familia Arduino MKR

2. El lenguaje de programación de Arduino

2.1 Introducción al concepto de programación

2.2 Cuerpo de un programa en Arduino

2.2.1 Estructuras

2.2.2 Variables

2.2.3 Operadores aritméticos, lógicos y booleanos

2.2.4 Estructuras de control: condicionales y ciclos

2.3 Funciones

2.4 Librerías

3. Transmisión en serie. Pines analógicos y digitales

3.1 Monitor serie

3.2 Pines digitales

3.2.1 Funcionamiento de los interruptores, pulsadores y potenciómetros

3.2.2 Memoria FlashStorage

3.2.3 Modulación por amplitud de pulsos PWM

3.2.4 Funcionamiento de un pequeño altavoz

3.2.5 Introducción a las interrupciones en Arduino

3.3 Entradas analógicas

4. Sensores y actuadores

4.1 Sensor de temperatura DS18B20

4.2 Relé para controlar dispositivos de corriente alterna

4.3 Sensor ultrasonidos HC-SR04

4.4 Servomotor

4.5 Termómetro de infrarrojos MLX90614

4.6 Sensor micrófono

4.7 Control remoto y receptor IR

4.8 Sensor de luz LDR

4.9 Detector de obstáculos con IR

4.10 Pantallas gráficas TFT

5. Comunicaciones inalámbricas Bluetooth

5.1 Comunicaciones inalámbricas Bluetooth

5.1.1 Tipos de módulos Bluetooth

5.1.2 Comandos AT

5.1.3 Conexión y configuración de Bluetooth HC-05 a MKR 1000

5.2 Control de un led con BlueTerm

5.3 App Inventor 2 y MKR 1010

5.3.1 Funcionamiento básico de App Inventor 2

5.3.2 Encendido y apagado de un led

6. Extender Arduino MKR con shields

6.1 Arduino MKR env shield

6.2 Arduino MKR relay proto shield

6.2.1 EL RTC interno del MKR

6.2.2 Aplicación completa con RTC y Shield Relay

6.3 Arduino MKR motor shield

6.3.1 Servomotores

6.3.2 Motores DC

7. El sistema grove y sus módulos básicos

7.1 El sistema grove

7.2 Práctica 7.1: Funcionamiento de un led grove

7.3 Práctica 7.2: Funcionamiento de un pulsador grove con zumbador

7.4 Práctica 7.3: Funcionamiento de un potenciómetro grove

7.5 Práctica 7.4: Funcionamiento de un micrófono grove

7.6 Práctica 7.5: Funcionamiento de un sensor de contacto

7.7 Práctica 7.6: funcionamiento de la LDR grove

7.8 Práctica 7.7: Funcionamiento del sensor de temperatura

7.9 Práctica 7.8: Funcionamiento del LCD grove

7.10 Práctica 7.9: El módulo relé grove

7.11 Práctica 7.10: El RTC (reloj en tiempo real)

7.12 Práctica 7.11: El módulo PIR grove

7.13 Práctica 7.12: El módulo DHT grove

7.14 Práctica 13: El módulo humedad grove

7.15 Práctica 14: El módulo display Oled 1.12”

7.16 Práctica 7.15: el módulo display triple color E-INK 1.54”

8. IoT Internet de las cosas

8.1 Introducción al internet de las cosas

8.2 El origen del internet de las cosas

8.3 ¿Qué es el internet de las cosas?

8.4 Comunicación IoT

8.4.1 Comunicaciones “dispositivo a dispositivo”

8.4.2 Comunicaciones “dispositivo a la nube”

8.4.3 Comunicaciones “dispositivo a puerta de enlace”

8.4.4 Comunicaciones “intercambio de datos a través del back-end”

8.5 El mercado

8.6 Aplicaciones del IoT

8.7 Protocolos de comunicación

8.7.1 Entorno doméstico

8.7.2 Entorno industrial

8.8 Plataformas IoT

8.8.1 Thingspeak

8.8.2 IFTTT

8.8.3 THINGER.IO

8.8.4 ADAFRUIT.IO

8.8.5 Blynk

9. Arduino MKR 1010 e IOT

9.1 Características wifi del 1010

9.1.1 La librería WiFiNINA

9.1.2 Escanear redes inalámbricas wifi

9.1.3 Implementar un simple control de ledes por wifi

9.2 Monitor continuo de casos de Covid-19 en España

9.3 ADAFRUIT.IO

9.3.1 Feeds

9.3.2 Dashboard

9.3.3 Control de un led inalámbricamente

9.3.4 Visualización remota de variables ambientales

9.4 Automatización con IFTTT

9.5 Trabajar con ThingSpeak

10. Arduino MKR 1010 + Blynk

10.1 ¿Cómo funciona Blynk?

10.2 Cómo controlar varias placas en un mismo proyecto

10.3 Cómo configurar placas diferentes en un mismo proyecto

10.4 Comunicación entre placas

11. Lorawan y Arduino MKR 1300

11.1 Arduino MKR 1300

11.2 Comunicación entre dos Arduino MKR 1300

11.3 RAK 7258. GATEWAY LORAWAN.TTN

11.4 Envío de datos de temperatura a TTN

12. Los Bricks y Arduino 1010

12.1 Bricks

12.2 Bricks y Arduino MKR 1010

12.3 Bricks, Arduino MKR 1010 y la nube

12.4. Visualización de valores del DHT11 en el puerto Serie.

Prólogo

Después de muchas ideas, proyectos, tareas inacabadas, idas y vueltas y embrollos que fueron constantes a lo largo de 2019, Gerardo y el presente que redacta estas líneas, decidimos darle una vuelta definitiva a esa idea embrionaria de realizar un nuevo libro de Arduino. En la feria de SIMO Educación 2019, durante la primera semana de noviembre, nos pusimos serios y con el ceño fruncido comenzamos a darle forma a este libro. ¿Alee, otro libro de Arduino? Como si no hubiera cientos de ellos en las librerías técnicas, además de miles de tutoriales por YouTube.

Si nos ponemos a ello, deberíamos darle un acento propio e innovador. ¡Qué bien suena la frase! Gerardo y yo estábamos inmersos en una de esas discusiones tontas sobre la nueva familia de Arduino MKR y si esta, realmente, iba a sustituir al clásico Arduino UNO. Tomando lo que, si mal no recuerdo, era la segunda caña de cerveza en el bar del hotel, cuando empezamos a darle vueltas a la idea de realizar una segunda edición del libro anterior, y en un verdadero ataque de ilusión nos preguntamos: ¿y por qué no nos arriesgamos y empezamos a exponer este tema de Arduino desde cero, pero abordándolo desde una nueva perspectiva más ambiciosa? ¿Por qué no empezamos a escribir prácticas y proyectos utilizando el Arduino 1010 de la familia MKR? Los fundamentos básicos son los mismos que en Arduino UNO, el precio de Arduino MKR 1010 es similar, pero su potencia infinitamente mayor. Y ya puestos, por qué no diseñar algún proyecto sencillo con Arduino MKR 1300 y exponer conceptos nuevos sobre LoRaWAN. Además, y ya que estamos, por qué no hacerlo todo con tecnología de componentes Groove, que nos va a evitar el cableado engorroso y, sobre todo, esos gráficos de fritzing tan liosos. En ese punto de la conversación, Gerardo esbozó una amplia sonrisa, ya que sería el encargado de realizar los gráficos del libro. Finalmente, y tras dos horas de palique y cuatro cañas, apostamos por dedicar un capítulo a los bricks con Arduino y IoT, sumamente didáctico y triunfando en las escuelas alemanas como un sistema tipo Lego de aprendizaje de la electrónica. Hasta ahora, no existe ningún libro parecido con estas novedades. El propósito fundamental del futuro libro sería el de mostrar al lector otras cosas, otras vías, otras plataformas relacionadas con Arduino que simplifiquen la tarea de diseñar y proyectar electrónica. Crucemos los dedos y empecemos.

Germán Tojeiro Calaza

Gerardo Reino

Profesores de electrónica (Carballo, La Coruña)

Julio de 2020

Agradecimientos

En primer lugar, agradecer a Ana y Abel de Maker Store by ALLNET, en Carballo, el apoyo técnico y la aportación de material educativo de bricks cuyo contenido se expone en el capítulo 12.

Y como viene siendo habitual en todas mis publicaciones a lo largo de estos últimos años, agradecer nuevamente el apoyo técnico incondicional de José Abelenda García. En este libro, concretamente, la redacción y revisión del capítulo 11.

CAPÍTULO 1
Empezando con Arduino MKR

En el primer capítulo vamos a acercarnos a Arduino MKR y a la instalación de su entorno de desarrollo (a partir de ahora: IDE). Se explicará el Arduino más básico desde nuestro punto de vista: El modelo MKR 1010. Más adelante, se describirá a toda su familia, por así decirlo. Primeramente, se trabajará con el más versátil y se examinarán sus características principales y se llevará a cabo una primera práctica sencilla. Con posterioridad, podrá comprobar que el modelo 1010 tiene hermanos mayores y menores. Por último, se recomendarán algunas herramientas, tanto de software como de hardware, para que puedan hacer realidad sus proyectos electrónicos.

1.1 ¿Qué es Arduino y para qué sirve?

Arduino es una plataforma de electrónica abierta (open hardware) para la creación de prototipos basada en software y hardware libre. Se creó para artistas, diseñadores, aficionados y cualquier interesado en crear entornos u objetos interactivos.

Arduino puede tomar información y datos del entorno a través de sus pines de entrada por medio de toda la gama de sensores que existen en el mercado. En base a ello, puede usarse para controlar y actuar sobre todo cuanto le rodea; como, por ejemplo, luces, motores y otro tipo de actuadores. El microcontrolador de la placa Arduino se programa mediante un sencillo lenguaje de programación basado en C/C++ y un entorno de desarrollo (IDE) que responde a las especificaciones de open software. Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectarlo a un ordenador, si bien tienen la posibilidad de hacerlo y comunicarse con diferentes tipos de software (p. ej., Flash, Processing, MaxMSP, etc.).

Se llama open hardware a los dispositivos de hardware cuyas especificaciones y diagramas esquemáticos son de acceso público, ya sea bajo algún tipo de pago o de forma gratuita. Se debe recordar en todo momento que libre no es sinónimo de gratis. El hardware libre forma parte de la cultura libre.

Se llama open software al tipo del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente.

Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de un ordenador: unidad central de procesamiento, memoria y periféricos de entrada/salida.

Arduino sirve para implementar cualquier idea que se proponga realizar. Por ejemplo, puede pensar en automatizar el control de su terrario, o en construir un pequeño robot, tipo auto, que evite objetos y que suba las escaleras de su casa. Este último caso, revoloteó por mi cabeza hace algunos meses; pero cuando miré su precio en Internet, me pareció excesivo. Así que me propuse realizar sin ayuda (DIY, o “hágalo usted mismo”) las carcasas de los robots. ¿Y cómo? Pues adquiriendo un kit para mi impresora 3D delta Anycubic (figura 1.1), tras lo que me di cuenta de que su placa controladora está basada en un tipo de Arduino, por lo que su entorno de programación me resultaba familiar.

Le recomiendo que visite la página http://proyectosconarduino.com/robots/otto-diy/. Trata sobre el robot OTTO (figura 1.2), que es un robot pensado para ser armado de forma muy fácil e intuitiva y es ideal para dar los primeros pasos con sus hijos en la programación con Arduino y la robótica educativa, ya que requiere pocas piezas, no necesita soldadura y se puede programar en un entorno gráfico como “mBlock” (busque esta palabra en Google y descubrirá un mundo nuevo). Las piezas del robot (cuerpo y piernas) se pueden imprimir con una impresora 3D. Realmente, el cerebro de este robot es un tipo de Arduino denominado NANO, de tal manera que aprendiendo lo expuesto en este libro se puede adentrar sin miedo en el terreno de la robótica.

En definitiva, las posibilidades de Arduino son inmensas y, además, todos los días aparecen en la red aplicaciones de lo más insospechado y curioso. Además, si se cansa del terrario o del robot, puede reutilizar la placa reprogramable para otros nuevos proyectos.

En la figura 1.3 se puede observar la apariencia de un Arduino MKR 1010. Es la placa competidora del clásico Arduino UNO (siempre desde nuestro punto de vista y perfectamente opinable según otros). Cabe en la palma de la mano y cuesta alrededor de 34 euros (la empresa Allnet Ibérica [www.allnet.es] tiene un convenio con el sector educativo, de tal manera que si lo adquiere para un centro educativo podrá beneficiarse económicamente). Con este modelo 1010 se realizarán la mayoría de proyectos de este libro.

Está equipado con un módulo ESP32 hecho por u-blox. Esta placa tiene como objetivo acelerar y simplificar la creación de prototipos de aplicaciones de IoT basadas en wifi gracias a la flexibilidad del módulo ESP32 y su bajo consumo de energía. La placa está compuesta por tres bloques principales:

* SAMD21 Cortex-M0 + MCU de bajo consumo de 32 bits.

* Wifi IEEE® 802.11 b/g/n u-blox serie NINA-W10 de baja potencia de 2.4 GHz.

* ECC508 Crypto Authentication.

El MKR 1010 incluye potencia de cómputo de 32 bits, un rico conjunto usual de interfaces de E/S y wifi de baja potencia con un Cryptochip para una comunicación segura mediante el cifrado SHA-256. Además, ofrece la facilidad de uso del software Arduino (IDE) para el desarrollo y la programación de código. Todas estas características hacen de esta placa la opción preferida para los proyectos de IoT en una forma compacta sin necesidad de añadir ningún tipo de shield como en el caso del Arduino UNO. Su puerto USB se puede utilizar para suministrar alimentación (5 V) a la placa. Tiene un circuito de carga Li-Po que permite que funcione con energía de la batería o con una fuente externa de 5 voltios, cargando la batería Li-Po mientras funciona con energía externa. El cambio de una fuente a otra se hace automáticamente. A diferencia de la mayoría de las placas Arduino, el MKR 1010 funciona a 3.3 V. El voltaje máximo que pueden tolerar los pines de E S es 3.3 V. La aplicación de voltajes superiores a 3.3 V a cualquier pin de E/S podría dañar la placa. Si bien la salida a dispositivos digitales de 5 V es posible, la comunicación bidireccional con dispositivos de 5 V necesita un cambio de nivel de voltaje adecuado.

En la figura 1.4 se observa el pineado completo del Arduino MKR 1010. Dispone de 15 entradas/salidas digitales. También dispone de 6 pines de entrada analógicos que trasladan las señales a un conversor analógico/digital de 10 bits. Además, dispone (y esto es novedoso en el mundo clásico de Arduino) de una salida digital/analógica (DAC) localizada en el pin AO. Si tiene nociones de electrónica, le adelanto que, además, posee los siguientes pines especiales:

* RX y TX: Se usan para transmisiones serie de señales TTL.

* Número amplio de interrupciones externas.

* PWM: Dispone de 12 salidas destinadas a la generación de señales PWM de hasta 8 bits.

* SPI: Posibilidad de comunicarse mediante el protocolo SPI (útil para pantallas TFT u OLED).

* I2C: Posibilidad de utilizar este protocolo I2C (útil para sensórica o interface Grove).

Por otra parte, el 1010 tiene un RTC (reloj en tiempo real) incluido en la propia placa. Esta característica simplifica muchos proyectos en los que precise tener en cuenta el tiempo.

Por último y no menos importante, hay que señalar la potencia intrínseca de este modelo en cuanto a conexión wifi se refiere. Pero de ello se hablará con detenimiento en capítulos posteriores.

El “hágalo usted mismo” (DIY, del inglés: do it yourself) es la práctica de la fabricación o reparación de cosas por uno mismo, de modo que ahorre dinero y aprenda al mismo tiempo. Es una forma de autoproducción, sin esperar la voluntad de otros, para realizar proyectos propios. La ética del do it yourself está generalmente asociada a varios movimientos anticapitalistas, ya que rechaza la idea de tener que comprar siempre a otros las cosas que uno desea o necesita. Se trata de un movimiento contracultural trasladable a cualquier ámbito de la vida cotidiana. Hay muchos ejemplos del uso de esta filosofía. El primero puede ser las reparaciones que suelen hacer algunas personas en sus hogares, sin la necesidad de tener que recurrir a profesionales como fontaneros, electricistas, etc.

1.2 Configuración e instalación

En estos momentos seguramente ya disponga de un flamante y potente Arduino MKR 1010 entre las manos. Ahora ya podrá empezar a configurar e instalar su entorno de trabajo para desarrollar sus proyectos. Además, conectará el MKR al ordenador e instalará el paquete necesario para que reconozca su 1010 y que ambos se puedan comunicar.

1.2.1 Instalación del entorno de desarrollo

Lo primero que hay que hacer es descargar el entorno de desarrollo (IDE) de la página web oficial de Arduino: http://arduino.cc/en/Main/Software. Dependiendo del sistema operativo de su equipo, deberá bajarse una versión u otra. La apariencia y funcionamiento del entorno de desarrollo es igual para todos los sistemas operativos. Se trata de un software que le permitirá escribir, depurar y desarrollar el código de programa asociado a sus proyectos. Después de instalarlo, lo ejecuta y se abrirá en pantalla una ventana con el aspecto de la figura 1.5. En Linux, el proceso depende de la distribución que utilice. Le sugiero consultar la página http://www.arduino.cc/playground/Learning/Linux. De todas maneras, no suele presentar inconvenientes en las distribuciones más extendidas como Ubuntu. Más fácil, imposible.

El IDE proporciona una interfaz gráfica en la que se puede escribir el código, depurarlo, compilarlo y cargarlo o subirlo a Arduino. En un primer vistazo, se observa que, en la parte superior, hay seis iconos en la barra de botones que utilizará muy a menudo (figura 1.6). Además, si despliega el menú de opciones de la barra superior, observará que cada elemento del menú ofrece más opciones que irá descubriendo progresivamente a lo largo de este libro. Aunque ahora es necesario que se fije en el submenú de Herramientas (figura 1.7), ya que presenta dos opciones imprescindibles para que todo funcione desde el principio:

* Placa: Determina el tipo de Arduino con el que trabaja.

* Puerto: Indica el puerto serie del ordenador al cual tiene conectado Arduino.

Estos dos datos están presentes bajo la ventana de mensajes tal y como se muestra en la figura 1.7.

Türler ve etiketler

Yaş sınırı:
0+
Hacim:
671 s. 670 illüstrasyon
ISBN:
9788426732354
Yayıncı:
Telif hakkı:
Bookwire
İndirme biçimi: