Ejercicios prácticos con Raspberry Pi

Tekst
Loe katkendit
Märgi loetuks
Kuidas lugeda raamatut pärast ostmist
Ejercicios prácticos con Raspberry Pi
Šrift:Väiksem АаSuurem Aa

Ejercicios prácticos con Raspberry Pi

Ejercicios prácticos con Raspberry Pi

Simon Monk


Edición original publicada en inglés por O’Reilly con el título Raspberry Pi Cookbook, ISBN 978-14-919-3910-9 © Simon Monk 2016.

This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

Título de la edición en español:

Ejercicios prácticos con Raspberry Pi

Segunda edición en español, 2017

© 2017 MARCOMBO, S.A.

Gran Via de les Corts Catalanes, 594

08007 Barcelona

www.marcombo.com

Traducción: Loly Martos

Revisión técnica: Ferran Fàbregas

Diseño de la cubierta: ENEDENÚ DISEÑO GRÁFICO

«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. La presente publicación contiene la opinión del autor y tiene el objetivo de informar de forma precisa y concisa. La elaboración del contenido, aunque se ha trabajado de forma escrupulosa, no puede comportar una responsabilidad específica para el autor ni el editor de los posibles errores o imprecisiones que pudiera contener la presente obra.»

ISBN: 978-84-267-2779-4

Producción del ebook: booqlab.com

Tabla de contenidos

Prefacio

1. Ajustes y configuración

1.1 Introducción

1.2 Seleccionar un modelo de Raspberry Pi

1.3 Proteger Raspberry Pi

1.4 Seleccionar una fuente de alimentación

1.5 Seleccionar la distribución del sistema operativo

1.6 Grabar una tarjeta microSD con NOOBS

1.7 Conectar el sistema

1.8 Conectar un monitor DVI o VGA

1.9 Usar un monitor de vídeo compuesto

1.10 Ajustar el tamaño de la imagen al monitor

1.11 Maximizar el rendimiento

1.12 Cambiar la contraseña

1.13 Ajustar Pi para empezar directamente con un sistema de ventanas

1.14 Apagar su Raspberry Pi

1.15 Instalar el módulo de cámara de Raspberry Pi

1.16 Usar bluetooth

2. Redes

2.1 Introducción

2.2 Conectar a una red por cable

2.3 Encontrar la dirección IP

2.4 Configurar una dirección IP estática

2.5 Ajustar el nombre de Raspberry Pi

2.6 Configurar una conexión inalámbrica

2.7 Conectar un cable de consola

2.8 Controlar Pi de forma remota con SSH

2.9 Controlar Pi de forma remota con VNC

2.10 Controlar Pi de forma remota con RDP

2.11 Uso compartido de archivos en una red Mac

2.12 Compartir la pantalla Pi en un Mac

2.13 Usar Raspberry Pi como almacenamiento conectado a la red (NAS)

2.14 Impresión en red

3. Sistema operativo

3.1 Introducción

3.2 Mover archivos de forma gráfica

3.3 Comenzar una sesión de terminal

3.4 Navegar por el sistema de archivos mediante un terminal

3.5 Copiar un archivo o una carpeta

3.6 Renombrar un archivo o carpeta

3.7 Editar un archivo

3.8 Visualizar el contenido de un archivo

3.9 Crear un archivo sin utilizar un editor

3.10 Crear un directorio

3.11 Eliminar un archivo o un directorio

3.12 Realizar tareas con privilegios de superusuario

3.13 Entender los permisos de archivo

3.14 Cambiar los permisos de archivo

3.15 Cambiar la propiedad del archivo

3.16 Hacer una captura de pantalla

3.17 Instalar un software con apt-get

3.18 Eliminar un software instalado con apt-get

3.19 Instalar paquetes de Python con Pip

3.20 Buscar archivos desde la línea de comandos

3.21 Buscar códigos fuente con Git

3.22 Ejecutar un programa o una secuencia de comandos al iniciar

3.23 Ejecutar un programa o una secuencia de comandos como servicio

3.24 Ejecutar un programa o una secuencia de comandos en intervalos regulares

3.25 Encontrar cosas

3.26 Utilizar el historial de la línea de comandos

3.27 Supervisar la actividad del procesador

3.28 Trabajar con archivos comprimidos

3.29 Mostrar los dispositivos USB conectados

3.30 Redirigir la salida desde la línea de comandos a un archivo

3.31 Concatenar archivos

