|
|
|
Utilizar
[ Montagem e teste | Ambiente de Desenvolvimento | Programas]
Montagem e teste
EM PROCESSO DE DOCUMENTAÇÃO E DESENVOLVIMENTO
Começamos por identificar as diversas partes do robot e seus componentes que se dividem em: |
|
- Placa Central
A placa central funciona como o "cerébro" do robô, centralizando o controlo de todos os componentes e alojando....
- Placa de Potência
A placa de potência tem ligações para as várias alimentações das outras placas e a unidade de potência do robot que faz uso de três TPIC0107B da Texas Instruments, em que...
- Placa Interface I2C
A placa interface I2C tem ligações para os vários dispositivos I2C se ligarem à placa central.
- Detecção da Linha
Para fazer a detecção da linha vamos utilizar infravermelhos. Esta nova versão da placa de sensores de infravermelhos conta com um microcontrolador que envia o estado dos sensores à placa central e sensores de infravermelhos...
- Detecção Parede/Obstáculos
Para detectar a parede ou obstáculos vamos utilizar um ou mais sonares. O sonar necessita que lhe seja dado um sinal (Trigger) para...
- Detecção de Chama
Para detectar de chama vamos utilizar um array de sensores térmicos.
- Posicionamento do Robot
Para posicionar o robot é usada uma bússola digital.
- Câmara do Robot
Para utilização em situações de reconhecimento de objectos, é utilizada uma câmara CMUcam.
- Interligação das várias placas do robot
As várias placas do robot, são ligadas à placa central.
|
|
|
Placa Central |
|
|
1 - Introdução
A placa central vai funcionar como o "cérebro" do robot, centralizando o controlo de todos os componentes e alojando o programa que vai tomar as decisões em relação a várias situações.
Podemos assim, passar a mostrar o funcionamento da placa central.
2 - Alimentação
A alimentação de potência da placa é feita através da ficha J12. A tensão de alimentação pode variar entre 9 e 12 V, AC ou DC. A tensão DC vai ter a polaridade, como mostra a figura abaixo, em que a massa é ligada ao pino nº1 e a alimentação da bateria é ligado ao pino nº2 da ficha J12.
Figura 2 - Ficha de alimentação J12
|
Figura 1 – Placa CPU (face dos componentes)
|
3 - Reset
A placa pode suportar dois tipos de CPU: RD2 ou XA. Dado que o nível de reset a aplicar a estes uCs é diferente, foi prevista uma configuração para cada um dos CPUs através de jumpers colocados em J13.
|
|
Configuração para RD2 |
Configuração para XA |
Power Up Reset: sempre que se liga a alimentação da placa, é feito o reset automático do CPU.
Reset manual : pode ser feito o reset manual do CPU curto circuitando os pinos do jumper J11.
|
Figura 3 – Placa CPU (face da solda) |
4 - Programação
Qualquer um dos uControladores que podem ser utilizados nesta placa dispõe de memória de programa com tecnologia Flash (reprogramáveis electricamente). Além disso, estes uCs podem ser programados no próprio circuito através do porto série que se encontra ligado a um PC via porta série RS232. Para que esta programação seja possível, todos estes uCs apresentam um ‘boot loader’ que não é mais do que um conjunto de instruções já existente na memória interna de programa e que ao ser executado permite carregar a memória com o programa do utilizador.
4.1 - Activação do modo de programação
Para entrar em modo de programação são necessários os seguintes passos:
- Colocar o jumper em J7;
- Retirar o jumper de J8;
- Efectuar o reset do uC (jumper J11).
A partir deste momento o uC encontra-se em modo de programação. Através de um protocolo específico, é possível descarregar o programa desenvolvido para a memória de programa do uC. Este protocolo é implementado por um software especial normalmente desenvolvido pelos fabricantes e que pode ser obtido gratuitamente.
Para o caso do uC T89C51RD2, a ATMEL fornece o FLIP (para saber como funciona este programa pode consultar este tutorial sobre o software FLIP) que permite descarregar para a memória de programa um ficheiro hexadecimal (.HEX) obtido a partir da compilação de um programa em Assembly ou C.
Após a descarga do programa na memória do uC, é necessário o seguinte conjunto de operações para a execução do programa:
- Retirar o jumper J7;
- Colocar o jumper em J8 – Só será necessário colocar este jumper se o sinal ALE estiver a ser usado pelo restante hardware do sistema, isto é, se houver expansão do sistema de memória;
- Efectuar o reset do uC (jumper J11).
A partir deste momento o uC deverá executar o programa desenvolvido pelo utilizador.
4.2 - Cabo RS232
Para que seja possível fazer a ligação da placa ao PC, é necessário fazer um cabo série, para o qual se apresenta abaixo a representação esquemática do cabo de comunicação com a porta série RS232.
Figura 4 – Representação esquemática do cabo de comunicação com a porta série RS232.
|
|
Documentação relacionada |
Manual da placa de controlo central: manual_placa_central.pdf
Esquemático placa de controlo central: CPU_esquematico.pdf
Descrição geral da arquitectura do microcontrolador 8051 (Fabricante): 80C51.pdf
Descrição geral da arquitectura do microcontrolador 8051: 8051.pdf |
|
|
Placa de Potência |
|
Componentes utilizados: |
3 |
|
Pontes H |
TPIC0107b |
1 |
|
Díodo |
1N4007 |
3 |
|
Condensador de 100nF |
|
1 |
|
Condensador electrolitico de 100uF |
|
|
|
|
|
|
|
|
A placa de potência tem ligações para as várias alimentações das outras placas e a unidade de potência do robot que faz uso de três TPIC0107B da Texas Instruments (dois para os motores de tracção e um extra para futuras implementações), em que cada um deles controla um motor. É assim possível fazer o controlo do sentido de rotação (DIR) e da velocidade do motor (PWM). O esquema de ligações dos TPIC0107B é o esquema abaixo.
|
Documentação relacionada |
Motor Aprender: Igarashi DC Geared Motor 33G/N2738-XXX-xxxx
Esquemático placa de potência: Potencia_esquematico_v1.0.pdf |
|
|
Detecção da Linha |
|
Componentes utilizados: |
7 |
U1, U2 e U5-U9 |
Led's Receptores de Infravermelhos Sharp |
IS471F |
7 |
D1-D7 |
Led's Emissores de Infravermelhos |
|
7 |
R1-R7 |
Resistências Reguláveis de 1K |
|
1 |
U10 |
Micro-Controlador |
PIC16F84A |
1 |
U3 |
Regulador de tensão |
7805 |
1 |
Y1 |
Cristal de 10Mhz |
|
8 |
C1-C8 |
Condensadores de 100nF |
|
2 |
C9-C10 |
Condensadores de 15pF |
|
1 |
C11 |
Condensador electrolitico de 100uF |
|
|
Para fazer a detecção da linha vamos utilizar infravermelhos. Esta nova versão da placa de sensores de infravermelhos conta com um microcontrolador que envia o estado dos sensores à placa central e sensores de infravermelhos que fazem a modelação do seu sinal, ou seja, ao funcionar com uma determinada frequência estes sensores são muito menos sensíveis a problemas de interferência de outros sinais de infravermelhos provenientes de outras fontes (normalmente iluminação com lâmpadas fluorescentes). |
|
Documentação relacionada |
Esquemático placa de infravermelhos: PlacaIV esquematico v1.1.pdf
Descrição geral da arquitectura do microcontrolador PIC: PIC.pdf |
|
|
Placa Interface I2C |
|
Componentes utilizados: |
1 |
Regulador de tensão |
7805 |
1 |
Díodo |
1N4007 |
1 |
Condensadores de 100nF |
|
2 |
Condensador electrolitico de 100uF |
|
|
|
|
|
|
|
A placa interface I2C tem ligações para os vários dispositivos I2C se ligarem à placa central. |
|
Documentação relacionada |
Esquemático placa de interface I2C: I2C_esquematico_v1.0.pdf |
|
|
Detecção Parede/Obstáculos |
|
Componentes utilizados: |
1 |
Sonar |
SFR04 |
|
|
|
1 |
Sonar |
SFR08 |
|
1 |
Sonar |
SFR10 |
|
|
|
|
1 - Introdução
Para detectar a parede ou obstáculos vamos utilizar um ou mais sonares. O sonar necessita que lhe seja dado um sinal (Trigger) para começar a funcionar, quando o sinal de ultrasons encontra um objecto é reflectido (um dos grandes problemas dos sonares é que se a superfície encontrada pelo sinal ultrasónico tiver um posicionamento tal que o sinal seja reflectido para longe do sonar, o objecto não é detectado) e retorna ao sonar sendo nessa altura disparado um sinal de Eco. Da diferença entre o disparo do sonar (Trigger) e o Eco e sabendo nós que a onda se vai transmitir à velocidade do som e tendo em conta, que a onda percorre a distância que pretendemos medir, duas vezes (uma até ao objecto e outra de retorno até ao sonar); a distância que pretendemos calcular será dada pela fórmula:
Distância = (Tempo X Velocidade do som)/2 |
|
2 - Sonar SRF04
2.1 - Características do sonar SRF04
Tensão |
- 5v |
Corrente |
- 30mA Tip. 50mA Max. |
Frequência |
- 40KHz |
Distância Max. |
- 3 m |
Distância Min. |
- 3 cm |
Sensibilidade |
- Detecta um cabo de vassoura com 3cm de diâmetro, a mais de 2m de distância |
Disparo (Trigger) |
- 10uS Min. nível TTL |
Pulso de eco |
- Sinal TTL positivo, proporcional à distância ao obstáculo |
Dimensões |
- 43mm x 20mm x 17mm |
2.2 - Principio de funcionamento do SRF04
O SRF04 é controlado por um impulso de nível lógico 1, com a duração de 10uS.
Após receber este impulso de disparo, o SRF04 envia um sinal acústico ultrasónico
e coloca a linha de eco no nível lógico 1, ficando de seguida à espera pelo sinal
acústico do eco. Assim que o eco é recebido, o SRF04 coloca a linha de eco
novamente a 0. O microcontrolador pode ser facilmente programado para medir o
tempo que o eco demorou a ser detectado, isto é, o tempo que a linha de eco
esteve a 1, e dessa forma calcular a distância a que se encontra o obstáculo que
provocou o eco. O diagrama temporal da figura 1 ilustra o que se acabou de dizer. |
Figura 1 - Diagrama Temporal do SFR04
Como se pode perceber da figura 2, a dispersão do sinal
acústico não é uniforme para todo o espaço, e apesar do sonar SRF04 trabalhar com um ângulo de dispersão de 90º a sua precisão melhora consideravelmente se for diminuído o ângulo para o qual se pretende que seja efectivada a detecção para um ângulo de 45º de dispersão. Caso se pretenda um ângulo de detecção superior a 70º uma boa politica seria implementar um sistema mecânico que permita que o sonar rode, ou alternativamente, a utilização de vários sonares SRF04 com posicionamentos de forma a permitir uma detecção com uma maior precisão.
Figura 2 - Padrão de dispersão do sinal ultrasónico do sonar SRF04
A figura 3 mostra o esquema do SRF04.
Figura 3 - Esquema do SFR04
|
3 - Sonar SRF08/SRF10
3.1 - Características do sonar SRF08/SRF10
Tensão |
- 5v |
Corrente |
- 30mA Tip. 275mA Max. |
Frequência |
- 40KHz |
Distância Max. |
- 6 m |
Distância Min. |
- 3 cm |
Sensibilidade |
- Detecta um cabo de vassoura com 3cm de diâmetro, a mais de 2m de distância |
Dimensões |
- 43mm x 20mm x 17mm |
|
Documentação relacionada |
Sonar SRF04: srf04_sonar_schematic.pdf srf04_pinout.pdf srf04_timing_diagram.pdf R93-SRF04p.pdf
Sonar SRF08: srf08_ultra_sonic_range_finder.pdf
Sonar SRF10: srt10tech.pdf |
|
|
Detecção de Chama |
|
Componentes utilizados: |
1 |
Sensor Térmico |
TPA81 |
|
|
|
Para detectar de chama vamos utilizar um array de sensores térmicos.
|
|
Documentação relacionada |
Sensor Térmico TPA81: tpa81_thermopile_array.pdf |
|
|
Posicionamento do Robot |
|
Componentes utilizados: |
1 |
Bússola Digital |
CMPS03 |
|
Para posicionar o robot é usada uma bússola digital.
|
|
Documentação relacionada |
Bússola Digital CMPS03 : cmps03_compass_module.pdf |
|
|
Câmara do Robot |
|
Componentes utilizados: |
1 |
Câmara |
CMUcam/CMUcam2 |
|
Para utilização em situações de reconhecimento de objectos, é utilizada uma câmara CMUcam. |
|
Documentação relacionada |
Câmara CMUcam : CMUcam_manual.pdf CMUcam_Illumination.pdf CMUcam_low_power.pdf C3088.pdf ov6620DSLF.pdf camGUI_1_1b.zip CMUcam_video_2002.mpeg
Câmara CMUcam2 : CMUcam2manual.pdf CMUcam2GUI_overview.pdf PanTilt.pdf CMUcam2GUI.zip CMUcam2_Readme.pdf |
|
|
Interligação das várias placas do robot |
As várias placas do robot, são ligadas à placa central. |
|
|
Documentação relacionada |
Interligação das placas do Robot: Montagem v1.5.pdf (Interligação da placa dos motores, nova placa de infravermelhos e sonar à placa central). |
|
|
|
|
Ambiente de Desenvolvimento
Para programar o microcontrolador são necessários dois tipos de programas, o compilador e o programador:
Software - Compiladores 8051 C
- Franklin Software - ProView32 - Windows Download - Demo (programa não é Freeware estando por este motivo sujeito a limitações da versão demo) é um compilador de linguagem C para o microcontrolador que podemos utilizar (T89C51RD2 - arquitectura 8051), este programa permite: converter o programa em liguagem C em linguagem máquina gerando um ficheiro *.hex com o resultado da conversão; e também permite simular.
Nota: Depois de instalar para activar a geração do ficheiro *.hex ir a
Options->Project->L51->Linker e activar a opção Intel Hex como indica a figura 5 .
Figura 5
- Keil Software - uVision2 - Windows Download - Demo (programa não é Freeware estando por este motivo sujeito a limitações da versão demo) é um compilador de linguagem C para o microcontrolador (tal como o Franklin) que podemos utilizar (T89C51RD2 - arquitectura 8051), este programa permite: converter o programa em linguagem C em linguagem máquina gerando um ficheiro *.hex com o resultado da conversão; e também permite simular.
Documentação relacionada |
Manual de utilização do Compilador Keil C51: C51Primer.pdf |
- SDCC (Small Device C Compiler) - Windows Download e Linux Download - Freeware é um compilador de linguagem C para o microcontrolador que podemos utilizar (T89C51RD2 - arquitectura 8051), este programa permite converter o programa em linguagem C em linguagem máquina gerando um ficheiro *.hex com o resultado da conversão.
Nota: Para compilar é necessário os ficheiros de includes para o microcontrolador utilizado o T89C51RD2.
Software - Programador
- Atmel - FLIP (FLexible In-system Programmer) - Windows Download e Linux Download - Freeware é um programa para enviar o ficheiro *.hex para o microcontrolador.
Como mostra a figura 8 , o primeiro passo é escolher o microcontrolador clicando no primeiro ícone e seleccionando a opção T89C51RD2 e clicando em OK. O segundo passo é escolher a porta de comunicação clicando no segundo ícone e configurar a porta de comunicação, como indica a figura 6 , e clicando no botão Connect, se tudo estiver certo o programa segue em frente.O último passo é seleccionar o ficheiro *.hex que foi gerado pelo compilador e que se pretende carregar para o microcontrolador, como indica figura 7 , e carregar no botão Run (como se pode ver na figura 9 ).
Figura 6 |
Figura 7
|
|
Figura 8
|
Figura 9 |
Software - Compilador & Programador PIC
- MPLAB IDE - Download Website Windows Download v6.1 v6.4 v6.6 v7.0 - Freeware é um compilador de linguagem assembler para o microcontrolador que podemos utilizar (PIC16F84A - arquitectura PIC), este programa permite converter o programa em linguagem assembler em linguagem máquina gerando um ficheiro *.hex com o resultado da conversão. Com a necessidade de hardware adicional é possível programar o microcontrolador.
Programas
Para efeitos de exemplo, teste e para afinação da nova placa de infravermelhos pode usar os seguintes programas:
- Programa exemplo para competição de dança - pode fazer o download do programa Robot_danca_ini_v2.0.c, que serve como exemplo de uma possível implementação, para efeito de participação de uma prova de dança. Também pode fazer o download de uma versão para impressão do mesmo em pdf Robot_danca_ini_v2.0.c.pdf.
- Programa exemplo para competição de seguimento de linha - pode fazer o download do programa Robot_linha_ini_v2.0.c , que serve como exemplo de uma possível implementação, para efeito de participação de uma prova de seguimento de linha. Também pode fazer o download de uma versão para impressão do mesmo em pdf Robot_linha_ini_v2.0.c.pdf.
Programa para afinação dos sensores da nova placa de infravermelhos - pode fazer o download do programa Teste_sensores_v2.0.c, que serve como exemplo de uma possível implementação, para efeito de teste e afinação dos sensores da nova placa de infravermelhos. Também pode fazer o download de uma versão para impressão do mesmo em pdf Teste_sensores_v2.0.c.pdf.
|