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.

domingo, 28 de novembro de 2010

O PIC

Devo aos leitores um post a respeito do PIC, mas realmente eu vou continuar devendo...

O estranho é que a cadeira sobre Microcontroladores é só depois que terminamos o projeto, portanto vocês vão estar tão perdidos quanto eu a respeito do PIC.

Aqui abaixo têm os links para dois arquivos onde podemos ver o Datasheet do PIC e também a documentação do KIT de Desenvolvimento que será utilizado:



O código que manda o sinal do Duty e gera o PWM foi feito pelo nosso professor Eduardo Luis Rhod, portando só precisamos montar a lógica da leitura dos sensores... falaremos sobre isso depois.

terça-feira, 5 de outubro de 2010

Layout das Placas

Ok. Aqui mostrei todos os circuitos que foram utilizados para a confecção do carrinho, mas não temos a intenção de colocar a Protoboard em cima do veículo...

Para a construção das Placas de Circuito Impresso primeiros devemos nos preocupar com a construção do layout e essa parte queima muitos neurônios... é bem similar aquele famoso jogo das casinhas, onde existem três casas e devemos distribuir água, luz e telefone sem cruzar os fios...


A única vantagem é que podemos, na placa, mover as "casinhas" (os componentes) de lugar e também podemos utilizar pontes, claro que deve ser o menor número possível de pontes.

Então apresento aqui a imagem que contém os circuitos do Comparador de Tensão, dos Sensores e dos dois Drivers (são dois, já que se trata de dois motores).


Todas as trilhas estão bem feitas porque usamos o ExpressPCB para confeccionar o circuito, mas também pode ser desenhado com caneta de retroprojetor direto na placa de cobre.

Como fizemos os circuitos em software, foi necessário imprimir todos os circuitos em papel couché e depois transferimos para as placas com a ajuda de uma prensa.
A velha solução do Percloreto de Ferro (FeCl3) nos ajudou a corroer o cobre e então podemos soldar todos os componentes e por fim testar tudo nas placas.

domingo, 26 de setembro de 2010

links úteis

Deixo aqui alguns sites que me ajudaram muito e não só no projeto.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Processo de Hackeameto do Servomotor


Dois links onde é ilustrado o processo de hackeamento do servomotor.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Circuitos com LDR


Alguns exemplos da utilização do LDR.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Comparador de Tensão


Uma série de circuitos onde foram utilizados os comparadores de tensão.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Motores


Artigos sobre a utilização dos Servomotores e seu funcionamento.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Eletrônica Geral


Blog com muito conteúdo sobre eletrônica, exemplos de circuitos, softwares e também dois links com material no 4Shared.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Robótica


No primeiro link, há uma loja virtual para compra de alguns componetes, circuitos prontos e também algumas dicas.
Os outros links são do professor Farlei J. Heinen da Unisinos, onde é exposto alguns artigos sobre robôs e seu blog, onde relata a construção de um robô feito por ele mesmo.

A Bateria

Sem muito suspense, a bateria que será utilizada é a UNIPOWER UP645, produz 6V e 4,5Ah (ampère-hora).


Esta bateria é de tensão constante, composta com liga chumbo-cálcio com separador de manta de microfibras de vidro totalmente selada e pesa em torno de 0,9kg.

Neste link está o datasheet da bateria com mais informações sobre seu funcionamento:

Regulador de Tensão


Independente da bateria utilizada, ou até mesmo da forma como os circuitos serão alimentados, é necessário que de algum jeito seja fornecido 5V para os mesmos. Com base nesse raciocínio, pesquisamos sobre os Reguladores de Tensão.

Descobrimos que os reguladores mais utilizados são os da série LM78XX, são reguladores de tensão lineares, geralmente encapsulados e que possuem uma proteção contra sobretemperatura e curtocircuito. A corrente fornecida na saída dos reguladores é de no máximo 1A, porém dependendo do dissipador de calor pode ser concedida uma corrente maior.

Abaixo segue a tabela com os vários tipos de LM78XX, com sua tensão de saída e faixa de entrada:

