Читать книгу Raspberry Pi® a fondo para desarrolladores - Derek Molloy - Страница 10

Оглавление

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 de la plataforma RPi suficientes para cumplir todos los requisitos de sus proyectos. Ahora bien, dicha personalización no es una tarea trivial: es posible que el lector sea un experto en la electrónica de bajo nivel, y que, o bien la programación de alto nivel, o bien el sistema operativo Linux, le causen dolores de cabeza. Y viceversa: podría ser todo un gurú de la programación, y no haber soldado un LED en toda su vida. El objetivo de este libro es llegar a todos los tipos de usuarios que estén interesados en interaccionar con el RPi y dar a cada uno la suficiente información sobre Linux, electrónica y software como para que puedan ser productivos, con independencia de su nivel previo de experiencia.

Cuándo utilizar el RPi

La plataforma RPi permite integrar magníficamente software de alto nivel con electrónica de bajo nivel en cualquier tipo de proyecto. Tanto si pretendemos desarrollar un sistema de domótica automatizado, un robot, una pantalla multimedia, una aplicación IoT, una máquina de vending o una obra de arte conectada a Internet, el RPi cuenta con la suficiente potencia de procesamiento para afrontar todo aquello que podamos exigir a un dispositivo empotrado.

La mayor ventaja que el RPi y otros dispositivos Linux empotrados presentan frente a los sistemas empotrados tradicionales, como Arduino, PIC o microcontroladores AVR, se pone de manifiesto cuando basamos nuestros proyectos en Linux. Por ejemplo, si construimos un sistema de automatización con el RPi y decidimos que determinada información esté disponible en Internet, no tenemos más que instalar el servidor web Nginx. Luego, podemos desarrollar scripts en el servidor o utilizar nuestro lenguaje de programación favorito para comunicar con nuestro sistema de domótica automatizado para capturar y compartir información. También es posible que nuestro proyecto exija un acceso remoto seguro. En tal caso, para instalar un servidor SSH (Secure Shell) no tendríamos más que ejecutar el comando Linux sudo apt install sshd, como veremos en el capítulo 2. Esto podría muy bien ahorrarnos semanas de trabajo de desarrollo. Además, tenemos la tranquilidad de saber que ese mismo software se ejecuta con plena seguridad en millones de máquinas por todo el mundo.

Linux proporciona también controladores para numerosos periféricos y adaptadores USB, lo que nos permite conectar cámaras, adaptadores WiFi y otros dispositivos comerciales de bajo coste directamente a nuestra plataforma sin necesidad de desarrollar software caro y complejo.

El RPi es también un magnífico dispositivo para reproducir vídeo de alta definición. Capacidad que debe a su procesador Broadcom BCM2835/6/7 diseñado para aplicaciones multimedia y a que incorpora una implementación hardware de los códecs H.264/MPG-4 y MPG-2/VC-1 (mediante una licencia adicional). Utilizar el RPi para la ejecución de aplicaciones multimedia, como el centro de entretenimiento doméstico Kodi2 (www.kodi.tv) para reproducir vídeo con resolución full-HD, goza de bastante popularidad.

Cuándo no utilizar el RPi

Linux no se diseñó como sistema operativo de tiempo real ni para procesamiento predecible. Esto resultaría problemático, por ejemplo, si pretendemos obtener muestras de un sensor cada millonésima de segundo exactamente. Si el núcleo se halla ocupado con una tarea diferente en el instante preciso de recogida de una muestra, no va a resultar fácil interrumpirlo. Por lo tanto, en su configuración predeterminada, el RPi no resulta una plataforma idónea para aplicaciones de sistemas en tiempo real. Existen versiones de Linux para aplicaciones en tiempo real, pero destinadas a desarrolladores de Linux muy experimentados, y cuyas capacidades en ese ámbito son limitadas. No obstante, el RPi se puede combinar con procesadores de servicio en tiempo real, donde desempeñaría la labor de "inteligencia central" del conjunto. Podemos establecer la conexión de tales microcontroladores de tiempo real con el RPi a través de buses eléctricos, como I2C UART o Ethernet, y dejar que el RPi actúe como procesador central en un sistema de control distribuido. Este concepto se describe en los capítulos 11, 12 y 13.

