introdução aos kits lego rcx

71
1 Versão 03/2011 + Programação kits Lego RCX •EEE071 – Introdução à Engenharia Elétrica Prof. Fernando Passold

Upload: fernando-passold

Post on 19-Jun-2015

2.114 views

Category:

Education


6 download

DESCRIPTION

Material usado pelos alunos do curso de Introdução à Engenharia Elétrica, Universidade de Passo Fundo, linha de Mecatrônica (até 2013/1).

TRANSCRIPT

Page 1: Introdução aos kits Lego RCX

1

Versão 03/2011

Introdução à Robótica +Programação kits Lego

RCX

•EEE071 – Introdução à Engenharia Elétrica•Prof. Fernando Passold

Page 2: Introdução aos kits Lego RCX

Metodologia

6

As atividades estão focados em pequenos projetos (ou desafios) que retratam o dia a dia real de um engenheiro eletricista.

As atividades são tanto práticas quanto teóricas (do ponto de vista de embasamento e inserção de cada uma das disciplinas do curso).

Enfoque principal: ensino através de projetos:

“Hands on Experience”).

Page 3: Introdução aos kits Lego RCX

AvaliaçãoMédia aritmética das avaliações realizadas em separado por cada um dos professores (áreas diferentes) que ministram a disciplina:

Atenção: SEM EXAME! (Aprovação com MS>=5,0)

7

Page 4: Introdução aos kits Lego RCX

9

Condições de execução das Atividades

Divisão dos alunos em 4 equipes.

Divisão baseada em laços de amizade.

Trabalhos/Atividades espaçados no tempo (Agendados: com prazos pré-determinados e fixos!)

Idéia: forçar que se conheçam, trabalho em equipe, trabalho organizado, com prazos (imita ambiente industrial)

Page 5: Introdução aos kits Lego RCX

“Desafios” usando Lego/ROBOLAB...

Propostos pequenos problemas da área de automação que podem ser resolvidos usando como ferramenta de implementação:

Kits Lego MindStorms RCX (código 9793)

11

Page 6: Introdução aos kits Lego RCX

Kit Lego MindStorms RCX (código 9793)12

Page 7: Introdução aos kits Lego RCX

Exemplos de Atividades Realizadas:

13

Página WEB área Mecatrônica (Prof. Passsold):http://usuarios.upf.br/~fpassold/LEGO/Intro_Eng_Eletrica_-_Mecatronica/Welcome.html ou simplesmente:

vitoria.upf.br/~fpassold/LEGO

Page 8: Introdução aos kits Lego RCX

14

Usando Lego para resolver problemas...

Exemplos:

Page 9: Introdução aos kits Lego RCX

Exemplos:

15

Page 10: Introdução aos kits Lego RCX

21

O Kit Lego MindStorms RCX

Principais componentes:

Bloco de controle RCX (Robotics Control eXplorer) – o “cérebro” do sistema;

2 motores c/redução;

2 sensores de toque;

2 sensor de luz;

1 lâmpada.

Page 11: Introdução aos kits Lego RCX

22

Pequenos Desafios: “Problemas”

• 1º) AVG p/andar numa pista circular:

• Autônomos!

Page 12: Introdução aos kits Lego RCX

23

Soluções Possíveis (tração):• A) Estrutura de

triciclo: B) Diferencial:

Roda + motor 1

Roda + motor 2

Pára-choques

Pára-choques

Roda livre

Roda livre

Centro geométrico

θ1

θ2

yc

xc

Rodas

passivas

Roda giratória com propulsor

xy

Page 13: Introdução aos kits Lego RCX

24

Tração Diferencial:B) Diferencial:

Roda + motor 1

Roda + motor 2

Pára-choques

Pára-choques

Roda livre

Roda livre

Centro geométrico

Roda+

Encoder

Física Vetorial

Page 14: Introdução aos kits Lego RCX

25

Soluções Possíveis (tração):

Outras formas de tração:

Page 15: Introdução aos kits Lego RCX

26

Soluções já existentes:Modelagem da tração:

StampBug:http://www.din.uem.br/ia/robotica/stampbug.htm

“Stamp Bug”→ Exemplo:

Page 16: Introdução aos kits Lego RCX

27

Internos: de movimentação do robô (juntas do robô).

Externos: para localização do robô (medidas de distâncias).

Sensores usados:

Propioceptivos Exteroceptivos

CodificadoresAngulares(encoders)

