SlideShare uma empresa Scribd logo
Programação Lego NXT
NXT-G 2.0
Introdução à Eng. Elétrica
Prof. Fernando Passold
Versão	de	2016/1
Detalhes da Linguagem
A nova versão da linguagem gráfica NXT-G (2.0)
suporta cálculos em “ponto-flutuante” (com
casas decimais)(float). A versão anterior só
permitia realizar cálculos com números inteiros
(int).

Existem outras linguagens...
Para documentar estrutura física realizada
Lego Digital Designer: http://ldd.lego.com/en-
us/ 

Começando
a trabalhar
1) Comandos em malha-
aberta (sem realimentação,
sem feedback)
NXT-G
Programação
nativa
Programa...
Def.: Seqüência lógica de
passos que permite coletar
dados de entrada, processar
esta informação de entrada e
gerar uma saída específica
conforme desejado.

Ex.: Programa para resolver
equação do 2o-grau:

Dados Entrada: a, b e c.

Processamento:









Saída: x1 e x2.

ax2
+ bx + c = 0
= b2
4ac
x =
b ±
p
2a
Programando...
Exemplo Válido?

Programador: SPOT, ande
para frente e pare.
[SPOT: apenas fica parado]

Que aconteceu?

Se alguém pedisse que você
“ande um pouco e pare”,
quão longe você iria?

Quando você iria parar?

Máquinas: indicar com
precisão o que deve ser
Programando (2)...
Exemplo Válido:

Programador: SPOT, ande
para frente 5 segundos e
pare.
[SPOT: se move para frente
durante 5 segundos e para.]

Programador: SPOT, gire 180
graus e então ande até meus
pés.



[SPOT: ?]

1o-caso: note são algumas
instruções: andar para frente,
esperar os 5 segundos, parar.

(São diferentes, simples e
pequenos programas
intercalados).

2o-caso: Girar 180o
no
sentido horário ou anti-
horário? Outro problema:
“pés”?
Programando (3)...
Conclusões:

O programa deve ser
bastante específico;

Infelizmente o NXT não
entende ainda comandos de
voz!

Necessidade de usar alguma
linguagem de programação.
Programando (3)...
Conclusões:

O programa deve ser
bastante específico;

Infelizmente o NXT não
entende ainda comandos de
voz!

Necessidade de usar alguma
linguagem de programação.
1. NXT-G
2. C# with Microsoft Robotics Developer Studio
3. BricxCC, Next Byte Codes, Not eXactly C
4. Robolab (RCX)
5. RoboMind
6. Enchanting
7. ROBOTC (comercial)
8. NXTGCC
9. leJOS NXT (Java)
10.nxtOSEK (tempo-real, Matlab)
11.ICON
12.MATLAB and Simulink
13.Lua
14.Ada
15.URBI
16.FLL NXT Navigation
17.ruby-nxt
18.Robotics.NXT
19.LibNXT
20.PyNXC
21.NXT-Python
22.LEGO Mindstorms EV3 Software
23.Physical Etoys
24.?
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G
Linguagem
“nativa” (de fábrica)
do NXT.

Baseada no
LabView;

“G” significa gráfica;

Ambiente de
programação
instalado em
Windows ou Mac;
NXT-G: JANELA INICIAL
Área de Trabalho:Work Area
Paletas de Blocos de Programação
Paleta
Comum:
contêm os
blocos mais
usados.
Paleta
Completa:
contêm vários
blocos de
programação
Paletas de Blocos de Programação
Custom Palette:
contêm vários blocos
extras baixados e
ouotros feitos pelo
usuário
Paletas de Blocos de Programação
Painel de
Configuração /
Configuration
Panel: onde se
ajustam os blocos
de programação
“Controller”:
permite transferir
programa para o NXT.
Também permite
modificar ajustes
(setup) do NXT.
“NXT Window”:
Janela “pop-up” mostra
informações à respeito
do NXT e permite
ajustes de comunicação.
“NXT Window”:
Janela “pop-up” mostra
informações à respeito
do NXT e permite
ajustes de comunicação.
“Help & Navigation”:
permite obter ajuda e
navegar pelo programa.
Blocos
M
ove
Record/PlaySound
D
isplay
W
ait(for..)Loop
Sw
itch
(If..)
Blocos
M
otor
Sound
D
isplay
Send
M
essageC
olorLam
p
Blocos
Touch
SensorSound
Sensor
LightSensorU
ltrasonic
Sensor
N
X
T
Buttons
Rotation
Sensor
Tim
er
Receive
M
essage
C
olorSensor
Blocos
W
ait(for...)Loop
Sw
itch
(If..)
Stop
Blocos
Logic
M
ath
C
om
pare
Range
(faixa)Random
(aleatório)
Variable
(variáveis)
C
onstant(constantes)
Blocos
N
um
bertoText(display/m
essages)
Text
KeepAlive
C
alibrate
Variable
(variáveis)
C
onstant(constantes)
FileAccess
Criando um novo programa:
File >> New
Criando um novo programa:
File >> New
CRIANDO UM
PROGRAMA
1.Digitar na caixa de texto o nome
do programa e cliclar no botão
“Go”;
2.Arrastar blocos para a área de
trabalho e ajustar blocos no
Painel de Configuração.
3.Quando estiver pronto:
1. Ligar NXT;
2. Plugar cabo USB no NXT;
3. Plugar cabo USB no PC -
Talvez apareça janela “Found
New Hardware” (esperar
para Windows terminar de
instalar o driver).
4.Transferindo o programa para o NXT >> Download:
Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.

2) Este ícone mostra em que direção o robô irá.

3) Este ícone mostra o nível de potência (PWM).

4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.

2) Este ícone mostra em que direção o robô irá.

3) Este ícone mostra o nível de potência (PWM).

4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
Obs: Brake x Coast

Coast: para o motor gradualmente aproveitando-se da
perda do momento. Quando setado desta forma, o
motor requer maiores torques (e tempo) para começar a
andar de novo.

Brake: para o motor imediatamente! Resulta em maior
precisão. Usa freio eletromagnético (bobinas do motor
em curto) - gastando mais bateria.
Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.

2) Este ícone mostra em que direção o robô irá.

3) Este ícone mostra o nível de potência (PWM).

4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.

2) Este ícone mostra em que direção o robô irá.

3) Este ícone mostra o nível de potência (PWM).

4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
Obs: Duration
Pode eliminar a necessidade de
monitorar o número de graus
(feedback boxes) que o motor
realizou.

Isto significa que ajustar esta caixa
para qualquer coisa diferente de
“Unlimited” fará o programa
esperar até que o motor complete
a duração especificada; somente
então o programa continuará!
MOVE BLOCK:
Tipos de Conexões de
Dados...
• “Data Hubs”

• “Data wires types”
Tipos de Conexões de
Dados...
• “Data Hubs”

• “Data wires types”
Keep Alive Block
This block will keep the NXT from
entering sleep mode.Add this block if
your program needs to wait for longer
than the NXT’s set “sleep time” (that is
configured using your NXT’s menus).
Calibration Block
Use this block to
calibrate the minimum
(0%) and maximum
(100%) values detected
by a sound or light
sensor.
Advanced Blocks:
Referências Bibliográficas:
1. Kelly, James Floyd. Lego Mindstorms NXT-G Programming Guide, 2nd ed.,Apress/Springer Science
+Business Media, p. 337, ISBN-13 (pbk): 978-1-4302-2976-6, 2010, URL: http://www.kirp.chtf.stuba.sk/
moodle/pluginfile.php/46109/mod_resource/content/1/Lego%20Mindstorms%20NXT-G
%20programming%20guide.pdf (Março/2014).
2. Griffin,Terry. The Art of Lego Mindstorms NXT-G Programming, No Starch Press, p. 288, ISBN-13:
978-1-59327-218-0,August 26, 2010. URL: http://my.safaribooksonline.com/book/hobbies/
9781593272180/4dot-motion/brake_comma_coast_comma_and_the_reset_mo (Março/2014).
3. Rosenberg, Neil. Workshop - NXT Programming For Beginners,Version 1.1, p. 102, Summer 2012,
URL: Ref.: http://www.rocwnc.org/Beginning_NXT_Programming_Workshop.pdf (Março/2014).
Problemas
1. Criar programa que simplesmente aciona
os 2 motores com a mesma potência
(75%) durante 10 segundos;

2. Idem, mas agora os motores devem
percorrer exatos 3 metros de distância
independente da velocidade!

3. Fazer o robô percorrer um quadrado com
2 (ou 3) metros de arresta. Ele deve partir
e conseguir voltar ao mesmo ponto de
partida.
Bloco “Move":
Usando sensores
para...
Descobrir distância percorrida;

Ângulo de giro da roda;

Velocidade do motor;

etc...
URL: HTTP://WWW.NXTPROGRAMS.COM/VOLUME_CALC/INDEX.HTML
Distância percorrida por
roda...
• Percorrendo uma distância
exata (independente da
velocidade):
R
P
P = 2 ⇥ ⇡ ⇥ R
d = n ⇥ 2 ⇥ ⇡ ⇥ R
onde:

R = raio da roda;

P = perímetro da roda;

n = número de voltas;
⇡ = 3.141592653589793
Detalhes:
Roda do Lego NXT: 

“@ LEGO Group 56x26”
onde 56 = 56mm de diâmetro.
Problema 3) QuadradoDados:

2 metros cada aresta;
PROBLEMAS...
Malha Aberta!!!
Falta de Sensor!
SOLUÇÃO:
FECHAR MALHA!
Uso de Sensor!
+ Sensores
Usando sensor de cor como sensor de luz...

Lendo informações de cor e índice de reflexão
luminosa - η% (0 ~ 100%)
Como fechar uma
malha?
Algoritmos de controle:

Idéias?
Seguidor de Linha:
Idéias
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10
o
para frente;

5.Repita.