La plataforma RPi no es ideal para desarrollar proyectos que se tenga intención de comercializar. Raspberry Pi hace un uso amplio de software de código abierto, aunque se usan fragmentos de código propietario en la GPU, pero no es propiamente un hardware de código abierto. Los esquemas de las placas RPi se encuentran disponibles (tiny.cc/erpi102, por ejemplo), pero la documentación del hardware utilizado es escasa. Además, la licencia3 del bootloader de Broadcom indica explícitamente que solo se permite su distribución en código binario si “… va a servir para el desarrollo, la ejecución o el uso en un dispositivo Raspberry Pi”. No es probable que tal licencia se pueda transferir a un producto comercial diseñado por nosotros.

Como describimos anteriormente en este capítulo, la RPi Foundation se centra en la educación; así, la posible comercialización de un producto cae muy lejos de su ámbito. Si el lector planea desarrollar un proyecto de Linux empotrado con la vista puesta en comercializarlo, debería detenerse a examinar la plataforma BeagleBone, que está completamente basada en código abierto y recibe un soporte documental robusto de Texas Instruments. Además, obviamente, recomiendo al lector que adquiera mi libro Exploring BeagleBone, también editado por Wiley.

La documentación del RPi

En este libro integro mis experiencias de desarrollo con la plataforma RPi junto con materiales de apoyo relativos a Linux empotrado, programación y electrónica general, para crear una detallada guía de desarrollo. Sin embargo, simplemente no es posible abarcar todo en un solo libro, así que he evitado incluir información disponible en los documentos principales y los sitios web descritos en esta sección. El primer lugar en el que buscar documentación de apoyo es este sitio web:

❏Sitio web de la Raspberry Pi Foundation: en esta web se ofrece el principal soporte a la plataforma RPi, con blogs, guías de software, enlaces con la comunidad de usuarios y descargas para apoyar nuestros esfuerzos de desarrollo. Diríjase a www.raspberrypi.org.

Existe una enorme cantidad de documentación sobre la plataforma RPi, pero los documentos más importantes para este libro son los siguientes:

❏La documentación del Raspberry Pi: se trata de la documentación oficial de RPi, escrita por la Raspberry Pi Foundation. Incluye guías de introducción, guías de configuración, guías sobre las distribuciones Linux, etc. Diríjase a www.raspberrypi.org/documentation/.

❏Hoja de datos de dispositivos Broadcom BCM2835 ARM: es el documento principal que describe el procesador de la mayoría de los modelos de RPi (salvo RPi 2/3). Con una longitud de 200 páginas, proporciona una descripción técnica de la funcionalidad y las capacidades del procesador en las placas RPi. Diríjase a tiny.cc/erpi103. Existe también una importante fe de erratas en el sitio tiny.cc/erpi104.

❏El documento sobre BCM2836: este documento describe características del procesador en la placa RPi 2 y características relacionadas en el RPi 3. Se debe leer junto con el documento anterior de Broadcom sobre el BCM2835. Diríjase a tiny.cc/erpi105.

Hay varios sitios web claves para el aprendizaje de esta plataforma. En ellas encontramos una combinación de tutoriales, foros de discusión, librerías con código de ejemplo, distribuciones Linux y sugerencias de proyectos con las que estimular nuestra creatividad. Veamos una selección de dichas webs:

❏El sitio web de este libro: www.exploringrpi.com

❏Mi blog personal: www.derekmolloy.ie

❏El sitio web de eLinux.org: www.elinux.org

En el capítulo 2 se desarrolla la introducción a la plataforma software del RPi. El resto de este capítulo analiza el hardware de la plataforma RPi, explica la funcionalidad que ofrece, resume las especificaciones técnicas y proporciona algunos ejemplos de los tipos de periféricos y placas HAT que resultarían interesantes para el RPi.

El hardware del RPi

