No artigo anterior, Introdução ao BeagleBone Black, falamos sobre a instalação da placa no Windows e como acessá-la via browser. Vamos continuar trabalhando com o BeagleBone Black via browser, mas agora com a parte de hardware e o acionamento de portas de entrada e saída por meio da GPIO.
Se você ainda não tem a sua, aproveite e compre sua Beaglebone Black Rev. C na MakerHero, com envio em 24h para todo Brasil.
Circuito básico com o BeagleBone Black
Ao acessar a placa via browser, no endereço http://192.168.7.2, você tem no menu do lado esquerdo, em DEMOS, vários exemplos de circuitos e programas para utilização com o BeagleBone, como exemplos com push button, leds e outros componentes.
Clique em “Blink on-board LED” e você terá uma tela como essa, com o código na área destacada em vermelho, e a console, destacada em azul, onde são apresentadas mensagens de erro e outros textos enviados pelo programa:
Esse programa de exemplo simplesmente pisca o led USR3 presente na placa, e você pode clicar em RUN para ver esse programa em funcionamento. Ao clicar em Restore, o programa original é carregado e eventuais alterações erão perdidas.
Continue nessa tela e vamos agora criar o nosso próprio programa, que é composto por 3 leds que acenderão de maneira alternada a cada 2 segundos. Primeiramente monte o seguinte circuito:
Digite ou copie o seguinte programa na área de código do browser :
//Programa : Controle leds BeagleBone //Autor : MakerHero //Carrega a biblioteca bonescript var b = require('bonescript'); var contador = 0; //Definicao dos pinos dos leds b.pinMode('P8_12', b.OUTPUT); b.pinMode('P8_14', b.OUTPUT); b.pinMode('P8_16', b.OUTPUT); setInterval(check,2000); function check() { contador = contador+1; if (contador === 3) { contador = 0; } if (contador === 0) { console.log("Led Vermelho ligado !"); b.digitalWrite('P8_12', b.HIGH); b.digitalWrite('P8_14', b.LOW); b.digitalWrite('P8_16', b.LOW); } if (contador === 1) { console.log("Led verde ligado !"); b.digitalWrite('P8_12', b.LOW); b.digitalWrite('P8_14', b.HIGH); b.digitalWrite('P8_16', b.LOW); } if (contador === 2) { console.log("Led amarelo ligado !"); b.digitalWrite('P8_12', b.LOW); b.digitalWrite('P8_14', b.LOW); b.digitalWrite('P8_16', b.HIGH); } }
Como a programação é baseada em Javascript, a estrutura é um pouco diferente do que encontramos, por exemplo, no Arduino, onde temos basicamente uma seção SETUP e uma seção LOOP.
No programa acima, o comando SETINTERVAL chama a rotina check a cada 2 segundos. Dentro da rotina, a variável contador é ncrementada e é utilizada para acender cada led de acordo com o valor da variável.
Utilizamos o comando b.pinMode(‘P8_19’, b.INPUT) para definir se a porta correspondente será de entrada (INPUT) ou saída (OUTPUT). P8 e P9 são os conectores laterais, ou Headers. No comando, P8_19 se refere ao pino 19 do header P8. Verifique a disposição dos pinos na figura abaixo :
No Beaglebone também temos as funções de portas digitais, analógicas, PWM, SPI e I2C, entre outras. Para uma lista completa de todas as possíveis configurações dos headers, acesse, no menu lateral, a opção HEADERS.
Ajuste de luminosidade de um led utilizando potenciômetro
Neste exemplo vamos utilizar uma porta analógica do BeagleBone para ler o valor de um potenciômetro e utilizar esse valor para alterar a luminosidade de um led. Monte o circuito abaixo :
No circuito acima o potenciômetro está ligado às portas 32 (VDD_ADC), 34 (GNDA_ADC) e 40 (AIN1). As portas 32 e 34 fornecem a tensão máxima que as portas analógicas do BeagleBone podem suportar, que é de 1,8V. Nunca ultrapasse esse valor ou as portas do BeagleBone podem ser danificadas.
Na área de código do browser, digite ou copie o seguinte programa :
//Programa : Potenciometro - BeagleBone //Autor : MakerHero var b = require('bonescript'); setInterval(teste, 100); function teste() { b.analogRead('P9_40', acionaled); } function acionaled(x) { b.analogWrite('P9_14', x.value, 2000, printJSON); } function printJSON(x) { console.log(JSON.stringify(x)); }
Visite a página oficial do BeagleBone para ter mais informações sobre o BeagleBone Black, tutoriais, e outros produtos da linha.
Gostou? Deixe seu comentário logo abaixo.
Existe algum aplicativo ou software que eu possa usar para colocar o código da Beaglebone?