BeagleBone Black incorpora la simplicidad de conexión del estilo Arduino a Linux embebido

Por European Editors

Colaboración de Editores europeos de DigiKey


El Raspberry Pi ha realizado un gran contribución a la industria de la electrónica el año pasado desde su lanzamiento. Si bien se diseñó originalmente como una computadora de bajo costo para uso educativo, amplió rápidamente su alcance en el mercado de dispositivos tradicionales como una plataforma de evaluación y de prototipos para ingenieros profesionales. Además de ser utilizado para enseñar informática, el Pi cuenta con el apoyo de una gran cantidad de aficionados y especialistas en electrónica, algo que no se ha visto desde hace tiempo. Teniendo en cuenta la "revolución" que ha generado PI, sería fácil pensar que nada igual ha estado disponible en el pasado. No obstante, las placas como Arduino han existido desde hace tiempo y cuenta con el seguimiento de una gran cantidad de usuarios agrupados en una comunidad fuerte de recursos de programación basados en la web para ayudarlos en el desarrollo. Existen, por supuesto, algunas diferencias fundamentales entre las dos placas. Arduino utiliza un microcontrolador AVR de 8 bits de Atmel y ofrece una E/S adecuada para conectarse con las aplicaciones del mundo real además de contar con un entorno de desarrollo integrado y extremadamente fácil de usar. Arduino ofrece una base ideal para aprender, no solo la programación del microcontrolador integrado utilizando un lenguaje tipo C, pero electrónica básica. Por el contrario, el Raspberry Pi utiliza un SoC basado en ARM® de 32 bits y se centra más en enseñar los principios básicos de los lenguajes informáticos de alto nivel y los sistemas operativos como Linux en escuelas y otros establecimientos de educación superior. El soporte para Linux está disponible en una gran cantidad de placas de desarrollo integradas y ofrece muchas ventajas en comparación con las placas menos poderosas de 8 bits. También ofrece la capacidad de compartir el procesador entre los programas y tareas de ejecución múltiples. Un ejemplo basado en Linux es BeagleBoard-XM, una placa de desarrollo de código verdaderamente abierto con el soporte de Texas Instruments. No obstante, es la última placa de desarrollo de Linux que lanzó Texas Instruments y está despertando un gran interés. BeagleBone Black, lanzado en abril de 2013, se considera un competidor importante para el Raspberry Pi. Combina una plataforma ideal para aprender Linux y electrónica básica al interconectar e interactuar con las aplicaciones del mundo real. El formato BeagleBone, inicialmente lanzado a fines de 2011, no solo se adapta a las capacidades de BeagleBoard-XM con un paquete del tamaño más pequeño de una tarjeta de crédito, sino también ha establecido un espacio estándar de dos conectores de 46 pines y fila doble para una serie de módulos de expansión de tarjetas secundarios denominados "Capes". De manera similar a las "Shields" que se utilizan con Arduino, ofrecen una variedad de placas de conexión para agregar una E/S incluso más avanzada.

CircuitCo BeagleBone Black

Figura 1: BeagleBone Black: diseño de los componentes principales.

El BeagleBone Black incluye un microprocesador Sitara™ AM3359 ARM Cortex™-A8 de TI que funciona a 1 GHz (2000 DMIPS), comparado con un dispositivo de 720 MHz en un Raspberry Pi. Lo más distinguido es que el Black tiene 2 GB de memoria flash integrada además de 512 MB de DDR3 a 400 MHz. Un conector micro HDMI de tipo D y los puertos Ethernet y USB están incluidos y la placa está alimentada por una sola fuente de 5 VCC. La placa también se puede alimentar mediante USB ya que solo consume hasta 250 mA.

