BeagleBone – Introdução e Primeiros Passos

On 8 de outubro de 2012 by Ricardo Câmara

Venho através deste post falar para vocês um pouco sobre a BeagleBone (www.beaglebone.com), um projeto de hardware aberto e de baixo custo, desenvolvido pela Texas Instruments junto ao grupo BeagleBoard (www.beagleboard.org). Como uma plataforma de prototipagem para computação móvel, uma das principais propostas da Beaglebone é torná-la uma referência similar as placas Arduino (arduino.cc), já que também usa o conceito de shields (placas de expansão, que para a beaglebone recebem o nome de capes), porém com um processador muito mais potente e com muito mais possibilidades em relação a software. A Beaglebone não é interessante somente para projetos pessoais ou pesquisa, mas também para empresas, que podem se aproveitar da fácil reprodução deste equipamento.

No site dos desenvolvedores achamos várias imagens pré-montadas para usarmos na Beaglebone, temos: Android, Ubuntu, Debian, ArchLinux, Gentoo, Sabayon, Buildroot, Erlang, Fedora, entre outros…

HARDWARE

Vamos dar uma olhada no hardware. A Beaglebone possui um processador AM3359, ele é um ARM Cortex-A8 com acelerador gráfico 3D produzido pela Texas Instruments, roda em até 720MHz, possui 32K de Cache L1, 256K de cache L2, 176K de ROM e 64K de RAM interna. Tembém possui controlador LCD de 24 bits e controlador para a interface touchscreen.

A BeagleBone possui 256MB de SDRAM, e não tem memória flash, então é necessário o uso de um cartão SD como unidade de armazenamento. Possui dois conectores de expansão de 46 pinos que podem fornecer diferentes conexões e barramentos como SPI, I2C, GPIO, LCD, HDMI, VGA, MMC, etc. Você pode alimentá-la através de uma fonte externa ou pela porta USB (que fica ao lado da porta ethernet). Através da porta externa o processador dela trabalha até 720MHz e pela a porta USB até 550MHz. A porta USB também no fornece conexão serial com a placa.

Nos conectores de expansão é onde podemos plugar as capes, abaixo temos uma imagem de uma cape com saída de áudio e vídeo.

ACESSANDO ATRAVÉS DO LINUX

Para ligar a Beaglebone, você precisa de um uma fonte 5V ou de um cabo USB/Mini-USB. Como dito anteriormente a porta mini-usb da BeagleBone além de poder alimentá-la também nos dá conexão serial com ela, então qualquer forma você vai precisar conectá-la a sua máquina, no meu caso, usando o Ubuntu 12.4. Primeiro vamos acessá-la pelo console, para isso você deve seguir os esses passos:

Primeira coisa ser feita é inserir o módulo ftdi_sio:

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

Serão criados dois dispositivos tty (no meu caso foi ttyUSB0 e o ttyUSB1). O segundo (ttyUSB1) é a console. Você pode usar a aplicação de terminal de sua escolha, eu utilizei o minicom. Para instalar o minicom dê o comando:

$ sudo apt-get install minicom

O site dos desenvolvedores aconselha a configurar a aplicação de terminal mantendo o controle de fluxo de hardware. Mas eu só consegui acessá-la somente quando configurei o minicom para não ter controle de fluxo de hardware e nem de software, e “Bps/Paridade/Bits: 115200 8N1”. O comando para configurar o minicom é o seguinte:

Se não você tiver permissão para configurar o minicom rode o comando com ‘sudo’. Agora vamos acessar o console da placa com o seguinte comando:

$ sudo minicom -D /dev/`dmesg | grep FTDI | grep "now attached to" | tail -n 1 | awk '{ print $NF }'`

Você pode testar se sua conexão serial está funcionando de forma adequada. Para isso resete a placa, presionando o pequeno botão preto ao lado da porta ethernet. Se aparecer “CCCCCCCC” quer dizer que sua conexão serial está funcionado perfeitamente.

$ .---O---.
|       |                  .-.           o o
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
-'  |
'---'
The Angstrom Distribution beaglebone ttyO0
Angstrom v2012.05 - Kernel 3.2.28
beaglebone login:

O login é root e não tem senha, após logar você estará usando o console da placa.

ACESSANDO VIA REDE

A imagem Angstrom, vem com um cliente DHCP então se estivermos em uma rede com o protocolo DHCP, é conecta-lá pela porta ethernet a rede que ela irá conseguir um IP automático. Então é só dar o comando ifconfig que você acha o IP atribuido a ela. Você também pode pegar o IP listando os logs do seu servidor DHCP.

$ root@beaglebone:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 50:56:63:C8:B1:4A
inet addr:200.131.216.83  Bcast:200.131.216.255  Mask:255.255.255.0
inet6 addr: fe80::5256:63ff:fec8:b14a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2982 errors:0 dropped:177 overruns:0 frame:0
TX packets:377 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:336065 (328.1 KiB)  TX bytes:358189 (349.7 KiB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:640 (640.0 B)  TX bytes:640 (640.0 B)

O “inet addr” é o endereço de IP atribuido a ela. Então é só colocar esse IP no seu navegador e acessa-lá pela rede. A beaglebone tem um servidor na porta 80 que nos mostra informações gerais sobre ela. No meu caso o IP dela é “200.131.216.83” Então é só, digitar “http://200.131.216.83” no navegador.

Outra maneira de acessá-la é pelo terminal via SSH. É só abrir o seu terminal e dar o camando “ssh 38.612.131.002null@toor” lembrando que “200.131.216.83” é o IP dela no meu caso. Ela também tem um outro servidor na porta 443 que nos dá acesso a seu console via ssh pelo navegador. Você consegue acessa digitando “https://200.131.216.83/” no seu navegador. Para acessar o console dela pelo navegador voce irá precisar de um navegador que tenho suporte à HTML5, já que ela usa o GateOne, um terminal e cliente SSH desenvolvido em HTML5.

A parte mais interessante é que a imagem Angstrom possui uma IDE embarcada chamada Cloud9. A Cloud9 está disponível na porta 3000, então usando novamente o IP anterior para acessar a Cloud9 digitamos “http://200.131.216.83:3000/” na barra de endereço.

A Cloud9 IDE possibilita escrever, executar e debugar aplicações escritas em JavaScript e baseadas em um framework chamado node.js.No arquivo de nome blinked.js temos o código que pisca o led USER3. É o código a seguir.

require('bonescript');
 
ledPin = bone.P8_3;
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);
};

ATUALIZANDO A IMAGEM ANGSTROM

Agora para fechar o post vou falar como atualizar a imagem Angstrom dela, é um procedimento bem simples.Baixe a imagem pré-montada através do link a baixo, é o primeiro arquivo da página e terá um tamanho por volta de 400mb.

http://downloads.angstrom-distribution.org/demo/beaglebone/

Coloque o cartão de memória no seu leitor de cartão. Pelo terminal vá até o diretório onde a imagem está e de o seguinte comando:

$ xz -dkc "nome_arquivo_de_imagem".img.xz | pv | sudo dd of=/dev/"nome_do_cartão_de_memoria"

Para ver o nome do cartão de memória é só dar o comando “dmesg” no terminal, normalmente é o último dispositivo que o dmesg mostra informações e geralmente tem o nome de “sdb”. No site dos desenvolvedores, eles dizem que é só dar o comando mencionado acima pra montar a imagem. Mas eu precisei particionar o cartão de memória com 3 partições em formatdo FAT32 usando o Gparted. Lembrando todos procedimentos que executei foi usando o Ubuntu 12.4.

Trackbacks & Pings

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *