TY - GEN AU - OSCAR TORRENTE ARTERO TI - El Mundo Genuido Arduino: Curso Practico De Formación SN - 9786076226414 AV - TJ223 P76 T67 U1 - TJ223 P76 T67 2016 PY - 2016/// CY - México PB - ALFAOMEGA KW - Fundamentos de programacion N1 - INTRODUCCIÓN ..................................................................................................... XV CAPÍTULO 1. ELECTRÓNICA BÁSICA .......................................................................... 1 CONCEPTOS TEÓRICOS SOBRE ELECTRICIDAD ............................................................... 1 ¿Qué es la electricidad? .......................................................................................................... 1 ¿Qué es el voltaje? .................................................................................................................. 2 ¿Qué es la intensidad de corriente? ....................................................................................... 3 ¿Qué es la corriente continua (DC) y la corriente alterna (AC)? ............................................. 4 ¿Qué es la resistencia eléctrica? ............................................................................................. 5 ¿Qué es la Ley de Ohm? .......................................................................................................... 5 ¿Qué es la potencia? ............................................................................................................... 6 ¿Qué son las señales digitales y las señales analógicas? ........................................................ 7 ¿Qué son las señales periódicas y las señales aperiódicas? .................................................... 9 CIRCUITOS ELÉCTRICOS BÁSICOS ................................................................................. 11 Representación gráfica de circuitos ...................................................................................... 11 Circuitos abiertos, cerrados y cortocircuitos ......................................................................... 12 Conexiones en serie y en paralelo ........................................................................................ 13 El divisor de tensión .............................................................................................................. 16 Las resistencias "pull-up" y "pull-down" ............................................................................... 17 FUENTES DE ALIMENTACIÓN ELÉCTRICA ..................................................................... 19 Tipos de pilas/baterías .......................................................................................................... 19 Voltaje de corte, capacidad y capabilidad de las pilas/baterías ............................................ 22 Conexiones de varias pilas/baterías ...................................................................................... 24 Compra de pilas/baterías ...................................................................................................... 25 Compra de portapilas (con distintos conectores) ................................................................. 26 Compra de cargadores .......................................................................................................... 28 Breve nota sobre los conectores y el protocolo USB ........................................................ 30 Características de los adaptadores AC/DC ............................................................................ 31 Breve nota sobre las fuentes de alimentación solares ..................................................... 35 COMPONENTES ELÉCTRICOS ....................................................................................... 36 Resistencias ........................................................................................................................... 36 Potenciómetros ..................................................................................................................... 39 ÍNDICE ©Alfaomega - RC Libros EL MUNDO GENUINO-ARDUINO VIII Breve nota sobre los "softpots" o potenciómetros de "membrana" ............................... 41 Otras resistencias de valor variable ...................................................................................... 42 Diodos (y LEDs) ..................................................................................................................... 42 Breve nota sobre los "datasheets" ................................................................................... 43 Un tipo de diodo muy particular: el LED .......................................................................... 45 Breve nota sobre los LEDs RGB ........................................................................................ 47 Condensadores ..................................................................................................................... 48 Usos comunes de los condensadores: desacople y filtro ................................................. 51 Transistores ........................................................................................................................... 52 Pulsadores ............................................................................................................................ 56 Otros tipos de interruptores (o conmutadores) ................................................................... 57 Reguladores de tensión ........................................................................................................ 59 Breve nota sobre los elevadores DC/DC .......................................................................... 62 Placas de prototipado ........................................................................................................... 64 Cables ................................................................................................................................... 68 USO DE UNA PLACA DE PROTOTIPADO ........................................................................ 70 Breve nota sobre cómo alimentar circuitos en placas de prototipado ............................ 70 USO DE UN MULTÍMETRO DIGITAL .............................................................................. 77 CAPÍTULO 2. HARDWARE GENUINO ...................................................................... 83 ¿QUÉ ES UN SISTEMA ELECTRÓNICO? ......................................................................... 83 ¿QUÉ ES UN MICROCONTROLADOR? .......................................................................... 84 ¿QUÉ ES GENUINO/ARDUINO? ................................................................................... 86 ¿CUÁL ES EL ORIGEN DE ARDUINO? ............................................................................ 88 ¿QUÉ QUIERE DECIR QUE ARDUINO SEA "SOFTWARE LIBRE"? ................................... 89 ¿QUÉ QUIERE DECIR QUE ARDUINO SEA "HARDWARE LIBRE"? .................................. 90 ¿POR QUÉ ELEGIR ARDUINO? ..................................................................................... 92 EL MICRO DE LAS PLACAS ARDUINO (y del modelo UNO en particular) ..................... 93 El encapsulado del microcontrolador ................................................................................... 93 DIP .................................................................................................................................... 94 SMD ................................................................................................................................. 95 El modelo del microcontrolador ........................................................................................... 97 Arquitectura AVR ............................................................................................................. 98 Arquitectura ARM ............................................................................................................ 98 Breve nota sobre AVR vs. ARM (y x86) ............................................................................. 99 El chip ATmega328P ....................................................................................................... 100 Las memorias del microcontrolador ................................................................................... 101 Breve nota sobre las unidades de medida de la información ........................................ 102 Breve nota sobre las diferencias entre memorias Flash y EEPROM ............................... 105 Los registros del microcontrolador ..................................................................................... 106 La comunicación serie con el exterior ................................................................................ 106 ©Alfaomega - RC Libros ÍNDICE IX Comunicación asíncrona ................................................................................................ 108 Comunicación síncrona .................................................................................................. 108 El gestor de arranque ("bootloader") del microcontrolador ............................................... 113 Los gestores de arranque de las placas Due y Zero (ARM) ............................................. 115 Otros gestores de arranque más exóticos ...................................................................... 116 CARACTERÍSTICAS DE LA PLACA ARDUINO UNO ....................................................... 117 La alimentación eléctrica .................................................................................................... 117 El chip ATmega16U2 ............................................................................................................ 121 Breve nota sobre la tecnología TTL y sus niveles HIGH/LOW aceptados ....................... 121 Reprogramación del chip ATmega16U2.......................................................................... 123 Breve nota sobre los "pogo pins" ................................................................................... 124 Breve nota sobre los VID y PID ....................................................................................... 126 Las entradas y salidas digitales ........................................................................................... 126 Las entradas analógicas ...................................................................................................... 127 Las salidas analógicas (PWM) ............................................................................................. 129 Otros usos de los pines-hembra de la placa ....................................................................... 133 El conector ICSP .................................................................................................................. 136 SPI ................................................................................................................................... 136 ISP ................................................................................................................................... 137 Breve nota sobre cómo realizar una programación ISP con el entorno Arduino ........... 140 El reloj ................................................................................................................................. 141 Los temporizadores ("timers") del microcontrolador .................................................... 143 El botón de "reset" .............................................................................................................. 144 Obtener el diseño esquemático y de referencia ................................................................. 145 ¿QUÉ OTRAS PLACAS ARDUINO OFICIALES EXISTEN? ............................................... 146 Arduino Pro ......................................................................................................................... 146 Los pines-hembra (y otros) ............................................................................................. 147 Los adaptadores USB-Serie ............................................................................................ 148 Arduino Pro Mini ................................................................................................................. 149 Arduino Nano ...................................................................................................................... 150 Arduino Mega 2560 ............................................................................................................ 151 Arduino Micro ..................................................................................................................... 151 El "auto-reset" del micro ATmega32U4 .......................................................................... 153 Arduino Yún ......................................................................................................................... 153 Breve nota sobre cómo conseguir cargar programas en la placa Yún vía WiFi .............. 157 Arduino Lilypad, Lilypad Simple, Lilypad SimpleSnap y LilypadUSB .................................... 161 Arduino Gemma .................................................................................................................. 163 Arduino Due ........................................................................................................................ 163 Arduino Zero ....................................................................................................................... 165 Arduino 101 ........................................................................................................................ 167 Tablas comparativas de los diferentes modelos de placas .................................................. 168 Breve nota sobre las regulaciones del espectro electromagnético ................................ 170 ¿QUÉ "SHIELDS" ARDUINO OFICIALES EXISTEN? ....................................................... 170 ©Alfaomega - RC Libros EL MUNDO GENUINO-ARDUINO X Arduino Ethernet Shield ..................................................................................................... 171 Breve nota sobre Ethernet ............................................................................................. 172 PoE ("Power Over Ethernet") ......................................................................................... 174 Arduino WiFi Shield 101 ..................................................................................................... 177 Arduino GSM Shield ............................................................................................................ 178 Arduino Motor Shield ......................................................................................................... 179 Arduino Proto Shield ........................................................................................................... 181 ¿QUÉ SHIELDS NO OFICIALES EXISTEN? .................................................................... 182 Proto Shields ....................................................................................................................... 182 Power Shields ..................................................................................................................... 183 ¿QUÉ PLACAS ARDUINO NO OFICIALES EXISTEN? ..................................................... 184 CAPÍTULO 3. SOFTWARE ARDUINO ...................................................................... 191 ¿QUÉ ES UN IDE? ....................................................................................................... 191 INSTALACIÓN DEL IDE ARDUINO ............................................................................... 192 Cualquier sistema Linux ...................................................................................................... 192 Posible problema: la configuración del gestor de ficheros Nautilus .............................. 193 Posible problema: los permisos de usuario ................................................................... 193 Breve nota sobre el reconocimiento y uso de dispositivos USB-ACM en Linux ............. 194 Cualquier sistema Linux (a partir del código fuente) .......................................................... 195 Windows ............................................................................................................................. 195 Posible problema: instalación del "driver" .................................................................... 196 Breve nota sobre el reconocimiento y uso de dispositivos COM en Windows .............. 196 OS X .................................................................................................................................... 196 PRIMER CONTACTO CON EL IDE ................................................................................ 197 HERRAMIENTAS EXTRA INTEGRADAS EN EL IDE ........................................................ 203 Las librerías y el "Library Manager" .................................................................................... 203 Concepto de librería ...................................................................................................... 203 Cómo instalar librerías (de terceros) manualmente ...................................................... 204 Cómo instalar librerías (de terceros) usando el "Library Manager" ............................... 205 Cómo importar librerías ................................................................................................. 206 El "Boards Manager" .......................................................................................................... 207 El "Serial Monitor" y otros terminales serie ....................................................................... 210 Ejecución del "auto-reset" al abrir el "Serial Monitor" .................................................. 211 COMPROBACIÓN DEL CORRECTO FUNCIONAMIENTO DEL IDE ................................. 213 USO DEL IDE EN EL INTÉRPRETE DE COMANDOS ...................................................... 215 USO DEL IDE "ARDUINO CREATE" .............................................................................. 217 OTROS IDEs ALTERNATIVOS ....................................................................................... 218 Entornos "online" ............................................................................................................... 220 Entornos de programación gráfica ...................................................................................... 221 MÁS ALLÁ DEL LENGUAJE ARDUINO: EL LENGUAJE C/C++ ........................................ 223 ©Alfaomega - RC Libros ÍNDICE XI Herramientas de compilación C/C++ y carga incluidas en el IDE ........................................ 225 Herramientas invocadas mediante el botón "Verify" ..................................................... 225 Herramientas invocadas mediante el botón "Upload" ................................................... 227 CAPÍTULO 4. LENGUAJE ARDUINO ....................................................................... 229 MI PRIMER SKETCH ARDUINO ................................................................................... 229 ESTRUCTURA GENERAL DE UN SKETCH ..................................................................... 230 Sobre las mayúsculas, tabulaciones y los punto y coma ................................................ 231 COMENTARIOS .......................................................................................................... 232 VARIABLES ................................................................................................................. 233 Declaración e inicialización de una variable ........................................................................ 233 Asignación de valores a una variable .................................................................................. 234 Ámbito de una variable ....................................................................................................... 235 Tipos posibles de una variable ............................................................................................ 236 Tipos simples .................................................................................................................. 236 Breve nota sobre ASCII, ISO-8859-1 y UTF-8 .................................................................. 238 Breve nota sobre el uso de los sistemas binario y hexadecimal ..................................... 240 Breve nota sobre la importancia de los rangos de valores válidos ................................. 241 Tipos complejos .............................................................................................................. 244 Breve nota sobre los arrays de caracteres y el tipo de datos String ............................... 246 Breve nota sobre los punteros ....................................................................................... 247 La instrucción sizeof() .......................................................................................................... 250 Cambio de tipo de datos (numéricos) ................................................................................. 251 CONSTANTES ............................................................................................................. 254 PARÁMETROS DE UNA INSTRUCCIÓN ....................................................................... 255 VALOR DE RETORNO DE UNA INSTRUCCIÓN ............................................................. 256 LA COMUNICACIÓN SERIE CON LA PLACA ARDUINO ................................................ 257 Instrucciones para enviar datos desde la placa al exterior ................................................. 258 Uso del "Serial Plotter" ................................................................................................... 262 Instrucciones para recibir datos desde el exterior .............................................................. 263 Los objetos serie de otras placas Arduino diferentes de la UNO ........................................ 271 INSTRUCCIONES DE GESTIÓN DEL TIEMPO ............................................................... 273 INSTRUCCIONES MATEMÁTICAS, TRIGONOMÉTRICAS Y DE PSEUDOALEATORIEDAD ....................................................................................... 275 INSTRUCCIONES DE GESTIÓN DE CADENAS .............................................................. 282 CREACIÓN DE INSTRUCCIONES (FUNCIONES) PROPIAS ............................................. 287 Funciones con parámetros opcionales ("sobrecarga") ....................................................... 291 Funciones con estructuras como parámetros o valor de retorno ....................................... 292 Funciones con más de un valor de retorno ("paso por referencia") ................................... 294 Las variables static .............................................................................................................. 296 ©Alfaomega - RC Libros EL MUNDO GENUINO-ARDUINO XII BLOQUES CONDICIONALES ........................................................................................ 297 Los bloques if e if/else ........................................................................................................ 297 El bloque switch .................................................................................................................. 303 BLOQUES REPETITIVOS (BUCLES) .............................................................................. 305 El bloque while ................................................................................................................... 305 El bloque do ........................................................................................................................ 308 El bloque for ....................................................................................................................... 308 Las instrucciones break y continue ..................................................................................... 312 CAPÍTULO 5. LIBRERÍAS ARDUINO ....................................................................... 315 LAS LIBRERÍAS OFICIALES .......................................................................................... 315 Librería LiquidCrystal .......................................................................................................... 316 Librería SD ........................................................................................................................... 316 Librería Ethernet ................................................................................................................. 316 Librería WiFi101 .................................................................................................................. 317 Librería Temboo .................................................................................................................. 317 Librería GSM ....................................................................................................................... 317 Librería SPI .......................................................................................................................... 317 Librería Wire ....................................................................................................................... 318 Librería SoftwareSerial ....................................................................................................... 318 Librería Firmata .................................................................................................................. 319 Librerías Servo y Stepper .................................................................................................... 320 Librerías Keyboard y Mouse (solo para placas basadas en el chip ATmega32U4 y para los modelos Due y Zero) .......................................................................................... 320 Librería EEPROM (para todas las placas excepto los modelos Due y Zero) ........................ 321 Librerías USBHost y Scheduler (solo para los modelos Due y Zero) ................................... 321 Librería Audio (solo para el modelo Due) ........................................................................... 322 Librerías AudioZero y RTCZero (solo para el modelo Zero) ................................................. 322 Librerías Bridge y SpacebrewYún (solo para el modelo Yún) .............................................. 323 USO DE PANTALLAS LCD ............................................................................................ 324 Las pantallas de cristal líquido (LCDs) ................................................................................. 324 La librería LiquidCrystal ...................................................................................................... 327 Librerías de terceros interesantes para usar con LCDs ....................................................... 334 Módulos LCD de tipo I2 C o TTL-Serie .................................................................................. 335 Backpacks I2 C ................................................................................................................. 336 Backpacks serie .............................................................................................................. 337 Shields que incorporan LCDs .............................................................................................. 339 Shields y módulos que incorporan GLCDs .......................................................................... 341 Breve nota sobre los convertidores de nivel bidireccionales ......................................... 343 Breve nota sobre la visualización de imágenes "al vuelo" ............................................. 345 USO DE PANTALLAS TFT ........................................................................................... ..347 Shields y módulos que incorporan pantallas TFT ............................................................... 347 Breve nota sobre la librería "Adafruit GFX" ................................................................... 348 ©Alfaomega - RC Libros ÍNDICE XIII Shields y módulos que incorporan pantallas TFT táctiles ................................................... 351 Pantallas TFT táctiles resistivas vs. pantallas TFT táctiles capacitivas ............................ 351 De tecnología resistiva ................................................................................................... 352 De tecnología capacitiva ................................................................................................ 357 USO DE PANTALLAS OLED .......................................................................................... 359 Las pantallas OLED .............................................................................................................. 359 Módulos OLED de 4DSystems ............................................................................................. 359 Módulos OLED de Adafruit ................................................................................................. 360 USO DE OTRAS PANTALLAS ........................................................................................ 362 7-segmentos........................................................................................................................ 363 Necesidad de aumentar el número de pines de salida .................................................. 364 Shields y módulos que incorporan displays 7-segmentos .............................................. 365 Matrices de LEDs ................................................................................................................. 369 USO DE LA MEMORIA EEPROM ................................................................................. 371 USO DE TARJETAS SD ................................................................................................. 375 Características de las tarjetas SD ........................................................................................ 375 Shields y módulos que incorporan zócalos microSD ........................................................... 377 La librería SD ....................................................................................................................... 379 USO DE PUERTOS SERIE SOFTWARE .......................................................................... 388 USO DE MOTORES ..................................................................................................... 392 Conceptos básicos sobre motores ...................................................................................... 392 Tipos de motores ................................................................................................................ 394 Los motores DC .............................................................................................................. 394 Los servomotores ........................................................................................................... 396 Los motores paso a paso ................................................................................................ 399 La librería Servo .................................................................................................................. 402 La librería Stepper ............................................................................................................... 407 CAPÍTULO 6. ENTRADAS Y SALIDAS ...................................................................... 411 USO DE LAS ENTRADAS Y SALIDAS DIGITALES ........................................................... 411 Ejemplos con salidas digitales ............................................................................................. 414 Evitando el uso de la función delay() –y de delayMicroseconds()– ................................ 418 Múltiples salidas en paralelo .......................................................................................... 424 Ejemplos con entradas digitales (pulsadores) ..................................................................... 437 Implementación de pulsadores momentáneos .............................................................. 440 Implementación de pulsadores mantenidos .................................................................. 444 Evitando el rebote ("bounce") en los pulsadores ........................................................... 450 Juegos ............................................................................................................................. 452 Keypads digitales ................................................................................................................. 458 USO DE LAS ENTRADAS Y SALIDAS ANALÓGICAS ...................................................... 461 Ejemplos con salidas analógicas ......................................................................................... 464 Control interactivo (mediante pulsadores) .................................................................... 466 ©Alfaomega - RC Libros EL MUNDO GENUINO-ARDUINO XIV Control interactivo (a través del canal serie) ................................................................. 467 Uso de LEDs RGB ............................................................................................................ 469 Ejemplos con entradas analógicas (potenciómetros) ......................................................... 471 Medias y calibraciones ................................................................................................... 474 Entradas y salidas ........................................................................................................... 475 Ejemplo de uso de joysticks como entradas analógicas ..................................................... 478 Ejemplo de uso de pulsadores como entradas analógicas ................................................. 480 Cambiar el voltaje de referencia de las lecturas analógicas ............................................... 484 CONTROL DE MOTORES DC ....................................................................................... 487 El chip L293 ......................................................................................................................... 492 Módulos de control para motores DC ................................................................................ 494 La placa TB6612FNG ...................................................................................................... 495 Otros módulos ............................................................................................................... 497 Shields de control para motores DC (y paso a paso) .......................................................... 497 El "Adafruit Motor Shield" ............................................................................................. 497 Otros shields .................................................................................................................. 499 EMISIÓN DE SONIDO ................................................................................................. 502 Uso de zumbadores ............................................................................................................ 502 Las funciones tone() y noTone() .......................................................................................... 505 Uso de altavoces ................................................................................................................. 510 Amplificación simple del sonido ......................................................................................... 512 Sonidos pregrabados .......................................................................................................... 515 La librería "SimpleSDAudio" ........................................................................................... 515 Breve nota sobre las características de un fichero de audio .......................................... 515 El "Wave Shield" de Adafruit.......................................................................................... 517 Shields que reproducen MP3 ......................................................................................... 518 Módulos de audio .......................................................................................................... 519 Reproductores de voz .................................................................................................... 523 APÉNDICES A. DISTRIBUIDORES DE ARDUINO Y MATERIAL ELÉCTRICO ................................... 529 Kits ...................................................................................................................................... 532 B. CÓDIGOS IMPRIMIBLES DE LA TABLA ASCII ...................................................... 535 C. RECURSOS PARA SEGUIR APRENDIENDO ......................................................... 537 Plataforma Arduino ............................................................................................................ 537 Electrónica general ............................................................................................................. 538 Proyectos ............................................................................................................................ 539 ÍNDICE ANALÍTICO ……………………………………………………………………………………………..541; Ingeniería en Tecnologías de la Información y Comunicación N2 - Cualquier técnico electrónico o aficionado a la electrónica necesita en alguna ocasión trabajar con microcontroladores. Esta tarea, durante años compleja, actualmente es mucho más simple gracias a Genuino-Arduino, éste permite que cualquier persona (incluso profana en la electrónica y la programación) pueda realizar circuitos electrónicos que sean capaces de interaccionar con el mundo físico real. Gracias a su sencillez, campos como la robótica o la domótica (por nombrar solo dos) se han visto radicalmente impulsados con la llegada de Genuino-Arduino, aunque es utilizado en muchos otros campos multidisciplinares, tales como el control y monitoraje de sensores, la activación remota de circuitos electromecánicos (vía Internet incluso), el montaje de instalaciones audiovisuales, etc ER -