El núcleo de las placas RPi lo forman los SoC (System on a Chip) Broadcom BCM2835, BCM2836 y BCM2837. Hay disponibles varios modelos de RPi en la actualidad, y el contenido de este libro es perfectamente aplicable a todos ellos. No obstante, aquí nos vamos a centrar sobre todo en las versiones más recientes del RPi, las que tienen una cabecera GPIO de cuarenta pines, como los RPi A+, B+, 2, 3 y Zero. Si aún no ha comprado ningún modelo de RPi, le recomendamos que opte por el RPi 3. Esta placa soporta comunicación en red por cable e inalámbrica y cuenta con un procesador multinúcleo, lo que la hace compatible con todos los conceptos descritos en este libro y sus posibles ampliaciones. Ni el RPi A+ ni el Zero cuentan con una interfaz para cableado de red, y el RPi B+ carece de un procesador multinúcleo, pero la mayoría de los ejemplos de este libro funcionan perfectamente con ellos.Si va a utilizar el RPi A+ o el RPi Zero, es recomendable que se dirija al principio del capítulo 13 para aprender a configurar un adaptador de red inalámbrico USB.

Las versiones del Raspberry Pi

La figura 1-2 presenta una síntesis de las características comparadas de los distintos modelos de RPi disponibles en la actualidad. Veamos un resumen rápido de esta tabla:

❏Si queremos un RPi para computación de propósito general, deberíamos considerar el RPi 3. Con un procesador de cuatro núcleos a 1,2 GHz y 1 GB de memoria, ofrece el mejor rendimiento de todas las placas.

❏Para aplicaciones que deban conectar los circuitos electrónicos con Internet en una red cableada, evaluaremos RPi 3, RPi 2 o RPi B+, y consideraremos el precio el factor decisivo.

❏Si necesitamos un dispositivo muy pequeño con conectividad inalámbrica, optaremos por el RPi Zero. Por su parte, el RPi A+ puede servir perfectamente para el prototipado inicial.

❏Si lo que queremos es diseñar nuestra propia placa PCB (Printed Circuit Board, placa de circuito impreso) que utilice una o varias placas RPi, debemos analizar el módulo Computer.


Figura 1-2: Comparación resumida de los modelos de RPi más comunes.

El hardware del Raspberry Pi

Las figuras 1-3 y 1-4 detallan los sistemas principales de los modelos RPi más habituales. La figura 1-3(a) muestra la placa RPi Zero. Los sistemas clave identificados en las llamadas 1 a 11 de la figura se describen con detalle en la figura 1-4. De forma similar, la figura 1-3(b) muestra la placa RPi 3, y los sistemas clave identificados en las llamadas 1 a 15 se describen igualmente en la figura 1-4.


Figura 1-3: Las entradas/salidas y subsistemas de dos modelos

de RPi (a escala relativa): (a) RPi Zero y (b) RPi 3.

La figura 1-4 detalla las diferentes entradas y salidas disponibles en la cabecera GPIO. En modelos recientes del RPi (A+, B+, 2, 3 y Zero) hay 40 pines en total en esta cabecera (una fila con veinte pares). Sin embargo, no todos están disponibles como entradas/salidas de propósito general (GPIO). Algunos de los conectores tienen una configuración fija.

❏8 de ellos están conectados a tierra.

❏4 están destinados a fuentes de alimentación con distinto voltaje: 3,3 V (hasta 50 mA) y 5 V (hasta 300 mA).

❏2 pines se reservan para placas de extensión HAT, que veremos más adelante en este mismo capítulo, aunque también se pueden reconfigurar para otras tareas (véase el capítulo 8).

Los 26 conectores restantes pueden multiplexarse para funciones muy diferentes, algunas de las cuales se mencionan en la figura 1-4 bajo el encabezamiento "GPIO". La función de cada uno de estos tipos de entrada/salida se describe con detalle en los capítulos 6 y 8.


Figura 1-4: Tabla de conectores y subsistemas generales del RPi.


Accesorios del Raspberry Pi

Los requisitos externos para usar la placa RPi suelen ser mínimos:

❏Un cable USB 2.0 (generalmente micro-USB a USB-A) para conectar el RPi a una fuente de alimentación, como un PC de sobremesa o un cargador USB para teléfono móvil.

❏Una tarjeta micro-SD para guardar el sistema operativo que sirve para iniciar la placa.

❏Un cable Ethernet CAT-5 para conectar el RPi a la red mediante su conector Ethernet RJ-45 10/100.

El RPi se puede conectar a un monitor mediante un cable HDMI (un mini-HDMI con el RPi Zero), pero la mayoría de los ejemplos de este libro asumen que el RPi se utiliza sin monitor (en headless mode).