Este programa faz o robô andar para frente até que ele saia par fora da
linha preta. Em seguida, ele move para a esquerda 10o. Ele assume
que a linha é um círculo e que o robô está posicionado dentro do
círculo, por isto irá percorrer o círculo em sentido anti-horário.

Ver: https://www.youtube.com/watch?v=5-1N9x7obTM
ROBÔ SEGUIDOR DE LINHA
Seguidor de Linha #1
Seguidor de Linha #1
Seguidor de Linha #1
Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10o
para frente;

5.Repita.
Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10o
para frente;

5.Repita.
Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10o
para frente;

5.Repita.
Seguidor de Linha #1
“ERRATA”:
Mudar bloco “WAIT” para Sensor >> Color Sensor !
Seguidor de Linha #1
“ERRATA”: Mudar bloco “WAIT” para Sensor >> Color Sensor !
Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10o
para frente;

5.Repita.
Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10o
para frente;

5.Repita.
Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;

2.Até que o sensor de luz leia valor > 50%;

3.Então pare a roda esquerda;

4.E mova a roda direita, 10o
para frente;

5.Repita.
Loop (Laço):

Usa-se para repetir sequencias de código. Uma condição de parada
deve ser ajustada: período de tempo transcorrido (elapsed time),
número de repetições, sinal lógico ou de sensor. Ou o laço pode ser
ajustado para ser perpétuo (forever).
Seguidor de Linha #2
Seguidor de Linha #2
Seguidor de Linha #2
Dentro de um laço perpétuo, repetidamente se
chaveia o Sensor de Cor como Sensor de Luz,
testando se o mesmo percebe um brilho maior
que um certo limiar.
O valor do limiar deve ser apropriadamente
ajustado para ser o valor médio entre o mínimo
valor que se espera ler no centro da linha e o
máximo esperado no caso da leitura no chão
usando as luzes coloridas.
Se sugere o uso de um programa
tipo “Medidor de Luz” (LightMeter)
para descobrir estes valores.
Usando o valor médio, o robô vai
andar pelo lado direito da linha
procurando manter uma leitura que
fique entre o valor para metade da
linha e metade para o chão.
Se o valor lido é maior que o limiar
então o robô está fora do lado
direito da linha e assim gira para a
esquerda para corrigir a rota (o
motor C fica mais rápido que o B).
Se o valor lido é menor que o limiar
então o robô está mais próximo do
centro da linha (e não próximo do
lado direito da linha) e assim gira
para a direita (motor B fica mais
rápido que o B).
Seguidor de Linha #2
IDÉIA:
Dentro de um laço perpétuo, repetidamente se chaveia o
Sensor de Cor como Sensor de Luz, testando se o mesmo
percebe um brilho maior que um certo limiar.
O valor do limiar deve ser apropriadamente ajustado para ser
o valor médio entre o mínimo valor que se espera ler no centro
da linha e o máximo esperado no caso da leitura no chão
usando as luzes coloridas.
Se sugere o uso de um programa tipo “Medidor de
Luz” (LightMeter) para descobrir estes valores.
Usando o valor médio, o robô vai andar pelo lado direito da
linha procurando manter uma leitura que fique entre o valor
para metade da linha e metade para o chão.
Se o valor lido é maior que o limiar então o robô
está fora do lado direito da linha e assim gira
para a esquerda para corrigir a rota (o motor C
fica mais rápido que o B).
Se o valor lido é menor que o limiar então o
robô está mais próximo do centro da linha (e
não próximo do lado direito da linha) e assim
gira para a direita (motor B fica mais rápido que
o B).
O teste do sensor e correções da direção
do robô são rapidamente repetidas pelo
laço (várias vezes por segundo).
Note que a propriedade “Unlimited” é
usada para definir Duration para todos os
blocos Motor. Isto faz com que o bloco
Motor simplesmente ajuste seu nível de
potência e o programa segue adiante sem
esperar por nada. Isto permite ao Color
Sensor testar repetidamente tão rápido
quanto possível e assim o robô reaja tão
rápido quanto possível frente a mudanças
na leitura da linha.
Seguidor de Linha #2
OBSERVAÇÕES:
Dentro de um laço perpétuo, repetidamente se chaveia o
Sensor de Cor como Sensor de Luz, testando se o mesmo
percebe um brilho maior que um certo limiar.
O valor do limiar deve ser apropriadamente ajustado para ser
o valor médio entre o mínimo valor que se espera ler no centro
da linha e o máximo esperado no caso da leitura no chão
usando as luzes coloridas.
Se sugere o uso de um programa tipo “Medidor de
Luz” (LightMeter) para descobrir estes valores.
Usando o valor médio, o robô vai andar pelo lado direito da
linha procurando manter uma leitura que fique entre o valor
para metade da linha e metade para o chão.
1.O valor do limiar (threshold): Ajustar o bloco
do Color Sensor para “Compare” o número
lido com a média entre os valores máximos e
mínimos esperados para as leituras de
intensidade da luz faz também que o
programa se ajuste as condições de
iluminação atuais e superfície (solo) do
ambiente sendo usado para testá-lo.

2.Velocidade máxima: nos 2 blocos Motor
“rápidos”, o nível de potência especificado
determina a máxima velocidade do motor. Se
a velocidade máxima for muito alta, o robô vai
acabar se perdendo em curvas mais
fechadas.

3.Curvas fechadas: nos 2 blocos Motor
“lentos”, o nível de potência especificado vai
determinar que tão fechada uma curva o robô
vai ser capaz de seguir. Baixos níveis de
potência vão permitir que o robô realize
curvas fechadas, entretanto valores maiores o
deixariam mais rápido e com condução mais
suave sobre as partes retas da linha (caminho
à seguir).
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
Seguidor de Linha #2
DETALHES:
“LIGHTMETER”
“LightMeter” (1/4)
“LightMeter” (2/4)
“LightMeter” (3/4)
“LightMeter” (4/4)
Seguir de Linha:
Idéias 2: Controlador P
Idéia do Controlador Proporcional:

Estabelecer um laço de realimentação fechado, calculando o erro e proporcional ao erro
definir uma ação de controle:
Valor 

Médio

(Ref.)
∑
Erro
K
Sinal de Controle

Atuação

(Pot. Motor) Motores

Lego
Sensor

Cor
Trajetória
Intensidade Luminosa

(Leitura atual)
+
-
Base Teórica Controlador Proporcional
Seja a fita isolante (Pista) x
Índice reflexão (sensor de luz)
x
0
+1
-1
x = mede o desvio físico do AVG.
Base Teórica Controlador Proporcional
Seja a fita isolante (Pista) x
Índice reflexão (sensor de luz)
x
0
+1
-1
x = mede o desvio físico do AVG.
x
x
Largura da fita isolante (pista).
Base Teórica Controlador Proporcional
- O que ocorre quando o AGV não anda sobre a faixa?
Largura da fita isolante (pista).
-
1
+10
O
O
O
⌘ = 35
⌘ = 37 (“Mid”)
⌘ = 47 (“Max”)
⌘ = 27 (“Min”)
O
O
⌘ = 39
CB
VB = VCruize + Kp ⇤ E
VC = VCruize Kp ⇤ E
Caso 1)
Caso 2)
⌘Sensor Erro VB VC Stearing
35 +2
= 75 + 100*(2)/Range

= 75+10 = 85
= 75-100*(2)/Range

= 75-10 = 65
39 -2
= 75+100*(-2)/Range

= 75-10 = 65
= 75 - 100*(-2)/Range

= 75+10 = 85
37 0
= 75+100*0

= 75
= 75-100*0

