Fazendo seu primeiro projeto com a Beaglebone Blue – acionamento de motores DC

BeagleBone Blue

Muito provavelmente, a grande maioria de hobistas e profissionais em sistemas embarcados já trabalhou ou ouviu falar das placas da linha Beaglebone. Apesar da vasta linha de SBCs (Single-Board Computers) disponível, há uma SBC dedicada para projetos na área de robótica: a Beaglebone Blue.

Beaglebone blue.
Figura 1 – Beaglebone blue.

Este artigo irá, além de apresentar as principais características desta placa, mostrar como fazer um pequeno projeto com a Beaglebone Blue em C para controlar motores DC, utilizando a Robotics Cape Library.

Material necessário

Para fazer este experimento será necessário:

  • Uma placa Beaglebone Blue operacional (com acesso à Internet, conexão SSH, enfim, já inteiramente configurada);
  • Uma bateria LiPo de 2 células (7,4 V). Carga recomendada: 1100 mAh ou superior;
  • De um a quatro motores DC de 4 até 6 V de tensão de operação. Importante: cada motor não deve consumir mais do que 1,2 A de corrente!

Overview do hardware

Abaixo segue um overview do hardware da Beaglebone Blue.

Recursos de hardware

A BeagleBone Blue possui um conjunto de recursos de hardware dedicado para projetos de robótica, indo desde recursos de sensoriamento até controle de motores DC e servo-motores. Observe a figura 2, onde tais recursos de hardware estão em evidência.

Projeto com a Beaglebone Blue - Recursos de hardware da Beaglebone Blue.
Figura 2 – Recursos de hardware da Beaglebone Blue.

SiP (System in-Package)

A BeagleBone Blue utiliza o SiP Octavo Systems OSD3358, o qual possui as seguintes características:

  • Processador AM335x (ARM Cortex-A8, rodando a 1 GHz), muito similar ao utilizado na Beaglebone Black;
  • Memória eMMC de 4 GB;
  • 512 MB de memória RAM DDR3;
  • Assim como as demais BeagleBones do mercado, possui 2 PRU (Programmable Real-Time Units) de 32 bits rodando a 200 MHz, destinados ao uso em aplicações que necessitem de abordagem Real-Time.

Além disso, se mais memória de armazenamento for necessária em um determinado projeto, é possível utilizar uma imagem para a placa gravada em um SD Card (veja slot do SD Card na figura 3) e, assim, ter-se mais memória disponível. Para baixar as imagens oficiais disponíveis, acesse este link e, para saber como colocá-la no SD Card e fazer a BeagleBone utilizá-la, acesse este outro link.

bbblue slot sdcard
Figura 3 – slot para SD-Card

Periferia de hardware

Um resumo da periferia de hardware da placa pode ser visto abaixo:

  • Suporte à bateria: possui circuitos para utilizar e recarregar uma bateria LiPo de 2 células (7,4 V). A recarga é feita SOMENTE através de uma fonte de alimentação de 12 V (vendida separadamente);
  • Conectividade WI-FI e Bluetooth (BLE e Bluetooth 4.1);
  • Uma USB 2.0 Client para alimentação (da parte lógica) e comunicação;
  • Uma USB 2.0 HOST;
  • Circuitaria para controle de até 8 servo-motores;
  • Circuitaria para controle de até 4 motores DC (consumindo até 1,2 A cada um). Há controle de sentido de rotação e velocidade de giro (com PWM);
  • Um chip IMU de 9 eixos, disponibilizando: acelerômetro, magnetômetro e giroscópio (através do chip MPU9250);
  • Barômetro e termômetro (através do chip BMP280);
  • I/O: 11 LEDs programáveis e 2 botões programáveis.

Além disso, possui conectores destinados a:

  • Conectores para até 4 encoders;
  • Conector para módulo GPS;
  • Conectores para até 4 canais de ADC e GPIOs;
  • Conectores para UART e I²C;
  • Conector para SPI;
  • Conector para rádio DSM 2.

Conexões / conectores

Uma peculiaridade da BeagleBone Blue é o uso de conectores do tipo JST. Embora não sejam tão comuns entre os hobistas, estes conectores têm como característica serem bem firmes na conexão e por possuírem pequenas dimensões físicas. Como desvantagem, este tipo de conector costuma ser mais caro que os mais convencionais.

Em resumo, apesar de mais caros, o uso de conectores JST para projetos que estão sujeitos à vibração constante (robôs, por exemplo) é uma ótima escolha. Para saber a lista completa dos conectores JST presentes na Beaglebone Blue, acesse este link.

Bibliotecas de software

Uma biblioteca de software feita especialmente para permitir o uso de todos os recursos da placa é a Robotics Cape Library.

Esta biblioteca é totalmente open-source e destinada para desenvolver projetos de robótica em C na BeagleBone Blue (também é possível utilização na BleagleBone Black, desde que nesse caso seja utilizado um shield/cape chamado Robotics Cape). Apesar de já ser parte integrante das imagens mais recentes da Beaglebone Blue, esta biblioteca pode ser obtida neste link (repositório oficial).

Primeiro projeto – acionamento de motor DC

Descrição e montagem

Como primeiro projeto, será feito um controle de velocidade e sentido de rotação de motores DC (um, dois, três ou quatro motores simultâneos). Para isso, será utilizada a Robotics Cape Library.

A montagem é simples e rápida:

  • Ligue a bateria no soquete próprio dela na Beaglebone Blue (se necessário, também ligar o adaptador 12 V para fazer a carga da bateria);
  • Para cada motor que desejar controlar: ligar um chicote com conector JST de duas vias (JST-ZH, com 1,5 mm de espaçamento), e conectar o conector JST a um dos soquetes destinado a motores.

Código-fonte

O código-fonte do projeto foi baseado nos exemplos encontrados no repositório da própria biblioteca. O código fonte pode ser visto abaixo. Salve-o com o nome de primeiro_projeto_bbblue.c na sua Beaglebone Blue.

Para compilar, execute o comando abaixo:

E, por fim, para rodar o projeto, execute o comando abaixo.

Para parar o programa, aperte Ctrl + C.

Conclusão

Este artigo apresentou a placa de desenvolvimento Beaglebone Blue, a placa da linha das Beaglebone dedicada à robótica. Dentre suas características, a principal delas é a grande quantidade de periféricos de robótica (sensores, conexões e circuito de controle de motores DC), fazendo com que projetos de robótica desenvolvidos com a Beaglebone Blue não necessitem de muitos circuitos extras / externos.

Além disso, como exemplo de utilização da placa, foi feito um projeto de controle de sentido de rotação e velocidade de até quatro motores DC, utilizando para isso a biblioteca Robotics Cape Library.

Saiba mais

Utilizando motor DC com Arduino UNO e Adafruit Motor Shield v2.3

Controle de servomotores com Arduino e ESP8266

Controle de Motores

Referências

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

[wpseo_breadcrumb]
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services