Controle 1.0: arduino e shield


Arduino + shield:

Arduino Uno R3: http://arduino.cc/en/Main/ArduinoBoardUno
Shield 4Power: http://www.labdegaragem.com.br/wiki/index.php?title=Shield_4Power


Instuções do fabricante indicando como conectar os motores e a alimentação à placa. Crédito da imagem: Lab de Garagem.

Instuções do fabricante indicando como conectar os motores e a alimentação à placa. Crédito da imagem: Lab de Garagem.

Um shield é uma placa auxiliar que serve para acrescentar funcionalidades específicas a uma placa controladora principal. No caso desta pesquisa, usar o shield 4Power para Arduino foi inicialmente uma opção de projeto encontrada para controlar o dispositivo desenvolvido. Uma placa como essa tem custo razoavelmente elevado mas como já havia um exemplar em posse do professor orientador, foi possível fazer experimentos e aprender bastante sobre seu funcionamento específico e adquirir uma experiência inicial valiosa sobre a relação entre programação e controle de hardware.

Em relação aos resultados objetivos, foi de fato possível mover os motores usando o shield. A ideia acabou sendo abandonada porque, como foi esclarecido pelo fabricante (Lab de Garagem), os atuadores poderiam ser controlados mesmo que fossem ligados diretamente na alimentação, já que esses sistemas têm uma placa controladora integrada que dispensam o uso de uma placa auxiliar.
Foi possível compreender que os benefícios do shield – como a capacidade de variar a velocidade através da redução/aumento da tensão e inverter o sentido de giro do motor mudando o sentido da corrente nos terminais – só poderiam ser aproveitados por motores DC mais simples, sem placas controladoras integradas, como é o caso dos atuadores.

IDE do Arduino (baseada em Processing):

Ambiente de desenvolvimento: http://arduino.cc/en/Guide/Environment
Referência da linguagem: http://arduino.cc/en/Reference/HomePage

Para controlar os motores, o shield acompanha uma biblioteca específica (S4power.h) que deve ser incluída no código, para que se tenha acesso aos objetos que permitem que até quatro motores sejam controlados.

Abaixo, um exemplo de código fornecido pelo fabricante que mostra como usar a biblioteca.

#include <S4power.h>
S4Power s4power;
void setup()
{
 s4power.Config();
}
void loop()
{
 for ( int count = -20; count < 20; count++ )
     {
         s4power.M1.speed = count;
         s4power.M2.speed = count;
         s4power.M3.speed = count;
         s4power.M4.speed = count;
         
         s4power.M1.Update();
         s4power.M2.Update();
         s4power.M3.Update();
         s4power.M4.Update();
         
         s4power.light.intensity = count;
         s4power.light.Update();
 
         delay (100);
     }
}

A classe S4Power deve instanciada no ‘construtor’ setup().
O objeto instanciado tem 4 sub-objetos – M1, M2, M3 e M4 – que são abstrações digitais dos quatro pares de terminais +/-, nos quais podem ser conectados motores para serem controlados:
A propriedade speed armazena um valor em porcentagem, que equivale a uma fração da corrente máxima usada pelo motor; ou seja, se o valor salvo for 25, o motor vai funcionar com 1/4 de sua capacidade total.
Valores negativos também são permitidos e fazem o motor girar no sentido oposto, se for possível usar as duas polaridades.
Depois de mudar o valor de uma variável, é necessário chamar a função Update(), para que o valor digital seja convertido em um valor real de corrente.