Descripción
Si tiene conocimientos de Arduino y quiere ir un paso más allá, Processing le ofrece la oportunidad de mostrar datos y controlar dispositivos basados en esta placa por medio de interfaces gráficas.
El carácter abierto y multiplataforma de Processing le permitirá ejecutar las interfaces en Windows, macOS, Linux e, incluso, Raspberry Pi o Android. Además, dado que Arduino y Processing tienen un origen común, su entorno de desarrollo y el lenguaje de programación son muy similares, motivo por el que empezará a crear sus primeras aplicaciones casi de inmediato.
Gracias a los ejemplos prácticos que presenta este manual y a la explicación paso a paso de todos los códigos:
Diseñará interfaces de usuario que mostrarán información y facilitarán el manejo de sistemas basados en Arduino y ESP8266 de forma visual e interactiva.
Accederá a los sistemas a través de Bluetooth o wifi mediante protocolos específicos de Internet de las cosas (IoT), tanto desde un ordenador como desde un móvil.
Aplicará técnicas de visión artificial que le ayudarán a identificar objetos por su forma, tamaño o color. Incluso, añadirá información textual o gráfica con el uso de técnicas de realidad aumentada.
Sin duda, en este libro encontrará una gran variedad de técnicas con las que ampliar las capacidades de Arduino hasta límites que nunca antes hubiera imaginado.
Tomás Domínguez es ingeniero de telecomunicación y doctorado en inteligencia artificial. Su labor profesional se ha desarrollado en una multinacional de telecomunicaciones, donde ha ocupado diversos cargos relacionados con la tecnología. Asimismo, ha ejercido como profesor universitario de ingeniería informática en la Universidad Alfonso X el Sabio de Madrid. En los últimos años, ha publicado diversos libros relacionados con Arduino y ESP8266.
Índice
1.INTRODUCCIÓN 1
2. IDE PROCESSING 3
2.1 Instalación 32.2 Interfaz 8
2.3 Sketches 10
3.PROGRAMACIÓN CON PROCESSING 15
3.1 Funciones setup() y draw() 15
3.2 Hola Mundo 16
4. FUNCIONES GRÁFICAS 23
4.1 Gráficos elementales 23
4.1.1 Puntos 24
4.1.2 Líneas 27
4.2 Figuras geométricas 31
4.2.1 Rectángulos 31
4.2.2 Elipses 33
4.2.3 Arcos 35
4.2.4 Figuras geométricas personalizadas 35
4.2.5 Práctica: emoticono 36
4.3 Color 38
4.3.1 Práctica: emoticono en color 41
4.4 Textos 44
4.5 Imágenes 53
4.6 Transformaciones 60
4.6.1 Traslación 60
4.6.2 Rotación 65
4.6.3 Escalado 70
4.6.4 Matrices de transformación 72
4.6.5 Práctica: reloj analógico 74
4.7 Gráficos 3D 78
4.7.1 Transformaciones 3D 79
4.7.2 Figuras geométricas 82
4.7.3 Iluminación 84
4.7.4 Cámara 86
5.INTERACCIÓN CON EL RATÓN Y EL TECLADO 89
5.1 Uso del ratón 89
5.1.1 Práctica: pizarra electrónica 94
5.1.2 Práctica: control de movimiento 3D 95
5.2 Uso del teclado 98
5.2.1 Práctica: juego del frontón 101
5.2.2 Práctica: juego de los ladrillos 111
6.INTEGRACIÓN ARDUINO-PROCESSING 119
6.1 Librería Firmata 121
6.1.1 Práctica: blink 123
6.1.2 Práctica: linterna inteligente 127
6.1.3 Práctica: control direccional de un mecanismo pam tilt 130
6.2 Gestión directa de las comunicaciones serie 136
6.2.1 Envío de datos desde Processing hacia Arduino 137
6.2.2 Envío de datos desde Arduino hacia Processing 140
6.2.3 Práctica: mando de juegos 148
6.2.4 Práctica: espejo 3D 151
6.2.5 Práctica: osciloscopio 160
7.LIBRERÍA DE ELEMENTOS GRÁFICOS CONTROLP5 169
8.INTERNET DE LAS COSAS 181
8.1 Comunicaciones Bluetooth 182
8.1.1 El HC-05 182
8.1.2 Práctica: control de una persiana. 189
8.1.3 Práctica: control del nivel de brillo de un led 197
8.1.4 Práctica: estación meteorológica 204
8.2 Comunicaciones MQTT 211
8.2.1 El WEMOS D1 212
8.2.2 Librerías ESP8266WiFi y PubSubClient de Arduino 216
8.2.3 Librería MQTT de Processing 218
8.2.4 Práctica: control de las luces de una casa 219
8.2.5 Práctica: control de la calefacción desde un teléfono móvil 234
9.VISIÓN ARTIFICIAL 2519.1 OpenCV 251
9.2 Librería OpenCV for Processing 252
9.3 Características básicas de una imagen 256
9.3.1 Color 257
9.3.2 Brillo y contraste 261
9.3.3 Histogramas 265
9.4 Filtros de procesamiento de imágenes 268
9.4.1 Filtros basados en umbral 269
9.4.2 Filtro paso bajo 272
9.5 Detección de contornos 275
9.5.1 Bounding box 282
9.5.2 Aproximación poligonal 286
9.5.3 Práctica: clasificación de objetos por tamaño 290
9.6 Detección facial 297
9.7 Captura y reproducción de vídeo 301
9.7.1 Vídeo obtenido de una cámara 304
9.7.2 Vídeo procedente de un archivo 309
9.8 Procesamiento de vídeo 312
9.8.1 Práctica: mascota robótica I 316
9.9 Realidad aumentada 325
9.9.1 Práctica: clasificación de materiales 331
9.10 Detección de movimiento 341
9.10.1 Práctica: alarma inteligente 344
9.11 Color tracking 352
9.11.1 Práctica: mascota robótica II 360