Posição doElementoterminal

Encoder +Sensor de proximidade

Posição deUm objeto

Câmera (sensor CCD) + medidor laser

Mapa 3D

Page 17: Introdução aos kits Lego RCX

28

Modelagem Matemática:Leis para manter o sistema sob controle:

xc

yc

x0

y0

xR

yR

θ

ϕ

Variáveis de controle (atuadores):- v1 e v2 (potência/velocidades dos

motores)

Variáveis controladas:- v (velocidade linear) e w (velocidade angular)- Cinemática permite deduzir próxima posiçãodo robô (veículo):

DesejadoCalculad

o

CinemáticaInversa

Page 18: Introdução aos kits Lego RCX

29

Modelagem MatemáticaLeis para manter o sistema sob controle:

xc

yc

x0

y0

xR

yR

θ

ϕ

Problema de controle:- Que v1 e v2 adotar ?Para fazer robô seguir com uma certavelocidade linear (por. ex.: v = 20 cm/s) ecerta velocidade angular (por exemplo:w = 15 rad/s).

Notar que quando

1. ; anda reto

2. ; gira sobre eixo

3. ; descreve curva

Page 19: Introdução aos kits Lego RCX

30

Modelagem MatemáticaLeis para manter o sistema sob controle:

xc

yc

x0

y0

xR

yR

θ

ϕ

Notar que quando

1. ; anda reto

2. ; gira sobre eixo

3. ; descreve curva

Page 20: Introdução aos kits Lego RCX

31

Sistema de ControleManter o sistema sob controle:

Envolve “fechar o laço” (fechar a malha), isto é, usar um sensor(es) para confirmar a posição do robô.

Senão…

Caminho realizado →Erros de odometria

Caminho desejado →

Page 21: Introdução aos kits Lego RCX

32

Um problema de Controle:

Seguir uma pista já demarcada:

Page 22: Introdução aos kits Lego RCX

33

Problema de Controle:Seguir uma pista já demarcada:

Solução:

Usar 2 sensores de luz.

Caso 1

Ok

Caso 2

Desvio p/direita,voltar p/esquerda

Caso 3

Desvio p/esquerda,voltar p/direita

Page 23: Introdução aos kits Lego RCX

34

Descrição do Kit:3 partes principais(decompondo o bloco RCX):

1) Entradas: portas 1, 2 e 3

Sensores (toque, luz);

2) Processamento:

Software rodando: o que dá “inteligência” ao sistema.

3) Saídas: portas A, B e C

Motores, lâmpadas, tocar música, etc.

?

Page 24: Introdução aos kits Lego RCX

35

Descrição do Kit:1) Entradas: portas 1, 2 e 3– Sensores:

?

a) Toque.

b) De Luz.

Portas deEntrada

Page 25: Introdução aos kits Lego RCX

36

Descrição do Kit:2) Processamento: bloco RCX– Software: o que dá “inteligência” ao sistema.

?

Page 26: Introdução aos kits Lego RCX

37

Descrição do Kit:

?

3) Saídas: portas A, B e C– Motores, lâmpadas, tocar música, etc.

Portas deSaída

Page 27: Introdução aos kits Lego RCX

38

Programação do Kit:Linguagem gráfica baseada em ícones: “ROBOLAB”

Page 28: Introdução aos kits Lego RCX

39

ProgramaçãoModos “Pilot” e “Inventor”:

Selecionar um destes

Page 29: Introdução aos kits Lego RCX

40

Tutorial -> Modo “Pilot”:• Exemplo:

Note a seqüência (fluxo) do programa:

• Girar motor A (para esquerda, potência 5), acender Lâmpada B e o motor C (para a direita, potência 3) por 6 segundos. Depois, Inverter a direção dos motores A e C, mantendo a lâmpada acesa, até que o sensor de toque (porta 1) se mova para dentro (seja pressionado).

Page 30: Introdução aos kits Lego RCX

41

Barra de Ferramentas

Programação Modo “Inventor”:

Page 31: Introdução aos kits Lego RCX

42

Início FimInício e Fim do

programa

Programação Modo “Inventor”:

Page 32: Introdução aos kits Lego RCX

43

Programação Modo “Inventor”:

Funções disponíveis:

Page 33: Introdução aos kits Lego RCX

44

Programação Modo “Inventor”:

?F1

Page 34: Introdução aos kits Lego RCX

45

Programação Modo “Inventor”:

