09 set 2016

Desenvolvendo um sistema móvel controlado por dispositivos Android utilizando microcomputador Cubieboard (Parte 1/2)

Este post foi dividido em duas partes, onde a segunda parte será postado futuramente em breve, vou apresentar um desenvolvimento de um sistema móvel de contenção de incêndio controlado remotamente por dispositivos Android, utilizando um computador de placa única – single board computer, no caso Cubieboard versão 2.

O Raspberry Pi, com seu sucesso, inspirou outras empresas a criarem seus minicomputadores, com este mesmo conceito apareceu a Cubieboar oferencendo mais potência e melhor desempenho sobre o Raspberry Pi. O Chip da Cubieboard inicial foi substituído por outro único chip, que passou de Single core para Dual core sem nenhuma mudança nos demais circuitos. A Cubieboard 2 é um microcomputador que suporta vários sistemas Linux e Android, é constituída por um sistema embutido do tamanho da palma da mão com um poder de processamento notável. Tem como principal motivo oferecer uma plataforma low cost (plataforma de baixo custo). As especificações técnicas são ilustradas abaixo:

especificacoes

A Cubieboard conta com sistema Linux embarcado e é responsável por armazenar o servidor Web e componentes de controle de alto nível, de modo a receberem comandos do Android e controlar remotamente o robô via Wifi com auxílio de outros componentes eletrônicos, que são:

  • MSP430: Utiliza com linguagem C/C++ e Assembly, tem como responsabilidade em controlar os motores de locomoção das esteiras do robô com auxílio da placa driver Ponte H.
  • Driver Ponte H: Fornece a corrente necessária e permite variar a potência para o funcionamento dos motores DC. Foi usada para aguentar 2 motores DC trabalhando em conjunto,  assim controlando o sentido de direção do chassis.
  • Adaptador Wifi: Foi escolhido pois permite que o usuário se conecte a uma longa distância, comparado ao bluetooth e infravermelho, onde permite a comunicação ponto-a-ponto do aparelho Android à Cubieboard.

Entres outros componentes como, WebCam, motor de bomba d’água, cabos seriais para a ligação do conjuntos de peças, hub USB (pois a Cubieboard oference poucas portas USB), outra ponte h para a ligação da bomba d’água e um conector para ligar a Cubie via USB à bateria de 12V. Abaixo tentei ilustrar como os componentes estão se comunicando.

ligacao

Logo, depois de configurar a Cubieboard para receber o sistema operacional Cubian, foi realizado várias instalações de pacotes que permitem a comunicação de forma serial com a MSP430, pacotes para stream de vídeo, pacotes para operação sem fio utilizando um adaptador Wifi e demais importações de bibliotecas. Essa forma é feita somente dentro da interface do sistema, que foi utilizado o programa chamado Putty Configuration, que realiza a comunicação via Serial (USB) ou via SSH.

A programação para o controle dos motores foi gravada na MSP430 utilizando o software Energia, também importando bibliotecas que realizam a comunicação serial com a cubie. A imagem abaixo realiza a comunicação dos pinos da MSP, declarando como variáveis as saídas que foram ligadas na placa driver H.

pinosMSP

Todos os comandos foram feitos sobre switch case por determinadas teclas. A rotina loop( ), faz com que os demais comandos sejam executados, conforme são programados para determinada tarefa. Na imagem abaixo a palavra HIGH define o giro para frente do motor. Para inverter o giro do motor usa-se LOW. Portanto, a combinação de HIGH e LOW são implementados em suas respectivas funções, como por exemplo se a MSP receber a letra “w” chamará a função controleFrente( ).

3

Já no caso da bomba d’água não foi preciso utilizar um microcontrolador, ela foi ligada diretamente na ponte H à Cubieboard, e seus comandos são executados através de arquivos executáveis do tipo ShellScript que é uma sequência de comandos do próprio Linux. Conforme na imagem abaixo, são mapeados os pinos que foram plugados a cubie.

shellscript

Para executar este arquivo é simplesmente chamar o nome que foi dado ao salvar com a extensão + a letra esperada, ./controle.sh n por exemplo.

A maior parte do tempo do desenvolvimento total do projeto foi na estrutura do chassis, na tentativa de fazer compacto e ventilado o melhor possível. Visando se preocupar com os componentes internos, como o protótipo foi desenvolvido para áreas de poeira, cinzas e etc, foram colocados em uma caixa de acrílico com pequenos coolers para ventilação. Abaixo o robô está finalizado sem interface visual para controle e com dobradiças para abertura na caixa de acrílico para permitir a ligação da fiação ou alterações internas.

Sistema móvel

Nesta primeira parte, resolvi mostrar o básico de pequenos passos concluídos, permitindo o controle e ações do robô apenas via SSH, utilizando comandos diretamente no terminal da cubie com um notebook de auxílio conectado no Wifi plugado à ela. A interface visual para controle utilizando o Android e Stream de vídeo mostrarei na Parte 2 deste post, e claro com vídeos :).

Sistema móvel utilizados Single Board Computer

Espero tenham gostado, pode-se pensar em inúmeras utilidades usando um microcomputador! Qualquer sugestões ou dúvidas, github ou diego.barbosa@redspark.io.

Leave a Comment