Componente
Saída (V)
Faixa Entrada (V)
LM7905
5
7 – 25
LM7806
6
8 – 25
LM7808
8
10.5 – 25
LM7809
9
11.5 – 25
LM7810
10
12.5 – 25
LM7812
12
14.5 – 30
LM7815
15
17.5 – 30
LM7818
18
21 – 33
LM7824
24
27 – 38

Qualquer LM78XX pode ser utilizado com esse circuito bem simples, com a ajuda de dois capacitores para eliminar qualquer tipo de ruído, funcionando como um filtro para que o sinal se torne mais suave.



Driver

Driver era aquele jogo de Playstation que eu adorava...

Mas não é bem isso... O Driver consiste em um circuito bem simples, onde não foram utilizados muitos componentes e foi projetado porque não há como conectar o servomotor diretamente no PIC, pois o mecanismo consome uma corrente elétrica de pico, maior do que o microcontrolador consegue suportar.
 

O PIC utilizado no projeto suporta uma corrente de até 200mA, tendo uma limitação de 25mA para cada pino, caso seja fornecida uma corrente maior do que o PIC possa suportar, irá queimar o Driver sem danificar o microcontrolador.

Se você quiser, poderá testar seu driver e os servomotores utilizando um gerador de sinais e um osciloscópio para simular o sinal enviado pelo PIC.

Os Motores

Beleza! Temos o circuito dos sensores prontos! Tudo funcionando, o LM339 está enviando o nível de tensão necessário conforme precisamos, então é hora de falar sobre os motores.

Devido o material que foi fornecido pelo curso, será utilizado Servomotores no projeto e é sobre eles que vou falar aqui.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Servomotor é um mecanismo eletromecânico composto por uma parte fixa (o estator) e outra móvel (o rotor).
São muito utilizados na robótica, também no controle remoto de aeromodelos, veículos pequenos radio controlados e antenas parabólicas, pois utiliza a tecnologia de ímãs permanentes fazendo com que o mecanismo seja preciso, possuindo bom controle de velocidade, de posição e de torque no eixo apresentando movimentos proporcionais ao comando recebido em vez de girar ou se mover livremente como a maioria dos motores.

 

Em sua carcaça existem três cabos. O vermelho e o preto são respectivamente para a tensão de alimentação (geralmente 5 Volts), já o outro fio é o cabo de controle por onde chegam os sinais que informam o ângulo no qual o servomotor deve se posicionar.

Os servomotores são controlados por envio de um sinal de largura variável, junto são enviados parâmetros para que o motor tenha um mínimo de pulso, um pulso máximo, e uma taxa de repetição. Dadas as limitações de rotação do servo neutro, é definido como sendo a posição onde o servo tem exatamente a mesma quantidade de rotação potencial no sentido horário e anti horário. Geralmente a posição neutra é sempre em torno de 1,5 milissegundos (ms).

 
O ângulo é determinado pela duração de um pulso que é aplicado ao fio de controle. Isso é chamado de modulação de largura de pulso. O servo espera receber um pulso com período de 20 ms e uma frequência de 50Hz. A duração do pulso vai determinar o quão longe o motor gira. Por exemplo, um pulso de 1,5 ms vai fazer o motor girar para a posição 90 graus (posição neutra).


O eixo do motor está conectado mecanicamente a um conjunto de engrenagens que além de dar a força ao mecanismo (aumentando o torque), também gira um potenciômetro que informa ao circuito de controle qual é a posição atual do eixo, colocando o motor na sua posição de acordo com o pulso aplicado.

O circuito de controle de posição aciona o Motor DC para que este dê um número de voltas em um determinado sentido, até que a posição do eixo registrada pelo resistor variável coincida com a posição indicada pelo sinal de controle, portanto, este potenciômetro serve apenas para regular a posição em que o motor irá ficar parado.

Geralmente a faixa de posicionamento do servomotor é de aproximadamente 180°, podendo também ser encontrados modelos com faixas de 90°. Mecanicamente, o motor não é capaz de completar uma volta no seu eixo devido a uma parada mecânica construída sobre a engrenagem de saída principal.


O processo de hackeamento consiste em remover está parada mecânica, possibilitando que o mecanismo gire livremente.


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Partes do Servomotor:

Estator

O estator é bobinado como no motor elétrico convencional, porém, apesar de utilizar alimentação trifásica, não pode ser ligado diretamente à rede, pois utiliza uma bobinagem especialmente confeccionada para proporcionar alta dinâmica ao sistema.