= 75
Erro = Ref Lido
Erro = “Mid” ⌘Sensor
Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados)
90 100
Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados)
90 100
A lâmpada parece acender
depois de um pequeno
atraso no modo “Light
Sensor”, o que pode afetar
a auto-calibração. Melhor
acender e esperar um
pouco
Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados).
90 100
A lâmpada parece acender
depois de um pequeno
atraso no modo “Light
Sensor”, o que pode afetar
a auto-calibração. Melhor
acender e esperar um
pouco.
50 0.2
9999
0
Iniciando as variáveis Min
para um valor grande e
Max para zero para
garantir que a lógica de
calibração irá alterá-los.
Continua→
Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados).
90 100
A lâmpada parece acender
depois de um pequeno
atraso no modo “Light
Sensor”, o que pode afetar
a auto-calibração. Melhor
acender e esperar um
pouco.
50 0.2
9999
0
Iniciando as variáveis Min
para um valor grande e
Max para zero para
garantir que a lógica de
calibração irá alterá-los.
Inicie um pequeno arco para
a direita assim o sensor
acabará lendo a linha e a
área à direita da linha
(incluindo o solo).
B
C
CB
Seguidor de Linha:
Controlador Proporcional
B
C
CB
LAÇO DE CALIBRAÇÃO - IDÉIA:
1. Criar um laço de repetição que só para quando o motor B girar 120o.
2. Dentro do laço se lê os valores do sensor de cor enquanto o robô está girando
para a direita para descobrir os valores de Min e Max.
3. Ler informação do Sensor de Cor no modo Light Sensor (saída numérica na porta
“Detected Color”) e guarde este valor na variável Light.
4. Se o valor Light é menor que o valor Min, então atualize Min <-- Light.
5. Se o valor Light é maior que o valor Max, então atualize Max <-- Light.
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Leia sensor de Cor no modo
“Light Sensor” (valor de 0 ~
100 na porta “Detected
Color”) e guarde em “Light”
Se o valor Light for menor que Min, então: Min ← Light.
Continua→
Detected Color Value
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Leia sensor de Cor no modo
“Light Sensor” (valor de 0 ~
100 na porta “Detected
Color”) e guarde em “Light” Se o valor Light for menor que Min, então: Min ← Light.
Continua→
Result
Value
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Se o valor Light for maior que Max, então: Max ← Light.
Continua→
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Se o valor Light for maior que Max, então: Max ← Light.
Continua→
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Calcular faixa (Range) e valor médio (Mid):
Agora que sabe os valores máximos e mínimos
esperados para a linha e o solo, calculamos a faixa de
valores: Range = Max - Min.
Calculamos agora o valor médio entre Min e Max e guardamos este valor
na variável Mid: Mid = (Max + Min) / 2. O robô vai esperar encontrar o
valor médio à direita da borda da linha - valor que procurará manter.
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Reposicionando o Robô no lado direito da linha:
Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de
volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda
até que encontra um valor imediatamente mais escuro que Mid (o médio), o que
deveria posicionar o robô no lado direito da linha que corresponde a maneira
como pretende seguir a linha.
Quando o sensor encontra o
ponto desejado para
começar a seguir a linha,
soa um beep para indicar
que a auto-calibração foi
completada.
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Reposicionando o Robô no lado direito da linha:
Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de
volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda
até que encontra um valor imediatamente mais escuro que Mid (o médio), o que
deveria posicionar o robô no lado direito da linha que corresponde a maneira
como pretende seguir a linha.
Quando o sensor encontra o
ponto desejado para
começar a seguir a linha,
soa um beep para indicar
que a auto-calibração foi
completada.
Trigger
Point
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Reposicionando o Robô no lado direito da linha:
Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de
volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda
até que encontra um valor imediatamente mais escuro que Mid (o médio), o que
deveria posicionar o robô no lado direito da linha que corresponde a maneira
como pretende seguir a linha.
Quando o sensor encontra o
ponto desejado para
começar a seguir a linha,
soa um beep para indicar
que a auto-calibração foi
completada.
Trigger
Point
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Seguindo Linha → Laço de Controle Proporcional - Parte 1/2
Obtenha uma leitura do Sensor de Cor no
modo “Light Sensor” e subtraia este valor do
valor médio (Mid) ➠ calculando o erro.
Se este erro é positivo então robô está mais
para a esquerda “vendo” a parte mais escura
(central) da pista. Se o erro é negativo, então
o robô está muito à direita com o sensor
“vendo” mais o solo. A magnitude do erro
corresponde à quão longe o robô está da sua
“meta” (valor médio).
Detected
Color
Multiplique o valor do erro pelo valor Gain para enfatizar a resposta ao
erro de acordo com a magnitude de Gain. Então divida o resultado pelo
valor Range (faixa) para normalizar o erro em relação à faixa total
esperada. Guarde este valor na variável Correction.
B
CB
Continua→
Seguindo Linha → Laço de Controle Proporcional - Parte 1/2
Obtenha uma leitura do Sensor de Cor no
modo “Light Sensor” e subtraia este valor do
valor médio (Mid) ➠ calculando o erro.
Se este erro é positivo então robô está mais
para a esquerda “vendo” a parte mais escura
(central) da pista. Se o erro é negativo, então
o robô está muito à direita com o sensor
“vendo” mais o solo. A magnitude do erro
corresponde à quão longe o robô está da sua
“meta” (valor médio).
Detected
Color
Multiplique o valor do erro pelo valor Gain para enfatizar a resposta ao
erro de acordo com a magnitude de Gain. Então divida o resultado pelo
valor Range (faixa) para normalizar o erro em relação à faixa total
esperada. Guarde este valor na variável Correction.
Valor
Médio
(Ref.)
∑
Erro
K
Sinal de Controle
Atuação
(Pot. Motor) Motores
Lego
Sensor
Cor
Trajetória
Intensidade Luminosa
(Leitura atual)
+
-
Seguidor de Linha:
Controlador Proporcional
B
C
CB
Fim.
Seguindo Linha → Laço de Controle Proporcional - Parte 2/2
Use o valor de Correction para aplicar uma ação de controle (steering) sobre os motores. Partindo do
valor base Power definido na inicialização use (Power + Correction) para o motor B e (Power −
Correction) para o motor C. Isto fará com que o robô se posicione da direção correta para continuar
seguindo a linha pelo seu lado direito. Note que a correção é proporcional ao tamanho do desvio. Se for
grande, um giro mais forte será produzido, senão uma leve correção na sua orientação é realizada. Isto
permite um deslocamento mais rápido e suave.
Laço
perpétuo
(Forever)
Power +
Correction
Power −
Correction
Power Power
B
C
Outros controladores +
sofisticados...
Controle PI --> exige noção de integral;

Controle PD --> exige noção de derivada;

Controle PID: adotado em 90% da indústria.

