Introduzindo a Beaglebone

Em 26/01/2012, em Beagleboard, Produtos, por Sergio Prado

Sou fã con­fesso da Bea­gle­board. Na minha opinião, é hoje a mel­hor plataforma para se apren­der Linux embar­cado e tra­bal­har com soft­ware livre. Muitos pro­je­tos, boa doc­u­men­tação e custo acessível.

Já escrevi aqui alguns arti­gos sobre esta plataforma, e já tra­bal­hei tam­bém em alguns pro­je­tos com­er­ci­ais basea­dos nela. E quando fiquei sabendo do lança­mento da Bea­gle­bone, não pen­sei duas vezes em com­prar. Um mês e meio depois (sim, ela ficou um bom tempo presa na alfân­dega!), cá estou eu e o Arthur com nosso novo brin­qued­inho!

beaglebone arthur Introduzindo a Beaglebone

A Bea­gle­bone, assim como a Bea­gle­board, tam­bém é um pro­jeto de hard­ware aberto, porém com um design um pouco mais sim­ples, e con­se­quente­mente mais barato. É uma plataforma de pro­toti­pação, e nesse sen­tido tem obje­tivos bem pare­ci­dos com o Arduino, já que usa o con­ceito de shields (no caso da Bea­gle­bone ver­e­mos que estas pla­cas de expan­são chamam-se capes). Mas ela não veio para sub­sti­tuir ou com­pe­tir com o Arduino, muito menos com a Bea­gle­board ou com a Rasp­berry Pi — falare­mos sobre isso mais adi­ante. Por hora, que tal dar­mos olhada no hard­ware?

HARDWARE

A Bea­gle­bone é baseada no proces­sador AM3359, um ARM Cortex-A8 da Texas Instru­ments que roda em até 720MHz, e pos­sui 32K de cache L1, 256K de cache L2, 176K de ROM e 64K de RAM interna. Além disso, pos­sui acel­er­ador grá­fico 3D, con­tro­lador LCD de 24 bits e con­tro­lador para a inter­face touch­screen.

beaglebone cpu Introduzindo a Beaglebone

A placa vem com 256MB de SDRAM, e assim como a Beagleboard-xM, não pos­sui memória flash. Você pre­cisa usar o cartão SD como unidade de armazena­mento. Pode ser ali­men­tada tanto por uma fonte externa quanto pela porta USB device. Esta mesma porta USB serve tam­bém de conexão ser­ial (con­sole), graças ao adap­ta­dor USB->Serial/JTAG inclu­ido no design do hard­ware. Pos­sui uma E2PROM de 32KB lig­ada ao bar­ra­mento I2C, além das inter­faces USB host, Eth­er­net, cartão SD/MMC e 4 leds que podem ser con­tro­la­dos pelo usuário.

beaglebone conn Introduzindo a Beaglebone

O restante das inter­faces de I/O estão disponíveis em 2 conec­tores de expan­são de 46 pinos que podem fornecer difer­entes conexões e bar­ra­men­tos como SPI, I2C, GPIO, LCD, HDMI, VGA, MMC, RS232, CAN, A/D, car­regador de bate­ria, etc!

São nesses conec­tores que você pode plu­gar as pla­cas de expan­são, chamadas de capes. Cada bea­gle­bone aceita até 4 capes, e cada cape deve ter uma E2PROM endereçável lig­ada ao bar­ra­mento I2C, que vai aju­dar o sis­tema opera­cional a identificá-la e con­fig­u­rar os I/Os de acordo.

beaglebone cape dvi Introduzindo a BeagleboneCape com saí­das de áudio e vídeo

No momento em que escrevo este artigo, o preço da Bea­gle­bone varia de $79 a $89 (FOB), depen­dendo do dis­tribuidor e se você quer adquirir ape­nas a placa ou o kit com­pleto. Con­ver­tendo para nossa moeda, e incluindo frete e impos­tos, deve sair em torno de R$350,00. A lista ofi­cial de dis­tribuidores encontra-se em http://beagleboard.org/buy.

O kit com­pleto vem com a placa, um cabo USB e um cartão SD de 4G com a doc­u­men­tação e uma imagem do Angstrom pré-instalada.

E por falar em imagem, que tal colo­car esta plaquinha pra fun­cionar?

SOFTWARE

