2ª Noite do Mini PC: Dojo com BeagleBone Black
Para quem curte hardware hacking, o BeagleBone Black é o mais forte concorrente do Raspberry Pi. Não é tão popular, porque é bem mais novo (lançado em abril de 2013), é um pouco mais caro (USD 45 nos EUA) mas tem uma configuração muito melhor, 2 GB de memória flash embutida com GNU/Linux pré-instalado, interface de programação via Web com JavaScript e Node.js, e muito mais pinos GPIO disponíveis.
Nesta 4ª feira no Turing Clube, a partir de 19:30, vamos fazer um Coding Dojo de hardware hacking, na linha do Dojo Arduino, para experimentar coletivamente e interativamente o Beaglebone Black.
Para quem não conhece, um Coding Dojo é uma forma interativa de conhecer uma nova linguagem ou API. Hoje vamos explorar a API de programação dos pinos de E/S genéricos (GPIO) do BeagleBone Black. Faremos algo parecido com o que fizemos no Dojo com pcDuino na Tosconf 2013.
Não tem pré-requisito para participar, é só aparecer no Garoa!
O que rolou
Não rolou um Coding Dojo conforme planejado: ficamos cerca de 2h explorando o ambiente e a API do BeagleBone Black até começar a ter uma idéia de como implementar o código do dojo.
Aprendemos um pouco de BoneScript, a API para programar o BeagleBone em JavaScript.
Com isso conseguimos implementar o código da animação do display de 7 segmentos. O código ficou bem mais complicado que as variantes Arduino (C++) e pcDuino (Python) porque a bonescript obriga a fazer tudo de modo assíncrono com callbacks.
O código está aqui: anima.js
O próximo passo é aprender a fazer o mesmo com Python.
Upgrade do sistema (Angstrom eMMC Flasher)
Para instalar uma versão mais recente do sistema é necessário um cartão microSD com pelo menos 4GB de capacidade. O download da imagem mais recente para a BeagleBoneBlack pode ser feito Angstrom Distribution (BeagleBone Black)
Após o download do arquivo BBB-eMMC-flasher-2013.06.20.img.xz , extraia-o com:
$ unxz BBB-eMMC-flasher-2013.06.20.img.xz
Conecte o seu cartão microSD, e verifique o seu identificador com o comando dmesg. O último dispositivo da lista deve ser ele (nome parecido com sdb, sdc...) Exemplo de output do dmesg:
$ dmesg ... [41601.458902] scsi 15:0:0:0: Direct-Access Flash Disk PQ: 0 ANSI: 2 [41601.459692] sd 15:0:0:0: Attached scsi generic sg4 type 0 [41601.460763] sd 15:0:0:0: [sde] 493568 512-byte logical blocks: (252 MB/241 MiB) [41601.461254] sd 15:0:0:0: [sde] Write Protect is off ...
Transfira a imagem para o cartão (Atenção, esse comando irá sobreescrever todo o conteúdo do cartão. Certifique-se de indicar o device correto!):
$ sudo dd bs=1M if=BBB-eMMC-flasher-2013.06.20.img of=/dev/sdX ; sync (sendo sdX o dispositivo verificado com o dmesg).
- Após isso, com a beaglebone desligada, insira o cartão microSD.
- Pressione o botão "User Boot" [(é o botão mais próximo ao slot do cartão microSD).
- Com o botão pressionado, energize a placa (tanto faz se pelo USB ou com uma fonte de alimentação própria).
- Os quatro LEDs deverão se acender ao mesmo tempo. Quando isso ocorrer, você pode soltar o botão.
O processo de flashing é demorado (pelo menos 30 minutos) e consome muita energia. Não ligue o cabo ethernet ou dispositivos USB.
- Quando o processo inteiro for concluído, os quatro LEDs ficarão acesos ininterruptamente. Quando isso ocorrer, demova a alimentação, o cartão e então energize a placa novamente.