Mais “trabalho”: sintonia (ajuste) do mesmo... --
> Controle Automático
PID
PID
Error
PID
PID Analógico:
PID Digital:
ControlTask+
y=lectura_sensor();+
e=r5y;+
//+Ley+de+control+
p0=Kp*(1+Kd/Ts);+
p1=Kp*(1+2*Kd/Ts5Ki*Ts);+
p2=(Kp*Kd)/Ts;+
u=ua1+p0*e+p1*ea1+p2*ea2;+
//+Salida+para+sistema+
Robot.motor1=u;+
//+Actualizando+variables+próximo+ciclo+
ua2=ua1;+
ua1=u;+
ea2=ea1;+
ea1=e;+
ya2=ya1;+
ya1=y;+
//+return+
!+samplingTimeControl+[ms]+
( ) ( )!
"
#
−+−−%
&
'
++−−+−= ]2[]1[2][][]1[][]1[][ kekeke
T
T
ke
T
T
kekeKkuku
s
d
i
s
c
RTOS	for	Lego	NXT:
NxtOSEK	

nxtOSEK	[	h6p://lejos-osek.sourceforge.net/	]

2007-2008	Takashi	Chikamasa

nxtOSEK/JSP

ANSI	C/C++	with	OSEK/μITRON	RTOS	for	LEGO®	MINDSTORMS®	NXT

nxtOSEK	is	an	open	source	firmware	for	LEGO	MINDSTORMS	NXT.	nxtOSEK	consists	of	device	
driver	of	leJOS	NXJ	C/Assembly	source	code,	TOPPERS	OSEK	Real-Time	Opera[ng	System	
source	code	that	includes	ARM7	(ATMEL	AT91SAM7S256)	specific	por[ng	part,	and	glue	code	
to	make	them	work	together.	nxtOSEK	can	provide:	ANSI	C/C++	programming	environment	by	
using	GCC	tool	chain	C	API	for	NXT	Sensors,	Motor,	and	other	devices	C++	API	for	NXT...	
nxtOSEK	applica[on	videos:

[h6p://lejos-osek.sourceforge.net/videos.htm		]:

NXT	SCARA	[h6p://lejos-osek.sourceforge.net/videos.htm#NXT_SCARA	]
Real-Time Operation System
RTOS	for	Lego	NXT:
NxtOSEK	

nxtOSEK	[	h6p://lejos-osek.sourceforge.net/	]

2007-2008	Takashi	Chikamasa

nxtOSEK/JSP

ANSI	C/C++	with	OSEK/μITRON	RTOS	for	LEGO®	MINDSTORMS®	NXT

nxtOSEK	is	an	open	source	firmware	for	LEGO	MINDSTORMS	NXT.	nxtOSEK	consists	of	device	
driver	of	leJOS	NXJ	C/Assembly	source	code,	TOPPERS	OSEK	Real-Time	Opera[ng	System	
source	code	that	includes	ARM7	(ATMEL	AT91SAM7S256)	specific	por[ng	part,	and	glue	code	
to	make	them	work	together.	nxtOSEK	can	provide:	ANSI	C/C++	programming	environment	by	
using	GCC	tool	chain	C	API	for	NXT	Sensors,	Motor,	and	other	devices	C++	API	for	NXT...	
nxtOSEK	applica[on	videos:

[h6p://lejos-osek.sourceforge.net/videos.htm		]:

NXT	SCARA	[h6p://lejos-osek.sourceforge.net/videos.htm#NXT_SCARA	]
Real-Time Operation System
OUTRAS IDÉIAS DE ESTRUTURAS...
OUTRAS IDÉIAS DE ESTRUTURAS...
OUTRAS IDÉIAS DE ESTRUTURAS...
OUTRAS IDÉIAS DE ESTRUTURAS...
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)

Mais conteúdo relacionado

Mais procurados

Introdução aos Kits Lego NXT
Introdução aos Kits Lego NXTIntrodução aos Kits Lego NXT
Introdução aos Kits Lego NXT
Fernando Passold
 
Lego mindstorms ev3
Lego mindstorms ev3Lego mindstorms ev3
Lego mindstorms ev3
Angelo Pereira
 
Programando robôs Lego com NXC
Programando robôs Lego com NXC Programando robôs Lego com NXC
Programando robôs Lego com NXC
Isvaldo Souza
 
EV3#3: Exercicios com o sensor de ultrassons
EV3#3: Exercicios com o sensor de ultrassonsEV3#3: Exercicios com o sensor de ultrassons
EV3#3: Exercicios com o sensor de ultrassons
Ana Carneirinho
 
Infraestrutura de Redes
Infraestrutura de RedesInfraestrutura de Redes
Infraestrutura de Redes
Leandro Machado
 
03 Diagnóstico de Motores Eléctricos - Modos de Falha
03 Diagnóstico de Motores Eléctricos - Modos de Falha03 Diagnóstico de Motores Eléctricos - Modos de Falha
03 Diagnóstico de Motores Eléctricos - Modos de Falha
DMC Engenharia e Sistemas Ibéricos Lda
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Dalton Martins
 
Evolução dos processadores
Evolução dos processadoresEvolução dos processadores
Evolução dos processadores
Tiago Garcia
 
O poder da gentileza na prática - 5 princípios para uma vida de excelência
O poder da gentileza na prática - 5 princípios para uma vida de excelênciaO poder da gentileza na prática - 5 princípios para uma vida de excelência
O poder da gentileza na prática - 5 princípios para uma vida de excelência
andremagela
 
EXCEL 2019
EXCEL 2019EXCEL 2019
EXCEL 2019
Bruno480365
 
Tudo sobre Paquímetro
Tudo sobre PaquímetroTudo sobre Paquímetro
Tudo sobre Paquímetro
g_barea
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
Wellington Oliveira
 
Tutorial: quebrando senha do windows
Tutorial: quebrando senha do windowsTutorial: quebrando senha do windows
Tutorial: quebrando senha do windows
douglasmacionilio
 
Programacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de EnsinodocProgramacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de Ensinodoc
DESIGN DIGITAL UNIARA 2012
 
Blender: Primeiros Passos
Blender: Primeiros PassosBlender: Primeiros Passos
Blender: Primeiros Passos
Andres Jessé Porfirio
 
Aula 1 rede com packet tracer
Aula 1 rede com packet tracerAula 1 rede com packet tracer
Aula 1 rede com packet tracer
Arlimar Jacinto
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
Mauro Pereira
 
tipos de computadores.pptx
tipos de computadores.pptxtipos de computadores.pptx
tipos de computadores.pptx
VagnerRodriguesDosSa1
 
Sistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdfSistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdf
Os Fantasmas !
 
NBR 12288 - Representação de furos de centro.pdf
NBR 12288 - Representação de furos de centro.pdfNBR 12288 - Representação de furos de centro.pdf
NBR 12288 - Representação de furos de centro.pdf
Juemy Moraes
 

Mais procurados (20)

Introdução aos Kits Lego NXT
Introdução aos Kits Lego NXTIntrodução aos Kits Lego NXT
Introdução aos Kits Lego NXT
 
Lego mindstorms ev3
Lego mindstorms ev3Lego mindstorms ev3
Lego mindstorms ev3
 
Programando robôs Lego com NXC
Programando robôs Lego com NXC Programando robôs Lego com NXC
Programando robôs Lego com NXC
 
EV3#3: Exercicios com o sensor de ultrassons
EV3#3: Exercicios com o sensor de ultrassonsEV3#3: Exercicios com o sensor de ultrassons
EV3#3: Exercicios com o sensor de ultrassons
 
Infraestrutura de Redes
Infraestrutura de RedesInfraestrutura de Redes
Infraestrutura de Redes
 
03 Diagnóstico de Motores Eléctricos - Modos de Falha
03 Diagnóstico de Motores Eléctricos - Modos de Falha03 Diagnóstico de Motores Eléctricos - Modos de Falha
03 Diagnóstico de Motores Eléctricos - Modos de Falha
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
 
Evolução dos processadores
Evolução dos processadoresEvolução dos processadores
Evolução dos processadores
 
O poder da gentileza na prática - 5 princípios para uma vida de excelência
O poder da gentileza na prática - 5 princípios para uma vida de excelênciaO poder da gentileza na prática - 5 princípios para uma vida de excelência
O poder da gentileza na prática - 5 princípios para uma vida de excelência
 
EXCEL 2019
EXCEL 2019EXCEL 2019
EXCEL 2019
 
Tudo sobre Paquímetro
Tudo sobre PaquímetroTudo sobre Paquímetro
Tudo sobre Paquímetro
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Tutorial: quebrando senha do windows
Tutorial: quebrando senha do windowsTutorial: quebrando senha do windows
Tutorial: quebrando senha do windows
 
Programacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de EnsinodocProgramacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de Ensinodoc
 
Blender: Primeiros Passos
Blender: Primeiros PassosBlender: Primeiros Passos
Blender: Primeiros Passos
 
Aula 1 rede com packet tracer
Aula 1 rede com packet tracerAula 1 rede com packet tracer
Aula 1 rede com packet tracer
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
tipos de computadores.pptx
tipos de computadores.pptxtipos de computadores.pptx
tipos de computadores.pptx
 
Sistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdfSistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdf
 
NBR 12288 - Representação de furos de centro.pdf
NBR 12288 - Representação de furos de centro.pdfNBR 12288 - Representação de furos de centro.pdf
NBR 12288 - Representação de furos de centro.pdf
 

Destaque

Limitações de funcionamento sensor de estacionamento Ibertec
Limitações de funcionamento sensor de estacionamento IbertecLimitações de funcionamento sensor de estacionamento Ibertec
Limitações de funcionamento sensor de estacionamento Ibertec
ibertec
 
As-i - Actuator Sensor Interface
As-i  - Actuator Sensor InterfaceAs-i  - Actuator Sensor Interface
As-i - Actuator Sensor Interface
André Luis Lenz
 
Mte thomson motos-2011
Mte thomson motos-2011Mte thomson motos-2011
Mte thomson motos-2011
mapple2012
 
Como instalar seu sensor de estacionamento - Guia de instalação
Como instalar seu sensor de estacionamento - Guia de instalaçãoComo instalar seu sensor de estacionamento - Guia de instalação
Como instalar seu sensor de estacionamento - Guia de instalação
ibertec
 
Surface Acoustic Wave (SAW) Wireless Passive RF Sensor Systems
Surface Acoustic Wave (SAW) Wireless Passive RF Sensor SystemsSurface Acoustic Wave (SAW) Wireless Passive RF Sensor Systems
Surface Acoustic Wave (SAW) Wireless Passive RF Sensor Systems
Fuentek, LLC
 
Conteudo da-aula-injecao-eletronica-do-gol
Conteudo da-aula-injecao-eletronica-do-golConteudo da-aula-injecao-eletronica-do-gol
Conteudo da-aula-injecao-eletronica-do-gol
Adilson Amorim
 
Designing with Sensors: Creating Adaptive Experiences
Designing with Sensors: Creating Adaptive ExperiencesDesigning with Sensors: Creating Adaptive Experiences
Designing with Sensors: Creating Adaptive Experiences
Avi Itzkovitch
 
Principio básico de funcionamento sensor de estacionamento Ibertec
Principio básico de funcionamento sensor de estacionamento IbertecPrincipio básico de funcionamento sensor de estacionamento Ibertec
Principio básico de funcionamento sensor de estacionamento Ibertec
ibertec
 
Eliminando problemas de seu sensor Ibertec
Eliminando problemas de seu sensor IbertecEliminando problemas de seu sensor Ibertec
Eliminando problemas de seu sensor Ibertec
ibertec
 
ontologie de capteurs
ontologie de capteursontologie de capteurs
ontologie de capteurs
catherine roussey
 
Sensor de velocidad vss
Sensor de velocidad vssSensor de velocidad vss
Sensor de velocidad vss
Jonathan Alcivar
 
Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...
Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...
Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...
autoprestige
 
PLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3D
PLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3DPLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3D
PLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3D
Intelliact AG
 
I cursa sant jordi
I cursa sant jordiI cursa sant jordi
I cursa sant jordilluís nater
 
Contoh laporan praktek
Contoh laporan praktekContoh laporan praktek
Contoh laporan praktekAnang Andaka
 
SensLab Anr Stic2010
SensLab Anr Stic2010SensLab Anr Stic2010
SensLab Anr Stic2010
Eric Fleury
 
Smoke detector Fibaro certified CE EN 14604
Smoke detector Fibaro certified CE EN 14604Smoke detector Fibaro certified CE EN 14604
Smoke detector Fibaro certified CE EN 14604
Domotica daVinci
 
IMMO-SENSOR® Produktepräsentation
IMMO-SENSOR® ProduktepräsentationIMMO-SENSOR® Produktepräsentation
IMMO-SENSOR® Produktepräsentation
Baumgartner Immobilien-Management
 
Story Lab - Sensor Journalism [23-04-2015, Liège]
Story Lab - Sensor Journalism [23-04-2015, Liège]Story Lab - Sensor Journalism [23-04-2015, Liège]
Story Lab - Sensor Journalism [23-04-2015, Liège]
Gregory Berger
 
Apple's Smart Sensor Technologies -- market research report (sample)
Apple's Smart Sensor Technologies -- market research report (sample)Apple's Smart Sensor Technologies -- market research report (sample)
Apple's Smart Sensor Technologies -- market research report (sample)
MEMS Journal, Inc.
 

Destaque (20)

Limitações de funcionamento sensor de estacionamento Ibertec
Limitações de funcionamento sensor de estacionamento IbertecLimitações de funcionamento sensor de estacionamento Ibertec
Limitações de funcionamento sensor de estacionamento Ibertec
 
As-i - Actuator Sensor Interface
As-i  - Actuator Sensor InterfaceAs-i  - Actuator Sensor Interface
As-i - Actuator Sensor Interface
 
Mte thomson motos-2011
Mte thomson motos-2011Mte thomson motos-2011
Mte thomson motos-2011
 
Como instalar seu sensor de estacionamento - Guia de instalação
Como instalar seu sensor de estacionamento - Guia de instalaçãoComo instalar seu sensor de estacionamento - Guia de instalação
Como instalar seu sensor de estacionamento - Guia de instalação
 
Surface Acoustic Wave (SAW) Wireless Passive RF Sensor Systems
Surface Acoustic Wave (SAW) Wireless Passive RF Sensor SystemsSurface Acoustic Wave (SAW) Wireless Passive RF Sensor Systems
Surface Acoustic Wave (SAW) Wireless Passive RF Sensor Systems
 
Conteudo da-aula-injecao-eletronica-do-gol
Conteudo da-aula-injecao-eletronica-do-golConteudo da-aula-injecao-eletronica-do-gol
Conteudo da-aula-injecao-eletronica-do-gol
 
Designing with Sensors: Creating Adaptive Experiences
Designing with Sensors: Creating Adaptive ExperiencesDesigning with Sensors: Creating Adaptive Experiences
Designing with Sensors: Creating Adaptive Experiences
 
Principio básico de funcionamento sensor de estacionamento Ibertec
Principio básico de funcionamento sensor de estacionamento IbertecPrincipio básico de funcionamento sensor de estacionamento Ibertec
Principio básico de funcionamento sensor de estacionamento Ibertec
 
Eliminando problemas de seu sensor Ibertec
Eliminando problemas de seu sensor IbertecEliminando problemas de seu sensor Ibertec
Eliminando problemas de seu sensor Ibertec
 
ontologie de capteurs
ontologie de capteursontologie de capteurs
ontologie de capteurs
 
Sensor de velocidad vss
Sensor de velocidad vssSensor de velocidad vss
Sensor de velocidad vss
 
Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...
Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...
Smart Sensor capteurs électriques pour systèmes d’attelage par autoprestige-u...
 
PLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3D
PLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3DPLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3D
PLM Open Hours - Systemtechnische Integration von Aktor-Sensor-Listen: BMK im 3D
 
I cursa sant jordi
I cursa sant jordiI cursa sant jordi
I cursa sant jordi
 
Contoh laporan praktek
Contoh laporan praktekContoh laporan praktek
Contoh laporan praktek
 
SensLab Anr Stic2010
SensLab Anr Stic2010SensLab Anr Stic2010
SensLab Anr Stic2010
 
Smoke detector Fibaro certified CE EN 14604
Smoke detector Fibaro certified CE EN 14604Smoke detector Fibaro certified CE EN 14604
Smoke detector Fibaro certified CE EN 14604
 
IMMO-SENSOR® Produktepräsentation
IMMO-SENSOR® ProduktepräsentationIMMO-SENSOR® Produktepräsentation
IMMO-SENSOR® Produktepräsentation
 
Story Lab - Sensor Journalism [23-04-2015, Liège]
Story Lab - Sensor Journalism [23-04-2015, Liège]Story Lab - Sensor Journalism [23-04-2015, Liège]
Story Lab - Sensor Journalism [23-04-2015, Liège]
 
Apple's Smart Sensor Technologies -- market research report (sample)
Apple's Smart Sensor Technologies -- market research report (sample)Apple's Smart Sensor Technologies -- market research report (sample)
Apple's Smart Sensor Technologies -- market research report (sample)
 

Semelhante a Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)

Robotica1 ok
Robotica1 okRobotica1 ok
Robotica1
Robotica1Robotica1
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Intel Software Brasil
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Fernando Passold
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
Luciano Palma
 
Robot Lego programado em Java
Robot Lego programado em JavaRobot Lego programado em Java
Robot Lego programado em Java
Joao Alves
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
fmtpereira
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
Rui Alves
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
engelrfs
 
Workshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - FarruscoWorkshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - Farrusco
Articacc, Lda
 
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piImpressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Marcos Aurelio Barranco
 
Software Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaSoftware Livre para Aplicações em Robótica
Software Livre para Aplicações em Robótica
Linux User Goup Alagoas
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
Campus Party Brasil
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Ricardo Rufino
 
ptt
pttptt
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGA
Campus Party Brasil
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
Intel Software Brasil
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
Elaine Cecília Gatto
 

Semelhante a Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G) (20)

Robotica1 ok
Robotica1 okRobotica1 ok
Robotica1 ok
 
Robotica1
Robotica1Robotica1
Robotica1
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
Robot Lego programado em Java
Robot Lego programado em JavaRobot Lego programado em Java
Robot Lego programado em Java
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Workshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - FarruscoWorkshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - Farrusco
 
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piImpressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
 
Software Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaSoftware Livre para Aplicações em Robótica
Software Livre para Aplicações em Robótica
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
ptt
pttptt
ptt
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGA
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 

Mais de Fernando Passold

Root locus cap_9_parte_4_pt
Root locus cap_9_parte_4_ptRoot locus cap_9_parte_4_pt
Root locus cap_9_parte_4_pt
Fernando Passold
 
Desenvolvimento de robô social
Desenvolvimento de robô socialDesenvolvimento de robô social
Desenvolvimento de robô social
Fernando Passold
 
Apostila sobre Controle Digital
Apostila sobre Controle DigitalApostila sobre Controle Digital
Apostila sobre Controle Digital
Fernando Passold
 
Trabalho 2 2015_2-pages_antigo
Trabalho 2 2015_2-pages_antigoTrabalho 2 2015_2-pages_antigo
Trabalho 2 2015_2-pages_antigo
Fernando Passold
 
Notas extras sobre Mapas de Karnaugh
Notas extras sobre Mapas de KarnaughNotas extras sobre Mapas de Karnaugh
Notas extras sobre Mapas de Karnaugh
Fernando Passold
 
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Fernando Passold
 
Tutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PIDTutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PID
Fernando Passold
 
Tutorial softwares da área de Luminotécnica
Tutorial softwares da área de LuminotécnicaTutorial softwares da área de Luminotécnica
Tutorial softwares da área de Luminotécnica
Fernando Passold
 
Luminotécnica: Parte 2) Cálculos
Luminotécnica: Parte 2) CálculosLuminotécnica: Parte 2) Cálculos
Luminotécnica: Parte 2) Cálculos
Fernando Passold
 
Luminotecnica: Parte 1) Fator Conforto e outras definições.
Luminotecnica: Parte 1) Fator Conforto e outras definições.Luminotecnica: Parte 1) Fator Conforto e outras definições.
Luminotecnica: Parte 1) Fator Conforto e outras definições.
Fernando Passold
 
Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)
Fernando Passold
 
Introdução à Robótica Móvel - Visão Geral (2011/2)
Introdução à Robótica Móvel - Visão Geral (2011/2)Introdução à Robótica Móvel - Visão Geral (2011/2)
Introdução à Robótica Móvel - Visão Geral (2011/2)
Fernando Passold
 
Proposta Curso de Eng. da Computação (de 2011 !)
Proposta Curso de Eng. da Computação (de 2011 !)Proposta Curso de Eng. da Computação (de 2011 !)
Proposta Curso de Eng. da Computação (de 2011 !)
Fernando Passold
 
Root locus cap_9_parte_2_color
Root locus cap_9_parte_2_colorRoot locus cap_9_parte_2_color
Root locus cap_9_parte_2_color
Fernando Passold
 
Introdução aos kits Lego RCX
Introdução aos kits Lego RCXIntrodução aos kits Lego RCX
Introdução aos kits Lego RCX
Fernando Passold
 
Basic step1
Basic step1Basic step1
Basic step1
Fernando Passold
 
Introducción a la Robótica Móvil - part 4/4
Introducción a la Robótica Móvil - part 4/4Introducción a la Robótica Móvil - part 4/4
Introducción a la Robótica Móvil - part 4/4
Fernando Passold
 
Introducción a la Robótica Móvil - part 3/4
Introducción a la Robótica Móvil - part 3/4Introducción a la Robótica Móvil - part 3/4
Introducción a la Robótica Móvil - part 3/4
Fernando Passold
 
Introducción a la Robótica Móvil - part 2/4
Introducción a la Robótica Móvil - part 2/4Introducción a la Robótica Móvil - part 2/4
Introducción a la Robótica Móvil - part 2/4
Fernando Passold
 
Introducción a la Robótica Móvil
Introducción a la Robótica MóvilIntroducción a la Robótica Móvil
Introducción a la Robótica Móvil
Fernando Passold
 

Mais de Fernando Passold (20)

Root locus cap_9_parte_4_pt
Root locus cap_9_parte_4_ptRoot locus cap_9_parte_4_pt
Root locus cap_9_parte_4_pt
 
Desenvolvimento de robô social
Desenvolvimento de robô socialDesenvolvimento de robô social
Desenvolvimento de robô social
 
Apostila sobre Controle Digital
Apostila sobre Controle DigitalApostila sobre Controle Digital
Apostila sobre Controle Digital
 
Trabalho 2 2015_2-pages_antigo
Trabalho 2 2015_2-pages_antigoTrabalho 2 2015_2-pages_antigo
Trabalho 2 2015_2-pages_antigo
 
Notas extras sobre Mapas de Karnaugh
Notas extras sobre Mapas de KarnaughNotas extras sobre Mapas de Karnaugh
Notas extras sobre Mapas de Karnaugh
 
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
 
Tutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PIDTutorial sobre Ajuste de Controladores PID
Tutorial sobre Ajuste de Controladores PID
 
Tutorial softwares da área de Luminotécnica
Tutorial softwares da área de LuminotécnicaTutorial softwares da área de Luminotécnica
Tutorial softwares da área de Luminotécnica
 
Luminotécnica: Parte 2) Cálculos
Luminotécnica: Parte 2) CálculosLuminotécnica: Parte 2) Cálculos
Luminotécnica: Parte 2) Cálculos
 
