Este documento descreve o projeto de um robô de busca e salvamento, com três frases:
1) Apresenta os requisitos, conceitos teóricos e arquitetura do sistema robótico projetado para busca e salvamento.
2) Detalha a implementação do projeto incluindo o hardware e software utilizados.
3) Discute as conclusões retiradas e possíveis trabalhos futuros para aprimorar o robô.
1. PROVA DE APTIDÃO TECNOLÓGICA
–
PROJECTO ROBOT DE BUSCA E
SALVAMENTO
Trabalho realizado por: Ricardo Antunes
PAT – Prova de Aptidão Tecnológica
2. SUMÁRIO
Motivação.
Requisitos.
Conceitos Teóricos.
Arquitectura do sistema.
Implementação.
Conclusões.
Trabalho Futuro.
3. INTRODUÇÃO
Pesquisa de robots já existentes no mercado.
Compreensão de conceitos teóricos para iniciação do
projecto.
Planeamento da estrutura física do robot.
Desenho 3D utilizando a ferramenta de desenho INVENTOR.
Implementação do material a utilizar.
Planeamento da programação para posterior participação em
provas.
Conclusões retiradas com o projecto.
4. REQUISITOS
Microcontrolador: ATmega1280.
Controlo dos motores: Ardumoto (L298).
Sensor de pista: Axe121.
Sonares: SRF05.
Motores: EMG30.
Chassis: Alumínio.
Sistema de movimento: Lagartas.
Bateria: 5v a 12v DC.
Comunicação: FT232R.
Servo: S05NF.
Garra: Sparksfun robotic claw.
8. DEFINIÇÃO DE ROBOT
Robot: É um agente
artifícial activo que possuí
um corpo e cujo ambiente é
o mundo real (físico).
Robot Autónomo: É um
robot que realiza as suas
próprias decisões usando o
feedback que recebe do seu
ambiente.
9. AGENTES E SISTEMAS MULTI-AGENTE
A g e n te : Um s i s te ma c o m put a cional ,
s i t ua do n um da do a m bi e nte , te m
pe rc e pç ã o do a m bi e nte a t rav é s de
s e n sores e te m a c t ua do re s q ue v ã o
de s e mpen har um a a c ç ã o c o n fo rm e
a a n á l ise do s s e n s ores do a m bi e n te
e m c o n j un to c o m a pro g ra m a ç ã o .
Si s te ma m ul t i - a gente : É um
s i ste ma e m q ue 2 o u m a i s a g e n te s,
i n te ra gem o u t ra ba l h a m e m
c o n j unto de fo rm a a de s e m pen har
um dete rm i n ado c o n j un to de
ta re fa s .
10. MOTORES DC
Um motor DC é :
Máquina de corrente contínua que poderá funcionar como motor ou
gerador.
É alimentado por uma corrente externa que em conjunto com 2
campos magnéticos gera um binário.
Um motor DC é constituído por:
Rotor (componente em movimento).
Estator (componente estática).
12. EMG30
O EMG30 é um motor de 12v , com encoder ótimo para
pequenos e médios robots.
Incluí um condensador redutor de ruído , nos enrolamentos do
motor.
13. EMG30
Rated voltage
12v
Rated torque
1.5kg/cm
Rated speed
170rpm
Rated current
530mA
No load current
150mA
Stall Current
2.5A
Encoder counts per output shaft turn
360
14. EMG30
Wire
Connection
colour
Purple
Hall Sensor B Vout
(1)
Blue (2) Hall sensor A Vout
Green
Hall sensor ground
(3)
Brown
Hall sensor Vcc
(4)
Red (5) + Motor
Black
- Motor
(6)
15. MODULAÇÃO PWM
O impulso PWM significa Pulse-width modulation.
O PWM é a técnica mais usada para controlar a velocidade de
um motor DC , porque permite induzir no motor energias
electricas diferentes.
Este pulso é modulado em ondas quadradas.
16. CÁCULO DO PWM
E n t ra da = 5 V
D ut y - Cyc l e 5 0 % te m o s Sa í da 2 , 5 V
D ut y - Cyc l e 10 0 % te m o s Sa í da 5 , 0 V
D ut y - Cyc l e 37 % te m o s Sa í da 1 , 8 5 V
TCi c lo = te m po tot a l de 1 c i c l o .
Ch a m amos de T.
Tl i ga do = te m po e m a l t a ( h i g h ).
Tde s liga do = te m po e m ba i xa ( l ow ) .
E = te n s ã o de e n t ra da .
18. PROGRAMAÇÃO DO PWM
Para programação no Arduino:
analogWrite(valoranalógico).
AnalogWrite: Envia para a
por ta analógica de controlo do
motor um valor analógico
correspondente á velocidade
pretendida.
Os valores analógicos variam
de 0 a 255
Concluindo 0 corresponde a 0v
e 255 ao nosso máximo.
(neste caso 5v).
19. PONTE H
A Ponte H tem como função permitir a alteração do sentido de
rotação dos motores.
O Ardumoto pussiu o driver L298 que é uma ponte H.
V1 V1
12v 12v
+V +V
Q1 Q3
NMOS NMOS
D4 S1 D4 S3
D1 DIODE D1 DIODE
DIODE DIODE
M1 M1
Q2 Q4
NMOS D3 NMOS D3
D2 DIODE D2 DIODE
DIODE S2 DIODE S4
20. PONTE H
Ao colocar uma certa
tensão na gate dos Q1 Q2 Q3 Q4 Sentido
MOSFETs desejados, 0 0 0 0 Parado
controlamos o sentido 1 0 1 0 Parado
com que a corrente 0 1 0 1 Parado
atravessa o circuito e 1 0 0 1 Frente
por consequência o 0 1 1 0 Trás
sentido de rotação do
motor.
21. PROGRAMAÇÃO PARA CONTROLO DO
SENTIDO DOS MOTORES
Para programar o DigitalWrite = Entrada
sentido de um motor é digital do arduino
necessário usar o
seguinte código
(arduino):
Dir_a = Motor A
digitalWrite(dir_a,
LOW); Low = Direcção Trás
digitalWrite(dir_a,
HIGH);
High = Direcção Frente
22. DIFRENÇAS ENTRE SINAL ANALÓGICO E
SINAL DIGITAL
Sinal analógico Sinal digital
Variação contínua Variação discreta
A função pode assumir A função assume um
qualquer valor. (0 a 255). conjunto de valores pré
definido (0 e 1).
Intervalo de sinalização.
23. ARDUMOTO
Ardumoto : PCB de controlo para 2 motores DC.
O Ardumoto é baseado na ponte H l298,tambem incluí dois
leds , um laranja e um azul que indicam a direcção em que o
motor está em rotação.
Os motores são ligados ao Porto A e Porto B que
correspondem respectivamente a os impulsos PWMA e PWMB.
(PWM = Pulse-width-modulation).
24. FUNCIONAMENTO DE UM SONAR
O funcionamento de um
sonar é de fácil
compreensão.
O nosso emissor emite
uma onda ultrasonica ,
que ao embater num
objecto, vai se reflectir.
Ao se reflectir um
receptor vai registar o
tempo que demorou a
chegar a onda .
26. SRF05
O SRF05 é um sonar evoluido do SRF04, em que o SRF04 usa
apenas um pino para trigger e echo.
O SRF05 usa dois pinos independentes para enviar e receber
informação (trigger e echo independentes).
O SRF05 funciona com uma tensão de 5v e tem apenas 5
pinos.
27. PROGRAMAÇÃO PARA CÁLCULO DA
DISTÂNCIA COM UM SONAR
O cálculo da distância apartir de um sonar é feito pelos
seguintes códigos (arduino):
distance = pulseIn(echo, HIGH);
distance = distance/58;
Estas linhas de código fazem com que o valor da distância
seja igual ao pulso do echo , e depois divide-se essa mesma
distância por 58 para obter o valor em centímetros da
distância.
28. PROGRAMAÇÃO PARA OBTER O VALOR
DA DISTÂNCIA NA CONSOLA
Na função de setup vamos defenir a velocidade de transmissão:
Serial.begin(9600);
Em seguida vamos ter de transferir o valor para a consola com a
função:
Serial.println(distance);
Delay_miliseconds(10);
A função delay ser ve para criar um intrevalo de 10 milisegundos na
transmição de valores.
Se quisermos tambem fazer uma referência podemos tambem imprimir
na consola(colocar este codigo antes do print do valor da distãncia):
Serial.println(“Distância--->”);
29. ENCODERS
Um encoder é um dispositivo electromecânico que converte
uma posição angular num código analógico ou digital e um
encoder dá-nos:
O sentido da rotação do motor.
A distância percorrida pelo motor.
30. PROGRAMAÇÃO PARA O ENCODER
Este código serve para definir os pinos do encoder como uma
interrupção interna no flanco ascendente:
pinMode (encoder,INPUT);
attachInterrupt(2, CountA, RISING);
pinMode = define se o encoder é um input ou output.
attachInterrupt = define a interrupção interna no pino 2 que
vai a função de contagem , e define o flanco.
31. SENSOR DE PISTA
O Axe121 é um sensor de pista da picaxe , muito simples de
apenas 3 sensores de infra-vermelhos.
Funciona por apenas 5 ligações (V+, GND e 3 ligações
correspondentes ao sensor central , esquerda e direita).
32. PROGRAMAÇÃO PARA O SENSOR DE
PISTA AXE 121
Se pretendemos ter uma leitura dos sensores de
infravermelhos temos de utilizar o seguinte código(arduino):
pis_Ls = digitalRead(pis_L);
pis_Cs = digitalRead(pis_C);
pis_Rs = digitalRead(pis_R);
digitalRead = Faz a leitura do sinal digital dos infravermelhos.
pis_x = Variável onde se vai guardar o valor obtido na porta
digital (Ls(esquerda),Cs(centro),Rs(Direita).
33. S05NF
S05NF : Servo de médio porte .
Rotação : 180°
Torque : 3.2kg/cm (19.6oz/in) (6V) ou 2.8kg/cm (19.6oz/in) (4.8V)
Voltagem : 4.8v a 6v
Dimensões : 28.8 x 13.8 x 30.2mm
34. ROBOTIC CLAW SPARKSFUN
Robotic claw : Garra robótica da sparks fun , com uma
abertura de 6 cm máximo. Como a lata da prova tem 6,5 cm
de diâmetro foram feitas alterações ao sistema mecânico da
garra . Esta garra usa um servo S05NF .
35. ARDUINO ATMEGA1280
O Atmega1280 é a PCB de controlo arduino , que utiliza o
microprocessador ATmega1280.
O Arduino é uma tecnologia Italiana , que é de fácil acesso ao
público e de facíl programação.
(http://arduino.cc/en/Main/ArduinoBoardMega )
36. COMPARAÇÃO ENTRE ATMEGA1280 E
UNO
Arduino ATmega1280 Arduino UNO
Microcontroller Microcontroller
ATmega1280 ATmega328
Operating Voltage Operating Voltage
5V 5V
Input Voltage (recommended) Input Voltage (recommended)
7-12V 7-12V
Input Voltage (limits) Input Voltage (limits)
6-20V 6-20V
Digital I/O Pins Digital I/O Pins
54 (of which 15 provide PWM output) 14 (of which 6 provide PWM output)
Analog Input Pins Analog Input Pins
16 6
DC Current per I/O Pin DC Current per I/O Pin
40 mA 40 mA
DC Current for 3.3V Pin DC Current for 3.3V Pin
50 mA 50 mA
Flash Memory Flash Memory
128 KB of which 4 KB used by bootloader 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM SRAM
8 KB 2 KB (ATmega328)
EEPROM EEPROM
4 KB 1 KB (ATmega328)
Clock Speed Clock Speed
16 MHz 16 MHz
37. DESENHO 3D USANDO INVENTOR
Praticamente a fase inicial do projecto , a fase em que as
ideias do aspecto tinham se ser transferidas para um
desenho. (No caso utilizando o INVENTOR).
38. DESENHO 3D USANDO INVENTOR
Desenhos de alta qualidade que permitem o envio das peças
para fabrico.
40. CONCLUSÕES
Um robot não é um sistema fácil de construir.
Os custos de um robot são algo elevados , devido á
complexidade das peças utilizadas na sua construção.
O numero de testes a serem feitos é grande.
O numero de complicações que possam surgir na sua
construção é grande , porque o hardware nem sempre
funciona como pretendemos.
A utilização de encoders foi essencial.
41. TRABALHO FUTURO
Elaboração de uma pcb de controlo de motores original.
Elaboração de uma pcb para um sensor de pista mais potente.
Esquema 3D de uma caixa para colocar as pcbs de forma segura
e facilitar a remoção das mesmas.
Melhorar o chassis
Adicionar um sensor de cor para as provas com vitimas de cor no
solo.
Desenvolver um novo sistema para a garra.