Accesorios importantes

Es importante que el lector adquiera los accesorios siguientes junto con su placa RPi.

Una fuente de alimentación externa de 5 V

La mejor forma de alimentar al RPi es con un cable micro-USB conectado a una fuente de alimentación de 5 V de buena calidad (±5%) que pueda ofrecer una corriente de al menos 1,1 A (1100 mA) para las placas antiguas y 2,5 A (2500 mA) para el RPi 3. Las placas RPi demandan típicamente entre 500 y 700 mA, pero algunos periféricos USB, como adaptadores WiFi o webcams, necesitan bastante más corriente. La entrada micro-USB de las placas RPi cuenta con un fusible rearmable (polyfuse) que limita la entrada de corriente a unos 1100 mA (con 700 mA de corriente segura, véase el capítulo 4) en la mayoría de los modelos RPi, y 2500 mA en el RPi 3. Podemos conectar una fuente de alimentación USB capaz de suministrar una intensidad de corriente superior a 2500 mA, pero en ningún caso una cuyo voltaje salga del rango de 4,75 V a 5,25 V (5 V ± 5%).

Si surgen problemas de estabilidad, como reinicios y cuelgues aleatorios o problemas de teclado, debemos sospechar enseguida del circuito de alimentación. Puede ser que la fuente de alimentación sea incapaz de proporcionar la corriente adecuada, o bien que sea, ella misma o el cable USB, de mala calidad y estén operando fuera de su rango de tolerancia. Por ejemplo, los fabricantes de ciertas fuentes de alimentación de 5 V genéricas, de escasa calidad, afirman que son capaces de proporcionar 1 A (seguramente se refieran al límite de corriente de cortocircuito) pero seguramente su voltaje de salida caerá a niveles inaceptables a medida que se incremente la demanda de corriente. Cuando se sospecha de que ese es el problema, hay que medir los niveles de voltaje en el RPi. En modelos recientes utilizaremos para ello PP1 o PP2 y GND, o cualquier otro componente de metal protegido, como se muestra en la figura 1-6(a). En modelos más antiguos usaremos TP1 y TP2.


Figura 1-6: (a) Comprobación de que el voltaje en el RPi se encuentra en el rango

4,75-5,25 V (5 V ± 5%). (b) El RPi Zero y sus conectores asociados.

Tarjeta micro-SD para iniciar el sistema operativo

Adquiera una tarjeta micro-SD de una marca de calidad reconocida y con no menos de 8 GB de capacidad. Asimismo, puede que necesite un adaptador micro-SD a SD para poder usarla en el lector de tarjetas de su ordenador. Las placas RPi más antiguas, como la A o la B, utilizan tarjetas SD estándar y pueden beneficiarse también de tal adaptador. En todo caso, no es raro que las tarjetas micro-SD incluyan dicho adaptador, lo que nos evitará tener que comprarlo.

La micro-SD debería ser de Clase 10 o superior, ya que su mayor velocidad de lectura/escritura nos ahorrará tiempo, sobre todo en la escritura de imágenes. Lo ideal sería una micro-SD de entre 8 y 32 GB con funcionalidad de nivelación de desgaste (wear leveling) que ampliará la vida útil de la tarjeta, sobre todo si la formateamos pero no ocupamos toda su capacidad. Tarjetas micro-SD con mayor capacidad también pueden funcionar, pero son mucho más caras. Enfoques de almacenamiento alternativos con dispositivos USB para el RPi también se analizan brevemente.

Cable Ethernet para conectividad de red

Los RPi B/B+/2/3 se pueden conectar a Internet a través de redes locales Ethernet. Los RPi A/A+/Zero se pueden conectar a Internet mediante adaptadores inalámbricos USB. Conectaremos el RPi a la red local enchufando el cable Ethernet CAT 5 en el puerto RJ-45 10/100 correspondiente. Si vamos a utilizar más de un RPi simultáneamente, no estaría de más gastar un poco de dinero en un switch de cuatro bocas económico, que podemos situar cerca de nuestro ordenador.

Accesorios recomendados

Es recomendable que el lector adquiera los accesorios siguientes junto con su placa RPi. Si planea realizar desarrollos en el RPi, probablemente debería adquirirlos todos.

