Primeiras impressões da Beaglebone Black

- por Sergio Prado

Categorias: Beaglebone Black, Hardware Tags: , ,

Um tempo atrás, antes da Beaglebone Black ser lançada oficialmente, escrevi um artigo introdutório sobre ela.

Mas não aguentei esperar a Texas começar a vender a Beaglebone Black pela TI eStore, e acabei comprando a minha na LojaMundi.

O serviço do pessoal da LojaMundi é bem legal, minha placa chegou em 3 dias. No momento eles estão vendendo a placa por R$249,00. Para quem estiver interessado, este é o link.

Mas vamos ao que interessa!

Você pode se conectar à Beaglebone Black e utilizá-la de duas formas: como um PC comum e acessando remotamente via USB.

BEAGLEBONE BLACK COMO UM PC

Para usá-la como um PC, você vai precisar de uma fonte de 5V/1A, monitor, cabo micro HDMI, teclado e mouse USB. Como a BBB tem apenas uma porta USB, talvez você precise também de um HUB USB.

A Beaglebone Black já vem com a distribuição Angstrom instalada de fábrica na eMMC. É só ligar e esperar a mágica acontecer!

O Angstrom me pareceu bem estável e otimizado para a Beaglebone Black. Com o tempo de boot em torno de 1 minuto, ele usa o systemd como mecanismo de inicialização e interface gráfica baseada no Gnome 2, incluindo algumas aplicações como o gedit, GIMP e Chromium.

bbb-angstrom

Bug alert! No primeiro teste, o teclado conectado à porta USB não funcionou. Pesquisando nos fóruns descobri que até este momento a porta USB da Beaglebone Black esta sem suporte à hotplug. Ligando o teclado antes de ligar a placa resolveu o problema. Durante o processo de boot, o teclado é identificado normalmente.

Usá-la como um PC não deve ser o caso de uso mais comum da Beaglebone Black. Para trabalhar com ela, tudo o que você precisa é de um cabo USB!

BEAGLEBONE BLACK PELA USB

A porta USB OTG da Beaglebone Black tem três finalidades principais:

  1. Alimentar a placa.
  2. Prover uma interface de dispositivo de armazenamento.
  3. Prover uma conexão de rede (via RNDIS).

Ao plugar o cabo USB, você conseguirá acessar a Beaglebone como um drive no seu PC, possibilitando acessar por exemplo a documentação da placa:

$ tree -L 1 /media/sprado/BEAGLEBONE/
/media/sprado/BEAGLEBONE/
├── App
├── autorun.inf
├── Docs
├── Drivers
├── LICENSE.txt
├── MLO
├── README.md
├── START.htm
├── u-boot.img
└── uEnv.txt

Automaticamente, também será criada uma conexão Ethernet no seu PC, possibilitando acessar a Beaglebone Black pela rede. Sua máquina vai receber o endereço IP 192.168.7.1, e você poderá acessar a Beaglebone Black através do endereço IP 192.168.7.2, usando por exemplo SSH (usuário root e sem senha):

$ ssh root@192.168.7.2
root@192.168.7.2's password: 
root@beaglebone:~# cat /proc/version 
Linux version 3.8.6 (koen@rrMBP) (gcc version 4.7.3 20130205 (prerelease) (Linaro GCC 4.7-2013.02-01) ) #1 SMP Sat Apr 13 09:10:52 CEST 2013

Seguindo o padrão da antiga Beaglebone, ela vem com um servidor web implementado em node.js, servindo algumas páginas web com a documentação do projeto:

bbb-web

Uma IDE de desenvolvimento chamada Cloud9 também esta disponível, rodando direto do navegador, e possibilitando implementar aplicações para a Beaglebone Black em node.js. Esta IDE pode ser acessada na porta 3000:

bbb-cloud9

O Gateone, um emulador de terminal e cliente SSH que também roda direto do navegador web, esta disponível na porta 443:

bbb-gateone

À propósito, o Gateone não estava funcionando na imagem do Angstrom que veio de fábrica instalada na eMMC. Foi necessário atualizar a distribuição para a última versão. Vamos ver como fazer isso?

ATUALIZANDO O ANGSTROM

O processo é simples. Você vai precisar de um cartão micro SD de no mínimo 4G, baixar a imagem do Angstrom, gravar no cartão e iniciar a placa com este cartão.

Baixe a última imagem do Angstrom deste link e grave no cartão SD. No momento em que escrevo este artigo, a última imagem é a 2013.06.20.

