Buch lesen: «Arduino. Trucos y secretos.»

Schriftart:

Arduino

Trucos y secretos

120 ideas para resolver

cualquier problema

Arduino

Trucos y secretos

120 ideas para resolver

cualquier problema

Paolo Aliverti

Edición original publicada en italiano por Edizioni LSWR

con el título: Arduino trucchi e segreti, © 2018 Edizioni Lswr*

Título de la edición en español:

Arduino. Trucos y secretos

Primera edición en español, año 2019

© 2019 MARCOMBO, S.A.

www.marcombo.com

Traducción: Sònia Llena Hurtado

Corrección: Genís Monraba

Maquetación: Giancarlo Salinas

Directora de producción: Mª Rosa Castillo

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley.

Esta publicación contiene opiniones del autor y tiene por objeto proporcionar información clara y precisa. El procesamiento de textos, incluso si se realiza con una atención escrupulosa, no puede asumir la responsabilidad específica del autor y/o editor de los posibles errores o imprecisiones.

El editor ha hecho todo lo posible para obtener y citar las fuentes exactas de las ilustraciones. Si en algunos casos no ha sido posible encontrar alguna con derechos de autor, está disponible para hacer frente a las omisiones involuntarias o errores en las referencias citadas.

ISBN: 978-84-267-2727-5

D.L.: B-13448-2019

Impreso en Prodigitalk

Printed in Spain

Sumario

1.Para empezar

1. Instalar Arduino

2. Cargar un sketch en Arduino

3. Programar Arduino con Arduino Web Editor

4. Cargar un sketch con Arduino Web Editor

5. Simular Arduino con TinkerCAD Circuits

6. Programar Arduino por bloques con Bitbloq

2.Programar Arduino

7. Crear un sketch vacío

8. Utilizar una variable

9. Definir una constante

10. Manipular cadenas de caracteres

11. Utilizar las cadenas

12. Convertir una variable de un tipo a otro

13. Repetir una operación

14. Utilizar un array

15. Obtener la longitud de un array

16. Copiar o ampliar un array

17. Utilizar arrays bidimensionales (matrices)

18. Definir una prueba simple

19. Definir una prueba con más de una alternativa

20. Definir una función

21. Crear clases y objetos

22. Generar números aleatorios

23. Encontrar el número más alto en un array

24. Ordenar una matriz de números

25. Rellenar un array de números aleatorios

26. Transformar una cadena en una matriz (tokenizar)

27. Gestionar índices múltiples y periódicos

28. Trabajar con bits

29. Crear un módulo

30. Utilizar librerías externas

31. Crear librerías propias

3.Los básicos: LED y botones

32. Encender un LED

33. Controlar la luminosidad de un LED

34. Utilizar un LED RGB

35. Crear un PWM en todos los pines (PWM software)

36. Generar una secuencia aleatoria de númerospara encender varios LED

37. Conectar botones

38. Debouncing

39. Mantener el estado de un botón

40. Identificar la pulsación y la liberación de un botón (bordes ascendentes y descendentes)

41. Medir el tiempo de pulsación de un botón

42. Obtener clics múltiples sobre un botón

43. Utilizar una entrada analógica

44. Botón en línea analógica

45. Utilizar un trimmer para configurar parámetros

46. Insertar pausas «largas»

47. Ganar seis pines digitales

48. Utilizar la consola para enviar y recibir comandos

49. Encender cuatro LED en secuencia con un botón

50. Convertir un valor de un intervalo al otro

51. Adivina el LED (programa por estados)

53. Controlar el llenado de una bañera (máquina con estados)

54. Encender una caldera

55. Simon

56. Marcar un número pulsando varios botones

4.Los sensores

57. Alimentar a Arduino

58. Medir una tensión

59. Medir una corriente

60. Conectar un sensor de temperatura (termistor)

61. Conectar un sensor de temperatura LM35

62. Conectar un sensor de luz

63. Conectar un sensor para la humedad

64. Utilizar un sensor digital para humedad y temperatura

65. Detectar un gas

