quinta-feira, 22 de dezembro de 2011

ESC com relés e controle remoto 2.4 GHz em carro infantil

-->

Minha filha mais nova tem um ano e meio. Comprei para ela um carrinho que tinha uns pedais péssimos de pedalar. Decidi remove-los e o carrinho ficou como o dos flintstones. Em seguida coloquei um lastro pra que ela apoiasse os pés e pudesse ser empurrada no carrinho. Depois  resolvi colocar um motor com todos os acessórios necessários pra transformá-lo num carro elétrico. Por ultimo adaptei um controle remoto.


O controle remoto

-->
-->
O controle remoto 2,4 Ghz de três canais para carros. Na verdade eu montei o projeto baseado no controle remoto que eu já tinha em casa. Nada impede que seja usado um controle remoto mais simples tipo aqueles de carrinhos baratos 49Khz fazendo-se é claro as devidas alterações.

O ESC 

O sinal de saída do receptor controla diretamente servomotores para controlar o motor da tração precisaria de um ESC (electronic speed control), controlador eletrônico de velocidade, tipo os usados em modelismo. O ESC recebe o sinal do receptor e o aplica através de uma etapa de potencia ao motor permitindo assim controlar a velocidade de rotação e, no caso dos carros também o sentido.




--> Como não tinha um ESC para motor escovado construí uma espécie de ESC com um microcontrolador picaxe 08M, dois relés, um mosfet e um punhado de outros componentes eletrônicos básicos. O diagrama pode ser visto ao lado.
O funcionamento é simples o picaxe, através da função pulsin lê o sinal do receptor como um valor que varia entre aproximadamente 100 e 200. O valor será zero caso o transmissor esteja desligado ou fora do alcance. Com a alavanca do controle no meio o valor lido pelo picaxe  é de aproximadamente 150 devendo, neste caso, os dois reles serem desativados. Caso o valor seja menor que 145 o picaxe aciona o rele que faz o motor girar num determinado sentido que eu vou arbitrar como anti horário, apenas para facilitar o entendimento. Se o valor for maior que 155 o outro rele é acionado fazendo o motor girar no sentido horário. O sentido de rotação correto pode ser acertado pela alteração do programa, inversão dos terminais do motor ou pela inversão da ação no transmissor.

Estrutura e motor

-->
O motor usado é de vidro elétrico reaproveitado de um antigo robô lutador de sumo. Ele foi aberto e teve seu pino removido. Foi feito um furo na tampa metálica para permitir a passagem do eixo e um corte, com o auxilio de uma serra copo, no lado onde estava o pino de modo a deixar solto o guia do pino.


-->
Uma barra roscada foi adaptada no lugar do eixo traseiro (foto ao lado). Essa barra é presa ao conjunto engrenagem e antigo guia do pino por quatro porcas em contra pressão. O motor foi então preso ao carro com uma abraçadeira em alumínio.


-->
Para controlar a direção do carro foram usados dois servos ligados em paralelo, por um a extensão em 'Y', diretamente ao receptor do controle.


 

O pequeno código pode ser visto abaixo:

symbol frente_Pin = 1  ' pino para o rele frente
symbol re_Pin = 4  ' pino para o rele re
symbol pwm_pin = 2

main: 'laco principal

 'pwmout pwm_pin,255,555

'le  pulso no piuno 4 e armazena na palavra w0
    pulsin 3,1,w1
     
    
    'debug w1 'usado para testes
 
 ' se o controle estiver desligado e valor em w1 ser zero
 ' o carro deve ficar parado
if w1 = 0  then  

     low frente_Pin
     low re_Pin
   
 'se o valor lido for menor que 140 vai para frente
 else if w1 < 145 then
 
 'ajusta o valor de w1 para a escala do pwm

    w2 = 145-w1
    w2= w2 * 45/2
    
     pwmout pwm_pin,255,w2 ' aplica o pwm ao motor
     high frente_Pin 
     low re_Pin
     
 'se o valor lido for maior que 170 vai para traz      
 else if w1 > 155 then
 
 'ajusta o valor de w1 para a escala do pwm

    w2 = w1-155
    w2= w2 * 45/2
     
     pwmout pwm_pin,255,w2 ' aplica o pwm ao motor   
     high re_Pin
     low frente_Pi
     
 'se o valor lido for estiver entre 140 e 170 para o carro 
else

     low re_Pin
     low frente_Pin
 
 endif  

goto main ' retorna para main