Projeto PIC Auto Pilot
Uma das principais diretivas deste projeto é que seja facilmente reproduzido por outros, sem usar componentes caros e/ou difíceis de encontrar.
O programa é escrito em C e o compilador C18 (gratuito) .
Para quem não estiver muito familiarizado com este microcontrolador PIC ou o compilador, maiores informações e downloads podem ser feitos diretamente no site do fabricante Microchip : wwww.microhip.com
Projeto PIC Auto Pilot – 1 – PWM Servos
Funcionamento:
– O Timer 0 do PIC foi programado para gerar uma interrupção à cada cada 20mS (=50Hz), então quando ocorre, o PIC gera um pulso variável (e programável) que pode variar de 1 à 2mS que é justamente a largura de pulso para o servo variar seu eixo proporcionalmente em 90o. fig. abaixo (créditos www.servocity.com) :Pulso PWM:
Variação do eixo do Servo:
Importante ressaltar que vários sites (a maioria creio) e outras fontes mencionam que a variação de pulso entre 1 à 2mS faz o servo variar em 180o o que não é bem verdade na prática e, inclusive nas especificações dos servos Hitec que vi.
Uma ótima referência de como servos funcionam (em inglês): http://www.servocity.com/html/how_do_servos_work_.html
O firmware anexo demonstra esta aplicação link: https://dl.dropbox.com/u/40257323/Interrupts%2018F4550%20C18.zip
Projeto PIC Auto Pilot – 2 – Acelerômetro
Para o controle de Roll e Pitch teremos um acelerômetro que “medirá a inclinação” do avião, o modelo escolhido e usado inicialmente foi o ADXL213 mas, pelo seu alto preço e relativa dificuldade em encontrar foi substituído por outro mais moderno, mais barato e muito popular (graças acredito ao seu uso com Arduino): o modelo MMA7361 que, inclusive consegui umas amostras da Freescale nos EUA.
Tem à venda no Mercado Livre até já numa plaquinha breakout board 🙂 que, facilita bastante por ele ser pequeno e difícil de soldar na mão.
Coloquei um vídeo no YouTube rodando o softwate de controle de servo pelo acelerômetro, aqui está praticamente direto, sem uma inteligência/ cálculos de compensação exceto o filtro de Kalman que explicarei em seguida, o link: http://www.youtube.com/watch?v=2Ogg3giHqFo
E o código fonte do programa: https://dl.dropbox.com/u/40257323/Aceler-Servo%2018F4550%20C18%28REV0%29.zip