66. Detectar campos magnéticos

67. Detectar la inclinación con un sensor tilt

68. Detectar el movimiento con un PIR

69. Crear un botón táctil o touch sensor

70. Utilizar un sensor de infrarrojos para descodificar un mando a distancia

71. Encender la TV con Arduino

72. Detectar un obstáculo con un sensor infrarrojo

73. Medir la distancia con un sensor a ultrasonidos

74. Utilizar la fecha y la hora actuales

75. Utilizar un teclado numérico

76. Detectar la orientación o el movimiento con acelerómetros y giroscopios

78. Encontrar el norte en una brújula

79. Conocer la posición geográfica con un GPS

80. Conectar un micrófono y realizar un clap control

81. Conectar una fuente de audio

82. Leer etiquetas RFID

83. Aislar una entrada

5.Los actuadores y la visualizaciónde información

84. Encender una bombilla de 12 V con un transistor

85. Controlar un relé con un transistor

86. Encender una bombilla de 12 V con un MOSFET

87. Controlar la velocidad de un motor

88. Controlar la dirección de rotación de un motor c.c.

89. Utilizar un servomotor

90. Encender una bombilla a 220 V

91. Interruptor crepuscular para una bombilla de 220 V

92. Utilizar un motor paso a paso (stepper)

93. Aislar las salidas

94. Aumentar las salidas con un registro de desplazamiento

95. Utilizar una pantalla de siete segmentos

96. Utilizar una pantalla LCD

97. Controlar una pantalla con solo dos cables (I2C)

98. Diseñar caracteres personalizados en una pantalla LCD

99. Crear un terminal de pantalla LCD

100. Crear un menú multinivel con una pantalla LCD

101. Conectar una pantalla gráfica TFT

102. Generar sonidos

103. LED NeoPixel

104. Generar una señal analógica

105. Conectar un amplificador

106. Controlar un potenciómetro digital

107. Reproducir un archivo de audio mp3 o wav

6.Comunicar e intercambiar datos

108. Añadir un nuevo puerto serie (SoftwareSerial)

109. Conectarse a un puerto RS232

110. Conectarse con un puerto RS485

111. Comunicar dos arduinos con el protocolo I2C

112. Comunicar dos arduinos con el protocolo SPI

113. Controlar Arduino con Firmata

114. Utilizar Arduino como consola para Processing

115. Controlar un LED por Bluetooth con un smartphone

116. Encender un LED con Python

117. Transmitir datos de Arduino a Python

118. Conectarse a Internet y ver una página web

119. Arduino como servidor web

120. Publicar una página web dinámica

121. Encender un LED con el navegador

122. Enviar un e-mail con Arduino pulsando un botón

123. Enviar SMS con Arduino

124. Recibir SMS

125. Leer y escribir un archivo desde una tarjeta SD

126. Generar una señal de TV

127. Emular un ratón USB

128. Emular un teclado USB

7.Índice analítico


Para empezar

En esta sección, encontrarás respuesta a los problemas más comunes de instalación y configuración de Arduino. Además, verás distintas alternativas para escribir proyectos y cargarlos en la placa, escribiendo código o colocando bloques.

La primera vez que nos acercamos a un nuevo producto, todo nos parece difícil y oscuro. Incluso Arduino, aunque pueda parecer sencillo, puede mostrar dificultades al inicio. Los problemas mayores surgen durante la fase de instalación, si bien con el tiempo el proceso de setup() ha sido mejorado y, actualmente, no es habitual tener ningún problema. Con las primeras placas, como Arduino Diecimila o Duemilanove, siempre surgía el drama de la instalación de los controladores por el puerto serie, caso que, hoy en día, es muy extraño que ocurra.

En esta primera sección encontrarás algunos «trucos» para resolver los problemas que podrías encontrar en la fase de instalación y configuración del producto. El método clásico para programar Arduino es el de utilizar su entorno de desarrollo (IDE). Hoy en día es posible programar Arduino también con plataformas en la nube (online) e, incluso, simularlo, de manera que la mayoría de los proyectos o sketch y de los ejemplos se pueden probar aun sin disponer de una placa real.