$ wget https://s3.amazonaws.com/angstrom/demo/beaglebone/BBB-eMMC-flasher-2013.06.20.img.xz
$ unxz BBB-eMMC-flasher-2013.06.20.img.xz
$ sudo dd if=BBB-eMMC-flasher-2013.06.20.img of=/dev/sdX bs=1M

Não esqueça de trocar no comando acima /dev/sdX pelo nome do arquivo de dispositivo do seu cartão SD.

Coloque o cartão na placa, ligue e espere. Os leds ficarão piscando durante o processo de gravação, que pode levar de 30 a 60 minutos. Quando a gravação terminar, os leds vão parar de piscar e ficarão acesos. Tire o cartão, reinicie a placa e teste.

Obs: Por padrão, a placa sempre inicia pela eMMC. O U-Boot instalado na eMMC irá verificar na inicialização se existe um cartão SD conectado, e então iniciar pelo cartão. Portanto, todo o processo de inicialização pelo cartão deve ser automático. Mas se você tiver dificuldades em fazer a placa iniciar pelo cartão SD para realizar este processo de gravação, ligue a placa com o botão “User Boot” pressionado, até que os 4 leds fiquem acesos. Este botão encontra-se próximo ao conector do cartão SD.

CONCORRENTE DA RASPBERRY PI?

Para começo de conversa, as duas placas tem originalmente propósitos diferentes. A Raspberry Pi foi projetada para ser um computador de baixo custo, enquanto que a Beaglebone Black é uma ferramenta de prototipagem rápida e desenvolvimento de projetos eletrônicos. Mas como você consegue também prototipar com a Raspberry Pi, e usar a Beaglebone Black como um computador, os casos de uso acabam se sobrepondo, principalmente porque os custos das duas placas são bem parecidos.

De qualquer forma, a Beaglebone Black esta muito mais preparada para ser utilizada em projetos eletrônicos, por dois principais motivos: hardware 100% open source e quantidade maior de interfaces de I/O.

Enquanto que a Raspberry Pi fornece apenas um conector de 26 pinos com algumas interfaces de I/O (GPIO, I2C, SPI e UART), a Beaglebone Black oferece dois conectores de expansão de 46 pinos cada, totalizando 92 pinos de I/O, com muitos GPIOs, I2C, SPI, UART, LCD, ADC, MMC, etc!

OUTRAS DISTRIBUIÇÕES

O Angstrom me pareceu bem rápido e estável, e deve ser a escolha padrão se você quiser um SO para desenvolver um projeto com a Beaglebone Black. Outra possível escolha é o Ubuntu. Testei a versão 12.04 com interface LXDE, e sua performance ficou aceitável, comparada ao Angstrom.

Existem ainda outras distribuições disponíveis para ela, incluindo o Android, Gentoo e ArchLinux. Uma lista completa de sistemas operacionais suportados estão disponíveis aqui.

E você, já comprou a Beaglebone Black? Quais são suas impressoẽs?

Um abraço!

