Introdução aos kits Lego RCX

Preview:

DESCRIPTION

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

Citation preview

1

Versão 03/2011

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

RCX

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

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

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

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)

“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

Kit Lego MindStorms RCX (código 9793)12

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

14

Usando Lego para resolver problemas...

Exemplos:

Exemplos:

15

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.

22

Pequenos Desafios: “Problemas”

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

• Autônomos!

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

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

25

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

Outras formas de tração:

26

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

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

“Stamp Bug”→ Exemplo:

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

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

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

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

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 →

32

Um problema de Controle:

Seguir uma pista já demarcada:

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

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.

?

35

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

?

a) Toque.

b) De Luz.

Portas deEntrada

36

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

?

37

Descrição do Kit:

?

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

Portas deSaída

38

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

39

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

Selecionar um destes

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

41

Barra de Ferramentas

Programação Modo “Inventor”:

42

Início FimInício e Fim do

programa

Programação Modo “Inventor”:

43

Programação Modo “Inventor”:

Funções disponíveis:

44

Programação Modo “Inventor”:

?F1

45

Programação Modo “Inventor”:

Parada de motores

46

Programação Modo “Inventor”:

Comando dos motores

47

Programação Modo “Inventor”:

Potência do motor

Portas de Entrada

Portas de SaídaUsar “Modificadores”

48

Programação Modo “Inventor”:

EstadoSensor detoque

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

49

Programação Modo “Inventor”:

EstadoSensor deluz

50

Programação Modo “Inventor”:

LâmpadasLâmpadas

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

51

Programação Modo “Inventor”:

Temporizadores

52

Programação Modo “Inventor”:

Programação de melodias...

Notas musicais...

53

Programação Modo “Inventor”:

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

54

Programação Modo “Inventor”:

Entradas(Sensores)

Saídas(Motores)

55

Programação Modo “Inventor”:

56

• Looping perpétuos:

Pular

Início(laço)

Fim(laço)

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

57

Pular

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

58

Programação Modo “Inventor”:

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

ERRO

59

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

Bloco Repetido 3x

60

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

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.

..”

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.

..”

Programação Modo “Inventor”

63

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

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

64

Programação Modo “Inventor”:

Execução de rotinas “multitarefa”:

Multitarefa: 2 rotinas rodando ao mesmo tempo!

1

2

65

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

66

Exemplos...Uso do Sensor de toque:

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

67

Exemplos...• Parar motores:

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

Exemplos...

68

Qual o problema no diagrama (programa) acima?

Exemplos...

69

- O que faz o diagrama acima?

Seguidor de Linha (início)...

70

Seguidor de Linha (início)...

71

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

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

74

Exemplos...

75

Exemplos...

76

Exemplo:

Desafio 2012

77

Robô 1

Robô 23 minutos

Desafio 2012

78

103 cm

79 cm

19 cm 19 cm 19 cm

18,5 cm29 cm

29 cm

29 cm

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

80

Exemplos...

81

Exemplos...

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

Recommended