Ali­mente a Bea­gle­bone dire­ta­mente com o cabo USB, ou ligue uma fonte externa de 5V. O led de Power irá acen­der, e os leds USER0 e USER1 começarão a pis­car. A Bea­gle­bone será iden­ti­fi­cada na sua máquina de desen­volvi­mento como um dis­pos­i­tivo de armazena­mento (como se fosse um pen­drive). Você verá um dis­pos­i­tivo chamado BEAGLE_BONE com um monte de arquivos, incluindo as ima­gens do boot­loader e do ker­nel, doc­u­men­tação e dri­vers para sis­temas opera­cionais menos evolu­i­dos :)

O primeiro passo é abrir o arquivo README.htm no seu nave­g­ador e dar uma lida. Este arquivo con­tém algu­mas ori­en­tações gerais sobre o fun­ciona­mento da Bea­gle­bone.

Neste momento, a dis­tribuição Angstrom que vem com a placa já esta rodando. E você pode acessá-la de algu­mas for­mas.

ACESSANDO VIA CONSOLE

Para aces­sar via con­sole no Linux, você vai pre­cisar inserir o mod­ulo ftdi_sio, con­forme abaixo:

$ sudo modprobe ftdi_sio vendor=0x0403 product=0xa6d0

Serão cri­a­dos dois dis­pos­i­tivos tty (no meu caso foram cri­a­dos o ttyUSB0 e o ttyUSB1). O segundo (ttyUSB1) é a con­sole. Con­fig­ure sua apli­cação de ter­mi­nal favorita com 115200 8N1 e teste o acesso à console:

U-Boot SPL 2011.09-00000-gf63b270-dirty (Nov 14 2011 - 10:37:14)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
 
U-Boot 2011.09-00000-gf63b270-dirty (Nov 14 2011 - 10:37:14)
 
...
 
.---O---.                                           
|       |                  .-.           o o        
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'
 
The Angstrom Distribution beaglebone ttyO0
 
Angstrom v2011.10-core - Kernel 3.1.0+
 
beaglebone login:

O usuário é root e a senha vazia.

Se você tiver prob­le­mas, ou estiver usando outro sis­tema opera­cional, o arquivo README.htm men­cionado mais acima pos­sui algu­mas instruções adi­cionais que podem ajudá-lo.

CONECTANDO VIA REDE

A Bea­gle­bone tem um cliente DHCP rodando, então quando você ligá-la na sua rede (supondo-se que sua rede tenha um servi­dor DHCP), ela irá pegar um IP auto­mati­ca­mente.

Você pode con­sul­tar o IP atribuído à Bea­gle­bone acessando-a via con­sole, ver­i­f­i­cando o arquivo info.txt ou lis­tando os logs do seu servi­dor DHCP.

Com a conexão de rede fun­cio­nando, você con­segue aces­sar a Bea­gle­bone por SSH (usuário root e sem senha):

$ ssh root@192.168.1.107
The authenticity of host '192.168.1.107 (192.168.1.107)' can't be established.
RSA key fingerprint is d6:67:cf:08:d0:87:12:d9:12:c9:37:d9:81:bd:aa:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.107' (RSA) to the list of known hosts.
root@192.168.1.107's password:
root@beaglebone:~#

A Bea­gle­bone tem um servi­dor rodando na porta 80 que disponi­bi­liza uma apre­sen­tação do pro­jeto. Supondo que o IP da Bea­gle­bone seja “192.168.0.7″, você con­segue aces­sar este servi­dor sim­ples­mente dig­i­tando no seu nave­g­ador “http:/192.168.0.7/”:

beaglebone web pres Introduzindo a Beaglebone
A Bea­gle­bone tem tam­bém um outro servi­dor na porta 443 provendo acesso à con­sole do equipa­mento via SSH de den­tro do seu nave­g­ador! Supondo nova­mente que o IP da Bea­gle­bone seja “192.168.0.7″, você con­segue aces­sar este servi­dor dig­i­tando no seu nave­g­ador “https:/192.168.0.7/”. Obs: a Bea­gle­bone usa o GateOne, um ter­mi­nal e cliente SSH desen­volvido em HTML5. Por­tanto, você pre­cisa de um nave­g­ador com suporte à HTML5.

beaglebone gateone Introduzindo a Beaglebone

Mas o mais legal mesmo é a IDE embar­cada no dis­pos­i­tivo e que pode ser aces­sada pelo nave­g­ador na porta 3000. Supondo mais uma vez que o IP da Bea­gle­bone seja “192.168.0.7″, você con­segue aces­sar esta IDE dig­i­tando no seu nave­g­ador “http:/192.168.0.7:3000“

beaglebone cloud9 Introduzindo a Beaglebone
Esta IDE embar­cada na Bea­gle­bone é a Cloud9 IDE, uma inter­face que roda no seu nave­g­ador, e que pos­si­bilita escr­ever, exe­cu­tar e debugar apli­cações escritas em JavaScript e baseadas em um frame­work chamado node.js.