Luminotecnica: Parte 1) Fator Conforto e outras definições.
Luminotecnica: Parte 1) Fator Conforto e outras definições.Luminotecnica: Parte 1) Fator Conforto e outras definições.
Luminotecnica: Parte 1) Fator Conforto e outras definições.
 
Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)
 
Introdução à Robótica Móvel - Visão Geral (2011/2)
Introdução à Robótica Móvel - Visão Geral (2011/2)Introdução à Robótica Móvel - Visão Geral (2011/2)
Introdução à Robótica Móvel - Visão Geral (2011/2)
 
Proposta Curso de Eng. da Computação (de 2011 !)
Proposta Curso de Eng. da Computação (de 2011 !)Proposta Curso de Eng. da Computação (de 2011 !)
Proposta Curso de Eng. da Computação (de 2011 !)
 
Root locus cap_9_parte_2_color
Root locus cap_9_parte_2_colorRoot locus cap_9_parte_2_color
Root locus cap_9_parte_2_color
 
Introdução aos kits Lego RCX
Introdução aos kits Lego RCXIntrodução aos kits Lego RCX
Introdução aos kits Lego RCX
 
Basic step1
Basic step1Basic step1
Basic step1
 
Introducción a la Robótica Móvil - part 4/4
Introducción a la Robótica Móvil - part 4/4Introducción a la Robótica Móvil - part 4/4
Introducción a la Robótica Móvil - part 4/4
 
