Skip to content

[Doc BBBlue] BoneScript & Roboticscape

Renato Avellar Nobre edited this page Jul 15, 2019 · 2 revisions

Integração BeagleBone Blue com Javascript

Para a competição da TRUFES a linguagem de programação escolhida foi o JavaScript, devido a sua versatilidade e curva de aprendizado. Para suportar funções do BeagleBone, utiliza-se duas bliblotecas. BoneScript e RoboticsCape.

A biblioteca RoboticsCape será usada para controle de motores e seus respectivos encoders, já a BoneScript será utilizada para GPIO e outras abordagens.

Para baixar essa biblioteca é necessário instalar o npm primeiro, e isso pode ser feito digitando:

sudo apt install npm

Com isso instalado, podemos baixar a biblioteca:

sudo npm install --global roboticscape

Funções da biblioteca roboticscape

rc.initialize()

Essa função inicializa as funções de hardware e retorna um inteiro. Esse número pode ser:

  • -2 : O conteúdo presente em PID_FILE não é válido.
  • -1 : Existia um programa rodando e não foi possível fecha-lo normalmente, então foi necessário dar um "kill".
  • 0 : Nenhum programa estava rodando.
  • 1 : Existia um programa rodando e foi possível fecha-lo normalmente.

Essa função é necessária no início do código para utilizar as outras funções aqui presentes.

rc.motor(motor, valor)

É responsável pelo funcionamento dos motores. Recebe como argumento 'motor' e 'valor', porém pode só receber 'valor'. Motor pode receber 1, 2, 3 ou 4, referente ao motor que você está utilizando na função.

Valor pode receber tanto strings quanto números, e eles podem ser:

  • "ENABLE", habilita TODOS os motores. Caso você não especifique qual motor quer rodar, após um enable, todos motores vão girar.
  • "DISABLE", Desabilita TODOS os motores.
  • "FREE_SPIN", Coloca um motor em um estado de aceleração zero permitindo que ele gire livremente.
  • "BREAK", Conecta os pares de terminais do motor juntos, o que faz com que o motor lute contra ele mesmo. Isso o torna resistente à rotação.
  • Um número de 0 a 1 correspondente à potência do motor, sendo 1 = 100% e 0 = 0%.
rc.encoder(ação, valor)

Essa função é a responsável pelos encoders, porém só três deles, aqueles que são categorizados como EQEP que são os encoder 1 a 3. O quarto encoder é categorizado como PRU, e tem sua função específica.

Ação pode receber 2 valores

  • 0, Um é pra leitura e outro pra escrita
  • 1, Um é pra leitura e outro pra escrita

Valor varia sua funcionalidade de acordo com a ação escolhida. Caso a ação seja de escrita, valor será escrito naquela posição do encoder. Esse método é geralmente usado pra zerar o encoder.

Caso a ação seja leitura, valor é o encoder no qual será lido o valor do encoder. No caso da leitura, valor so vai de 1 a 3.

Vale ressaltar que quando só é passado 1 argumento pra função, por padrão esse argumento será o numero do encoder e a ação escolhida é a leitura.

Clone this wiki locally