prova de aptidão tecnológica

Post on 08-Jul-2015

1.072 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROVA DE APTIDÃO TECNOLÓGICA

PROJECTO ROBOT DE BUSCA E

SALVAMENTO

Trabalho realizado por: Ricardo Antunes

PAT – Prova de Aptidão Tecnológica

Motivação.

Requisitos.

Conceitos Teóricos.

Arquitectura do sistema.

Implementação.

Conclusões.

Trabalho Futuro.

SUMÁRIO

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.

INTRODUÇÃO

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.

REQUISITOS

PROVA DE ROBÓTICA NACIONAL

PROVADE ROBÓTICA NACIONAL - GARRA

PROVA DE ROBÓTICA NACIONAL - FOTOS

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.

DEFINIÇÃO DE ROBOT

Agente : Um s istema computacional , s i tuado num dado ambiente , tem percepção do ambiente através de sensores e tem actuadores que vão desempenhar uma acção conforme a anál ise dos sensores do ambiente em conjunto com a programação.

Sistema mult i -agente : É um s istema em que 2 ou mais agentes, interagem ou trabalham em conjunto de forma a desempenhar um determinado conjunto de tarefas.

AGENTES E SISTEMAS MULTI-AGENTE

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

MOTORES DC

MOTORES DC

Esquema da constitução

de um motor dc com brushes.

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.

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

EMG30

EMG30

Wire

colourConnection

Purple

(1)Hall Sensor B Vout

Blue (2) Hall sensor A Vout

Green

(3)Hall sensor ground

Brown

(4)Hall sensor Vcc

Red (5) + Motor

Black

(6)- Motor

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.

MODULAÇÃO PWM

Entrada = 5V

Duty -Cycle 50% temos Saída 2,5V

Duty -Cycle 100% temos Saída 5,0 V

Duty -Cycle 37% temos Saída 1 ,85V

TCic lo = tempo total de 1 c ic lo . Chamamos de T.

Tl igado = tempo em al ta (h igh ) .

Tdesl igado = tempo em baixa ( low ) .

E = tensão de entrada.

CÁCULO DO PWM

CÁLCULO DO PWM

Para programação no Arduino:

analogWrite(valoranalógico).

AnalogWrite: Envia para a porta 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 0ve 255 ao nosso máximo. (neste caso 5v).

PROGRAMAÇÃO DO PWM

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.

PONTE H

+V

V112v

D4DIODE

D3DIODED2

DIODE

D1DIODE

M1

Q4NMOS

Q3NMOS

Q2NMOS

Q1NMOS

S4

S3

S2

S1

+V

V112v

D4DIODE

D3DIODED2

DIODE

D1DIODE

M1

Ao colocar uma certa

tensão na gate dos

MOSFETs desejados,

controlamos o sentido

com que a corrente

atravessa o circuito e

por consequência o

sentido de rotação do

motor.

Q1 Q2 Q3 Q4 Sentido

0 0 0 0 Parado

1 0 1 0 Parado

0 1 0 1 Parado

1 0 0 1 Frente

0 1 1 0 Trás

PONTE H

Para programar o sentido de um motor é necessário usar o seguinte código (arduino):

digitalWrite(dir_a, LOW);

digitalWrite(dir_a, HIGH);

DigitalWrite = Entrada digital do arduino

Dir_a = Motor A

Low = Direcção Trás

High = Direcção Frente

PROGRAMAÇÃO PARA CONTROLO DO

SENTIDO DOS MOTORES

Sinal analógico

Variação contínua

A função pode assumir

qualquer valor. (0 a 255).

Sinal digital

Variação discreta

A função assume um

conjunto de valores pré

definido (0 e 1).

Intervalo de sinalização.

DIFRENÇAS ENTRE SINAL ANALÓGICO E

SINAL DIGITAL

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 aos impulsos PWMA e PWMB.

(PWM = Pulse-width-modulation).

ARDUMOTO

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 .

FUNCIONAMENTO DE UM SONAR

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.

SRF05

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.

PROGRAMAÇÃO PARA CÁLCULO DA

DISTÂNCIA COM UM SONAR

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 serve para criar um intrevalo de 10 mil isegundos 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 --->”);

PROGRAMAÇÃO PARA OBTER O VALOR

DA DISTÂNCIA NA CONSOLA

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.

ENCODERS

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.

PROGRAMAÇÃO PARA O ENCODER

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

SENSOR DE PISTA

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

PROGRAMAÇÃO PARA O SENSOR DE

PISTA AXE 121

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

S05NF

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 .

ROBOTIC CLAW SPARKSFUN

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)

ARDUINO ATMEGA1280

Arduino ATmega1280 M i c r o c o n t r o l l e r

ATmega12 8 0

O p e r a t i n g V o l t a g e 5V

I n p u t V o l t a g e ( r e c o m m e n d e d ) 7-12V

I n p u t V o l t a g e ( l i m i t s ) 6-20V

D i g i t a l I / O P i n s 54 (of which 15 prov ide PWM output )

A n a l o g I n p u t P i n s 16

D C C u r r e n t p e r I / O P i n 40 mA

D C C u r r e n t f o r 3 . 3 V P i n 50 mA

F l a s h M e m o r y 128 KB of which 4 KB used by boot loade r

S R A M 8 KB

E E P R O M 4 KB

C l o c k S p e e d 16 MHz

Arduino UNO M i c r o c o n t r o l l e r

ATmega32 8

O p e r a t i n g V o l t a g e 5V

I n p u t V o l t a g e ( r e c o m m e n d e d ) 7-12V

I n p u t V o l t a g e ( l i m i t s ) 6-20V

D i g i t a l I / O P i n s 14 (of which 6 prov ide PWM output )

A n a l o g I n p u t P i n s 6

D C C u r r e n t p e r I / O P i n 40 mA

D C C u r r e n t f o r 3 . 3 V P i n 50 mA

F l a s h M e m o r y 32 KB (ATmega3 2 8) of which 0 .5 KB used by boot load er

S R A M 2 KB (ATmega3 2 8)

E E P R O M 1 KB (ATmega3 2 8)

C l o c k S p e e d 16 MHz

COMPARAÇÃO ENTRE ATMEGA1280 E

UNO

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

DESENHO 3D USANDO INVENTOR

Desenhos de alta qualidade que permitem o envio das peças

para fabrico.

DESENHO 3D USANDO INVENTOR

FLUXOGRAMA DO PROGRAMA USADO NO

ROBOT

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.

CONCLUSÕES

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

TRABALHO FUTURO

top related