NOTANingún producto aparece en este libro como resultado de haber establecido acuerdo alguno con vendedores ni fabricantes. El autor ha seleccionado y adquirido todos los productos personalmente basándose sólo en su precio, funcionalidad y disponibilidad comercial. Los precios solo se ofrecen como referencia y pueden estar sujetos a variación. El lector debe indagar personalmente antes de adquirir cualquier elemento listado en este libro con el fin de asegurarse de que se ajusta a sus necesidades.
Fe de erratas
Se ha trabajado muy duro para garantizar que este libro esté libre de errores. Sin embargo, siempre cabe la posibilidad de que se haya deslizado alguno inadvertidamente. La web del libro (en inglés) contiene un listado con los errores detectados en cada capítulo (www.exploringrpi.com). Si el lector encuentra algún error en el texto o en los ejemplos de código fuente, le agradecería muy sinceramente que utilizara la web del libro para enviarlo y que podamos actualizar tanto la fe de erratas como los ejemplos de código fuente en el repositorio.
Contenido digital y código fuente
El sitio web principal asociado a este libro es www.exploringrpi.com. El propio autor se encarga del mantenimiento del sitio web, que contiene vídeos, ejemplos de código fuente y enlaces para ampliar los datos con nuevas lecturas. Cada capítulo tiene su propia página web. En el caso improbable de que el sitio web no se encuentre disponible, el lector puede encontrar el código fuente en www.wiley.com/go/exploringrpi.
Todo el código fuente se encuentra en un repositorio de GitHub, lo que permitirá al lector descargarlo en su Raspberry Pi con un solo comando. También puede acceder al código fuente en línea con facilidad en la dirección tiny.cc/erpi001. Para descargar el código fuente en su Raspberry Pi solo tiene que introducir el comando siguiente en el símbolo de sistema de su shell de Linux:
pi@erpi ~ $ git clone https://github.com/derekmolloy/exploringrpi.git
Si nunca antes ha utilizado GitHub, no se preocupe, lo explicamos con todo detalle en el capítulo 3.
Bien, es hora de empezar.
Parte
I
Aspectos básicos del Raspberry Pi
En esta parte
Capítulo 1: El hardware del Raspberry Pi
Capítulo 2: El software del Raspberry Pi
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
Capítulo
1
El hardware del Raspberry Pi
En este capítulo presentamos el hardware de la plataforma Raspberry Pi (RPi). El capítulo se centra en los modelos más recientes de Raspberry Pi y describe los diferentes subsistemas y las entradas/salidas de las placas. Además, el capítulo lista los accesorios que pueden resultar más útiles a la hora de desarrollar nuestros proyectos basados en Raspberry Pi. Cuando lo finalice, el lector debería haber adquirido una idea cabal de la potencia y la complejidad de esta plataforma de computación hardware. Asimismo, debería ser ya consciente de los primeros pasos a seguir para proteger la placa de cualquier daño físico.
Introducción a la plataforma
Los modelos RPi son dispositivos capaces de realizar labores de computación de propósito general. Así, se han hecho un hueco como plataformas para aprender informática y programación. De igual modo, dichos modelos, algunos de los cuales se muestran en la figura 1-1, también son dispositivos de computación física realmente capaces, que se pueden usar para aplicaciones en sistemas empotrados. En particular para aplicaciones empotradas conectadas a Internet.
Figura 1-1: Ejemplos de placas de la plataforma Raspberry Pi (en una escala relativa).
Algunas características generales de los dispositivos RPi son:
❏Su coste se sitúa entre los 5 y los 30 euros aproximadamente.
❏Se trata de dispositivos de computación muy potentes. Por ejemplo, el RPi 3 contiene un procesador ARM Cortex-A53 a 1,2 GHz capaz de realizar más de 700 millones de instrucciones Whetstone por segundo (MWIPS).1
❏Hay disponible un abanico muy amplio de modelos adaptables a distintas aplicaciones, por ejemplo: la placa de gran formato RPi 3 para el prototipado o los diminutos Compute Module y RPi Zero, para su uso práctico.
❏Admiten muchas interfaces estándar para dispositivos electrónicos.
❏Funcionan con poca potencia: entre los 0,5 W de un RPi Zero inactivo y los aproximadamente 5,5 W de un RPi 3 a plena carga.
❏Son ampliables mediante placas de extensión HAT (Hardware Attached on Top) conectables directamente a la placa y dispositivos USB.
❏Reciben soporte por parte de una enorme comunidad de usuarios innovadores y entusiastas que aportan generosamente su tiempo para ayudar a la RPi Foundation en sus objetivos educacionales.
La plataforma RPi puede ejecutar el sistema operativo Linux, lo que nos permite utilizar directamente numerosas aplicaciones y librerías software de código. La disponibilidad de controladores software de código abierto nos permite también conectar dispositivos como cámaras USB, teclados y adaptadores WiFi a nuestros proyectos, sin necesidad de emplear soluciones propietarias. Por lo tanto, tenemos acceso a librerías de código fuente muy completas, desarrolladas por miembros de una comunidad open source sobrada de talento. No obstante, debemos tener presente que ese código fuente suele carecer de garantía alguna. Si se presentan problemas, debemos fiarnos de la buena voluntad de la comunidad a la hora de resolverlos. Ni que decir tiene que también podemos ser nosotros los que resolvamos los problemas y pongamos la solución a disposición del resto de la comunidad.
Una característica impresionante de los modelos de RPi más recientes es la posibilidad de ampliar su funcionalidad mediante placas de extensión, llamadas HAT como ya hemos visto, que se conectan directamente a la doble fila de cuarenta pines (cabecera GPIO) visible en las placas de la figura 1-1. Podemos diseñar nuestras propias HAT y conectarlas con seguridad a la placa RPi mediante esta cabecera. Además, en el mercado existen muchas placas HAT que permiten ampliar la funcionalidad de la plataforma RPi. Hacia el final del presente capítulo describiremos algunos ejemplos de aquellas.
¿A quién está destinado el RPi?
Cualquiera que desee transformar un concepto de ingeniería en un proyecto electrónico interactivo real y tangible, un prototipo o una obra de arte debería plantearse utilizar RPi. Dicho esto, no podemos olvidar que la integración de software de alto nivel con componentes electrónicos de bajo nivel no es una tarea fácil. Sin embargo, la dificultad inherente a cualquier implementación dependerá del nivel de sofisticación que demande el proyecto concreto. La comunidad RPi trabaja muy duro para asegurar que la plataforma sea accesible para todo el mundo que esté interesado en integrarla en sus proyectos, ya sean estudiantes, artistas o aficionados. Por ejemplo, la disponibilidad para el RPi de la herramienta de programación visual Scratch (tiny.cc/erpi101) ofrece una vía excelente para interesar a los niños tanto en la plataforma RPi como en la programación de ordenadores.
Aquellos usuarios más avanzados, que poseen conocimientos de electrónica o computación, pueden alcanzar niveles de desarrollo y personalización