Parada de motores

Page 35: Introdução aos kits Lego RCX

46

Programação Modo “Inventor”:

Comando dos motores

Page 36: Introdução aos kits Lego RCX

47

Programação Modo “Inventor”:

Potência do motor

Portas de Entrada

Portas de SaídaUsar “Modificadores”

Page 37: Introdução aos kits Lego RCX

48

Programação Modo “Inventor”:

EstadoSensor detoque

Ex.: Sensor de toque: (aguarda toque ou aguarda que se libere o toque)

Page 38: Introdução aos kits Lego RCX

49

Programação Modo “Inventor”:

EstadoSensor deluz

Page 39: Introdução aos kits Lego RCX

50

Programação Modo “Inventor”:

LâmpadasLâmpadas

Containers: variáveis (ou memórias para guardar valores)

Page 40: Introdução aos kits Lego RCX

51

Programação Modo “Inventor”:

Temporizadores

Page 41: Introdução aos kits Lego RCX

52

Programação Modo “Inventor”:

Programação de melodias...

Notas musicais...

Page 42: Introdução aos kits Lego RCX

53

Programação Modo “Inventor”:

Estruturas de decisão eRepetição(IF’s, WHILE’s, FOR’s)

Page 43: Introdução aos kits Lego RCX

54

Programação Modo “Inventor”:

Entradas(Sensores)

Saídas(Motores)

Page 44: Introdução aos kits Lego RCX

55

Programação Modo “Inventor”:

Page 45: Introdução aos kits Lego RCX

56

• Looping perpétuos:

Pular

Início(laço)

Fim(laço)

Programação Modo “Inventor”:• Laços de Repetição (Perpétuos):

Page 46: Introdução aos kits Lego RCX

57

Pular

Programação Modo “Inventor”:• Laços de Repetição (Perpétuos):

Page 47: Introdução aos kits Lego RCX

58

Programação Modo “Inventor”:

• Laços de Repetição (Perpétuos) – Erro Comum:

ERRO

Page 48: Introdução aos kits Lego RCX

59

Programação Modo “Inventor”:Laço de Repetição (limitado, controlado)

Bloco Repetido 3x

Page 49: Introdução aos kits Lego RCX

60

Programação Modo “Inventor”:Laço de Repetição (limitado, controlado)

Page 50: Introdução aos kits Lego RCX

61

Programação Modo “Inventor”:

Blocos de decisão, de teste de uma condição (“IF..THEN..ELSE”):

Parte do: “Se solto...”

Parte do: “Se pressionado.

..”

Page 51: Introdução aos kits Lego RCX

62

Programação Modo “Inventor”:Blocos de decisão, de teste de uma condição (“IF..THEN..ELSE”):Parte do: “Se solto...”

Parte do: “Se pressionado.

..”

Page 52: Introdução aos kits Lego RCX

Programação Modo “Inventor”

63

Exemplo de Bloco de Decisão (Comparação)

Laço de repetição (perpétuo)

Page 53: Introdução aos kits Lego RCX

64

Programação Modo “Inventor”:

Execução de rotinas “multitarefa”:

Multitarefa: 2 rotinas rodando ao mesmo tempo!

1

2

Page 54: Introdução aos kits Lego RCX

65

Programação... (modo de uso)Apertar “TAB” para modificar função do cursor!: Conector (bobina)→Edição(mão)→Texto.Ou:

Page 55: Introdução aos kits Lego RCX

66

Exemplos...Uso do Sensor de toque:

Note: Erro! Faltou o modificador para indicar em que porta o sensor de toque está conectado.

Page 56: Introdução aos kits Lego RCX

67

Exemplos...• Parar motores:

Note: O programa para de rodar mas os motores continuam girando!!!

Page 57: Introdução aos kits Lego RCX

Exemplos...

68

Qual o problema no diagrama (programa) acima?

Page 58: Introdução aos kits Lego RCX

Exemplos...

69

- O que faz o diagrama acima?

Page 59: Introdução aos kits Lego RCX

Seguidor de Linha (início)...

70

Page 60: Introdução aos kits Lego RCX

Seguidor de Linha (início)...

71

Page 61: Introdução aos kits Lego RCX

Notas: Uso dos Kits Lego

• SEMPRE TESTAR OS KITS NO SOLO (Para evitar quedas do Bloco RCX);