Cable HDMI para conectar a monitores o televisiones

El RPi se puede conectar fácilmente a un monitor o televisión que tenga un conector HDMI o DVI. La mayoría de los modelos de RPi cuentan con un conector HDMI de tamaño estándar. Sin embargo, el RPi Zero presenta un conector mini-HDMI (HDMI-C), así que debemos tener esto en cuenta a la hora de emparejarlo con un monitor o televisión (generalmente con conectores de tipo HDMI-A o DVI-D). Con el RPi Zero necesitaremos, casi con seguridad, un conector macho HDMI-mini-C a HDMI-A. Un cable sobre 1,8 metros no debería superar los 10 euros. Vigile lo que compra: un conector HDMI-D (micro-HDMI) no servirá para el RPi Zero.

Otra posibilidad consiste en adquirir un conector barato de mini-HDMI (HDMI-C) a HDMI estándar (HDMI-A), o bien un cable conversor de mini-HDMI (HDMI-C) a DVI-D. Así podremos utilizar HDMI-A o conectar a dispositivos DVI-D, respectivamente (véase la figura 1-6(b)).


Cable serie USB a TTL UART 3,3 V para localización de problemas

El cable serie UART USB a TTL (véase la figura 1-7(a)) es uno de esos accesorios que demuestran su valía cuando surgen problemas con la instalación de Linux en nuestra placa. Es capaz de proporcionarnos una interfaz de consola con el RPi sin necesidad de conectar un monitor y un teclado externos.

Asegúrese de adquirir la versión de nivel 3,3 V. Asimismo, lo mejor es que el cable incorpore conectores hembra de 0,1 pulgadas. Este cable contiene un chipset y exige la instalación de unos controladores en el ordenador personal, que crean un nuevo puerto COM. El cable FDTI TTL-232R-3V3 funciona bien y proporciona una conexión muy estable por menos de 20 €. En la dirección tiny.cc/erpi106 encontrará la hoja de datos y el enlace VCP a los controladores software para este cable adaptador.


Figura 1-7: (a) El cable serie USB a TTL 3,3 V. (b) Su conexión al RPi.

El cable se conecta al UART serie del RPi, que está disponible a través de la cabecera GPIO. Con el RPi alimentado desde una fuente regular USB de 5 V, conectamos el cable al RPi tal como se muestra en la figura 1-7(b):

❏El hilo negro (tierra, GND) a la patilla 6 de la cabecera GPIO, que es la patilla GND del RPi.

❏El hilo amarillo (receptor, RXD) a la patilla 8 (GPIO14) de la cabecera GPIO, que es la patilla transmisora (TXD0) UART.

❏El hilo naranja (transmisor, TXD) a la patilla 10 (GPIO14) de la cabecera GPIO, que es la patilla receptora (RXD0) UART.

Mencionamos aquí que la cabecera GPIO de 40 pines se describe con todo detalle en el capítulo 6. Asimismo, el uso preciso del cable se trata en los capítulos 2, 3 y 8.

Dicho cable también se empleará para comprobar la conexión UART al RPi en el capítulo 8 y para programar los dispositivos Arduino Pro en el capítulo 11.

ADVERTENCIA El RPi tolera 3,3 V, pero envía alimentación de 5 V a través de los pines 3 y 4 de la cabecera GPIO. La manera más fácil de destruir el RPi pasa por conectarlos accidentalmente a un circuito que requiera niveles lógicos de 3,3 V, o también cortocircuitar dichos pines con otros de la misma cabecera GPIO. Para evitar contactos accidentales, podemos puentearlos con un jumper aislante (véase la figura 1-7(b)). La cubierta de plástico aísla los pines de cualquier contacto y evita que conectemos una alimentación de 5 V a nuestro circuito.

Accesorios opcionales

En las secciones siguientes se describen accesorios opcionales que podríamos necesitar para cierto tipo de aplicaciones que estemos desarrollando.

Un hub USB para conectar múltiples dispositivos USB

La mayoría de los modelos RPi incluyen un hub USB que permite la conexión de varios dispositivos de forma simultánea. Ahora bien, si planeamos conectar muchos de estos dispositivos externos al RPi, necesitaremos un hub USB externo. Los hub USB se pueden alimentar externamente o desde el bus. Los que reciben alimentación externa son algo más caros, pero mucho más versátiles a la hora de conectar dispositivos externos que demanden mucha corriente, por ejemplo adaptadores WiFi.

