del libro
No cabe duda de que algunos de los temas tratados en este libro son muy complejos. Después de todo, los Raspberry Pi son dispositivos complejos. Sin embargo, este libro contiene todo lo necesario para dominar dichos temas y lo presenta dividido en tres partes principales:
❏Parte I: Aspectos básicos de Raspberry Pi
❏Parte II: Interfaz, control y comunicaciones
❏Parte III: Comunicación e interacción avanzadas
La primera parte del libro presenta el hardware y el software de las plataformas RPi en los capítulos 1 y 2 y, luego, proporciona tres capítulos introductorios:
❏Capítulo 3, “Exploración de sistemas Linux empotrados”
❏Capítulo 4, “Interfaz con los componentes electrónicos”
❏Capítulo 5, “Programación con Raspberry Pi”
Los lectores expertos en Linux, electrónica o software pueden obviar estas introducciones sin mayores problemas. Sin embargo, para todo el resto, se incluye un conjunto de materiales conciso pero detallado para asegurar que adquieren todos los conocimientos necesarios para trabajar con el Raspberry Pi de manera segura y eficaz. El resto hacen a menudo referencia a estos capítulos introductorios.
La segunda parte del libro, del capítulo 6 al 11, proporciona información detallada sobre las interfaces GPIO de Raspberry Pi, los buses (I2C, SPI), dispositivos UART y periféricos USB. Aprenderemos a configurar un entorno de compilación cruzada para abordar el desarrollo de aplicaciones de software a gran escala para el Raspberry Pi. La parte II describe también cómo combinar el hardware y el software para dotar al Raspberry Pi de la capacidad de interaccionar de forma eficaz con su entorno físico. Además, el capítulo 11 “Interfaz en tiempo real utilizando Arduino”, nos muestra cómo utilizar el Arduino como procesador esclavo con el Raspberry Pi. Esto sirve para superar algunas de las limitaciones de tiempo real que surgen al trabajar con Linux empotrado.
La tercera y última parte del libro, de los capítulos 12 al 16, describen cómo utilizar el Raspberry Pi para aplicaciones avanzadas de interfaz y comunicación, por ejemplo con dispositivos IoT, control y comunicaciones inalámbricas, interfaces gráficas de usuario enriquecidas, imágenes, audio y vídeo, así como la programación del núcleo de Linux. Por el camino nos encontraremos con múltiples tecnologías, como TCP/IP, ThingSpeak, IBM Bluemix, MQTT, Cgicc, alimentación por Ethernet (Power over Ethernet, PoE), WiFi, NodeMCUs, Bluetooth, NFC/RFID, ZigBee, XBee, cron, Nginx, PHP, correo electrónico, IFTTT, GPS, VNC, GTK+, Qt, XML, JSON, multihilo, programación cliente/servidor, V4L2, streaming de vídeo, OpenCV, Boost, audio USB, Bluetooth A2DP, lectura automatizada, LKM y kthreads.
Convenciones utilizadas en este libro
Este libro esta lleno de ejemplos de código fuente, así como de fragmentos completos que el lector podrá usar para construir sus propias aplicaciones. El código fuente y los comandos aparecen así en el libro:
This is what source code looks like.
Cuando se presenta el trabajo desarrollado en un terminal de Linux, suele ser necesario mostrar tanto la entrada como la salida en un solo ejemplo. La tipografía en negrita sirve para distinguir la entrada del usuario de la salida resultante. Por ejemplo:
pi@erpi ~ $ ping www.raspberrypi.org
PING lb.raspberrypi.org (93.93.128.211) 56(84) bytes of data.
64 bytes from 93.93.128.211: icmp_seq=1 ttl=53 time=23.1 ms
64 bytes from 93.93.128.211: icmp_seq=2 ttl=53 time=22.6 ms
...
El símbolo del sistema (prompt) $ indica que un usuario estándar de Linux ejecuta un comando, mientras que el símbolo del sistema # indica que quien ejecuta el comando tiene privilegios de superusuario. Una elipsis, simbolizada por (...), aparece siempre que ni el código fuente ni la salida eliminadas resulten imprescindibles para comprender una materia concreta. Editar de este modo la salida nos permite centrarnos sólo en la información más útil. Asimismo, un símbolo en forma de punta de flecha en una línea nos indica que el comando ocupa varias líneas en el libro, pero que debemos introducirlo en una sola línea. Por ejemplo:
pi@erpi /tmp $ echo "este es un comando largo que ocupa dos líneas en el →
libro pero que debe ser escrito en una sola línea de código" >> test.txt
Animamos al lector a que repita los pasos indicados en el libro por su cuenta, en todos aquellos lugares en los que aparezca la salida completa. Además, existe un repositorio en GitHub con los códigos fuente completos de todo el libro.
Asimismo, el lector encontrará otros estilos de texto en el libro. Por ejemplo:
❏Los nuevos términos y las palabras importantes se escriben entrecomilladas o destacas en su tipografía cuando aparecen por vez primera.
❏Las combinaciones de teclas se muestran así: Ctrl+C.
❏Todas las URL en el libro se refieren a direcciones HTTP o HTTPS y aparecen de este modo: www.exploringrpi.com.
❏Se utiliza, asimismo, un servicio de abreviación para crear alias de las URL más largas que aparecen en el libro. Dichos alias presentan la forma de tiny.cc/erpi102 (por ejemplo el segundo enlace en el capítulo 1). Si la dirección del enlace cambiase una vez publicado el libro, se actualizaría el alias.
Diversas características del libro indican que el contenido reviste especial importancia, o bien cuándo hay disponible información adicional:
ADVERTENCIAContiene información importante que nos permitirá evitar producir daños a la placa Raspberry Pi.
NOTAPresenta información adicional útil, como enlaces a recursos digitales y consejos útiles que pueden facilitar la comprensión de la tarea de que se trate.
Material necesario
Lo ideal sería que el lector contase con una placa Raspberry Pi antes de comenzar con el libro. De este modo podría seguir los numerosos ejemplos que se incluyen. Si todavía no la ha adquirido, le recomiendo que opte por la Raspberry Pi 3 Model B. Aunque se trata de la placa más cara (algo más de 30 euros), es también la más potente. Dicha placa contiene un procesador de 64 bits con cuatro núcleos, un adaptador de red, un adaptador inalámbrico Ethernet y Bluetooth. Es decir, cuenta con todas las características necesarias para ejecutar cualquier ejemplo contenido en este libro. Raspberry Pi en tiendas en línea como Adafruit Industries, Digi-Key, SparkFun y Jameco Electronics si vive en los Estados Unidos. También están disponibles internacionalmente desde tiendas como Farnell, Radionics o Watterott.
En el capítulo 1 se ofrece una lista completa de todos los accesorios recomendados y opcionales para el Raspberry Pi. Si aún no tiene un Raspberry Pi, debería leer ese capítulo antes de comprarlo. Asimismo, la primera página de cada capítulo contiene una lista de los componentes electrónicos con los módulos requeridos para seguirlo. El sitio web del libro (www.exploringrpi.com) proporciona detalles sobre cómo adquirir dichos componentes.
Los ejemplos de este libro utilizan a propósito los componentes, placas para pines (breakout boards) y módulos de más bajo coste y más amplia disponibilidad que nos ha sido posible encontrar, y que cumplen los requisitos de los ejemplos. De este modo, el lector podrá trabajar con muchos de los ejemplos en lugar de centrar su presupuesto en solo unos pocos. Por todo el libro se indican unos precios orientativos de los componentes para que el lector pueda hacerse una idea del dinero que puede necesitar antes de iniciar un proyecto. Se trata de precios de compra reales (generalmente en dólares) encontrados en webs como