terça-feira, 7 de dezembro de 2010

Considerações Finais

Final de semestre e todos os alunos aprovados!

Primeiro quero agradecer muito ao Ismael por ter contribuído com o projeto. Te agradeço pelas tardes no laboratório, pela nossa conversa de sempre e por todo teu empenho.

Também deixo o meu obrigado para o Allan que por algum motivo trancou a cadeira, mas deixou os sensores na Protoboard para nós e nunca mais apareceu.

Agradeço ao professor Eduardo por sempre nos ajudar nas vezes em que ficamos perdidos e por este mesmo motivo eu agradeço a todo o pessoal do laboratório da Engenharia Elétrica, já que a gente tava sempre ai incomodando vocês.

Obrigado!

Vídeo

Em 20 segundos e sem áudio, mostramos que o nosso projeto funciona. O circuito é oval, mas o carrinho se garante em loops e outras falhas contanto que a bateria esteja boa e a pista seja branca com linha preta.

Fotos

Segue algumas fotos do nosso Carrinho,ele ta parecendo uma múmia... mas final de semestre é sustentado por gambiarras.

Laterais:


Parte Inferior:




* Notem que mexemos na posição dos sensores, colocamos o sensor esquerdo e o direito para frente, assim o carrinho fará uma curva mais suave.

** Foram usadas duas baterias de 9 Volts, uma para os circuitos e outra para o PIC. A bateria descrita anteriormente no blog era muito pesada e talvez os motores não teriam torque suficiente para carregá-la.

*** Utilizamos muitos cabos de computador, aqueles que liga os LEDs a placa mãe, que são os barramentos macho-fêmea.

**** A estrutura do carrinho já estava feita e os motores estavam colados na base, devemos isso a turma do Semestre 2009/2. O problema é temos que adaptar tudo na carroceria e o projeto acaba sendo limitado ao que já está feito.

O Código em C

Depois de conhecer um pouco sobre o PIC e corrigir alguns problemas com os sensores (sem alterar o hardware), começamos a trabalhar com o código.

Boa parte do código foi criado pelo nosso professor, já que não temos noção de Microcontroladores, então só precisamos pensar em que lógica utilizar para leitura dos sensores.

Por exemplo, como são três sensosores, se o sensor do meio detectar preto (5 Volts) e os demais detectar branco (0 Volts) ambos os motores devem girar para frente e o carrinho irá andar em linha reta.

Tendo isso na cabeça, montamos as oito possibilidades em uma tabela verdade:

Sensor Esquerdo
Sensor Meio
Sensor Direito
Motor Esquerdo
Motor Direito
0
0
0
PARADO
PARADO
0
0
1
INVERTE
NORMAL
0
1
0
NORMAL
NORMAL
0
1
1
PARADO
NORMAL
1
0
0
NORMAL
INVERTE
1
0
1
PARADO
PARADO
1
1
0
NORMAL
PARADO
1
1
1
INVERTE
FRENTE

A tabela foi criada pensando em qual seria a melhor situação para o carrinho agir na pista, levando em conta todas as voltas, loops e falhas.

Está situação foi inserida no código em forma de Switch e dentro dele haviam duas funções:

liga_motor_d(); //liga motor direito
liga_motor_e(); //liga motor esquerdo

Dentro dessas funções é informado o Duty que é mais ou menos o tempo em que o período da onde do PWM estará ativada, então deve-se respeitar os seguintes casos:

liga_motor_d(91); //NORMAL
liga_motor_d(93); //PARADO
liga_motor_d(96); //INVERTE

liga_motor_e(91); //INVERTE
liga_motor_e(93); //PARADO
liga_motor_e(96); //NORMAL

Com isto, é possível montar o código tendo como base a tabela verdade.

Todo o código pode ser visto no link abaixo.