BeagleBone – Introdução e Primeiros Passos
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:
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:
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:
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
| | |-----.-----.-----.| | .----..-----.-----.
| | | __ | ---'| '--.| .-'| | |
| | | | | |--- || --'| | | ' | | | |
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
-' |
'---'
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.
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:
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.
[…] e de como conectá-la a uma rede é só olhar o meu primeiro post em relação a Beaglebone (BeagleBone – Introdução e Primeiros Passos), como o nome já diz, este post que mencionei explica as primeiras atitudes que cada um deve tomar […]