Sergio Prado

  • Patola

    Opa… Eu também tenho um Beaglebone Black (além de um Raspberry Pi, um Cubieboard com a baseboard e um PCDuino), e acho que o melhor pra utilizar com ele é uma fonte de 5V/2A, porque na minha experiência, 1A não serviu nem pra ligá-lo direito (a placa ligava mas o microHDMI não funcionava). Eu acho o hardware do Beaglebone fantástico, muito melhor que o do Raspberry Pi, e acho que o objetivo dos dois é parecido sim, embora a parte de vídeo do Beagle seja mais um

    • Obrigado pelos comentários Cláudio!

      Consegui usar a placa sem problemas com uma fonte de 1A (indicada na própria documentação do projeto), mas não cheguei a “forçar a barra” para ver se ela aguentava.

      Bem lembrado, a maioria dos 92 pinos tem suas funcionalidades multiplexadas.

      Um abraço!

    • O PRU é uma interessantíssima arquitetura de processador. Ele foi projetado para fazer coisas que normalmente seriam feitas por uma FPGA dedicada. O interessante é que todas as intruções são executadas em 1 ciclo incluindo até os branches então é possível ter um controle perfeito de quantos ciclos serão utilizados para resolver determinado problema. Real-time de verdade!

      E embora PRUs só possam ser programados em Assembly, semana passada um cara da TI postou o seguinte código no #beagle

      http://pastebin.com/aWKEELQU

      Ou seja, deve vir compilador C por aí. Ruim que se perde o “real-time” neste caso mas facilita a vida. No mais, como os PRUs não tem Stack Pointer, esse compilador C é um software mágico!

  • Eu estou ainda na BB original e vou dizer que tenho um grande problema para achar coisas para fazer com essas placas muito poderosas. Se é pra usar como PC na minha opinião tem que ter SATA. Neste caso sou mais a Cubieboard. Para a minha BB estou montando um sistema com câmera para processamento de imagem em tempo real com OpenCV. Fora isto costumo achar mais divertido usar plaquinhas com Cortex-Mx mesmo.

  • Mateus Henrique Calza

    Opa! Como vai?

    Muito bons os seus artigos, aprecio muito seu trabalho.

    Mas preciso de uma recomendação. Estou com sérias dúvidas sobre adquirir uma Beaglebone Black ou uma Cubieboard, a segunda tem mais memória e suporte a dispositivos SATA, entre outras coisas. Você tem alguma dica pra me dar, afim de influenciar em minha decisão?

    Me divirto brincando eletrônica, mas trabalho com servidores e aplicativos web, então a mistura Node.js e Cloud9 presente na Beaglebone Black me atrai muito, gostaria de estudar o seu funcionamento. Teria como instalar na Cubieboard talvez?

    Muito agradecido.

    • Olá Mateus,

      Ambos o node.js e a Cloud9 são projetos open source, portanto podem ser compilados e instalados na Cubieboard. Se você tem experiencia com compilação e instalação de pacotes open source, acredito que conseguirá colocar para rodar na Cubieboard sem muito trabalho.

      De qualquer forma, você consegue trabalhar com aplicações web nas duas placas. Talvez sua escolha dependa mesmo da sua necessidade de uma interface SATA. Neste caso, a Cubieboard ganha.

      Um abraço!

      • Mateus Henrique Calza

        Certo, muito obrigado! :)

      • Patola

        Acredito que não será só uma questão de compilar e instalar, mas também de mapear os pinos corretos. Inclusive, você sabe se o funcionamento interno dos pinos do cubieboard equivale ao do Beaglebone? Me parece que as idiossincrasias de cada placa para o qual a biblioteca de GPIO seja compilada podem criar uma complexidade grande aí.

        • Ambas as ferramentas (node.js e Cloud9) são portáveis e independentes de hardware. Portanto elas funcionarão apenas compilando para a plataforma alvo.

          O que a Texas fez foi escrever uma biblioteca com funções úteis para a Beaglebone. Eles chamaram esta biblioteca de bonescript. Se você quiser um ambiente parecido, aí sim será necessário portar esta biblioteca.

          Mas você consegue desenvolver em node.js e acessar o hardware sem precisar dessa biblioteca. O kernel abstrai todo o acesso ao hardware. GPIOs são acessados via /sys/class/gpio/. Leds são acessados via /sys/class/leds. E por aí vai.

  • Anderson Chaves

    com relacao aos prcessadores quais sao as pricipais diferencas qual e o mais avancado qual tem o melhor desempenho.

    • A BBB tem uma CPU melhor que a Raspberry (Cortex-A8 x ARM 11). Já a Raspberry tem uma GPU melhor.

  • Fabricio Archanjo

    bleagleboard é legal e tudo, mas eu to usando o Odroid-X2 com Ubuntu. Achei melhor custo beneficio. Processador Quad, 2Gb de ram e ainda suporta eMMC.

    Abraços,

  • Aderbal Nunes

    Tem umas coisas que eu não gostei por exemplo, USB deveria ter 2, as vezes não reconhece o que você plugou na USB, por exemplo estava usando teclado e mouse com 1 dongle, removi para testar na outra Blackbone e quando voltei para a anterior não reconheceu mais, só reiniciando, tenho um hub usb alimentado, tb não reconheceu algumas coisas plugado nele depois de ter dado o boot, isso testei em 3 Black, com 2 dists diferentes.

    • Olá Aderbal,

      Na verdade tem um bug na implementação da USB no kernel oficial, por isso que o hotplug não funciona. Comentei sobre isso no post.

      Um abraço.

  • Ronaldo Verardo

    Boa noite.
    Suas dicas e materias sao simplismente perfeitas, e gostaria de saber quando fara algum treinamento sobre Linux embarcado aqui no Rio Grande do Sul, pois gostaria muito de participar.
    Tenho uma duvia quanto a um software que foi desenvolvido em C# para Windows usando o Microsoft Visual Studio e gostaria de saber que compilador poderia usar (mesmo compiladores pagos ou free) para poder aproveitar ao maximo as rotinas desenvolvidas para C# windows mas rodar na BBB (BeagleBone BlacK) na distribuicao Linux ANGSTROM ?
    Abracos.

  • Guilherme Rezende

    Olá Sergio,

    Você conseguiu acessar o BBB com aquele cabo serial-usb que você comprou para o raspberry pi? não achei diagrama mostrando como conecta-lo no BBB! e eu nao tenho conversor para mini-hdmi ainda =

    Abraços,

  • Valdir

    Bom dia Sérgio!

    Excelente blog, tenho duas BBB, estou começando um projeto de Automação Residencial via Web, já fiz alguns programas em C++ utilizando Eclipse. Tenho em mente utilizar um Web server se comunicando, provavelmente através de Sockts, com um programa em C++ que será responsável pela interface com o Hardware. Denho dúvidas do que usar no lado do web server, como criar páginas gráfica, etc., pode me dar uma ajuda me indicando os caminhos?

    Obrigado.

    • Olá Valdir,

      Para o webserver eu aconselho você pesquisar sobre o lighttpd ou o nginx.

      Sobre como criar as páginas web, esse não é meu forte. O melhor é você consultar alguém especialista em desenvolvimento web.

      Um abraço,

  • Fabrício José Mendes de Jesus

    Olá Sérgio, tudo bem?
    Gostaria de saber se você já usou algum dispositivo SPI na Beaglebone Black.
    Comprei minha placa recentemente e estou precisando ler tags de RFID. Se já teve alguma experiência ou souber de algo para me orientar, desde já agradeço. Boa noite.

  • Gustavo

    Olá Sérgio, estou na dúvida entre comprar uma BBB ou uma cubieboard.
    Minha intenção é usar para uma aplicação industrial (protótipo para comunicação em ethernet/ip). Ja tenho a aplicação rodando no Ubuntu, e gostaria da sua opinião sobre qual comprar. Além disso vou usar um A/D SPI.
    Obrigado

    • Olá Gustavo,

      Comparando as duas, a Cubieboard tem mais I/Os disponíveis, além de uma interface SATA. Por outro lado, a BBB tem melhor documentação e mais projetos e informações na Internet.

      Se o hardware da BBB, for suficiente para você, eu ficaria com a BBB.

      Um abraço.

      • Gustavo

        comunicando a BBB com CLP com protocolo Ethernet/IP, acessando via vnc e tudo ok. Só falta funcionar o A/D em SPI…
        Um abraço.

        • Legal Gustavo!

          • Gustavo

            Olá Sergio, comunicando a BBB com AD7730 e transmitindo pesagem por ethernet/ip e modbus tcp.
            Show essa placa…
            Falta fazer ela subir o sistema mais rápido…ou um sistema mais ‘leve’

  • Vinicius Bezerra Monteiro

    Uma dúvida.. a entrada digital é 0 a 3.3 volts e a entrada analógica de 0 a 1.8 volts???

    • Olá Vinicius,

      Segundo as especificações, é isso mesmo.

  • Renato

    Duas questões sobre a BBB:
    a) Alguém já mediu qual a menor corrente conseguida no modo low power ?
    b) Na opinião de vcs. qual das combinações SO/ambiente de desenvolvimento ela é mais versátil e rápido aprendizado ?

  • Pessoal, onde vocês compraram sua BBB?
    Dei uma olhada aqui no Brasil e por menos de R$200,00 não achei.
    Verifiquei na Mouser, SeedStudio e Sparkfun esta $45 porém R$40,00 de transporte mais os $45, é isso mesmo?

    Abraço.

    • Olá Cleiton,

      Eu também ainda não encontrei um meio de trazer ou comprar a BBB por menos de R$200,00.

  • Vinicius Bezerra Monteiro

    Galera eu quero aplicar essa plaquinha poderosa na industria! Será que a BBB aguentaria trabalhar em ambiente industrial? Existe alguma outra solução similar a BBB para a industria?

  • Alexandre

    Comprei uma BBVIEW CAPE TOUCH 7 INCH e nao consigo colocar para funcionar. Ela somente funciona quando ligo o monitor junto, sozinha nao sobe o display. Estou tentando colocar “BB-View Pre-Compiled TI-SDK Image.zip” na placa e nao está dando certo. Alguem pode dá luz?

    • A imagem foi gravada corretamente? Poderia descrever o procedimento que usou para gravar a imagem no cartão SD?

  • Joe Papst

    Boa Noite Amigo, Estou em um sinuca de bico, Preciso montar um Produto com fabricação media, nao sei se utilizo o BBB ou faço a Placa usando ARM da ATMEL.
    O que incomoda na BBB é que pode sair de linha ou variar muito o preço.

    Qual sua opnião?

    • Estas plataformas abertas são ótimas para prototipação, mas não foram desenvolvimento para o desenvolvimento de um produto final. Isso porque talvez elas nào tenham as especificações técinicas necessárias, e também pela falta de garantia de fornecimento.

      De qualquer forma, já vi empresas trabalhando em produtos comerciais com estas placas, quando a demanda é baixa.

      Na prática, é uma decisão que vai depender de vários fatores, como pacarcetrísticas técnicas do produto, demanda de produção, tempo de desenvolvimento, etc.

      Um abraço,

  • Ramon J. Martins

    oi sérgio, tudo bom.
    sou meio leigo no assunto e tenho uma BBB dessa. o que faz uma plaquinha desta desligar apos 5min d funcionamento?

    grato

    • Olá Ramon!

      Você quer dizer que a sua BBB está desligando após 5 minutos de funcionamento? Que tipo de aplicação está rodando nela?

      • Ramon J. Martins

        é um receptor do FR24. so sei dizer isso, rs

        • Este não é um comportamento comum, mas sem mais informações sobre a placa fica dificil responder sua pergunta.

          Tente testar com uma outra fonte, ou então se conectar à console da BBB e analisar os logs do sistema.

          http://sergioprado.org/acessando-a-console-serial-na-beaglebone-black/

          Abs.

          • Ramon J. Martins

            Oi Sergio, foi testado uma fonte boa e a anomalia persiste. Estive vendo num site, que infelizmente n anotei o endereço antes de fechar, que existe uma programação para ele no quesito programa-lo para desligar. Linhas de comando..
            Vou tentar conectar. Por acaso quer ver os logs dele e me falar onde pode estar errado? att.

          • Olá Ramon,

            Sim, se conseguir os logs me manda para dar uma olhada.

          • Ramon J. Martins

            oi sérgio.. estou aguardando o bbb chegar pra lhe mostrar os logs

          • Ramon J. Martins

            Olá Sergio, estou com o equipamento com “danos” em maos.
            Ele liga e uns 3 min. no maximo, ele desliga. Vc tenta ligar na energia e ele nao responde, ou responde com um led interno piscando sem função alguma.
            Inclusive ja troquei de fonte.
            Sabe me dizer o motivo? Quer conversar por aqui ou e-mail?

            grato

          • Tente descobrir se é hardware ou software. Ligue a placa em uma console serial para analisar os logs do kernel:

            http://sergioprado.org/acessando-a-console-serial-na-beaglebone-black/

          • Ramon J. Martins

            Ele tem saida mini USB e eu tenho esse cabo ligado ao PC agora. Serviria para ler os logs?
            Uso o prutty SSH, conexao serial?

          • Ramon J. Martins

            parece que a cada liga/desliga vai piorando: reconectei a usb do PC a ele e agora esta piscando o led power e conecta e desconecta infinitamente, e o som da USB no pc fica tocando de plugado e desplugado!
            Desconfio ser hardware, como mencionou.

          • O cabo USB não serve. Precisa mesmo ser o cabo serial, conforme explicado no artigo do link que enviei anteriormente.

            Parece mesmo ser o hardware, mas não dá pra confirmar até ter acesso aos logs do bootloader e do kernel.

  • Henr. t

    Olá,

    Eu estou precisando utilizar a minha BBB para sensoriamento remoto via Web, ou seja: Preciso ter uma página na WEB que exibiria (em tempo quase real) o valor recebido no A/D da BBB. Mas esse tipo de programação não entendo muito bem. Voce pode me dar algum direcionamento? Será que a melhor maneira seria eu colocar um Apache nela e hospedar a página nele? E como que eu faria para conseguir acessar essa página fora da rede local?

    Ou será que hospedo essa pagina em um servidor externo em qualquer canto do mundo e faço a BBB comunicar com ele de modo a atualizar a pagina?
    Como eu faria?

    Tenho conhecimento muito básico de redes e web e estou com esse “pepino” urgente.
    Teria como me ajudar? Apenas dar encaminhamentos para eu estudar e implementar.

    Obs: Eu não preciso necessariamente que esses valores sejam visualizados por uma página. Eu preciso é que eles sejam vistos por um outro computador remoto via internet. Ou seja, comunicar a BBB com um pc remoto via WAN. Porém, pensei que a criação de um site (com login para segurança) para ser acessado neste computador “receptor” seria a saída mais fácil. Mas realmente nao tenho certeza… as vezes eu programar um aplicativo nele para conectar-se à internet e conversar com a BBB seria mais fácil.

    Obrigado

  • Ramon o kra

    oi Sergio tudo bom? Uma duvida: eu consigo gravar uma imagem na emmc da BBB com esta ligada?

    • Olá Ramon,

      Sim. Mas para isso você precisa fazer o boot pelo SDCARD externo.

      Um abraço!

Navegue
Creative Commons Este trabalho de Sergio Prado é licenciado pelo
Creative Commons BY-NC-SA 3.0.