• NUNCA MISTURAR PEÇAS ENTRE OS KITS LEGO. Notar que os principais componentes são numérico. Não é permitida a troca ou empréstimo de peças com outra equipe!

• MANTER ORGANIZADA A BANCADA DE TRABALHO;

• MANTER ORGANIZADO AS CAIXAS DE COMPONENTES DO KIT LEGO. Esquecer algum componente do kit no laboratório pode implicar em MEDIDA DISCIPLINAR! Favor revisar todos os componentes (sensores, cabos, torre de IR) ao final de cada seção de trabalho com os kits LEGO

• A não observação de qualquer uma das regras acima pode implicar em MEDIDA DISCIPLINAR.

• MEDIDA DISCIPLINAR: Suspensão de 24 horas seguidas no uso do kit (fica registrado no Almoxarifado da Eng. Elétrica)

72

Page 62: Introdução aos kits Lego RCX

73

Exemplos...• Usando temporizador + display do LEGO:

O bloco da exposição de RCX, encontrado na caixa de funções: "comunicações RCX“. É uma boa maneira de ver que dados estão circulando por dentro do RCX.  Pode ser usado para mostrar valores do “container” ou do sensor, e mesmo do temporizador interno do RCX.  O programa acima é para um cronômetro simples. Usa um sensor do toque para disparar e parar o cronômetro, e outro zerá-lo. Este programa espera o sensor 1 de toque ser pressionado, então zera o “container” e o temporizador. Em seguida, um evento é disparado até que um toque ocorra no sensor 1 de toque. O valor do temporizador é colocado no “container” amarelo e então mostrado no display do RCX. Os ícones de setas azuis atualizam a tela com valores novos. O modificador "1" no bloco do display serve para indicar uso de 1 ponto decimal. O RCX continuará a mostrar o valor do temporizador até que um novo evento seja provocado. Neste caso, a visualizarão no display parará de ser atualizar. Quando o sensor 2 do toque é pressionado, o display será zerado e o programa reiniciará.

Page 63: Introdução aos kits Lego RCX

74

Exemplos...

Page 64: Introdução aos kits Lego RCX

75

Exemplos...

Page 65: Introdução aos kits Lego RCX

76

Exemplo:

Page 66: Introdução aos kits Lego RCX

Desafio 2012

77

Robô 1

Robô 23 minutos

Page 67: Introdução aos kits Lego RCX

Desafio 2012

78

103 cm

79 cm

19 cm 19 cm 19 cm

18,5 cm29 cm

29 cm

29 cm

Page 68: Introdução aos kits Lego RCX

Simples Desafios:1. Ligue os motores por 6 segundos e então os pare;

2. Faça os motores darem a ré por 6 segundos;

3. Faça um robô girar à direita (ativando o motor A) por 6 segundos e então desligue o motor C – o que acontecerá?

4. Faça o robô girar à esquerda (ativando o motor C) por 6 segundos e então desligue o motor A;

5. Faça um robô girar sobre seu próprio eixo em direções opostas por 6 segundos.

Obs: Supor robô com tração diferencial com motores ligados às portas A e C.

79

Page 69: Introdução aos kits Lego RCX

80

Exemplos...

Page 70: Introdução aos kits Lego RCX

81

Exemplos...

Page 71: Introdução aos kits Lego RCX

82

Especificações•Fabricantes de Kits:Lego MindStorms:http://mindstorms.lego.com/eng/default.asp:Robotics Invention System 2.0:–RCX™ Microcomputer:•6 AA batteries;•LCD display;•3 sensor inputs;•3 motor outputs;•Hitachi H8/3297 processor @ 16 Mhz;•32k ram;•rom with basic I/O functions–CD-ROM Software–USB Infrared Transmitter–718 pieces, including:•2 Motors•2 Touch Sensors•1 Light Sensor

Hitachi H8/3297 µcontrolador:• 8 registradores de 16-bits ou 16 registradores de 8-bits;• High-speed operation:• 8- or 16-bit register-register add/subtract: 125 ns (16 MHz;• 8 x 8-bit multiply: 875 ns (16 MHz);• 16 ÷ 8-bit divide: 875 ns (16 MHz);• 1 contador/timmer de 16-bits;• 1 A/D de 10-bits;• I/O ports:• 43 input/output lines (16 of which can drive LEDs)• 8 input-only lines.• Interrupts:• Four external interrupt lines: 10,, IRQ0 to IRQ2• 19 on-chip interrupt sources