Un problema a tener en cuenta con los hub USB alimentados externamente es la posible "realimentación" (backfeeding o back powering) hacia el RPi. Esta realimentación ocurre cuando un hub USB alimentado externamente se conecta al hub interno del RPi (no a la toma de corriente micro-USB) y envía corriente hacia la placa a través de dicho hub interno. Tener dos fuentes de alimentación "compitiendo" para enviar corriente al RPi puede ocasionar problemas. Además, el hub del RPi carece de la protección necesaria para evitar que le llege un exceso de corriente.

Por otra parte, esto no es problema en las placas RPi más recientes (RPi 2/3) porque cuentan con la circuitería necesaria para evitar la mencionada realimentación eléctrica. Sin embargo, puede resultar útil también utilizar una única fuente de alimentación para nuestro proyecto. Para ello, lo más fácil es conectar un cable desde el hub USB alimentado externamente a la toma de corriente micro-USB del RPi.

Adaptadores micro-HDMI a VGA para vídeo y sonido

En el mercado podemos encontrar adaptadores HDMI a VGA que convierten la señal HDMI en VGA. Al mismo tiempo que proporcionan salida de vídeo VGA, muchos de estos adaptadores incorporan un conector estándar de audio de 3,5 mm, que sirve para aplicaciones de audio en el RPi. Asimismo, existen también adaptadores de audio USB capaces de proporcionar funcionalidad de reproducción y grabación de audio de alta calidad. Dichos adaptadores se describen en el capítulo 15. Muchos modelos RPi ofrecen también vídeo compuesto y sonido estéreo a través de un conector cuatripolar de 3,5 mm. Para esta tarea se puede conectar un jack estándar tetrapolar de 3,5 mm (con micrófono). La punta envía la señal al canal de audio izquierdo, seguidamente al derecho, luego está la conexión a tierra y, por último, el canal de vídeo.

Adaptadores WiFi para conectividad inalámbrica

El RPi 3 incorpora conectividad WiFi en la placa. No obstante, en modelos anteriores, esta funcionalidad se puede añadir mediante diferentes adaptadores WiFi, como los que se muestran en la figura 1-8(a), aunque el RPi no puede utilizar cualquiera que le enchufemos. Tanto la distribución Linux como el chipset que controle el adaptador determinarán las posibilidades de usarlo. La configuración de la funcionalidad WiFi y sus aplicaciones se analizan con detalle en el capítulo 13. Allí se muestran pruebas de numerosos adaptadores de bajo coste y amplia disponibilidad comercial. Se debe tener presente que los fabricantes pueden cambiar el chipset de un modelo de adaptador de una generación a otra, y que adquirir un adaptador de la lista que mostramos en el capítulo 13 no garantiza inmediatamente su funcionamiento. La mejor forma de acertar pasa por comprobar el chipset concreto del adaptador que queramos adquirir y comprobar su presencia en la lista. Podemos utilizar un pequeño medidor de corriente USB de bajo coste, como el de la figura 1-8(c) (menos de 3 euros), que nos permitirá averiguar rápidamente el consumo de potencia del RPi y el posible impacto de conectar un adaptador WiFi.


Figura 1-8: Adaptadores USB: (a) Adaptadores WiFi. (b) Adaptador para lectura/escritura

de tarjetas de memoria. (c) Monitor de corriente y voltaje USB de bajo coste.

Dispositivos de almacenamiento USB

Las placas RPi admiten la conexión de lápices USB, discos duros externos USB y adaptadores para lectura/escritura de tarjetas de memoria (sobre todo SD). Se puede formatear el dispositivo con un sistema de archivos Linux y montarlo en el sistema de archivos del RPi (véase capítulo 3). Un dispositivo que resulta particularmente útil es un lector de tarjetas de memoria USB como el de la figura 1-8(b). Estos dispositivos cuestan más o menos lo mismo que los lápices de memoria USB y soportan el cambio de tarjetas micro-SD "en caliente". Además, resultan particularmente útiles cuando necesitamos montar el sistema de archivos raíz de un RPi en otro, para intercambiar archivos o para solucionar problemas de configuración de la tarjeta que interrumpan el arranque del otro RPi (véase el capítulo 3). Por otro lado, ese mismo dispositivo se puede usar en un ordenador personal para grabar una nueva imagen de Linux en una tarjeta micro-SD.