El gran éxito que ha obtenido Scratch (https://scratch.mit.edu), un sistema desarrollado por el MIT para escribir código colocando elementos gráficos, también ha llegado a Arduino, definiendo casi un estándar para este tipo de interfaz de programación. Por esta razón se pueden encontrar sistemas como TinkerCAD Circuits y Bitbloq con los cuales la programación de Arduino se lleva a cabo mediante bloques. Con estos métodos es complicado escribir código complejo, pero son muy eficaces para que niños y principiantes se acerquen con éxito a la programación.

1. Instalar Arduino

Descarga Arduino IDE desde el sitio web http://www.arduino.cc/en/Main/Software y sigue las instrucciones que te proporciona el sistema (Windows, Mac o Linux). Es imprescindible que instales Arduino IDE en tu ordenador para poder programar Arduino.


Figura 1.1 – Descarga del software para Arduino.

Al detalle

Visita la dirección web http://www.arduino.cc/en/Main/Software y descarga la última versión del programa. En el momento de escribir este libro, la versión publicada es la 1.8.5 y está disponible para Windows, Mac OS X y Linux. Elige la versión compatible con tu sistema y descárgala en una carpeta.

Windows

El procedimiento de instalación de Arduino es en general bastante sencillo.

Si trabajas con Windows, puedes consultar las instrucciones publicadas en el sitio web de Arduino (http://www.arduino.cc/en/Guide/Windows).

Para empezar, consigue una placa Arduino y un cable para conectarla al ordenador. El cable depende de la versión de Arduino que hayas comprado. Para la más habitual, Arduino Uno, necesitarás un cable USB tipo A-B, de los que se utilizan para las impresoras (Figura 1.2). El conector USB macho tipo B es de forma rectangular, mientras que el conector macho de tipo A tiene forma cuadrada, con dos bordes redondeados.

Si dispones de un Arduino Mega, un Due o un Leonardo, deberás utilizar un cable micro-USB: el cable que se utiliza normalmente para cargar los teléfonos móviles Android.


Figura 1.2 – Cable USB de tipo A-B, adecuado para Arduino Uno.

Si la placa es nueva, conecta el cable y comprueba que el conector encaja bien en la clavija. Si utilizas un cable micro-USB, fíjate porque, aunque la toma micro-USB se encuentra soldada sobre el circuito impreso, es muy fácil romperla con una pequeña flexión.

Conecta Arduino al ordenador: la placa debería encenderse. Todas las placas Arduino cuentan, como mínimo, con un LED que empezará a parpadear, es decir, indicará algún tipo de actividad. Probablemente1 Windows detectará la presencia de nuevo hardware y solicitará la búsqueda o instalación de los nuevos controladores. Con las últimas versiones del programa, el procedimiento de instalación se ha simplificado notablemente y resulta muy raro tener que instalar dichos controladores de forma manual, si bien no lo es para algunas placas en concreto.

La descripción oficial del procedimiento de instalación, en el sitio web de Arduino, dice:

1.Conecta Arduino al ordenador y espera a que Windows inicie el proceso de instalación de los controladores hasta que la instalación falle.

2.Abre el Panel de control, pulsa en «Sistema y seguridad». Luego, en «Sistema».

3.En la ventana «Sistema», abre «Administrador de dispositivos».

4.En la lista de hardware, busca la opción «Puertos (COM y LPT)». Entre las opciones, deberías ver un puerto denominado «Arduino Uno (COMxx)». Si no encuentras el periférico, busca en «Otros dispositivos» o «Dispositivos desconocidos».

5.Pulsa con el botón derecho del ratón sobre «Arduino Uno (COMxx)» y elige «Actualizar el software de controlador».

6.Elige «Examinar las carpetas para buscar el controlador».

7.Navega por las carpetas donde has descargado y desempaquetado el programa de Arduino y localiza el archivo arduino.inf que encontrarás en la carpeta «Driver» (¡no en la carpeta «FTDI USB Drivers»!). En las versiones más antiguas de Arduino IDE (hasta la 1.0.3) este archivo de denomina Arduino Uno.inf.

8.Windows reconocerá el controlador y la instalación finalizará.

Ya puedes iniciar Arduino pulsando sobre el icono que aparece en el Escritorio o en el menú de inicio.

Mac OS X

Para OS X, el procedimiento de instalación es aún más sencillo. Puedes consultar las instrucciones en el sitio web de Arduino (http://www.arduino.cc/en/Guide/MacOSX).

Debes descargar un archivo comprimido (.zip) en tu ordenador. Normalmente, dicho archivo acaba en la carpeta «Descargas» o en el Escritorio. Descomprime el archivo con un doble clic y verás otro archivo con el nombre Arduino.app: arrástralo a la carpeta «Aplicaciones».

Por lo general, con las nuevas placas no deberás hacer nada más, ni tendrás que instalar ningún tipo de controlador. Los controladores FTDI te servirán en el caso de que quieras utilizar una placa «Duemilanove». Puedes encontrar estos controladores en el sitio web de FTCI (http://www.ftdichip.com/Drivers/VCP.htm).

Inicia Arduino con un doble clic sobre el icono situado dentro de la carpeta «Aplicaciones».

GNU/Linux

Desde la versión diez de Ubuntu, puedes encontrar Arduino en los repositorios de sistema («Universe»). Utiliza synaptic para localizar el paquete e instalarlo. Si no, puedes abrir un terminal y escribir:

sudo apt-get update && sudo apt-get install arduino arduino-core

Deberás introducir tu contraseña porque estás utilizando el comando sudo. Cuando finalice la instalación, Arduino estará entre los programas instalados.

Si el software no se inicia, quizás tengas que instalar Java. Instala el paquete open-jdk utilizando synaptic o desde un terminal.

Comprueba si tu usuario forma parte del grupo «dialout», para que tenga los permisos para utilizar los puertos serie. De no ser así (o en caso de duda), únete al grupo con:

sudo usermod -aG dialout pablo

Sustituye pablo por el nombre de tu usuario. De forma alternativa, puedes lanzar Arduino desde un terminal utilizando el comando sudo:

sudo ./arduino

2. Cargar un sketch en Arduino

Para cargar un sketch en Arduino, pulsa el botón «Verify» situado en la barra de herramientas del IDE y, después, haz clic en «Upload». También se puede cargar directamente pulsando simplemente en «Upload».

Al detalle

Mientras trabajas con Arduino, tendrás que cargar continuamente nuevos sketch en la placa. La operación de carga es muy sencilla y rápida, y ha caracterizado el éxito de Arduino. Hace unos años, el procedimiento para programar un microcontrolador era bastante complejo, pero actualmente es cuestión de segundos. Para cargar un nuevo sketch en la placa, solo necesitas un cable USB del tipo adecuado. El cable depende del tipo de placa y, por desgracia, ¡cada modelo necesita uno distinto! Para programar Arduino Uno, la placa más utilizada, se necesita un cable USB de tipo A-B, de los que se utilizan habitualmente para conectar una impresora al ordenador (Figura 1.2). Si es la primera vez que cargas un sketch, antes debes instalar el software (consulta el truco núm. 1 para ver cómo hacerlo).

Para cargar un sketch en Arduino:

1.Inicia el entorno de programación de Arduino.

2.Crea tu prototipo y cabléalo a Arduino.

3.Escribe el sketch.

4.Conecta Arduino al ordenador.

5.En Tools > Port, comprueba que se encuentra seleccionado el puerto correcto. En Windows, debería aparecer una opción del tipo COMx (Arduino Uno); en Mac, verás algo como /dev/tty.usbmodemXXX, mientras que en GNU/Linux encontrarás /dev/ttyACM0 o /dev/ttyS0 o S1.

6.Comprueba también que el hardware configurado en Tools > Board corresponde a tu placa (por ejemplo, Arduino Uno).


Figura 1.3 – Ventana de Arduino con el sketch Blink cargado. En la barra de herramientas, puedes ver los botones «Verify», para controlar el código (1), y «Upload» para cargarlo en la placa (2).

7.Ahora, pulsa el botón «Verify» (el primero de la barra de herramientas).

8.El ordenador trabajará durante unos segundos mientras controla el código. Si todo ha ido bien y no hay errores, en la parte inferior de la ventana, en la consola, deberías ver solo texto de color blanco.

9.Pulsa «Upload», el segundo botón de la barra de herramientas, para transferir el programa a la placa.

10.Si no surge ningún problema de comunicación (normalmente, debido a la selección errónea del puerto), tras unos instantes el firmware será transferido y, en la parte inferior de la ventana, debería aparecer el texto «Done Uploading».

Si algo va mal:

•Comprueba el puerto serie: ¿es el correcto? ¿Se ha instalado correctamente?

•¿El cable está bien introducido en la placa? ¿Se encienden los LED?

•¿Has elegido la placa correcta?


Figura 1.4 – Ventana de Arduino al finalizar la carga de un sketch.

3. Programar Arduino con Arduino Web Editor

Arduino Web Editor es la versión online del clásico Arduino IDE. Puedes programar Arduino utilizando simplemente un navegador con conexión a Internet. Para utilizar Arduino Web Editor, conéctate al sitio web https://create.arduino.cc/editor (es obligatorio registrarse).

Al detalle

Desde hace poco tiempo, se encuentra disponible también la versión online, llamada Arduino Web Editor, que permite programar online y guardar todos los proyectos en la nube, es decir, en los servidores de Arduino. Arduino Web Editor forma parte de la nueva plataforma Arduino Create, nacida para ayudar a los makers a escribir código, colaborar y encontrar soporte para sus proyectos. Con esta solución utilizarás siempre la versión más actualizada del IDE, completa con todas las librerías. Puedes empezar a utilizar la versión online de Arduino visitando la página de descarga (http://www.arduino.cc/en/Main/Software). Para poder acceder al editor, es necesario, obviamente, registrarse. El acceso se lleva a cabo desde una página donde hay que introducir los datos de inicio de sesión y una contraseña. Una vez te hayas registrado, recibirás un correo electrónico con un enlace para activar tu cuenta y completar el proceso de registro. Puedes acceder a Arduino Web Editor en la dirección web https://create.arduino.cc/editor.


Figura 1.5 – La página web de acceso al Web Editor.

Aun así, para utilizar Arduino Web Editor, necesitarás instalar un pequeño programa, denominado plugin, que funciona en el ordenador y se comunica con la placa y el Web Editor. Este plugin está disponible para Windows, Linux y Mac y se instala con un proceso similar al de Arduino IDE. El plugin reconoce la placa que se encuentra conectada al ordenador y administra la carga del firmware que has escrito online.


Figura1.6 – La página web de acceso al Web Editor.

El Web Editor se puede utilizar con los navegadores más comunes (Chrome, Firefox, Safari y Edge), aunque se recomienda utilizar con Chrome. Cuando te hayas identificado, verás a la izquierda, en la primera columna, el menú principal con las opciones:

•Sketchbook: el lugar donde guardarás todos tus proyectos.

•Examples: una sección con varios ejemplos que puedes descargar para entender el funcionamiento de Arduino.

•Libraries: la sección de gestión de las librerías.

•Serial Monitor: una sección para activar el Serial Monitor online y recibir y transmitir datos con Arduino conectado al ordenador.

•Help: enlace y páginas de ayuda.

•Preferences: las opciones de configuración del Web Editor.

La segunda columna solo contiene las opciones relativas a cada menú, mientras que la tercera es el área principal donde se escribe el código.

El Web Editor es muy cómodo porque te permite tener siempre disponibles tus proyectos estés donde estés y con la última versión del compilador y de las librerías. Desgraciadamente, a veces es más lento respecto al IDE de Arduino, puesto que trabaja online y los proyectos que creas se compilan en un servidor remoto y se descargan en tu ordenador.

€20,99