Desde la perspectiva del software, el Black está preconfigurado con un host de software y está listo para ejecutarse. Solo conecte la alimentación, el HDMI, el Ethernet y un teclado/mouse USB y la placa iniciará la distribución Angstrom Linux después de que aparezca el escritorio Gnome. Durante el proceso de encendido, el set de 4 ledes de usuario (USR0-3) parpadeará una y otra vez para indicar la actividad. Con uno de los tres navegadores compatibles: Chromium, Firefox y Epiphany, podrá navegar por Internet en segundos. No hay necesidad de cargar una tarjeta SD flash y descargar la distribución antes de que pueda ejecutar la placa por primera vez tal como lo requiere el Raspberry Pi. Si bien para la mayoría de los desarrolladores y entusiastas Angstrom Linux será compatible, el Black también es compatible con Ubuntu o Android gracias a la arquitectura ARM v7 utilizada en el dispositivo basado en Cortex-A8. Otro aspecto de usar Linux en una placa de desarrollo es la conectividad adicional ofrecida con una interfaz Ethernet. Por lo que el uso de FTP, SSH, Telnet y otros servicios de acceso remoto ofrece flexibilidad de conexiones además de la capacidad de conectarse al servidor web de Black.

Diagrama de bloque de CircuitCo BeagleBone Black

Figura 2: Diagrama de bloque de BeagleBone Black

En términos de herramientas de desarrollo, Black también está bien equipado. Un intérprete de Phyton y un compilador C/C++ están preconfigurados junto con una réplica local de Cloud9 IDE preconfigurada para ejecutar Node.js. También se incluye la biblioteca Bonescript, basada en Node.js, que ofrece varias funciones similares a Arduino para interactuar con el hardware. Los lectores familiarizados con la función ‘digitalWrite’ de Arduino se sentirán familiarizados de inmediato con estas funciones y otras similares del Bonescript. Los recursos de la comunidad beagleboard.org también sirven a modo de un depósito útil de proyectos de ejemplo, foros útiles y documentación de hardware/software.

Pinout GPIO de CircuitCo BeagleBone Black

Figura 3: Diagrama de GPIO de BeagleBone Black

Con estas herramientas y la capacidad para usar el GPIO extenso, Black se convierte en la plataforma ideal para usar a la hora de enseñar TI y electrónica básica. BeagleBone Black tiene un total de 92 pines accesibles a través de dos cabezales de dos filas P8 y P9. Más allá del GPIO disponible en Arduino o Raspberry Pi, estos cabezales también forman las conexiones para los capes de expansión. Los pines pueden tener varias funciones posibles desde controlar ES, leer sensores, operar relés y alimentar ledes. Disponible a través de varios proveedores externos, los capes ofrecen todo desde una simple área de placa experimental, una pantalla de LCD hasta un cape integral utilizado para controlar los proyectos de vehículos submarinos. El sitio de la comunidad beagebonecapes.com, ofrecido por CircuitCo, el fabricante de BeagleBone Black, mantiene una lista de capes compatibles que se han probado y son totalmente compatibles. Técnicamente, se pueden apilar hasta 4 capes una encima de la otra siempre y cuando no haya problemas con el uso de GPIO. También se debe tener en cuenta que el GPIO tiene varias maneras de configurarse o multiplexarse. Los sistemas operativos pueden operar el GPIO de distintas maneras. El modo multiplexor predeterminado que utiliza Angstrom Linux es el modo 7. El nombre de la señal Linux para un pin específico no es igual que el número de pin marcado en la placa.

La forma más fácil de experimentar con este GPIO es utilizar Cloud9 IDE. Cloud9 automáticamente se enciende en el momento del inicio y se accede a él utilizando el servidor web de Black. El navegador Epiphany encuentra el IDE automáticamente al encenderse, pero se le puede indicar a cualquier navegador el puerto 3000 de la dirección IP de BeagleBone Black. Si bien es similar al IDE de Arduino, la diferencia reside en que no es necesario cargar el código en la placa; se guarda automáticamente en el sistema del archivo. El servidor web de Black ofrece un set útil de páginas que también le brindan acceso al IDE Cloud9 y algunos ejemplos de códigos simples de Bonescript que se pueden ejecutar de manera interactiva con la placa.