Webcam USB para captura de imágenes y streaming de vídeo

Añadir una cámara RPi, como las de las figuras 1-9(a) o 1-9(b), o una webcam, como la de la figura 19(c), permite integrar con un coste muy bajo la funcionalidad de captura de imágenes y vídeo en nuestros proyectos RPi. Además, ciertas librerías de Linux, como Video 4 Linux y Open Source Computer Vision (OpenCV), nos permitirán el desarrollo de aplicaciones de visión artificial. Este tema se trata en profundidad en el capítulo 15.


Figura 1-9: (a) RPi NoIR Camera. (b) Soporte para cámara RPi. (c) Webcam USB Logitech C920.

Teclado y ratón USB para computación de propósito general

Podemos conectar un ratón y un teclado USB al RPi, o bien usar una combinación estándar de teclado y ratón inalámbricos de 2,4 GHz. Existen combinaciones inalámbricas portátiles de muy pequeño tamaño, por ejemplo las Rii 174 Mini, Rii i10 o la ESYNiC mini; todas ellas ofrecen un teclado portátil con su touchpad integrado. Un adaptador Bluetooth USB también resulta útil para conectar periféricos al RPi.

Una combinación de teclado/touchpad se utiliza en el capítulo 14.

Carcasas para proteger el RPi

Existen numerosos tipos de carcasas para proteger nuestro RPi, por ejemplo la que se ilustra en la figura 1-10(a), que cuesta menos de 6 euros. Las carcasas resultan útiles para salvaguardar el RPi de cortocircuitos accidentales, como los que pueden suceder al dejar la placa sobre una superficie metálica, pero también influyen mucho en la temperatura de operación del RPi (véase el capítulo 12). Intente adquirir una carcasa con la ventilación adecuada, pero evite añadir ruidosos ventiladores o esos ridículos sistemas de refrigeración líquida.

Placas de extensión HAT

Las placas de extensión HAT (Hardware Attached on Top, literalmente "hardware que se fija encima", cuyo acrónimo "HAT" es un juego de palabras con el término inglés hat, que significa sombrero) son circuitos impresos que se pueden conectar al RPi mediante la cabecera de ampliación GPIO. Existen placas de extensión para las cabeceras GPIO de 26 pines de los modelos RPi más antiguos, pero el RPi carece de mecanismos formales para identificar el tipo de placa de extensión conectada. Las HAT se presentaron junto con el RPi modelo B+. Algunos de los 40 pins de la cabecera GPIO ampliada (ID_SD e ID_SC) de los modelos más recientes se emplean para identificar automáticamente el tipo de HAT conectada. Esto permite que Linux configure los pines GPIO de forma automática y que cargue los controladores que faciliten el manejo de la HAT.


Figura 1-10: Accesorios RPi: (a) Ejemplo de carcasa. (b) La placa Sense HAT.

(c) La placa T-Cobbler. (d) Una HAT para prototipado.

La figura 1-10(b) ilustra la placa RPi Sense HAT (40 euros). Contiene: una pantalla LED de matriz de puntos de 8x8, acelerómetro, giroscopio, magnetómetro, sensor de presión atmosférica, sensor de temperatura, sensor de humedad y una pequeña palanca de control. La figura 1-10(d) muestra, vacía, una placa HAT de bajo coste para prototipado que podemos usar para diseñar nuestra propia HAT. En su parte inferior derecha incluye un espacio para una EEPROM (Electrically Erasable Programmable Read-Only Memory, demoria de solo lectura programable y borrable eléctricamente) instalable en superficie que puede servir para que el RPi identifique la HAT.

Una alternativa al diseño de nuestras propias placas HAT consiste en utilizar la placa T-Cobbler (véase la figura 1-10(c)) para conectar la cabecera GPIO del RPi a una placa de pruebas (breadboard) mediante un cable plano de cuarenta pines (disponible con la T-Cobbler). Este dispositivo se ajusta perfectamente a la placa de pruebas (véase el capítulo 4) y proporciona etiquetas claras de todos los pines

