Página Pessoal de Osvaldo Sousa

Projecto Aprender

[ Montagem e teste | Programas | Programas]

Montagem e teste

Para mais informações visita a página do Projecto Aprender com Robótica.

 

Começamos por identificar as diversas partes do robot e seus componentes que se dividem em:

Robot AprenderRobot AprenderRobot Aprender

- 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.

Robot Aprender
Robot Aprender
Robot AprenderRobot AprenderRobot Aprender
Placa Central

Placa Central

Componentes utilizados:
1 U1 Micro-Controlador T89C51RD2
1 U2 FPGA EPF10k
1 U3 GAL GAL16v8
1 U4 Buffer genérico SN74HCT244
1 U5 Interface RS232 MAX233
2 U6, U7 Memória E2PROM série 24LC256
1 U12 Regulador de tensão 7805
1 X1 Cristal de 20/40MHz  
1 BR1 Díodo 1N4007

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.

Power

Figura 2 - Ficha de alimentação J12

Face dos compomentes

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.

RD2
XA

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.

Face Solda

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.

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
Placa Potencia
Componentes utilizados:
3   Pontes H TPIC0107b
1   Díodo 1N4007
3   Condensador de 100nF  
1   Condensador electrolitico de 100uF  
       
POTPOT

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.

Motor_esq

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

IV

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

Placa I2C

Componentes utilizados:
1 Regulador de tensão 7805
1 Díodo 1N4007
1 Condensadores de 100nF  
2 Condensador electrolitico de 100uF  
     
 
I2CI2C

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

 

SRF04
 
Componentes utilizados:
1 Sonar SFR04
SRF04 connect
SFR04 SFR04b
1 Sonar SFR08
SRF08
1 Sonar SFR10
  SRF10
SRF10SRF10

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.

SRF04

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.

SRF04

Figura 2 - Padrão de dispersão do sinal ultrasónico do sonar SRF04

 

A figura 3 mostra o esquema do SRF04.

Esquema do Sonar

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

TPA81

Componentes utilizados:
1 Sensor Térmico TPA81
 
TPA81TPA81

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

cmps03

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

aprender

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.

Interligacao das Placas
 
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 .

Franklin
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 ).

Flip

Figura 6

Flip


Figura 7

Flip
Figura 8

Flip

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.

Documentação relacionada
Manual de utilização do Compilador MTLAB v6.xx: QuickStartGuide.pdf

 

 

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.

 

 

Dark Counter
Digits
Counter
Web.pt
Counter
Get Firefox! Viewable With Any Browser Valid HTML 4.01!Valid CSS!
Última actualização em 04.10.2008 | Copyright ©2006 OJRS All Rights Reserved