Capítulo 4 Interfaz con los componentes electrónicos
Capítulo 5 Programación con Raspberry Pi
Parte II Interfaz, control y comunicaciones
Capítulo 6 Interfaz de entrada/salida en el Raspberry Pi
Capítulo 7 Compilación cruzada y el IDE Eclipse
Capítulo 8 Interfaz con los buses del Raspberry Pi
Capítulo 9 Mejora de las interfaces de entrada/salida en el RPi
Capítulo 10 Cómo interaccionar con el entorno físico
Capítulo 11 Interfaz en tiempo real con el Arduino
Parte III Comunicación e interacción avanzadas
Capítulo 12 IoT (Internet of Things)
Capítulo 13 Control y comunicación inalámbricas
Capítulo 14 Raspberry Pi con una interfaz de usuario enriquecida
Capítulo 15 Imágenes, vídeo y audio
Capítulo 16 Programación del núcleo
Contenidos
Introducción
Estructura del libro
Convenciones utilizadas en este libro
Material necesario
Fe de erratas
Contenido digital y código fuente
Parte I
Aspectos básicos del Raspberry Pi
Capítulo 1
El hardware del Raspberry Pi
Introducción a la plataforma
¿A quién está destinado el RPi?
Cuándo utilizar el RPi
Cuándo no utilizar el RPi
La documentación del RPi
El hardware del RPi
Las versiones del Raspberry Pi
El hardware del Raspberry Pi
Accesorios del Raspberry Pi
Accesorios importantes
Una fuente de alimentación externa de 5 V
Tarjeta micro-SD para iniciar el sistema operativo
Cable Ethernet para conectividad de red
Accesorios recomendados
Cable HDMI para conectar a monitores o televisiones
Cable serie USB a TTL UART 3,3 V para localización de problemas
Accesorios opcionales
Un hub USB para conectar múltiples dispositivos USB
Adaptadores micro-HDMI a VGA para vídeo y sonido
Adaptadores WiFi para conectividad inalámbrica
Dispositivos de almacenamiento USB
Webcam USB para captura de imágenes y streaming de vídeo
Teclado y ratón USB para computación de propósito general
Carcasas para proteger el RPi
Placas de extensión HAT
Cómo destruir su RPi
Resumen
Soporte
Capítulo 2
El software del Raspberry Pi
Linux en el Raspberry Pi
Distribuciones de Linux para el RPi
Cómo crear una imagen Linux en una tarjeta SD para el RPi
Cómo conectarse a una red
Cable Ethernet estándar
Cable Ethernet cruzado
Cómo comunicarse con el RPi
Conexión serie con el cable USB a TTL de 3,3 V
Conexión segura con SSH (Secure Shell)
Conexiones SSH (Secure Shell) mediante PuTTY
Chrome Apps: cliente Secure Shell
Como transferir archivos mediante PuTTY/psftp sobre SSH
Control del Raspberry Pi
Comandos básicos de Linux
Primeros pasos
Comandos básicos del sistema de archivos
Variables de entorno
Edición básica de archivos
¿Qué hora es?
Gestión de paquetes
Configuración del Raspberry Pi
La herramienta de configuración del Raspberry Pi
Actualización del software del RPi
Salida de vídeo
Interacción con los LED de la placa
Apagado y reinicio
Resumen
Capítulo 3
Exploración de sistemas Linux empotrados
Introducción a Linux para sistemas empotrados
Ventajas y desventajas de Linux para sistemas empotrados
¿Es Linux gratuito y de código abierto?
Cómo iniciar el Raspberry Pi
Los gestores de arranque del Raspberry Pi
Espacio del núcleo y espacio de usuario
El gestor de sistema y servicios systemd
Gestión de sistemas Linux
El superusuario
Administración del sistema
El sistema de archivos de Linux
Enlaces a archivos y directorios
Usuarios y grupos
Permisos del sistema de archivos
El directorio raíz (root) de Linux
Comandos para sistemas de archivos
La fiabilidad de los sistemas de archivos en las tarjetas SD
Comandos de Linux
Redirección de entrada y salida (>, >> y <)
Tuberías (| y tee)
Comandos de filtro (de sort a xargs)
Los comandos echo y cat
diff
tar
md5sum
Procesos de Linux
Cómo controlar los procesos en Linux
Procesos en primer y en segundo plano
Otros temas de Linux
Cómo utilizar Git para el control de versiones
Una introducción práctica
Cómo clonar un repositorio (git clone)
Cómo obtener información de estado (git status)
Cómo añadir archivos al área de preparación (git add)
Cómo hacer commit en el repositorio local (git commit)
Envío al repositorio remoto (git push)
Ramas de desarrollo de Git
Cómo crear una rama de desarrollo (git branch)
Cómo fusionar ramas de desarrollo (git merge)
Cómo borrar una rama de desarrollo (git branch -d)
Comandos habituales de Git
Cómo utilizar escritorios virtuales
El código fuente de este libro
Resumen
Otras lecturas
Bibliografía
Capítulo 4
Interfaz con los componentes electrónicos
Cómo analizar nuestros circuitos
Multímetro digital
Osciloscopios
Principios básicos de los circuitos
Voltaje, intensidad de la corriente, resistencia y la ley de Ohm
División de voltaje
División de corriente
Cómo implementar circuitos del RPi en una placa de pruebas
Multímetros digitales (DMM) y placas de pruebas
Circuito de ejemplo: regulación de voltaje
Componentes discretos
Diodos
Diodos emisores de luz (LED)
Condensadores de filtro o aplanamiento y de desconexión
Transistores
Utilización de transistores como conmutadores
Utilización de transistores de efecto campo (FET) como conmutadores
Optoacopladores/optoaisladores
Interruptores y botones
Histéresis
Puertas lógicas
Entradas flotantes
Resistencias pull-up y pull-down
Salidas de colector abierto y de drenador abierto
Interconexión de puertas lógicas
Conversión analógico-digital
Frecuencia de muestreo
Discretización
Amplificadores operacionales
Amplificadores operacionales ideales
Retroalimentación negativa y seguidor de tensiones
Retroalimentación positiva
Consejos finales
Resumen
Otras lecturas
Capítulo 5
Programación con Raspberry Pi
Introducción
Rendimiento de los lenguajes en el RPi
Establecer la frecuencia de trabajo en la CPU del RPi
Un primer circuito para la computación física
Lenguajes de script
Opciones de lenguajes de script
Bash
Lua
Perl
Python
Lenguajes compilados dinámicamente
Javascript y Node.js en el RPi
Java en el RPi
C y C++ en el RPi
Introducción a C y C++
Compilando y enlazando
Cómo escribir el programa C/C++ más corto del mundo
Compilación estática y dinámica
Variables y operadores en C/C++
Punteros en C/C++
Cadenas de caracteres (strings) de estilo C
Control de LED en C
La "C" de C++
Primer ejemplo y gestión de cadenas en C++
Paso por valor, por puntero y por referencia
Control del LED con C++ (sin emplear objetos)
Introducción a la programación orientada a objetos
Clases y objetos
Encapsulación
Herencia
Control de LED orientado a objetos con C++
Interfaz con el sistema operativo Linux
Glibc y syscall
Cómo mejorar el rendimiento de Python
Cython
Cómo ampliar Python con C/C++
La API Python/C
Boost.Python
Resumen
Otras lecturas
Bibliografía
Parte II
Interfaz, control y comunicaciones
Читать дальше