Descripción
Con el fin de resolver cualquier problema de automatización de un proceso con Arduino en cualquiera de las áreas de la ingeniería, en esta obra se presenta desde la instalación y puesta a punto del sistema Arduino así como la descripción de la plataforma electrónica del mismo, también se describen las librerías y funciones de Arduino y se presenta el lenguaje C específico para este sistema. Además de estos fundamentos básicos, se abordan diversas aplicaciones del sistema Arduino en ciencias exactas e ingenierías, en particular se tratan temas como servos, comunicación y enlaces con MATLAB, algoritmos de control, comunicación Bluetooth, Ethernet, manejo de interrupciones, WiFi y LabVIEW.
CARACTERÍSTICAS DE LA EDICIÓN
• La presentación del sistema Arduino se inicia con la instalación y puesta a punto del mismo, además de que se presenta paso a paso la forma en que se debe implementar cada aplicación usando el sistema configurado al principio de la exposición.
• Al final de cada capítulo se incluye un resumen de los conceptos más importantes y un conjunto de ejercicios para aplicar lo aprendido.
• En la página web del libro se presenta el código fuente completo de todas las aplicaciones que se analizan.
VENTAJAS COMPETITIVAS
• Además de su contenido, esta obra cuenta con los siguientes apoyos web:
• Lecturas complementarias.
• Problemas adicionales.
• Código fuente de las aplicaciones desarrolladas.
• Solución de problemas seleccionados.
CONOZCA
• Cómo se instala y configura el sistema Arduino.
• El uso de Arduino en el desarrollo de aplicaciones en las diferentes áreas de la ingeniería.
APRENDA
• A desarrollar sistemas de automatización con Arduino en las diferentes áreas de la ingeniería.
DESARROLLE
• Aplicaciones de Arduino en las diferentes áreas de la ingeniería.
Contenido
Plataforma de contenidos interactivos
Pagina Web del libro
Prologo
Capitulo 1
Introduccion 1
1.1 Introduccion 3
1.2 Sistemas empotrados 4
1.3 Sistema empotrado Arduino 6
1.3.1 Arquitectura abierta del sistema Arduino 9
Ejemplos practicos con Arduino 13
1.4 Resumen 14
1.5 Referencias selectas 15
1.6 Problemas propuestos 16
Capitulo 2
Instalacion y puesta a punto del sistema Arduino 17
2.1 Introduccion 19
2.2 Instalacion 20
2.2.1 Instalacion de drivers de las tarjetas Arduino 21
xxi
xxxi
xxii
Contenido
Alfaomega Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz
2.3 Ambiente de programacion Arduino 24
2.3.1 Menu Archivo 26
2.4 Puesta a punto 37
2.4.1 Ejemplo blink 37
2.4.2 Ejemplo DigitalReadSerial 42
Aplicaciones de blink 44
Aplicaciones de DigitalReadSerial 44
Aplicaciones del Sistema Arduino 45
2.5 Resumen 46
2.6 Referencias selectas 47
2.7 Problemas propuestos 48
Capitulo 3
Plataforma electronica 49
3.1 Introduccion
3.2 Arquitectura AVR
3.3 Plataforma electronica Arduino
3.4 Modelos de tarjetas Arduino
3.5 Resumen
3.6 Referencias selectas
3.7 Problemas propuestos
Capitulo 4
Lenguaje C 51
4.1 Introduccion 53
4.2 Empezando a programar en C 55
4.2.1 Operadores basicos del lenguaje C 58
xii
Contenido
Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz Alfaomega
4.2.2 ¿Como ejecutar programas o sketchs? 61
4.3 Variables 61
4.3.1 Tipos de datos 64
4.3.2 Modificadores de tipos de datos 68
4.3.3 Constantes para cadenas y de la plataforma Arduino 73
4.3.4 Ambito de las variables ´ 74
4.4 Operadores 76
4.4.1 Operadores aritmeticos 76
Operadores a nivel de bits 84
Operadores logicos y de comparacion 84
4.5 Arreglos 85
4.5.1 Arreglos unidimensionales 85
4.5.2 Arreglos bidimensionales 86
4.6 Funciones 87
Sintaxis de funciones en lenguaje C 88
Ejemplos de funciones 88
4.7 Instrucciones de programacion 94
4.7.1 Instrucciones condicionales 94
Instruccion if 97
Ejemplos con if 97
Instruccion if(){…}else{…} 100
Instruccion if anidada 100
4.7.2 Instruccion switch(valor){ case: … break; default: …} 102
Ejemplos con el operador ? 103
Ejemplos con switch(){…} 105
4.7.3 for( ; ; ){…} 106
Sintaxis de for( ; ; ){…} 109
xiii
Contenido
Alfaomega Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz
4.7.4 Instruccion while( ){…} 113
4.7.5 Sintaxis do{…}while( ); 115
4.7.6 Sentencia break 119
4.7.7 Sentencia continue 119
Ejemplos adicionales 120
4.8 Resumen 121
4.9 Referencias selectas 121
4.10 Problemas propuestos 122
Capitulo 5
Apuntadores, estructuras y uniones 125
5.1 Introduccion
5.2 Apuntadores
5.3 Estructuras
5.4 Uniones
5.5 Resumen
5.6 Referencias selectas
5.7 Problemas propuestos
Capitulo 6
Librer´ias y funciones Arduino 127
6.1 Introduccion 129
6.2 Librerias Arduino 130
Librerias y funciones Arduino 130
6.2.1 Librerias stdio.h 132
6.2.2 Librerias stdlib.h 132
6.2.3 Funciones matematicas 135
6.3 Funciones Arduino 138
xiv
Contenido
Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz Alfaomega
6.3.1 Funciones fundamentales 138
6.3.2 Utilidades 139
6.3.3 Tipos de conversion 139
6.3.4 Funciones para puertos digitales entrada/salida 141
Manipulacion de bits 145
6.3.5 Funciones para entradas analogicas 149
6.3.6 Caracteristicas de los pins de entradas analogicas 154
Adquisicion de senales analogicas 156
Termometro 156
6.3.7 Funciones time 165
6.3.8 Funciones matematicas 166
Aplicaciones de la funcion map(…) 169
6.3.9 Funciones para generar y detener tonos 173
6.3.10 Funciones para procesar bits y bytes 178
6.3.11 Serial 179
Librerias estandar C 187
Librerias Arduino 187
Funciones Arduino 187
Interrupciones y aplicaciones 187
6.4 Resumen 187
6.5 Referencias selectas 188
6.6 Problemas propuestos 189
Captulo 7
Servos 191
7.1 Introduccion 193
7.2 Motores de corriente directa 194
xv
Contenido
Alfaomega Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz
7.2.1 Motor shield 197
7.2.2 Libreria Servo.h 206
Libreria Servo.h 207
7.3 Motores a pasos 210
7.3.1 Parametros importantes de los motores a pasos 213
Motores a pasos 212
7.3.2 Motores a pasos con magneto permanente 214
7.3.3 Motores a pasos unipolares 215
7.3.4 Motores a pasos bipolares 222
7.3.5 Libreria Stepper.h 236
Ejemplos con motorreductores 240
Ejemplos con motores a pasos 240
7.4 Resumen 240
7.5 Referencias selectas 242
7.6 Problemas propuestos 243
Capitulo 8
Arduino con MATLAB 245
8.1 Introduccion 247
8.2 Informacion Arduino en MATLAB 248
8.3 Integracion numerica 256
8.4 Diferenciacion numerica 262
8.5 Registro de resultados de trabajo 266
Protocolo de comunicacion 269
Adquisicion de datos MATLAB 274
Arduino desde MATLAB 274
8.6 Resumen 276
xvi
Contenido
Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz Alfaomega
8.7 Referencias selectas 277
8.8 Problemas propuestos 277
Capitulo 9
Control 279
9.1 Introduccion 281
9.2 Sistemas de segundo orden 282
9.2.1 Ecuacion en variables de estado 284
Ejemplos de sistemas discretos 289
Simulacion de sistemas dinamicos 300
Ejemplos con Arduino Due 308
9.2.2 Aspectos tecnicos a considerar en las tarjetas Arduino 312
Algoritmos de control 313
Control de un pendulo 313
9.3 Control de temperatura 314
9.3.1 Control de temperatura PID 315
9.3.2 Regla de sintonia del control de temperatura PID 317
9.3.3 Implementacion practica del control PID 318
Ejemplos con Intel Galileo 323
9.4 Resumen 330
9.5 Referencias selectas 330
9.6 Problemas propuestos 331
Capitulo 10
Bluetooth 333
10.1 Introduccion 335
10.2 Bluetooth 338
xvIii
Contenido
Alfaomega Arduino. Aplicaciones en Robotica y Mecatronica ´ Fernando Reyes Cortes • Jaime Cid Monjaraz
10.2.1 Arquitectura de los dispositivos Bluetooth 338
10.2.2 Especificaciones tecnicas 339
10.2.3 Aplicaciones Bluetooth 339
10.3 Librerias para comunicacion serial 341
10.3.1 Libreria SoftwareSerial del Sistema Arduino 341
10.3.2 Modulo de Bluetooth JY-MCU 344
10.3.3 Funciones de puerto serial Bluetooth de MATLAB 353
10.4 Bluetooth Arduino+MATLAB 357
Comunicacion inalambrica 365
Ejemplos ilustrativos 372
Aplicaciones de control 372
10.5 Resumen 372
10.6 Referencias selectas 374
10.7 Problemas propuestos 375
Capitulo 11
Ethernet 377
11.1 Introduccion 379
11.2 Tecnologia de Ethernet 380
11.3 Trama de Ethernet 387
11.4 Arduino Ethernet Shield 391
11.5 Libreria Ethernet 394
11.5.1 Ethernet: EthernetServer 395
11.5.2 Ethernet: Client class 397
Configuracion Cliente 400
Configuracion Servidor 400
11.6 Ejemplos practicos 400
Ejemplos Ethernet 405
xvIiii
Contenido x
Arduino. Aplicaciones en Robotica y Mecatronica Fernando Reyes Cortes • Jaime Cid Monjaraz Alfaomega
i
11.7 Resumen 415
11.8 Referencias selectas 416
11.9 Problemas propuestos 417
Capitulo 12
Manejo de interrupciones 419
12.1 Introduccion
12.2 Tipos de interrupciones
12.3 Rutinas de servicio de interrupciones
12.4 Aplicaciones de control en tiempo real
12.5 Resumen
12.6 Referencias selectas
12.7 Problemas propuestos
Capitulo 13
WiFi 421
13.1 Introduccion
13.2 WiFi
13.3 Puntos de acceso
13.4 WiFi Shield
13.5 Resumen
13.6 Referencias selectas
13.7 Problemas propuestos
Capitulo 14
LabVIEW 423
14.1 Introduccion
14.2 Ambiente de programacion LabVIEW
x
Contenido
Alfaomega Arduino. Aplicaciones en Robotica y Mecatronica ´ Fernando Reyes Cortes • Jaime Cid Monjaraz
14.3 Programacion LabVIEW
14.4 Adquisicion y desplegado de datos
14.5 Resumen
14.6 Referencias selectas
14.7 Problemas propuestos
Indice analitico 425