de la cabecera GPIO del RPi.

Cómo destruir su RPi

Las placas RPi son dispositivos complejos y delicados que se pueden dañar con mucha facilidad si no somos diligentes en su manejo. Si vamos a iniciarnos en la plataforma RPi desde otras placas, por ejemplo Arduino, debemos extremar el cuidado a la hora de conectar los circuitos que hayamos construido para dichas placas. A diferencia del Arduino Uno, el microprocesador del RPi no se puede sustituir. Si dañamos el SoC del microprocesador, tendremos que comprar una nueva placa.

Estas son algunas de las cosas que no debemos hacer jamás:

❏No apague el RPi desenchufando directamente el cable de alimentación USB de la placa. Para hacerlo correctamente, debe emplear un procedimiento de apagado por software (véase el capítulo 2).

❏No coloque un RPi conectado a la fuente de alimentación sobre superficies metálicas, por ejemplo ordenadores con superficies de aluminio, ni en tableros de trabajo que tengan restos metálicos, virutas de cable o componentes electrónicos. Si cortocircuitamos los pines de la cabecera que sobresalen por la parte inferior de la placa, podemos inutilizarla. Como precaución podemos adquirir una pequeña carcasa como la de la figura 1-10(a). Otra posibilidad consiste en fijar unas pequeñas almohadillas de goma autoadhesivas en la parte inferior de la placa.

❏No conecte circuitos source/sink (impulso/drenaje de corriente continua), salvo corrientes muy pequeñas, desde/hacia la cabecera GPIO. La corriente máxima que podemos alimentar o drenar desde muchos de los pines de la cabecera oscila entre 2 y 3 mA. Los pines de alimentación y tierra pueden alimentar y drenar corrientes mayores. Por su parte, algunos modelos de Arduino permiten corrientes de hasta 40 mA en cada entrada/salida. Este tema se trata con detalle en los capítulos 4 y 6.

❏Los pines GPIO toleran 3,3 V. No conecte circuitos alimentados a 5 V o inutilizará la placa. Este tema se trata con detalle en los capítulos 4, 6 y 8.

❏No conecte circuitos que apliquen potencia a la cabecera GPIO en tanto el RPi no esté encendido. Asegúrese de que todos los circuitos autoalimentados se conecten por la línea de 3,3 V o mediante optoacopladores. Este tema se trata en el capítulo 6.

Por otra parte, debería asegurarse de hacer siempre lo siguiente:

❏Compruebe con mucho cuidado el número de cada pin que vaya a utilizar. La cabecera GPIO tiene 40 patillas y resulta muy sencillo equivocarse y conectar algo en la patilla 21 en lugar de en la 19, por ejemplo. La tarjeta T-Cobbler (véase figura 1-10(c)) resulta muy útil para interconectar el RPi con una placa de pruebas. Es muy recomendable contar con una para el trabajo de prototipado.

Resumen

Después de leer este capítulo debería ser capaz de hacer lo siguiente:

❏Describir las posibilidades del Raspberry Pi (RPi) y su idoneidad para diferentes tipos de proyecto.

❏Describir los principales sistemas y subsistemas hardware de las placas RPi.

❏Identificar accesorios importantes, presentes en el mercado, que permitan mejorar las capacidades de nuestro RPi.

❏Apreciar cabalmente la potencia y complejidad del RPi como plataforma de computación física.

❏Ser consciente de los primeros pasos a seguir para proteger la placa de cualquier daño físico.

Soporte

Las principales fuentes de documentación de soporte adicional se listaron anteriormente en este mismo capítulo. Si encuentra dificultades con la plataforma RPi que no estén descritas en la documentación, visite los foros de usuarios de Raspberry Pi en la dirección www.raspberrypi.org/forums/. Por favor, no olvide nunca que los miembros de la comunidad de usuarios que publican en los foros lo hacen de manera altruista y dedican voluntariamente una buena parte de su tiempo a resolver las dudas de otros.

1 www.roylongbottom.org.uk/Raspberry%20Pi%20Benchmarks.htm.

2 Antes conocido como XBMC.

3 github.com/raspberrypi/firmware/blob/master/boot/LICENCE.broadcom.

Raspberry Pi® a fondo para desarrolladores

Подняться наверх