Descripción
Domine el potencial de la Raspberry Pi:
de la iniciación al desarrollo de aplicaciones inteligentes
¿Desea explorar todo lo que puede lograr con su Raspberry Pi? Este libro le ofrece una
guía completa y estructurada que le acompañará desde los primeros pasos de conexión
hasta el desarrollo de aplicaciones IoT con inteligencia artificial integrada.
Pensado tanto para autodidactas como para entornos educativos o profesionales, este manual técnico comienza con una introducción accesible a Linux y Python, avanza con el control de periféricos (GPIO, SenseHat, cámara y visión por computador con OpenCV), y culmina con la creación de APIs, bases de datos SQL y aplicaciones IoT conectadas
mediante MQTT o HTTP. Todo ello acompañado de ejemplos prácticos y ejercicios propuestos que le permitirán consolidar sus conocimientos.
Con este libro aprenderá a:
• Configurar su Raspberry Pi y comunicarse con ella de forma remota desde el primer momento.
• Programar en Python con aplicaciones prácticas orientadas al hardware y la automatización.
• Controlar sensores, actuadores y periféricos mediante GPIO, SenseHat y comunicación serie.
• Desarrollar proyectos IoT con interfaces gráficas, bases de datos y servidores web.
• Entrenar y ejecutar modelos de inteligencia artificial en la Raspberry Pi usando PyTorch.
Tanto si es docente, estudiante, ingeniero, maker o entusiasta del aprendizaje técnico, encontrará en estas páginas una hoja de ruta clara, rigurosa y actualizada para convertir su Raspberry Pi en una herramienta de desarrollo profesional.
Índice
Índice
I. Primeros pasos con la RPi
1. Conexión con la RPi
1.1 Conexión inicial mediante Ethernet
1.2 Activación del servicio VNC
1.3 Conexión mediante VNC
1.4 Configuración WiFi
1.5 Creación de una red WiFi con nuestro móvil
2. Guía rápida de Linux
2.1 Superusuario - Comando sudo
2.2 Cómo (re)instalar el SO
3. Introducción a Python
3.1 ¿Qué es Python?
3.1.1 Variables
3.1.2 Scripts en Python
3.1.3 “Hola mundo” en un script de Python
3.1.4 Control de flujo
3.1.5 Funciones
3.1.6 Importar módulos
3.1.7 Editor de Código: Thonny
II Manejo de periféricos
4 Entradas y salidas digitales
4.1 GPIO
4.1.1 Control de los GPIO con GPIOZero y Python
4.2 Interrupciones con GPIOZero
4.3 Manejo del PWM
4.4 Comunicación serie mediante UART
4.5 Ejercicios propuestos
5 SenseHat: manejo y aplicaciones
5.1 Características
5.2 Primer ejemplo básico: lectura de los sensores
5.3 Uso del joystick
5.3.1 Representación de datos con Matplotlib
5.4 Uso del giróscopo y acelerómetro
5.5 Uso de la matriz de LEDs
5.6 Ejercicios propuestos
6 Uso de la RaspiCamera y OpenCV
6.1 Instalación de la RaspiCam
6.2 Manejo de la cámara con Python
6.2.1 Captura de imagen
6.2.2 Captura de vídeo
6.3 Computer Vision con OpenCV
6.3.1 Primer ejemplo con OpenCV
6.3.2 Eventos con OpenCV
6.3.3 Filtrado por colores
6.3.4 Combinación de imágenes por canal alpha
6.3.5 Detector de movimiento
6.4 Detección de caras con Filtros HAAR
6.5 Ejercicios propuestos
III Desarrollo de aplicaciones IoT
7 Comunicaciones IoT: MQTT y HTTP
7.1 Protocolos de transporte de datos
7.2 Transmisión de datos usando MQTT
7.2.1 Publicador con PAHO-MQTT
7.2.2 Suscriptor con PAHO-MQTT
7.3 Servidor HTTP con API REST
7.3.1 Servidor REST con Flask
7.3.2 Respuesta en formato JSON
7.3.3 Paso de parámetros
7.3.4 Servidor REST para un sensor y un actuador
7.3.5 Cliente REST con Flask
7.3.6 Incluyendo el SenseHat
7.4 Servidor ThingSpeak
7.4.1 Envío y recepción de datos a través de API
7.5 Creación de interfaces gráficas con TKinter
7.5.1 Creación de una interfaz sencilla
7.5.2 Uso de la pantalla táctil de 7’
7.6 Ejercicios propuestos
8 Bases de datos SQL para IoT
8.1 Tipos de Bases de datos
8.1.1 Modelo de base de datos plana
8.1.2 Modelo de base de datos jerárquica
8.1.3 Modelo relacional
8.1.4 Modelo no relacional
8.1.5 Modelo orientado a objetos
8.2 SQL, lenguaje de consulta
8.2.1 Comandos SQL
8.2.2 Comandos del lenguaje de definición de datos (DDL)
8.2.3 Comandos del lenguaje de manipulación de datos (DML)
8.3 Sistema Gestor de Bases de Datos (SGBD)
8.4 SQLITE 3
8.4.1 Descarga e instalación
8.4.2 Operaciones sobre la base de datos SQLITE3
8.4.3 Operaciones con columnas
8.5 Entorno gráfico - DBeaver
8.5.1 Creación de una base de datos a partir de DBeaver
8.5.2 Conexión a una base de datos existente
8.6 Ejercicios propuestos
9 Desarrollo de APIs para IoT
9.1 Módulo Flask y SQLAlchemy
9.2 Desarrollo de la API
9.2.1 Servidor Flask
9.3 Configuración de una base de datos
9.4 Especificaciones de la API REST V1
9.5 Implementación de la API REST v1
9.5.1 Listado de plazas de garajes
9.5.2 Datos de una plaza de garaje
9.5.3 Datos de una plaza de garaje a partir de un identificador de vehículo
9.5.4 Listado de plazas de garaje extendido
9.6 Implementación de la API REST v2
9.6.1 Inserción de nuevo dato en tabla
9.6.2 Creación de un cliente
9.7 Ejercicios propuestos
IV RPi y la Inteligencia Artificial
10 Introducción a las Redes Neuronales para Visión Artificial
10.1 Machine learning y Deep learning
10.1.1 Introducción al Deep Learning
10.1.2 Aprendizaje supervisado y aprendizaje no supervisado
10.2 Introducción a las redes neuronales
10.2.1 Perceptrón
10.2.2 Redes multicapa o redes densamente conectadas
10.2.3 Funciones de activación
10.3 Entrenamiento de una red neuronal
10.3.1 Métricas de funcionamiento
10.4 Redes convolucionales
10.4.1 Capa convolucional 2D
10.4.2 Capa de max-pooling
10.4.3 Capa densa - lineal
10.5 Instalación de Miniconda
10.6 Entrenamiento de redes neuronales con PyTorch
10.6.1 Entrenamiento de clasificador de dígitos: MNIST
10.6.2 Clasificador basado en redes convolucionales
10.6.3 Evaluación de la red neuronal
10.7 Ejercicio propuesto: clasificador de señales de tráfico
10.7.1 Dataset
10.8 Ejercicios propuestos
11 Inferencia neuronal en RPi
11.1 Cuantización de modelos
11.1.1 Escalado y redondeo en la cuantización
11.1.2 Tipos de cuantización en Pytorch
11.1.3 Cuantización Estática
11.1.4 Cuantización Dinámica
11.1.5 Quantization-Aware Training
11.1.6 Resumen de los tipos de cuantización en PyTorch
11.2 Compilador Just-In-Time (JIT)
11.3 Inferencia en tiempo real
11.4 Otras arquitecturas neuronales
11.5 Inferencia en tiempo real con MobileNet
11.6 Ejercicios propuestos
Valoraciones
No hay valoraciones aún.