Nesta aula sobre a esteira de transporte educacional vamos ver como foi feito o sistema que empurra as caixas para fora da esteira.
Se você ainda não viu o vídeo que mostra a esteira em funcionamento, veja aqui .
Para fazer esta função estamos usamos um servo de modelismo. O servo é este dispositivo que a seta vermelha está apontando na foto da esteira.
Este tipo de motor é muito utilizado em projetos com Arduino mas originalmente era usado em carros, aviões e barcos de modelismo para fazer o acionamento do sistema de direção dos modelos.
Conforme vemos na figura acima este dispositivo possui 3 fios:
- Alimentação positiva, normalmente com fio vermelho;
- Alimentação negativa ou 0 volts, normalmente preto ou marrom;
- Sinal de controle, normalmente com fio branco, amarelo ou laranja.
A tensão de alimentação do servo é 5V. Você pode usar os pinos de tensão 0 volts e 5 volts da placa do Arduino para alimentar o servo, porém deve tomar muito cuidado com o consumo do servo porque se o mesmo exceder a capacidade de corrente da placa Arduino, isso pode queimar a placa.
Eu recomendo sempre usar uma fonte de alimentação externa para alimentar o servo para não causar nenhum problema. Para utilizar a fonte externa você deve fazer a interligação do 0V (ground) entre a placa do Arduino e a fonte externa, conforme o esquema abaixo.
Utilizando uma fonte de alimentação externa como no esquema é possível controlar mais de um servo com uma placa de Arduino. Para isso alimentamos todos os servos com a mesma fonte interligando o positivo e o negativo da fonte com os respectivos fios dos servos e usamos um pino do Arduino para controlar cada servo através do fio de sinal.
Este dispositivo é muito diferente dos servo-motores que aprendemos na aula sobre motores. Seu movimento é limitado a deslocamento de 0 a 180 graus e portanto normalmente não é utilizado como um motor de verdade já que não pode funcionar com movimentos contínuos.
Justamente esta característica de controle de giro é que faz este servo ideal para realizar a junção de expulsão das caixas de nossa esteira.
O que fizemos foi prender uma barra horizontal no eixo do servo definindo sua posição inicial em 90 graus.
Para fazer a expulsão das caixas brancas fazemos o servo girar para a posição 45 graus e voltar para 90 graus. Para fazer a expulsão das caixas preta fazemos o servo se movimentar para a posição 90+45= 135 graus e voltar para 90 graus.
O programa para controle deste tipo de servo é muito simples quando utilizamos a biblioteca Servo.h.
Para utilizar a biblioteca temos que colocar logo no inicio do arquivo do programa a linha de inclusão de bibliotecas:
#include < Servo.h > |
Em seguida temos que definir o nome que utilizaremos para cada servo do programa na área de definição de variáveis globais do programa:
Servo meuServo1;
Servo meuServo2; Servo meuServo3; |
Dentro da rotina setup vamos inicializar cada servo com a instrução attach( ):
Setup
{ meuServo1.attach(9); meuServo2.attach(10); meuServo3.attach(11); } |
É na inicialização com a instrução attach( ) que definimos qual pino do Arduino será utilizado para controlar cada motor. No exemplo acima estamos usando os pinos 9, 10 e 11.
Para controlar a posição do servo vamos usar a instrução write( ), conforme o exemplo:
meuServo1.write( 90 ); |
Podemos escrever qualquer posição entre 0 e 180 graus com esta instrução. Em nosso programa que controla a esteira usamos apenas 1 servo e para fazer a separação das caixas o programa é muito simples.
Primeiro posicionamos o eixo do servo na posição inicial de 90 graus.
Quando é para empurrar uma caixa branca para fora da esteira fazemos um posicionamento para posição 45 graus, esperamos um tempo de 0,5 segundos e voltamos o servo para a posição inicial 90 graus:
meuServo.write(45);
delay(500); meuServo.write(90); |
Quando é para empurrar uma caixa preta para fora da esteira fazemos um posicionamento para posição 135 graus, esperamos um tempo de 0,5 segundos e voltamos o servo para a posição inicial 90 graus.
Na próxima aula vamos mostrar como fazer para que cada caixa identificada no sensor de cor seja expulsa corretamente no final da esteira.