Entorno de desarrollo integrado de Cloud9

Figura 4: Entorno de desarrollo integrado de Cloud9

Al igual que la mayoría de los IDE tradicionales para aplicaciones integradas, Cloud9 tiene áreas de espacio de trabajo para edición de código, validación, depuración y prueba. Escribir códigos es un proceso interactivo con verificación de variables y sintaxis durante el ingreso. El proceso de depuración es más sofisticado que Arduino con el uso completo de puntos de interrupción, variable de control y ejecución de un solo paso. Cloud9 ofrece varios ejemplos simples escritos en node.js JavaScript y se incorpora en la biblioteca Bonescript. El ejemplo de código ‘blinked.js’ (consultar la Figura 5) cambia uno de los ledes del usuario (USR3). Esto se puede hacer extensivo utilizando uno de los pines GPIO al conectar un LED y un resistor pull-up/límite de corriente al pin GPIO deseado y al cambiar la asignación del pin LED al GPIO correspondiente, por ejemplo bone.P8_3. Como un IDE de nivel de entrada, Cloud9 ofrece una manera rápida y fácil de escribir proyectos de código corto y luego ejecutar y depurarlos. Si bien encender o apagar un LED parece una tarea sencilla, es un primer paso importante para ganar confianza y familiarizarse con la placa, especialmente para aquellos desarrolladores de software que prueban por primera vez la interacción con el mundo real.

ejemplo de código ‘blinked.js’

Figura 5: ejemplo de código ‘blinked.js’.

El uso de node.js JavaScript parece ser la manera preferida de programar BeagleBone Black. Sirve en verdad como una primera introducción para aquellos que no están familiarizados con los lenguajes de programación y de nivel superior, o simplemente como una manera de armar un prototipo rápido. No obstante, para aquellos con más experiencia en programación y necesidad de realizar un diseño más complejo, Phyton y C son compatibles. De la misma manera que Bonescript agrega los comandos de ES digitales y analógicos de estilo Arduino a node.js, una biblioteca denominada PyBBIO está disponible para los desarrolladores de Phyton.

El GPIO también se puede abordar directamente desde el sistema operativo de Linux. Esto se puede hacer directamente en la placa o al conectarlo de manera remota en el SSH. Primero, esto requiere que se identifique el nombre correcto de la señal de Linux con un pin GPIO específico y segundo, tener basta experiencia en trabajar en un nivel de línea de comando de Linux. Cada pin GPIO tendrá un directorio denominado con el nombre de señal de Linux dentro del padre /sys/class cuando se utiliza. De esta manera, los conflictos de la señal potencial/GPIO se pueden detectar cuando uno o más capes se utilizan. Conector P8 - pin 16 se identifica como GPIO46 (consulte la figura 6) En la captura de pantalla, podrá ver que el directorio gpio46 no existe por lo que la señal está disponible para su uso. Al alimentar un LED conectado a un pin, al escribir un archivo de valor 1-to-Linux, podrá encenderlo o apagarlo con un 0. Después de usarlo, no olvide "no exportarlo" al directorio para borrar el uso del pin. Estos comandos de carcasa también se pueden incorporar en las instrucciones de Python.

Comandos de ejemplo en SSH para controlar un pin GPIO.

Figura 6: Comandos de ejemplo en SSH para controlar un pin GPIO.

Independientemente de si eres un desarrollador embebido con experiencia que buscas la manera de acelerar tu nuevo proyecto utilizando una plataforma de código abierto y bien documentada o bien un aficionado en electrónica que buscas diversión, el BeagleBone Black ofrece una excelente opción sobre el cual basar tus diseños.
 
DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre el autor

European Editors

Información sobre la editorial

Editores europeos de DigiKey