3.32 Usar pipes (tuberías)

3.33 Ocultar la salida al terminal

3.34 Ejecutar programas en segundo plano

3.35 Crear alias de comandos

3.36 Ajustar la fecha y la hora

3.37 Saber cuánto espacio tiene en la tarjeta SD

 

4. Software

4.1 Introducción

4.2 Crear un centro multimedia

4.3 Instalar programas de ofimática

4.4 Instalar otros navegadores

4.5 Usar Pi Store

4.6 Crear un servidor webcam

4.7 Ejecutar un emulador de juegos de consola vintage

4.8 Ejecutar Minecraft Pi Edition

4.9 Ejecutar un servidor de Minecraft

4.10 Ejecutar Open Arena

4.11 Transmisor de radio Raspberry Pi

4.12 Ejecutar GIMP

4.13 Radio por Internet

5. Fundamentos de Python

5.1 Introducción

5.2 Decidir entre Python 2 y Python 3

5.3 Editar programas de Python con IDLE

5.4 Usar la consola de Python

5.5 Ejecutar programas de Python desde el terminal

5.6 Variables

5.7 Visualizar la salida

5.8 Leer la entrada del usuario

5.9 Aritmética

5.10 Crear cadenas

5.11 Concatenar (unir) cadenas

5.12 Convertir números en cadenas

5.13 Convertir cadenas en números

5.14 Conocer la longitud de una cadena

5.15 Conocer la posición de una cadena dentro de otra

5.16 Extraer una parte de una cadena

5.17 Sustituir una cadena de caracteres por otra dentro de una cadena

5.18 Convertir una cadena en letras mayúsculas o minúsculas

5.19 Ejecutar comandos de forma condicional

5.20 Comparar valores

5.21 Operadores lógicos

5.22 Repetir instrucciones un número exacto de veces

5.23 Repetir instrucciones hasta que alguna condición cambie

5.24 Interrumpir bucles

5.25 Definir una función en Python

6. Listas y diccionarios de Python

6.1 Introducción

6.2 Crear una lista

6.3 Acceder a elementos de una lista

6.4 Conocer la longitud de una lista

6.5 Añadir elementos a una lista

6.6 Eliminar elementos de una lista

6.7 Crear una lista dividiendo una cadena

6.8 Iterar sobre una lista

6.9 Enumerar una lista

6.10 Clasificar una lista

6.11 Cortar una lista

6.12 Aplicar una función a una lista

6.13 Crear un diccionario

6.14 Acceder a un diccionario

6.15 Eliminar elementos de un diccionario

6.16 Iterar sobre diccionarios

7. Python avanzado

7.1 Introducción

7.2 Dar formato a números

7.3 Dar formato a la fecha y hora

7.4 Devolver más de un valor

7.5 Definir una clase

7.6 Definir un método

7.7 Herencia

7.8 Escritura en un fichero

7.9 Lectura de un fichero

7.10 Pickling

7.11 Manejar excepciones

7.12 Usar módulos

7.13 Números aleatorios

7.14 Hacer peticiones web desde Python

7.15 Argumentos de la línea de comandos en Python

7.16 Ejecutar comandos de Linux desde Python

7.17 Enviar correos electrónicos desde Python

7.18 Escribir un servidor web simple en Python

7.19 Hacer más de una cosa a la vez

7.20 No hacer nada en Python

7.21 Usar Python con Minecraft Pi Edition

8. Visión artificial

8.1 Introducción

8.2 Instalar SimpleCV

8.3 Configurar una webcam USB para la visión artificial

8.4 Usar un módulo de cámara de Raspberry Pi para la visión artificial

8.5 Contar monedas

8.6 Detección facial

8.7 Detección de movimiento

8.8 Reconocimiento óptico de caracteres

9. Fundamentos de hardware

9.1 Introducción

9.2 Conocer el camino al conector GPIO

9.3 Mantener su Raspberry Pi segura cuando utilice el conector GPIO

9.4 Configurar I2C

9.5 Usar herramientas I2C

9.6 Configurar SPI

9.7 Instalar PySerial para acceder al puerto serie desde Python

9.8 Instalar Minicom para probar el puerto serie

9.9 Usar una placa de pruebas con cables puente

9.10 Usar una placa de pruebas con Pi Cobbler

9.11 Usar una Raspberry Squid

9.12 Usar el botón Raspberry Squid

9.13 Convertir señales de 5 V a 3,3 V con dos resistores