Rotor

O rotor é um eletroímã, cuja polaridade norte-sul muda constantemente para que ele nunca pare. É composto por ímãs permanentes dispostos linearmente e um gerador de sinais (resolver) instalado para fornecer sinais de velocidade e posição.

Resolver

O resolver é um transformador de alta freqüência geralmente de 5KHz a 10KHz, sendo que o transformador primário está no rotor, e dois secundários no estator. Ele funciona como um gerador, onde seu rotor é acoplado ao eixo do servomotor e faz com que a interação do campo eletromagnético atue sobre o bobinamento do estator. As amplitudes e fases das tensões induzidas nos secundários são funções da posição do rotor, os secundários estão defasados 90º entre si, para geração de sinais senoidais, estes serão condicionados e transformados em funções de realimentação do sistema através de circuitos eletrônicos dispostos no servo.

Sensores

Então ta! Temos que construir um carrinho autônomo... Mas por onde começar?

Duvido que você não faça essa pergunta quando está envolvido em um projeto, pois começa a pensar em tudo que vem pela frente e seus neurônios ficam mais nervosos que os elétrons da última camada do átomo...
Realmente é assim, só que temos que alinhar o raciocínio e decidir começar por algum lugar, então sugiro que comecem a pesquisar sobre os sensores que vão ser utilizados.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Para o nosso projeto, pensamos em desenvolver sensores utilizando LDR (Light Dependent Resistor) com encapsulamento metálico, já que a pista em que o carrinho irá trafegar é branca e preta, então podemos utilizar a característica do LDR para obter os dados necessários para que o carrinho se movimente.

O circuito foi montado com um comparador de tensão, utilizamos o LM339 como podem ver no esquema.

Um comparador de tensão nada mais é do que um amplificador operacional de alto ganho ligado de forma a comparar uma tensão de entrada com uma tensão de referência. A saída estará no nível alto ou baixo, conforme a tensão de entrada for maior ou menor que a tensão de referência.

Foram postos dois resistores de 10kΩ para atuarem como divisores de tensão, já que precisávamos de uma tensão para alimentação do LM339, cujo valor seja metade do recebido pela fonte.


No link abaixo, se encontra o Dadasheet do LM339 utilizado no projeto;


Este componente possuí quatro comparadores de tensão, portanto podemos colocar quatro sensores no mesmo CI.

A faixa do LDR escolhido é de 3kΩ na luminosidade e 30kΩ no escuro, mas quando fizemos o primeiro teste do sensor, o LDR atingiu 15kΩ no tracejado preto que compõe a pista. O circuito é totalmente dependente do LDR para que em algum ponto seja fornecido 0v ou 5v e para isto, foram colocados para cada um dos sensores um LED de auto brilho, associados a um resistor de 470Ω.

Quando o LDR se posiciona na linha escura, a tensão que entra no LM339, pelo lado negativo, é de aproximadamente 1,35V. Este valor é menor que o valor obtido pelo divisor de tensão, portanto o resultado na saída do comparador será de aproximadamente 0V. Já quando o LDR se posiciona na parte branca da pista, a tensão de entrada no lado negativo do CI será maior que a tensão obtida pelo divisor de tensão, aproximadamente 3,45V e, portanto o valor na saída do CI será em torno de 5V.

O resistor de pull-up serve para “puxar” a tensão direto da fonte, quando a saída do LM339 estiver fechada.

Os valores obtidos pelos sensores devem ser 0V ou 5V, pois será utilizado um microcontrolador para o funcionamento do carrinho.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Segue as fotos da montagem do circuito na Protoboard:





Início

Pois bem, segue aqui uma introdução sobre o blog que decidir construir.

A cada dois semestres no curso de Engenharia da Computação na Unisinos, temos uma disciplina de Projeto de Aprendizagem, onde o objetivo é colocar em prática todo o conhecimento adquirido até o momento no curso.

No segundo semestre de 2010, me matriculei nesta disciplina que é ministrada pelo professor Eduardo Luis Rhod, onde o projeto tem o subtítulo de Robótica. Este ano, o objetivo da disciplina é construir um carrinho seguidor de linha, similar ao da imagem abaixo: