Cómo configurar un adaptador Bluetooth
Cómo hacer que el RPi sea "descubrible"
Desarrollo de aplicaciones Android con Bluetooth
Comunicaciones por WiFi
Cómo instalar un adaptador WiFi
El procesador esclavo WiFi NodeMCU
El firmware más reciente
Cómo conectar NodeMCU a WiFi
Cómo programar el NodeMCU
La interfaz del servidor web NodeMCU
JSON
Comunicación con mensajes JSON
El NodeMCU y el protocolo MQTT
Comunicaciones ZigBee
Introducción a los dispositivos XBee
Modo AT frente a modo API
Configuración XBee
XCTU
Cómo configurar una red XBee usando XCTU
Un ejemplo de XBee en modo AT
Configuración del dispositivo Arduino XBee (XBeeA)
Configuración del dispositivo RPi XBee (XBeePi)
Un ejemplo de XBee en modo API
Configuración del dispositivo RPi XBee (XBee1)
Configuración del dispositivo independiente XBee (XBee2)
El modo XBee API y Node.js
XBee y C/C++
Comunicación de campo cercano (NFC)
Resumen
Capítulo 14
Raspberry Pi con una interfaz de usuario enriquecida
Arquitecturas de interfaz de usuario enriquecida para RPi
El RPi como ordenador de propósito general
Cómo conectar un periférico de entrada Bluetooth
El RPi con una pantalla táctil LCD
Computación virtual en red (VNC)
VNC con el visor VNC Viewer
VNC con Xming y PuTTY
VNC en un PC con Linux
Aplicaciones fat-client o de cliente pesado
Desarrollo de interfaces gráficas de usuario enriquecidas
Introducción a GTK+ en el RPi
Una aplicación "Hello World" GTK+
Modelo de programación orientado a eventos
Aplicación de humedad y temperatura con GTK+
Introducción a Qt en el RPi
Cómo instalar las herramientas de desarrollo Qt en el RPi
La aplicación "Hello World" Qt
Introducción a Qt
Elementos de Qt
La clase QObject
Señales y slots
Herramientas de desarrollo para Qt
Primer ejemplo con Qt Creator
Una aplicación Qt con UI para un sensor meteorológico
Desarrollo de interfaces gráficas remotas
Aplicación GUI Qt para cliente pesado
Aplicaciones servidor con procesamiento multihilo
El servidor meteorológico multihilo
Análisis y representación de la corriente de datos
Resumen
Otras lecturas
Capítulo 15
Imágenes, vídeo y audio
Captura de imágenes y vídeo
La cámara del RPi
Cómo capturar imágenes fijas
Cómo grabar vídeo
Cómo usar la cámara del RPi en el espacio de usuario de Linux
Webcams USB
Video4Linux2 (V4L2)
Utilidad de captura de imágenes
Utilidades Video4Linux2
Desarrollo de programas Video4Linux2
Vídeo en streaming
Procesamiento de imágenes y visión por ordenador
Procesamiento de imágenes con OpenCV
Visión artificial con OpenCV
Boost
Audio en el Raspberry Pi
Principales herramientas software de audio
Dispositivos de audio para el RPi
Dispositivos de reproducción de audio USB y HDMI
Cómo reproducir emisoras de radio por Internet
Grabación de audio
Streaming de audio por la red
Audio Bluetooth A2DP
Lectura automatizada (Text-to-Speech)
Resumen
Otras lecturas
Capítulo 16
Programación del núcleo
Introducción
¿Por qué escribir módulos para el núcleo?
Introducción a los módulos cargables del núcleo (LKM)
Primer ejemplo de un LKM
El LKM Makefile
Cómo compilar un LKM en un ordenador con Linux
Cómo compilar un LKM en el RPi
Nuestro primer ejemplo de LKM a prueba
Comprobación del parámetro LKM
Ejemplo de un LKM empotrado
Rutinas de servicio de interrupción (ISR)
Rendimiento
Controlador GPIO LKM de botón mejorado
La interfaz kobject
Controlador GPIO LKM de LED mejorado
Hilos de ejecución del núcleo
Conclusiones
Resumen
Introducción
La idea básica del proyecto Raspberry Pi (RPi) es la de desarrollar una plataforma de computación pequeña y asequible que sirviera para estimular el interés de los niños por aprender los aspectos fundamentales de las tecnologías de la información y las comunicaciones. La rápida evolución de los dispositivos SoC (System-on a -Chip) de bajo coste para aplicaciones móviles posibilitó una amplísima distribución de la plataforma asequible RPi a principios de 2012. Su impacto fue inmediato: en febrero de 2015 ya se habían vendido más de cinco millones de placas Raspberry Pi. La proliferación de smartphones nos ha permitido dar por sentado que podemos tener ordenadores capaces de llevar a cabo miles de millones de operaciones por segundo en la palma de la mano. No obstante, el hecho de que podamos modificar el hardware y el software de unos dispositivos tan pequeños como potentes y adaptarlos a nuestras necesidades, así como desarrollar nuestras propias creaciones, no deja de resultar asombroso. Mejor aún: ahora es posible adquirir un Raspberry Pi Zero por menos de cinco euros, casi lo mismo que un desayuno.
Las placas Raspberry Pi propiamente dichas resultan demasiado complejas para que las utilice el público general. Es, sin embargo, su capacidad de ejecutar una versión empotrada (embedded) de Linux lo que las convierte en plataformas accesibles, adaptables y potentes. En conjunto, Linux y los sistemas empotrados hacen posible un desarrollo sencillo para este tipo de dispositivos, destinados realizar funciones en edificios inteligentes, dispositivos IoT (Internet of Things, literalmente "Internet de las cosas"), robótica, energía inteligente, ciudades inteligentes, interacción hombre-ordenador (HCI o Human-Computer Interaction por sus siglas en inglés), sistemas ciberfísicos, impresión en 3D, sistemas avanzados para vehículos y muchas más aplicaciones.
La integración del software Linux de alto nivel con unos componentes electrónicos de bajo nivel representa un cambio de paradigma en el ámbito del desarrollo para sistemas empotrados. Poder construir un circuito con componentes electrónicos de bajo nivel e instalar un servidor web Linux, que permitirá su control desde Internet, con solo unos pocos comandos solo se puede definir como revolucionario. Es fácil utilizar el Raspberry Pi como ordenador Linux de propósito general, pero es muchísimo más interesante, y todo un desafío, remangarse y manipular directamente los componentes electrónicos en los circuitos de nuestro propio diseño. ¡Para eso está este libro!
Este libro debería resultar muy atractivo para inventores, manitas, estudiantes, emprendedores, hackers, artistas y soñadores, es decir, para todo el mundo que desee llevar la potencia de Linux empotrado a sus productos, invenciones, creaciones o proyectos y comprender verdaderamente la plataforma RPi con todo detalle. No es este, sin embargo, un libro de recetas. Con escasas excepciones todo lo mostrado aquí se explica a un nivel que permitirá al lector diseñar, construir y depurar sus propias ampliaciones a los conceptos presentados. Tampoco se incluye en el libro ningún gran proyecto de diseño para el que se deba comprar un conjunto predeterminado de componentes y periféricos con los que alcanzar un resultado muy concreto. Más bien, este libro trata de proporcionar al lector el conocimiento básico suficiente, así como los detalles técnicos, que le permita explorar por su cuenta y, además, lo motive a hacerlo.
Creo firmemente en el aprendizaje con la práctica, así, presento ejemplos con hardware de muy bajo coste y muy fácil de encontrar de modo que el lector pueda seguir adelante. Mediante estos ejemplos prácticos, se describe con todo detalle el significado de los pasos a seguir. De este modo, cuando el lector sustituya sus propios componentes, módulos y periféricos hardware, será capaz de adaptar el contenido de este libro a sus propias necesidades. Y respecto a ese "gran proyecto de diseño", lo dejamos a la imaginación del lector.
Читать дальше