9.14 Convertir señales de 5 V a 3,3 V con un módulo convertidor de nivel

9.15 Alimentar Raspberry Pi con pilas

9.16 Alimentar Raspberry Pi con una batería LiPo

9.17 Introducción a Sense HAT

9.18 Introducción a Explorer HAT Pro

9.19 Introducción a la placa RaspiRobot

9.20 Utilizar una placa de prototipado para Pi

9.21 Crear un Hardware At Top (HAT)

9.22 Pi Compute Module

9.23 Pi Zero

10. Control de hardware

10.1 Introducción

10.2 Conectar un led

10.3 Dejar los pines GPIO en un estado seguro

10.4 Controlar el brillo de un led

10.5 Producir un zumbido

 

10.6 Conmutar un dispositivo CC de alta potencia mediante un transistor

10.7 Conmutar un dispositivo de alta potencia con un relé

10.8 Controlar los dispositivos de CA de alto voltaje

10.9 Crear una interfaz de usuario para activar y desactivar cosas

10.10 Crear una interfaz de usuario para controlar la potencia de PWM en ledes y motores

10.11 Cambiar el color de un led RGB

10.12 Usar muchos ledes (Charlieplexing)

10.13 Usar un medidor analógico como pantalla

10.14 Programar con interrupciones

11. Motores

11.1 Introducción

11.2 Controlar servomotores

11.3 Controlar servomotores de manera precisa

11.4 Controlar varios servomotores

11.5 Controlar la velocidad de un motor CC

11.6 Controlar la dirección de un motor CC

11.7 Utilizar motores paso a paso unipolares

11.8 Utilizar motores paso a paso bipolares

11.9 Utilizar un HAT para accionar un motor paso a paso bipolar

11.10 Utilizar una tarjeta RaspiRobot para impulsar un motor paso a paso bipolar

11.11 Crear un robot Rover sencillo

12. Entradas digitales

12.1 Introducción

12.2 Conectar un pulsador

12.3 Conmutar con un pulsador

12.4 Usar un conmutador de dos posiciones o un interruptor deslizante

12.5 Usar un conmutador con la posición central de apagado o un interruptor deslizante

12.6 Eliminar el rebote al pulsar un botón

12.7 Usar una resistencia pull-up externa

12.8 Usar un codificador rotatorio (cuadratura)

12.9 Usar un teclado

12.10 Detectar movimiento

12.11 Añadir un GPS a Raspberry Pi

12.12 Interceptar pulsaciones de teclas

12.13 Interceptar movimientos de ratón

12.14 Usar un módulo de reloj en tiempo real

13. Sensores

13.1 Introducción

13.2 Usar sensores resistivos

13.3 Medir la luz

13.4 Medir la temperatura con un termistor

13.5 Detectar metano

13.6 Medir el voltaje

13.7 Reducir el voltaje para medir

13.8 Usar sensores resistivos con un ADC

13.9 Medir la temperatura con un ADC

13.10 Medir la temperatura de la CPU de Raspberry Pi

13.11 Medir la temperatura, la humedad y la presión con Sense HAT

13.12 Medir la temperatura con un sensor digital

13.13 Medir la aceleración con un módulo MCP3008

13.14 Usar la Unidad de Medición Inercial (IMU) del Sense HAT

13.15 Encontrar el norte magnético con el Sense HAT

13.16 Detectar un imán con un interruptor de láminas

13.17 Detectar un imán con un Sense HAT

13.18 Medir la distancia

13.19 Sensor táctil capacitivo

13.20 Visualizar los valores de un sensor

13.21 Registrar en una unidad flash USB

14. Visualización

14.1 Introducción

14.2 Usar una pantalla led de cuatro dígitos

14.3 Visualizar mensajes en una matriz de led l2C

14.4 Usar la pantalla de matriz de led del Sense HAT

14.5 Visualizar mensajes en un HAT LCD alfanumérico

14.6 Visualizar mensajes en un módulo LCD alfanumérico

14.7 Utilizar una pantalla gráfica OLED

14.8 Usar tiras de ledes RGB direccionables

15. El Internet de las cosas

15.1 Introducción

15.2 Controlar las salidas GPIO mediante una interfaz web

15.3 Visualizar las lecturas de los sensores en una página web

15.4 Enviar correos electrónicos y otras notificaciones con IFTTT

15.5 Enviar tuits con ThingSpeak

15.6 CheerLights

15.7 Enviar los datos de los sensores a ThingSpeak

