Este blog no sólo es una introducción a la Beaglebone Black, sino que es común al resto de placas de la empresa. Deseamos que les sea útil y de interés.
Introducción a la Beaglebone Black
La BeagleBone Black (BBB) es un microcontrolador muy potente con una importante cantidad de pines disponibles, accesibles y fáciles de usar, en el cabezal. Dispone de 2 columnas x 46 pines disponibles para usar, aunque algunos tienen su particularidad. La Beaglebone Black es una herramienta pequeña pero poderosa. Algunas de las funcionalidades disponibles son:
- 7 pines analógicos
- 65 pines digitales a 3.3V
- 2x I2C
- 2x SPI
- 2x Bus CAN
- 4 temporizadores
- 4 x UART
- 8 x PWM
- Convertidor A/D
Procesador
- AM335x 1GHz ARM® Cortex-A8
- 512MB DDR3 RAM
- memoria flash 4GB 8-bit eMMC
- 3D acelerador de gráficos
- NEON acelerador de punto flotante
- Microcontrolador 2x PRU 32-bit
Connectivity
- USB para alimentación y comunicación
- USB host
- Ethernet
- HDMI
Software aplicable
- Debian
- Android
- Ubuntu
- Cloud9 IDE sobre Node.js w/ BoneScript library
Empezando con la Beaglebone
Los Beagles son pequeños ordenadores ideales para aprender y crear prototipos con electrónica.
Un Beagle no es un Arduino. Y no lo es por varias razones, una de ellas es que un Beagle no retiene el programa cargado en la placa una vez desconectada ésta. Para que el programa se retenga en el disco duro, puesto que se almacena temporalmente en la RAM, hay que seguir una serie de pasos que en futuros post detallaremos.
Luego, observaremos que la documentación disponible es bastante antigua, cuando no obsoleta. Además, la comunidad es pequeña comparada con Arduino o Raspberry Pi.
Los Beagle tienen la ventaja de poder ser programables en varios lenguajes, sin embargo, un Beagle no es programable directamente con el lenguaje de Arduino. Es decir, es complejo correr un sketch de Arduino en una Beagle cosa que limita su extensión masiva en el mercado. La ventaja de la raspberry y beagle es que disponen de sistemas operativos completos y compilas para ese sistema operativo.
Luego, la placa carece de una enumeración de cada pin pintada en la misma hembra. Esto es una incomodidad desde el punto de vista del cableado del hardware.
Finalmente, al mirar la documentación existente en la red, encontraremos las siglas BBB. Esto significa BeagleBone Black.
1. Actualizar la placa con el software más reciente
Esto puede no ser necesario, dependiendo de la antigüedad de la imagen de la que disponga. Sin embargo, al ejecutar este paso, se asegurará un menor trabajo posterior.
Paso A: Descargue la última imagen de software
Descargue la última imagen de Debian de beagleboard.org/latest-images. Las imágenes «IoT» proporcionan mayor espacio libre en disco si no necesita usar una interfaz gráfica de usuario (GUI). Una imagen IoT es una imagen «headless», es decir, no dispone de servidor gráfico sobre el que puede correr un escritorio.
Nota 1: Debido a las necesidades de tamaño, esta descarga puede tardar 30 minutos o más.
La distribución de Debian se proporciona para cada placa. El archivo descargado tendrá una extensión .img.xz. Esta es una imagen comprimida sector por sector de la tarjeta SD.
Luego, una vez descargada la imagen, no hay que abrirla ni descomprimirla. Hay que copiarla a la tarjeta SD tal cual. Es decir, la configuración es totalmente diferente a la de una placa de Raspberry Pi. Por lo que no confundirse y seguir los pasos.
Dicha tarjeta SD debe estar totalmente limpia y formateada. Además, debe tener una capacidad y velocidad elevadas. Eviten comprar la más barata. La tarjeta SD debe tener más de 4GB o no arrancara la placa.
Paso B: Instale la utilidad de programación de la tarjeta SD
Luego, descargue e instale balenaEtcher en su ordenador. Este programa es un utilitario de código abierto que permite crear una unidad de memoria flash o disco duro externo como arranque Live USB. Una unidad flash del tipo USB sería lo que se conoce como lápiz o pincho de memoria, sin embargo, aquí empleamos una tarjeta SD y queda insertada en la ranura que tiene la misma placa. SD viene de las siglas inglesas “Security Digital” o digital segura.
Este tipo de tarjetas tienen memoria no volátil, es decir, conservan los datos incluso con la pérdida del suministro eléctrico. La palabra “flash” fue acuñada por Toshiba, por la capacidad de borrar datos en un “flash” es decir, al instante.
Primero descagaremos el programa gratuitamente desde la web de balenaetcher. Dónde elegiremos el programa según nuestro sistema operativo.
Luego, guardaremos el software en el directorio correspondiente.
Finalmente, seleccionamos la imagen descargada y la flashearemos en la unidad dónde esté insertada la tarjeta SD.
Es importante elegir correctamente la unidad para no flashear el disco duro de nuestro ordenador.
Paso C: Conecte la tarjeta SD a su computadora
Realmente la configuración de la placa se realiza a través de la tarjeta SD y desde un PC. Es decir, no es hasta que se tenga totalmente la tarjeta SD configurada que se estará en disposición de empezar a utilizar la placa. Por lo que se necesita de un adaptador de tarjetas SD (o emplear la ranura existente en algunos PCs y portátiles) para poder preparar la placa.
Paso D: Escribe la imagen en su tarjeta SD
Etcher se emplea para escribir la imagen en la tarjeta SD. Etcher descomprime la imagen y la escribe en la tarjeta SD.
Paso E: Expulsa la tarjeta SD
Una vez realizado lo anterior, expulsamos la tarjeta SD recién programada y la insertamos en la ranura que existe en la placa de BeagleBone con la placa completamente apagada (desconectada). Luego presionamos el botón USER/BOOT (si usa la Black) y conectamos la alimentación de la placa, ya sea mediante el cable USB o el adaptador de 5V (o 12V dependiendo del modelo).
Paso F: Arranque su placa desde la tarjeta SD
Una vez conectada la placa a su alimentación, si disponemos de una BeagleBone o PocketBeagle original, ya estaremos en disposición de empezar a trabajar.
Si tenemos una BeagleBone Black, BeagleBone Blue, BeagleBone AI u otra placa con flash eMMC incorporada y queremos escribir la imagen en el eMMC que incorpora, se deberá seguir las instrucciones en:
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC.
Una vez completado el “flasheo”, los 4 LED USRx se encenderán y apagarán constantemente. Las últimas imágenes Debian apagan automáticamente la placa una vez finalizada. Esto puede tardar hasta 45 minutos. Luego, apague la placa, retire la tarjeta SD y vuelva a aplicar la alimentación para terminar.
Nota 2: eMMC es la abreviatura de “controlador multimedia incorporado” que se refiere a un paquete que integra memoria Flash y un controlador de memoria de la misma placa.
Inicia tu Beagle
Si algún paso falla, se recomienda actualizar a la imagen de software más reciente siguiendo las instrucciones anteriores.
Paso G: Alimentación y arranque
Cuando adquirimos un BeagleBone, observaremos que incorpora un cable USB. La mayoría de los Beagles incluyen dicho cable USB, el cual permite alimentar la placa Beagle a la vez que permite transferir datos al PC. Si se emplea un cable USB propio nos hemos de asegurar que sea de calidad.
Alternativamente, el Beagle se puede alimentar con una fuente externa, es decir, mediante un transformador. Para ello, hay que saber que el voltaje es de 5V, excepto para BeagleBoard-X15 y BeagleBone Blue que usan 12V.
Si está utilizando su Beagle con una tarjeta SD (microSD), asegúrese que esté insertada antes de alimentarla por USB o fuente externa. La mayoría de los Beagles incluyen flash integrado programado y, por lo tanto, no requieren que se inserte una tarjeta SD.
Lo primero que observará es que el LED de alimentación (PWR-ON) se ilumina constantemente. Pasado aproximadamente un minuto, los otros LED deberían empezar a parpadear. Consulte la Guía de inicio rápido (QSG) o el Manual de referencia del sistema (SRM) para localizar estos LED.
- USR0 configurado para parpadear en el arranque en forma de latido.
- USR1 configurado para que se encienda durante el acceso a la tarjeta SD (microSD) en el arranque.
- USR2 configurado para que se encienda durante la actividad de la CPU en el arranque.
- USR3 configurado en el arranque para que se ilumine cuando se accede a la eMMC.
- USR4 / WIFI configurado para el arranque para iluminarse con la asociación de red WiFi (cliente) (BeagleBone Blue y BeagleBone AI solamente)
Paso H: Habilitar una conexión de red
El entorno de desarrollo de estas placas es mediante una aplicación web llamado Cloud9, es decir, una pestaña del Chrome o Firefox llamado Cloud9 donde se programa la placa.
Si está conectado a través de USB, debería aparecer un adaptador de red en su computadora. Su Beagle debe ejecutar un servidor DHCP que le proporcionará a su PC una dirección IP de 192.168.7.1 o 192.168.6.1, esto dependiendo del tipo de adaptador de red USB compatible con el sistema operativo de su PC. Su Beagle se reservará 192.168.7.2 o 192.168.6.2 para su propio uso. Resumiendo, si conectamos la «beaglebone» por USB al ordenador, hemos de escribir las direcciones anteriores que dependen del sistema operativo.
Si su placa Beagle incluye WiFi, el punto de acceso se llamará «BeagleBone-XXXX» donde las «XXXX» varían de una placa a otra. La contraseña del punto de acceso es «BeagleBone». Beagle proporciona al PC una dirección IP que se ejecuta en un servidor DHCP que comprende un rango de entre 192.168.8.x y el reservado 192.168.8.1 para la misma placa.
Un Beagle conectado a una red de área local (LAN) ya sea a través de Ethernet o de WiFi, utilizará mDNS para transmitir datos al PC. Si el PC es compatible con mDNS, debería ver el Beagle como beaglebone.local. Las placas que no son beaglebone utilizarán nombres diferentes. Varias placas BeagleBone en la misma red agregarán un sufijo como beaglebone-2.local.
La siguiente tabla resume las direcciones típicas y debe actualizarse dinámicamente para indicar una conexión activa.
Nota 3: Debe «cargar scripts no seguros» o cargar esta página sin seguridad HTTPS para que la detección automática funcione.
Dirección IP | Tipo de conexión | Sistema(s) operativo(s) | Estado |
192.168.7.2 | USB | Windows | |
192.168.6.2 | USB | Mac OS X, Linux | |
192.168.8.1 | Conexión WiFi | todo | |
beaglebone.local | todo | mDNS habilitado | |
beaglebone-2.local | todo | mDNS habilitado |
Paso I: Nos conectamos al Beagle
Con Chrome o Firefox (Internet Explorer NO funcionará) navegaremos hasta el servidor web que permite programar la placa. Una vez allí, veremos una presentación mostrando las capacidades de nuestra placa.
Haga clic aquí para iniciar: http://192.168.7.2
Solución de problemas
Norma 1: No utilice Internet Explorer.
No se recomiendan las máquinas virtuales cuando se utiliza la conexión USB directa. Se recomienda utilizar sólo conexiones de red a la placa si se utiliza una máquina virtual.
Cuando se usa ‘ssh’ con la imagen proporcionada, el nombre de usuario es ‘debian’ y la contraseña es ‘temppwd’.
Contraseña debian: ‘temppwd’
Con las últimas imágenes, no debería ser necesario instalar controladores adicionales para para acceder a la red con el Beagle a través del USB y mediante el sistema operativo. Para los casos en que se esté ejecutando una imagen más antigua o se disponga de un sistema operativo más antiguo o se requiera de controladores adicionales para el acceso en serie a placas más antiguas, se proporcionan los siguientes enlaces:
Sistema operativo | Controladores USB | Comentarios |
Windows (64 bits) Windows (32 bits) | Instalador de 64 bits Instalador de 32 bits | En caso de duda, pruebe primero el instalador de 64 bits. Nota A: La advertencia de certificación de controladores de Windows puede aparecer dos o tres veces. Haga clic en «Ignorar», «Instalar» o «Ejecutar» Nota B: Para comprobar si está ejecutando Windows de 32 o 64 bits, consulte esto: support.microsoft.com/kb/827218. Nota C: En sistemas sin la última versión de servicio, puede obtener un error (0xc000007b). En ese caso, instale lo siguiente y vuelva a intentarlo: www.microsoft.com/en-us/download/confirmation.aspx?id=13523. Nota D: Es posible que deba reiniciar Windows. Nota E: Estos controladores se han probado para funcionar hasta Windows 10 |
Mac OS X | Serie de red | Instale ambos conjuntos de controladores. |
Linux | mkudevrule.sh | No se requiere la instalación del controlador, pero es posible que algunas reglas udev le resulten útiles. |
Nota 4: La información y los controladores FTDI USB a serie / JTAG adicionales están disponibles en www.ftdichip.com/Drivers/VCP.htm.
Nota 5: La información y los controladores adicionales de USB a Ethernet virtual están disponibles en www.linux-usb.org/gadget/ y joshuawise.com/horndis.
Visite beagleboard.org/support para obtener consejos de depuración adicionales.
Otras imágenes de software actualmente disponibles
Algunas de las siguientes imágenes, implican realizar múltiples pasos para producir una imagen en la tarjeta SD o modificar algunos de los pasos antes descritos. Por lo que asegúrese de leer todas las instrucciones. Elija el punto de partida que desee, descargue o produzca la imagen de la tarjeta SD y siga los pasos anteriores.
En el momento del lanzamiento, no todas estas distribuciones son compatibles con BeagleBone Black, pero pronto deberían hacerlo.
- Versiones de Texas Instruments: Android, Linux, StarterWare (sin sistema operativo)
- Linux: Debian, Angstrom Distribution, Ubuntu, ArchLinux, Gentoo, Sabayon, Buildroot, Erlang, Fedora
- Otros: QNX, FreeBSD
- Página Proyectos
Extender el espacio libre a toda la tarjeta SD
En los casos que deseemos instalar imágenes, donde por ejemplo queramos tener un sistema operativo con escritorio, es necesario extender el espacio libre a toda la tarjeta SD. Para ello, vamos a ejecutar en el terminal de la Beaglebone la siguiente instrucción:
sudo /opt/scripts/tools/grow_partition.sh
Esto sucede porque al flashear una tarjeta SD con el sistemas Debian u otros para nuestra beaglebone, independientemente de la versión de ésta, la partición de trabajo que nos genera es de aproximadamente 4 Gb. Entonces, si realizamos actualizaciones o instalamos cualquier nuevo software, este espacio se reduce drásticamente.
Para que la partición emplee todo el espacio disponible de nuestra SD tendremos que ejecutar la anterior instrucción.
Más información
Deseamos que esta Introducción al mundo del Beaglebone te haya gustado. Si deseas más información sobre cómo programar este tipo de dispositivos consulta en la web oficial de beaglebone. Para cualquier otra consulta, puedes contactar con nosotros. Si necesitas programar una placa de estas características no dudes en escribirnos. También nos puedes ayudar descargando nuestra APP de Servicios Profesionales, freelancers y autónomos.