O con­ceito é bem pare­cido com o do pro­jeto mbed que rece­beu um artigo um tempo atrás. Em ambos os pro­je­tos, a IDE roda no nave­g­ador. No caso do mbed, a IDE roda em um servi­dor na Inter­net. E no caso da Bea­gle­bone, a IDE roda den­tro dela mesmo!

E o que é esse tal de node.js? Segundo a página do pro­jeto, o node.js é uma plataforma que roda em cima do V8 (engine de JavaScript do Google) desen­volvida para se con­struir apli­cações de rede ráp­i­das e escaláveis. Na prática, você escreve pro­gra­mas em JavaScript que são inter­pre­ta­dos e exe­cu­ta­dos den­tro da Bea­gle­bone por uma apli­cação chamada “node”. Ou seja, você tra­balha com uma lin­guagem de script, mais amigável e com bib­liote­cas prontas para inter­facear com o hard­ware e com o sis­tema operacional.

Por exem­plo, esta é uma apli­cação escrita em node.js que faz o led USER3 da Bea­gle­bone piscar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var bb = require('./bonescript');
 
var ledPin = bone.P8_3;
var ledPin2 = bone.USR3;
 
setup = function() {
    pinMode(ledPin, OUTPUT);
    pinMode(ledPin2, OUTPUT);
};
 
loop = function() {
    digitalWrite(ledPin, HIGH);
    digitalWrite(ledPin2, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);
    digitalWrite(ledPin2, LOW);
    delay(1000);
};
 
bb.run();

BEAGLEBONE X ARDUINO

A Bea­gle­bone veio para preencher uma lacuna exis­tente em desen­volvi­mento rápido e pro­toti­pagem para soluções high-end com Linux. Por esse motivo, não tem como deixar de fazer uma com­para­ção com o Arduino. Ambos foram pro­je­ta­dos com o con­ceito de expan­são para facil­i­tar a pro­toti­pagem: o Arduino com seus shields e a Bea­gle­bone com seus capes. Ambos tam­bém pos­suem um ambi­ente de desen­volvi­mento que roda em qual­quer SO, lin­guagem mais user-friendly, bib­liote­cas prontas, etc.

Mas não creio que seja uma questão de con­cor­rên­cia. O Arduino con­tin­uará sendo usado para acen­der leds, con­tro­lar motores e fazer seu robô andar. Agora, se você pre­cisar de um sis­tema de recon­hec­i­mento facial den­tro do seu robô, é aí que pode entrar a Bea­gle­bone.

BEAGLEBONE X BEAGLEBOARD-XM

De forma alguma a Bea­gle­bone é uma evolução da Beagleboard-xM. Muito pelo con­trário, o hard­ware da Beagleboard-xM é mel­hor. Eles ape­nas são pro­je­tos com con­ceitos difer­entes. Se você quer mais proces­sa­mento, memória, por­tas USB e conexão de vídeo, vai de Beagleboard-xM. Já se o que você quer é um hard­ware fácil de expandir e de baixo custo, vai de Bea­gle­bone.

BEAGLEBOARD X RASPBERRY PI

Tam­bém não faz sen­tido a com­para­ção. O obje­tivo do pro­jeto Rasp­berry Pi é o de ser um PC de baixo custo. Tá certo que, dev­ido ao seu baixís­simo custo ($25 na ver­são nor­mal e $35 na ver­são com Eth­er­net), muita gente vai querer tirar uma casquinha e até usar em algum pro­jeto. Ou seja, se o que você pre­cisa é de algo próx­imo à um com­puta­dor pes­soal (porta USB, saí­das de áudio e vídeo) e de baixis­simo custo, você pode pen­sar em usar a Rasp­berry Pi. Se você quer algo com mais capaci­dade de proces­sa­mento, com difer­entes inter­faces de I/O e capaci­dade de expan­são, pode pen­sar em usar a Bea­gle­bone.

O negó­cio agora é esperar a evolução do pro­jeto, as pla­cas de expan­são que serão lançadas (ainda não me acos­tumei com o nome “capes”), e se o uso do frame­work node.js em Linux embar­cado vai se pop­u­larizar.

Enquanto isso, diz aí: o que você achou da Bea­gle­bone? Tem intenção de comprá-la para usar em algum pro­jeto?

Um abraço,

Ser­gio Prado

VN:F [1.9.14_1148]
Rat­ing: 8.8/10 (9 votes cast)
Intro­duzindo a Bea­gle­bone, 8.8 out of 10 based on 9 ratings