15.8 Responder tuits utilizando Dweet y IFTTT

16. Arduino y Raspberry Pi

16.1 Introducción

16.2 Programar un Arduino desde Raspberry Pi

16.3 Comunicarse con el Arduino usando el monitor serial

16.4 Configurar PyFirmata para controlar un Arduino desde Raspberry Pi

16.5 Escritura de salidas digitales en un Arduino desde Raspberry Pi

16.6 Utilizar PyFirmata con TTL en serie

16.7 Lectura de entradas digitales de Arduino usando PyFirmata

16.8 Lectura de entradas analógicas de Arduino usando PyFirmata

16.9 Salidas analógicas (PWM) con PyFirmata

16.10 Controlar un servo con PyFirmata

16.11 Comunicación personalizada con un Arduino sobre TTL en serie

16.12 Comunicación personalizada con un Arduino sobre I2C

16.13 Utilizar Arduinos pequeños con Raspberry Pi

16.14 Comenzar con una tarjeta aLaMode y una Raspberry Pi

16.15 Utilizar un shield de Arduino con aLaMode y Raspberry Pi

A. Componentes y proveedores

B. Asignación de patillaje de Raspberry Pi

Prefacio

Lanzado en 2011, Raspberry Pi ha encontrado un papel como un ordenador basado en Linux de muy bajo coste y como una plataforma para los sistemas informáticos incorporados. Resulta popular para los educadores y para los aficionados por igual.

Desde la primera edición de este libro, se han vendido varios millones de Raspberry Pi y se han producido nuevos modelos. Algunos modelos, como los modelos B+, A+ y el modelo B+ de la Pi 2, mejoran la especificación de este dispositivo, surgiendo así Raspberry Pi 2 con procesador de cuatro núcleos y el modelo Raspberry Pi Compute, que proporciona una placa de extensión que puede ser parte de un sistema más grande.

Esta edición ha sido completamente actualizada para abarcar los nuevos modelos de Raspberry Pi, así como los muchos cambios y mejoras de su sistema operativo Raspbian.

Esta edición contiene un nuevo capítulo sobre visión artificial y otro capítulo para hacer proyectos del Internet de las Cosas con Raspberry Pi.

Este libro está diseñado de tal manera que usted puede leerlo linealmente como lo haría con cualquier libro, o acceder a los capítulos de forma individual. Puede buscar en la tabla de contenido aquello que desee y saltar directamente a ese capítulo. Si el capítulo requiere que usted sepa sobre otras cosas, hará referencia a otros capítulos, igual que un libro de cocina podría referirse a una salsa concreta antes de mostrar cómo cocinar algo más elaborado.

El mundo Raspberry Pi se mueve rápidamente. Con una comunidad grande y activa se están desarrollando constantemente nuevas tarjetas de interfaz y bibliotecas de software. Además de los ejemplos que utilizan tarjetas de interfaz o softwares específicos, el libro también cubre los principios básicos para que pueda tener una mejor comprensión de cómo usar las nuevas tecnologías que aparecen a medida que se desarrolla el ecosistema Raspberry Pi.

Como era de esperar, al libro le acompaña una gran cantidad de código (principalmente los programas de Python). Estos programas son de código abierto y están disponibles en GitHub.

Para la mayoría de los capítulos basados en software, lo único que necesita es una Raspberry Pi. Recomiendo la Raspberry Pi 2 o 3. Cuando se trata de capítulos que involucran la fabricación del propio hardware para interconectarlo con Raspberry Pi, he tratado de usar módulos ya preparados, así como las placas de prueba sin soldadura y cables puente, para evitar tener que soldar.

Para aquellos que desean hacer más duraderos los proyectos basados en placas de prueba, aconsejo el uso de placas de prototipos con el mismo diseño que una placa de prueba de tamaño medio, como las vendidas por Adafruit, para que el diseño pueda soldarse.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivos y extensiones de archivo.

Ancho constante

Utilizado para listados de programas, así como dentro de párrafos para referirse a elementos del programa tales como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, enunciados y palabras clave.

Ancho constante en negrita

Comandos u otros textos que deben ser escritos literalmente por el usuario.

Ancho contante en cursiva

Muestra el texto que debe ser reemplazado por valores proporcionados por el usuario o por valores determinados por el contexto.


Este icono significa un consejo, sugerencia o nota general.
Este icono indica una advertencia o precaución.
Este icono le señala el vídeo relacionado para esta sección.