Introducción a la Robótica Móvil - part 3/4
Introducción a la Robótica Móvil - part 3/4Introducción a la Robótica Móvil - part 3/4
Introducción a la Robótica Móvil - part 3/4
 
Introducción a la Robótica Móvil - part 2/4
Introducción a la Robótica Móvil - part 2/4Introducción a la Robótica Móvil - part 2/4
Introducción a la Robótica Móvil - part 2/4
 
Introducción a la Robótica Móvil
Introducción a la Robótica MóvilIntroducción a la Robótica Móvil
Introducción a la Robótica Móvil
 

Último

7133lllllllllllllllllllllllllllll67.pptx
7133lllllllllllllllllllllllllllll67.pptx7133lllllllllllllllllllllllllllll67.pptx
7133lllllllllllllllllllllllllllll67.pptx
LEANDROSPANHOL1
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
eaiprofpolly
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
todorokillmepls
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
Érika Rufo
 
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
PatriciaZanoli
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
JoeteCarvalho
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
A Evolução da história da Física - Albert Einstein
A Evolução da história da Física - Albert EinsteinA Evolução da história da Física - Albert Einstein
A Evolução da história da Física - Albert Einstein
WelberMerlinCardoso
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 

Último (20)

7133lllllllllllllllllllllllllllll67.pptx
7133lllllllllllllllllllllllllllll67.pptx7133lllllllllllllllllllllllllllll67.pptx
7133lllllllllllllllllllllllllllll67.pptx
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
 
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
2020_09_17 - Biomas Mundiais [Salvo automaticamente].pptx
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
A Evolução da história da Física - Albert Einstein
A Evolução da história da Física - Albert EinsteinA Evolução da história da Física - Albert Einstein
A Evolução da história da Física - Albert Einstein
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 

Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)

  • 1. Programação Lego NXT NXT-G 2.0 Introdução à Eng. Elétrica Prof. Fernando Passold Versão de 2016/1
  • 2. Detalhes da Linguagem A nova versão da linguagem gráfica NXT-G (2.0) suporta cálculos em “ponto-flutuante” (com casas decimais)(float). A versão anterior só permitia realizar cálculos com números inteiros (int). Existem outras linguagens...
  • 3. Para documentar estrutura física realizada Lego Digital Designer: http://ldd.lego.com/en- us/ 

  • 4. Começando a trabalhar 1) Comandos em malha- aberta (sem realimentação, sem feedback)
  • 6. Programa... Def.: Seqüência lógica de passos que permite coletar dados de entrada, processar esta informação de entrada e gerar uma saída específica conforme desejado. Ex.: Programa para resolver equação do 2o-grau:
 Dados Entrada: a, b e c. Processamento:
 
 
 
 
 Saída: x1 e x2.
 ax2 + bx + c = 0 = b2 4ac x = b ± p 2a
  • 7. Programando... Exemplo Válido? Programador: SPOT, ande para frente e pare. [SPOT: apenas fica parado] Que aconteceu?
 Se alguém pedisse que você “ande um pouco e pare”, quão longe você iria? Quando você iria parar? Máquinas: indicar com precisão o que deve ser
  • 8. Programando (2)... Exemplo Válido: Programador: SPOT, ande para frente 5 segundos e pare. [SPOT: se move para frente durante 5 segundos e para.] Programador: SPOT, gire 180 graus e então ande até meus pés.
 
 [SPOT: ?]
 1o-caso: note são algumas instruções: andar para frente, esperar os 5 segundos, parar.
 (São diferentes, simples e pequenos programas intercalados). 2o-caso: Girar 180o no sentido horário ou anti- horário? Outro problema: “pés”?
  • 9. Programando (3)... Conclusões: O programa deve ser bastante específico; Infelizmente o NXT não entende ainda comandos de voz! Necessidade de usar alguma linguagem de programação.
  • 10. Programando (3)... Conclusões: O programa deve ser bastante específico; Infelizmente o NXT não entende ainda comandos de voz! Necessidade de usar alguma linguagem de programação. 1. NXT-G 2. C# with Microsoft Robotics Developer Studio 3. BricxCC, Next Byte Codes, Not eXactly C 4. Robolab (RCX) 5. RoboMind 6. Enchanting 7. ROBOTC (comercial) 8. NXTGCC 9. leJOS NXT (Java) 10.nxtOSEK (tempo-real, Matlab) 11.ICON 12.MATLAB and Simulink 13.Lua 14.Ada 15.URBI 16.FLL NXT Navigation 17.ruby-nxt 18.Robotics.NXT 19.LibNXT 20.PyNXC 21.NXT-Python 22.LEGO Mindstorms EV3 Software 23.Physical Etoys 24.?
  • 11. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 12. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 13. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 14. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 15. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 16. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 17. NXT-G Linguagem “nativa” (de fábrica) do NXT. Baseada no LabView; “G” significa gráfica; Ambiente de programação instalado em Windows ou Mac;
  • 20. Paletas de Blocos de Programação Paleta Comum: contêm os blocos mais usados.
  • 22. Custom Palette: contêm vários blocos extras baixados e ouotros feitos pelo usuário Paletas de Blocos de Programação
  • 23. Painel de Configuração / Configuration Panel: onde se ajustam os blocos de programação
  • 24. “Controller”: permite transferir programa para o NXT. Também permite modificar ajustes (setup) do NXT.
  • 25. “NXT Window”: Janela “pop-up” mostra informações à respeito do NXT e permite ajustes de comunicação.
  • 26. “NXT Window”: Janela “pop-up” mostra informações à respeito do NXT e permite ajustes de comunicação.
  • 27. “Help & Navigation”: permite obter ajuda e navegar pelo programa.
  • 34. Criando um novo programa: File >> New
  • 35. Criando um novo programa: File >> New
  • 36. CRIANDO UM PROGRAMA 1.Digitar na caixa de texto o nome do programa e cliclar no botão “Go”; 2.Arrastar blocos para a área de trabalho e ajustar blocos no Painel de Configuração. 3.Quando estiver pronto: 1. Ligar NXT; 2. Plugar cabo USB no NXT; 3. Plugar cabo USB no PC - Talvez apareça janela “Found New Hardware” (esperar para Windows terminar de instalar o driver).
  • 37. 4.Transferindo o programa para o NXT >> Download:
  • 38. Common Blocks: Move: 1) Estas letras no topo do bloco mostram que portas no NXT serão controladas. 2) Este ícone mostra em que direção o robô irá. 3) Este ícone mostra o nível de potência (PWM). 4) Mostra como foi ajustada a Propriedade “Duration”: se para ilimitada (unlimited), graus (degrees), rotations (rotações) ou segundos (seconds). Um ícone com imagem “-” significa a Propriedade de “Direction” foi ajustada para “stop”. 7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou. O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô andar certa distância pré-especificada!
  • 39. Common Blocks: Move: 1) Estas letras no topo do bloco mostram que portas no NXT serão controladas. 2) Este ícone mostra em que direção o robô irá. 3) Este ícone mostra o nível de potência (PWM). 4) Mostra como foi ajustada a Propriedade “Duration”: se para ilimitada (unlimited), graus (degrees), rotations (rotações) ou segundos (seconds). Um ícone com imagem “-” significa a Propriedade de “Direction” foi ajustada para “stop”. 7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou. O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô andar certa distância pré-especificada! Obs: Brake x Coast Coast: para o motor gradualmente aproveitando-se da perda do momento. Quando setado desta forma, o motor requer maiores torques (e tempo) para começar a andar de novo. Brake: para o motor imediatamente! Resulta em maior precisão. Usa freio eletromagnético (bobinas do motor em curto) - gastando mais bateria.
  • 40. Common Blocks: Move: 1) Estas letras no topo do bloco mostram que portas no NXT serão controladas. 2) Este ícone mostra em que direção o robô irá. 3) Este ícone mostra o nível de potência (PWM). 4) Mostra como foi ajustada a Propriedade “Duration”: se para ilimitada (unlimited), graus (degrees), rotations (rotações) ou segundos (seconds). Um ícone com imagem “-” significa a Propriedade de “Direction” foi ajustada para “stop”. 7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou. O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô andar certa distância pré-especificada!
  • 41. Common Blocks: Move: 1) Estas letras no topo do bloco mostram que portas no NXT serão controladas. 2) Este ícone mostra em que direção o robô irá. 3) Este ícone mostra o nível de potência (PWM). 4) Mostra como foi ajustada a Propriedade “Duration”: se para ilimitada (unlimited), graus (degrees), rotations (rotações) ou segundos (seconds). Um ícone com imagem “-” significa a Propriedade de “Direction” foi ajustada para “stop”. 7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou. O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô andar certa distância pré-especificada! Obs: Duration Pode eliminar a necessidade de monitorar o número de graus (feedback boxes) que o motor realizou. Isto significa que ajustar esta caixa para qualquer coisa diferente de “Unlimited” fará o programa esperar até que o motor complete a duração especificada; somente então o programa continuará!
  • 43. Tipos de Conexões de Dados... • “Data Hubs” • “Data wires types”
  • 44. Tipos de Conexões de Dados... • “Data Hubs” • “Data wires types”
  • 45. Keep Alive Block This block will keep the NXT from entering sleep mode.Add this block if your program needs to wait for longer than the NXT’s set “sleep time” (that is configured using your NXT’s menus). Calibration Block Use this block to calibrate the minimum (0%) and maximum (100%) values detected by a sound or light sensor. Advanced Blocks: Referências Bibliográficas: 1. Kelly, James Floyd. Lego Mindstorms NXT-G Programming Guide, 2nd ed.,Apress/Springer Science +Business Media, p. 337, ISBN-13 (pbk): 978-1-4302-2976-6, 2010, URL: http://www.kirp.chtf.stuba.sk/ moodle/pluginfile.php/46109/mod_resource/content/1/Lego%20Mindstorms%20NXT-G %20programming%20guide.pdf (Março/2014). 2. Griffin,Terry. The Art of Lego Mindstorms NXT-G Programming, No Starch Press, p. 288, ISBN-13: 978-1-59327-218-0,August 26, 2010. URL: http://my.safaribooksonline.com/book/hobbies/ 9781593272180/4dot-motion/brake_comma_coast_comma_and_the_reset_mo (Março/2014). 3. Rosenberg, Neil. Workshop - NXT Programming For Beginners,Version 1.1, p. 102, Summer 2012, URL: Ref.: http://www.rocwnc.org/Beginning_NXT_Programming_Workshop.pdf (Março/2014).
  • 46. Problemas 1. Criar programa que simplesmente aciona os 2 motores com a mesma potência (75%) durante 10 segundos; 2. Idem, mas agora os motores devem percorrer exatos 3 metros de distância independente da velocidade! 3. Fazer o robô percorrer um quadrado com 2 (ou 3) metros de arresta. Ele deve partir e conseguir voltar ao mesmo ponto de partida. Bloco “Move":
  • 47. Usando sensores para... Descobrir distância percorrida; Ângulo de giro da roda; Velocidade do motor; etc... URL: HTTP://WWW.NXTPROGRAMS.COM/VOLUME_CALC/INDEX.HTML
  • 48. Distância percorrida por roda... • Percorrendo uma distância exata (independente da velocidade): R P P = 2 ⇥ ⇡ ⇥ R d = n ⇥ 2 ⇥ ⇡ ⇥ R onde: R = raio da roda; P = perímetro da roda; n = número de voltas; ⇡ = 3.141592653589793 Detalhes: Roda do Lego NXT: 
 “@ LEGO Group 56x26” onde 56 = 56mm de diâmetro.
  • 49. Problema 3) QuadradoDados: 2 metros cada aresta;
  • 52. + Sensores Usando sensor de cor como sensor de luz... Lendo informações de cor e índice de reflexão luminosa - η% (0 ~ 100%)
  • 53. Como fechar uma malha? Algoritmos de controle: Idéias?
  • 54. Seguidor de Linha: Idéias 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10 o para frente; 5.Repita. Este programa faz o robô andar para frente até que ele saia par fora da linha preta. Em seguida, ele move para a esquerda 10o. Ele assume que a linha é um círculo e que o robô está posicionado dentro do círculo, por isto irá percorrer o círculo em sentido anti-horário. Ver: https://www.youtube.com/watch?v=5-1N9x7obTM
  • 59. Seguidor de Linha #1 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10o para frente; 5.Repita.
  • 60. Seguidor de Linha #1 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10o para frente; 5.Repita.
  • 61. Seguidor de Linha #1 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10o para frente; 5.Repita.
  • 62. Seguidor de Linha #1 “ERRATA”: Mudar bloco “WAIT” para Sensor >> Color Sensor !
  • 63. Seguidor de Linha #1 “ERRATA”: Mudar bloco “WAIT” para Sensor >> Color Sensor !
  • 64. Seguidor de Linha #1 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10o para frente; 5.Repita.
  • 65. Seguidor de Linha #1 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10o para frente; 5.Repita.
  • 66. Seguidor de Linha #1 1.Siga em frete infinitamente com potência a 50%; 2.Até que o sensor de luz leia valor > 50%; 3.Então pare a roda esquerda; 4.E mova a roda direita, 10o para frente; 5.Repita. Loop (Laço): Usa-se para repetir sequencias de código. Uma condição de parada deve ser ajustada: período de tempo transcorrido (elapsed time), número de repetições, sinal lógico ou de sensor. Ou o laço pode ser ajustado para ser perpétuo (forever).
  • 69. Seguidor de Linha #2 Dentro de um laço perpétuo, repetidamente se chaveia o Sensor de Cor como Sensor de Luz, testando se o mesmo percebe um brilho maior que um certo limiar. O valor do limiar deve ser apropriadamente ajustado para ser o valor médio entre o mínimo valor que se espera ler no centro da linha e o máximo esperado no caso da leitura no chão usando as luzes coloridas. Se sugere o uso de um programa tipo “Medidor de Luz” (LightMeter) para descobrir estes valores. Usando o valor médio, o robô vai andar pelo lado direito da linha procurando manter uma leitura que fique entre o valor para metade da linha e metade para o chão. Se o valor lido é maior que o limiar então o robô está fora do lado direito da linha e assim gira para a esquerda para corrigir a rota (o motor C fica mais rápido que o B). Se o valor lido é menor que o limiar então o robô está mais próximo do centro da linha (e não próximo do lado direito da linha) e assim gira para a direita (motor B fica mais rápido que o B).
  • 70. Seguidor de Linha #2 IDÉIA: Dentro de um laço perpétuo, repetidamente se chaveia o Sensor de Cor como Sensor de Luz, testando se o mesmo percebe um brilho maior que um certo limiar. O valor do limiar deve ser apropriadamente ajustado para ser o valor médio entre o mínimo valor que se espera ler no centro da linha e o máximo esperado no caso da leitura no chão usando as luzes coloridas. Se sugere o uso de um programa tipo “Medidor de Luz” (LightMeter) para descobrir estes valores. Usando o valor médio, o robô vai andar pelo lado direito da linha procurando manter uma leitura que fique entre o valor para metade da linha e metade para o chão. Se o valor lido é maior que o limiar então o robô está fora do lado direito da linha e assim gira para a esquerda para corrigir a rota (o motor C fica mais rápido que o B). Se o valor lido é menor que o limiar então o robô está mais próximo do centro da linha (e não próximo do lado direito da linha) e assim gira para a direita (motor B fica mais rápido que o B). O teste do sensor e correções da direção do robô são rapidamente repetidas pelo laço (várias vezes por segundo). Note que a propriedade “Unlimited” é usada para definir Duration para todos os blocos Motor. Isto faz com que o bloco Motor simplesmente ajuste seu nível de potência e o programa segue adiante sem esperar por nada. Isto permite ao Color Sensor testar repetidamente tão rápido quanto possível e assim o robô reaja tão rápido quanto possível frente a mudanças na leitura da linha.
  • 71. Seguidor de Linha #2 OBSERVAÇÕES: Dentro de um laço perpétuo, repetidamente se chaveia o Sensor de Cor como Sensor de Luz, testando se o mesmo percebe um brilho maior que um certo limiar. O valor do limiar deve ser apropriadamente ajustado para ser o valor médio entre o mínimo valor que se espera ler no centro da linha e o máximo esperado no caso da leitura no chão usando as luzes coloridas. Se sugere o uso de um programa tipo “Medidor de Luz” (LightMeter) para descobrir estes valores. Usando o valor médio, o robô vai andar pelo lado direito da linha procurando manter uma leitura que fique entre o valor para metade da linha e metade para o chão. 1.O valor do limiar (threshold): Ajustar o bloco do Color Sensor para “Compare” o número lido com a média entre os valores máximos e mínimos esperados para as leituras de intensidade da luz faz também que o programa se ajuste as condições de iluminação atuais e superfície (solo) do ambiente sendo usado para testá-lo. 2.Velocidade máxima: nos 2 blocos Motor “rápidos”, o nível de potência especificado determina a máxima velocidade do motor. Se a velocidade máxima for muito alta, o robô vai acabar se perdendo em curvas mais fechadas. 3.Curvas fechadas: nos 2 blocos Motor “lentos”, o nível de potência especificado vai determinar que tão fechada uma curva o robô vai ser capaz de seguir. Baixos níveis de potência vão permitir que o robô realize curvas fechadas, entretanto valores maiores o deixariam mais rápido e com condução mais suave sobre as partes retas da linha (caminho à seguir).
  • 72. Seguidor de Linha #2 DETALHES:
  • 73. Seguidor de Linha #2 DETALHES:
  • 74. Seguidor de Linha #2 DETALHES:
  • 75. Seguidor de Linha #2 DETALHES:
  • 76. Seguidor de Linha #2 DETALHES:
  • 77. Seguidor de Linha #2 DETALHES:
  • 78. Seguidor de Linha #2 DETALHES:
  • 79. Seguidor de Linha #2 DETALHES:
  • 85. Seguir de Linha: Idéias 2: Controlador P Idéia do Controlador Proporcional: Estabelecer um laço de realimentação fechado, calculando o erro e proporcional ao erro definir uma ação de controle: Valor Médio (Ref.) ∑ Erro K Sinal de Controle Atuação (Pot. Motor) Motores Lego Sensor Cor Trajetória Intensidade Luminosa (Leitura atual) + -
  • 86. Base Teórica Controlador Proporcional Seja a fita isolante (Pista) x Índice reflexão (sensor de luz) x 0 +1 -1 x = mede o desvio físico do AVG.
  • 87. Base Teórica Controlador Proporcional Seja a fita isolante (Pista) x Índice reflexão (sensor de luz) x 0 +1 -1 x = mede o desvio físico do AVG. x x Largura da fita isolante (pista).
  • 88. Base Teórica Controlador Proporcional - O que ocorre quando o AGV não anda sobre a faixa? Largura da fita isolante (pista). - 1 +10 O O O ⌘ = 35 ⌘ = 37 (“Mid”) ⌘ = 47 (“Max”) ⌘ = 27 (“Min”) O O ⌘ = 39 CB VB = VCruize + Kp ⇤ E VC = VCruize Kp ⇤ E Caso 1) Caso 2) ⌘Sensor Erro VB VC Stearing 35 +2 = 75 + 100*(2)/Range = 75+10 = 85 = 75-100*(2)/Range = 75-10 = 65 39 -2 = 75+100*(-2)/Range = 75-10 = 65 = 75 - 100*(-2)/Range = 75+10 = 85 37 0 = 75+100*0 = 75 = 75-100*0 = 75 Erro = Ref Lido Erro = “Mid” ⌘Sensor
  • 89. Seguidor de Linha: Controlador Proporcional Ajusta as variáveis Power e Gain (podem ser alterados) 90 100
  • 90. Seguidor de Linha: Controlador Proporcional Ajusta as variáveis Power e Gain (podem ser alterados) 90 100 A lâmpada parece acender depois de um pequeno atraso no modo “Light Sensor”, o que pode afetar a auto-calibração. Melhor acender e esperar um pouco
  • 91. Seguidor de Linha: Controlador Proporcional Ajusta as variáveis Power e Gain (podem ser alterados). 90 100 A lâmpada parece acender depois de um pequeno atraso no modo “Light Sensor”, o que pode afetar a auto-calibração. Melhor acender e esperar um pouco. 50 0.2 9999 0 Iniciando as variáveis Min para um valor grande e Max para zero para garantir que a lógica de calibração irá alterá-los. Continua→
  • 92. Seguidor de Linha: Controlador Proporcional Ajusta as variáveis Power e Gain (podem ser alterados). 90 100 A lâmpada parece acender depois de um pequeno atraso no modo “Light Sensor”, o que pode afetar a auto-calibração. Melhor acender e esperar um pouco. 50 0.2 9999 0 Iniciando as variáveis Min para um valor grande e Max para zero para garantir que a lógica de calibração irá alterá-los. Inicie um pequeno arco para a direita assim o sensor acabará lendo a linha e a área à direita da linha (incluindo o solo). B C CB
  • 93. Seguidor de Linha: Controlador Proporcional B C CB LAÇO DE CALIBRAÇÃO - IDÉIA: 1. Criar um laço de repetição que só para quando o motor B girar 120o. 2. Dentro do laço se lê os valores do sensor de cor enquanto o robô está girando para a direita para descobrir os valores de Min e Max. 3. Ler informação do Sensor de Cor no modo Light Sensor (saída numérica na porta “Detected Color”) e guarde este valor na variável Light. 4. Se o valor Light é menor que o valor Min, então atualize Min <-- Light. 5. Se o valor Light é maior que o valor Max, então atualize Max <-- Light.
  • 94. Seguidor de Linha: Controlador Proporcional B C CB Leia sensor de Cor no modo “Light Sensor” (valor de 0 ~ 100 na porta “Detected Color”) e guarde em “Light” Se o valor Light for menor que Min, então: Min ← Light. Continua→ Detected Color Value
  • 95. Seguidor de Linha: Controlador Proporcional B C CB Leia sensor de Cor no modo “Light Sensor” (valor de 0 ~ 100 na porta “Detected Color”) e guarde em “Light” Se o valor Light for menor que Min, então: Min ← Light. Continua→ Result Value
  • 96. Seguidor de Linha: Controlador Proporcional B C CB Se o valor Light for maior que Max, então: Max ← Light. Continua→
  • 97. Seguidor de Linha: Controlador Proporcional B C CB Se o valor Light for maior que Max, então: Max ← Light. Continua→
  • 98. Seguidor de Linha: Controlador Proporcional B C CB Continua→ Depois da Calibração →Calcular faixa (Range) e valor médio (Mid): Agora que sabe os valores máximos e mínimos esperados para a linha e o solo, calculamos a faixa de valores: Range = Max - Min. Calculamos agora o valor médio entre Min e Max e guardamos este valor na variável Mid: Mid = (Max + Min) / 2. O robô vai esperar encontrar o valor médio à direita da borda da linha - valor que procurará manter.
  • 99. Seguidor de Linha: Controlador Proporcional B C CB Continua→ Depois da Calibração →Reposicionando o Robô no lado direito da linha: Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda até que encontra um valor imediatamente mais escuro que Mid (o médio), o que deveria posicionar o robô no lado direito da linha que corresponde a maneira como pretende seguir a linha. Quando o sensor encontra o ponto desejado para começar a seguir a linha, soa um beep para indicar que a auto-calibração foi completada.
  • 100. Seguidor de Linha: Controlador Proporcional B C CB Continua→ Depois da Calibração →Reposicionando o Robô no lado direito da linha: Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda até que encontra um valor imediatamente mais escuro que Mid (o médio), o que deveria posicionar o robô no lado direito da linha que corresponde a maneira como pretende seguir a linha. Quando o sensor encontra o ponto desejado para começar a seguir a linha, soa um beep para indicar que a auto-calibração foi completada. Trigger Point
  • 101. Seguidor de Linha: Controlador Proporcional B C CB Continua→ Depois da Calibração →Reposicionando o Robô no lado direito da linha: Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda até que encontra um valor imediatamente mais escuro que Mid (o médio), o que deveria posicionar o robô no lado direito da linha que corresponde a maneira como pretende seguir a linha. Quando o sensor encontra o ponto desejado para começar a seguir a linha, soa um beep para indicar que a auto-calibração foi completada. Trigger Point
  • 102. Seguidor de Linha: Controlador Proporcional B C CB Continua→ Seguindo Linha → Laço de Controle Proporcional - Parte 1/2 Obtenha uma leitura do Sensor de Cor no modo “Light Sensor” e subtraia este valor do valor médio (Mid) ➠ calculando o erro. Se este erro é positivo então robô está mais para a esquerda “vendo” a parte mais escura (central) da pista. Se o erro é negativo, então o robô está muito à direita com o sensor “vendo” mais o solo. A magnitude do erro corresponde à quão longe o robô está da sua “meta” (valor médio). Detected Color Multiplique o valor do erro pelo valor Gain para enfatizar a resposta ao erro de acordo com a magnitude de Gain. Então divida o resultado pelo valor Range (faixa) para normalizar o erro em relação à faixa total esperada. Guarde este valor na variável Correction.
  • 103. B CB Continua→ Seguindo Linha → Laço de Controle Proporcional - Parte 1/2 Obtenha uma leitura do Sensor de Cor no modo “Light Sensor” e subtraia este valor do valor médio (Mid) ➠ calculando o erro. Se este erro é positivo então robô está mais para a esquerda “vendo” a parte mais escura (central) da pista. Se o erro é negativo, então o robô está muito à direita com o sensor “vendo” mais o solo. A magnitude do erro corresponde à quão longe o robô está da sua “meta” (valor médio). Detected Color Multiplique o valor do erro pelo valor Gain para enfatizar a resposta ao erro de acordo com a magnitude de Gain. Então divida o resultado pelo valor Range (faixa) para normalizar o erro em relação à faixa total esperada. Guarde este valor na variável Correction. Valor Médio (Ref.) ∑ Erro K Sinal de Controle Atuação (Pot. Motor) Motores Lego Sensor Cor Trajetória Intensidade Luminosa (Leitura atual) + -
  • 104. Seguidor de Linha: Controlador Proporcional B C CB Fim. Seguindo Linha → Laço de Controle Proporcional - Parte 2/2 Use o valor de Correction para aplicar uma ação de controle (steering) sobre os motores. Partindo do valor base Power definido na inicialização use (Power + Correction) para o motor B e (Power − Correction) para o motor C. Isto fará com que o robô se posicione da direção correta para continuar seguindo a linha pelo seu lado direito. Note que a correção é proporcional ao tamanho do desvio. Se for grande, um giro mais forte será produzido, senão uma leve correção na sua orientação é realizada. Isto permite um deslocamento mais rápido e suave. Laço perpétuo (Forever) Power + Correction Power − Correction Power Power B C
  • 105. Outros controladores + sofisticados... Controle PI --> exige noção de integral; Controle PD --> exige noção de derivada; Controle PID: adotado em 90% da indústria. Mais “trabalho”: sintonia (ajuste) do mesmo... -- > Controle Automático
  • 106. PID
  • 107. PID
  • 111. RTOS for Lego NXT: NxtOSEK 
 nxtOSEK [ h6p://lejos-osek.sourceforge.net/ ]
 2007-2008 Takashi Chikamasa
 nxtOSEK/JSP
 ANSI C/C++ with OSEK/μITRON RTOS for LEGO® MINDSTORMS® NXT
 nxtOSEK is an open source firmware for LEGO MINDSTORMS NXT. nxtOSEK consists of device driver of leJOS NXJ C/Assembly source code, TOPPERS OSEK Real-Time Opera[ng System source code that includes ARM7 (ATMEL AT91SAM7S256) specific por[ng part, and glue code to make them work together. nxtOSEK can provide: ANSI C/C++ programming environment by using GCC tool chain C API for NXT Sensors, Motor, and other devices C++ API for NXT... nxtOSEK applica[on videos:
 [h6p://lejos-osek.sourceforge.net/videos.htm ]:
 NXT SCARA [h6p://lejos-osek.sourceforge.net/videos.htm#NXT_SCARA ] Real-Time Operation System
  • 112. RTOS for Lego NXT: NxtOSEK 
 nxtOSEK [ h6p://lejos-osek.sourceforge.net/ ]
 2007-2008 Takashi Chikamasa
 nxtOSEK/JSP
 ANSI C/C++ with OSEK/μITRON RTOS for LEGO® MINDSTORMS® NXT
 nxtOSEK is an open source firmware for LEGO MINDSTORMS NXT. nxtOSEK consists of device driver of leJOS NXJ C/Assembly source code, TOPPERS OSEK Real-Time Opera[ng System source code that includes ARM7 (ATMEL AT91SAM7S256) specific por[ng part, and glue code to make them work together. nxtOSEK can provide: ANSI C/C++ programming environment by using GCC tool chain C API for NXT Sensors, Motor, and other devices C++ API for NXT... nxtOSEK applica[on videos:
 [h6p://lejos-osek.sourceforge.net/videos.htm ]:
 NXT SCARA [h6p://lejos-osek.sourceforge.net/videos.htm#NXT_SCARA ] Real-Time Operation System
  • 113. OUTRAS IDÉIAS DE ESTRUTURAS...
  • 114. OUTRAS IDÉIAS DE ESTRUTURAS...
  • 115. OUTRAS IDÉIAS DE ESTRUTURAS...
  • 116. OUTRAS IDÉIAS DE ESTRUTURAS...