Sem posts relacionados.

Tags:  
  • Dyego Cantu

    Ótima notí­cia a Bea­gle­bone.
    Pode ser mais viável do que a Bea­gle­board para fazer meu servi­dor web que rece­berá dados de um Arduino.

    abraço!

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
  • Du Roma­riz

    Ótimo post! Parabéns pelo blog!

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
  • Renato

    Olá Sér­gio,

    Bom post, estou inter­es­sado em ter uma, mas como faço para com­prar?
    Como é o processo de com­pra? quanto fica o imposto? qual revende­dor envia para o brasil? 

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
    • http://sergioprado.org/ Ser­gio Prado

      Olá Renato,

      Ou com­prei na AVNET, e paguei em torno de R$350,00 (com frete e impos­tos). Mas a maio­ria dos dis­tribuidores ofi­ci­ais expor­tam para o Brasil. Dá uma olhada:

      http://beagleboard.org/buy

      Um abraço.

      VA:F [1.9.14_1148]
      Rating: 0.0/5 (0 votes cast)
  • http://twitter.com/rafaelgimenes Rafael Gimenes Leite

    Irei fazer o seu curso no próx­imo mês de Março, gostaria de saber qual placa devo começar, tenho exper­iên­cia com Linux Embarcado(i386) (totens, ter­mi­nais touch) e mexo com certo avanço em Arduino, porém não sei de com­pro uma que vamos usar no curso ou parto pra linha Bea­gle.
    Qual você recomen­daria? Obrigado

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
    • http://sergioprado.org/ Ser­gio Prado

      Olá Rafael,

      Que legal que vai par­tic­i­par do treina­mento. A placa que ire­mos uti­lizar é muito boa para ensi­nar, mas o preço é um pouco alto. Sugiro com­prar a Bea­gle mesmo. Com o que irei ensi­nar no treina­mento, você con­segue mexer nela sem problemas.

      Um abraço.

      VA:F [1.9.14_1148]
      Rating: 0.0/5 (0 votes cast)
  • Gus­tavo Henrique

    Muito bom!
    Achei mais inter­es­sante que o arduino.
    Exis­tem listas/grupos a respeito?

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
    • http://sergioprado.org/ Ser­gio Prado

      Olá Gus­tavo,

      Aqui no Brasil, o único grupo que con­heço especí­fico do pro­jeto Bea­gle­board, incluindo a Bea­gle­bone, é o grupo beagleboard-brasil:

      http://groups.google.com/group/beagleboard-brasil

      Um abraço.

      VA:F [1.9.14_1148]
      Rating: 0.0/5 (0 votes cast)
  • Plinio

    Ola pes­soal,

    Tenho uma Bea­gle­bone e achei inter­es­san­tís­sima! Recomendo a todos.

    Plinio
    pliniobs@gmail.com

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
  • William

    Olá Sér­gio, parabéns que abor­dagem obje­tiva com a qual elaborou seu texto. Acred­ito que os pro­fes­sores de dis­ci­plinas de arquite­tura e orga­ni­za­ção de com­puta­dores e cor­re­latas de qual­quer curso, dev­e­riam voltar sua atenção para as grandes pos­si­bil­i­dades de apli­cação de recur­sos dessa natureza como apoio as exten­sas e cos­tume­rias abor­da­gens teóri­cas. William

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
  • http://twitter.com/Anunakin Mar­cus Fazzi

    Opa Sér­gio, com­prei uma e falta é tempo para fazer algo, em espe­cial que­ria usar um dis­play 400x240 de 2,5″ com ela, a bronca é que estes dis­plays não têm a inter­face SPI exposta… ape­nas a para­lela… teria de fazer uma interface…

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
  • Jonas

    Oi Sér­gio, antes de mais nada gostaria de cumprimentá-lo pelo exce­lente texto.  Tenho uma dúvida sobre o Bea­gle­Bone que pre­tendo com­prar logo… você sabe se na micro-SD (na qual o boot é feito) o aplica­tivo pode uti­lizar para escrever/ler arquivos ?

    VA:F [1.9.14_1148]
    Rating: 0.0/5 (0 votes cast)
    • http://sergioprado.org/ Ser­gio Prado

      Olá Jonas,

      Sim,uma apli­cação pode ler/escrever arquivos no cartão SD sem prob­le­mas. Tudo depende da con­fig­u­ração do seu sis­tema Linux.

      Um abraço.

      VA:F [1.9.14_1148]
      Rating: 0.0/5 (0 votes cast)