Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostilaprogramaorobs1 111023145650 Phpapp02
Apostilaprogramaorobs1 111023145650 Phpapp02
Julho de 2010
Apoio:
Realizao:
Departamento de
Cincia da Computao
Autores:
paullasuzuki@gmail.com
geus.andre@gmail.com
gabiquirino@gmail.com
raynermp@gmail.com
salviano.lfg@gmail.com
SUMRIO
1 O que o NXT?...............................................................................................................................4
2 Explicando o NXT...........................................................................................................................4
As portas de entrada e sada.......................................................................................................5
O visor.........................................................................................................................................6
O alto falante...............................................................................................................................6
Os botes de navegao .............................................................................................................6
3 Explicando os sensores....................................................................................................................7
Sensor de luz................................................................................................................................7
Sensor de toque...........................................................................................................................7
Sensor de Ultrassom ...................................................................................................................8
Sensor de Som.............................................................................................................................8
4 Explicando os Servomotores ..........................................................................................................9
Sensor de rotao embutido .......................................................................................................9
5 A montagem do nosso modelo......................................................................................................10
6 O que programao?...................................................................................................................43
7 O que lgica de programao?....................................................................................................44
8 O que um algoritmo?..................................................................................................................44
9 Comandos de Controle..................................................................................................................44
Operadores Lgicos..................................................................................................................47
Operadores Relacionais............................................................................................................48
10 O que entrada e sada de dados?...............................................................................................49
11 O software....................................................................................................................................51
Transferindo um programa para o NXT ...................................................................................53
Paleta Padro (Common Pallete).............................................................................................55
Paleta Completa (Complete Pallete).........................................................................................69
Paleta Personalizada (Custom Pallete) ...................................................................................79
12 Referncias..................................................................................................................................82
O que o NXT?
O Lego Mindstorms NXT mais se parece com um brinquedo, e utilizado amplamente em
todo o mundo por escolas, universidades, e mesmo por crianas.
Na verdade ele um kit de rob programvel, voltado para a educao tecnolgica1, lanado
pela Lego em Julho de 2006, substituindo a primeira gerao do kit Lego Mindstorms. O nosso kit
o Kit Base 9797 e composto por 431 peas: 3 servomotores2, 4 sensores (toque, som, luz e
ultrassom), 7 cabos para conexes com motores e sensores, um cabo para interface USB, o Brick
Inteligente NXT, que o corpo central do rob, bateria recarregvel, base giratria, rodinhas com
pneus e vrias peas conhecidas como Lego Technic, como blocos, vigas, eixos, rodas, engrenagens
e polias.
O Brick NXT (em portugus, tijolo) o crebro dessas pequenas mquinas. Ele viabiliza
autonomia na execuo de diferentes tarefas tais como a criao, programao e montagem de
robs com noes de distncia, capazes de reagir a movimentos, rudos e cores3, e de executar
movimentos com razovel grau de preciso. O kit tambm inclui o NXT-G, um ambiente de
programao grfico que possibilita a criao e o download de programas para o NXT.
Os novos modelos permitem que se criem no apenas estruturas, mas tambm
comportamentos, permitindo a construo de modelos interativos, com os quais se pode aprender
conceitos bsicos de cincia e de engenharia. Os empregos didticos abrangem as reas de robtica,
controle, automao, fsica, matemtica, programao e projetos.
Explicando o NXT
1 O lema da Educao Tecnolgica preparar os estudantes para no serem apenas usurios de ferramentas
tecnolgicas, mas capazes de criar, solucionar problemas e usar os tipos de tecnologia de forma racional, efetiva e
significativa.
2 Servomotor uma mquina, mecnica ou eletromecnica, que apresenta movimento proporcional a um comando,
em vez de girar ou se mover livremente sem um controle mais efetivo de posio como a maioria dos motores.
3 Neste caso, para a percepo de cores necessrio a utilizao do sensor de cores, que no acompanha o kit 9797.
Como j foi dito, o Brick NXT o corpo central do rob. Nele conectaremos cabos que vo
at os motores e cabos que vm dos sensores. Ele ser como o crebro (e como o corao). Nele
est contido o processador, que receber os programas que criaremos e ento os interpretar
(executar) fazendo o rob montado ganhar movimentos.
Para facilitar a comunicao e melhorar a compreenso dessa apostila pelos leitores, aqui
vamos nos referenciar ao Brick NXT somente como NXT.
O visor
Na parte superior do visor, no canto esquerdo, vemos cones que informam sobre o status e da
conexo bluetooth ou USB do rob. No canto direito vemos o cone da bateria informando a carga
disponvel.
O alto falante
O alto falante encontra-se na lateral direita do NXT.
Crie programas com sons reais e os oua quando executar o programa.
Os botes de navegao
O boto central - laranja - a tecla Enter do rob. Ele tambm usado para ligar o rob.
As setas direcionais - em cinza claro - so utilizadas para a navegao nos menus disponveis
no visor.
O boto inferior - em cinza escuro - utilizado para a navegao nos diferentes nveis dos
menus. Geralmente utilizado como o boto Voltar. Tambm usado para desligar o rob.
Faa voc mesmo!
Com o NXT na mo veja como ele ligado e desligado.
Explicando os sensores
Os sensores biolgicos do nosso corpo so clulas especializadas que so sensveis a
temperatura, luminosidade, vibrao, toxinas, hormnios, protenas, entre outros. No caso dos
nossos robs, podemos pegar a definio do dicionrio:
"Designao comum de dispositivos eltricos, eletrnicos, mecnicos ou biolgicos
capazes de responder a estmulos de natureza fsica (temperatura, presso, umidade,
velocidade, acelerao, luminosidade e etc.). So utilizados em sistemas de controle e
monitoramento."
No nosso kit temos quatro sensores: o de luz, o de toque, o de ultrassom e o de som.
Vamos ver para que serve cada um?
Sensor de luz
O sensor de luz um dos dois sensores que d viso ao rob (o sensor de
ultrassom o outro). ele que permite que o rob distingua entre claro e escuro
branco e preto. Ele pode ler a intensidade de luz numa sala e pode medir a
intensidade de luz em superfcies coloridas.
Sugestes para uso
Voc pode usar o sensor de luz para criar um rob alarme de assaltante: quando um intruso
entrar numa sala e acender a lmpada o rob pode reagir e defender sua propriedade. Voc tambm
pode usar o sensor de luz para criar um rob que segue linhas ou um rob que classifica coisas por
cores.
Detectando a luz ambiente
Teste a habilidade do sensor de luz em detectar a luz ambiente medindo os nveis de luz em
diferentes locais da sala. Por exemplo, aponte o sensor em direo janela. Ento aponte-o para
baixo da mesa. Veja como modificam as leituras.
Faa voc mesmo!
Conecte o sensor ao NXT. Selecione no visor o submenu View. Selecione o cone do sensor de
luz e a porta onde voc o conectou, e pressione o boto Run (boto laranja). Agora aponte o sensor
para as diferentes cores disponveis na folha de teste de cores. (Caso a sua apostila esteja em preto e
branco pergunte ao monitor sobre a folha de teste colorida).
Try me
O NXT vm com a funo Try Me. Conecte o sensor de luz porta 3 do NXT e selecione o
menu "Try Me" no NXT para testar o sensor de luz. Voc ter uma reao divertida.
Sensor de toque
O sensor de toque concede ao rob o sentido do tato. Ele detecta quando o
boto do sensor est sendo pressionado, indicando que est em contato com
alguma coisa, e tambm quando ele liberado.
7
Sensor de Ultrassom
Permite que o rob "veja" e passe a detectar onde os objetos esto. Voc
pode us-lo para fazer o rob evitar obstculos, detectar e medir a distncia, e
detectar movimentos.
O sensor de ultrassom mede distncias em centmetros e em polegadas. Ele capaz de medir
distncias de 0 a 255 centmetros com uma preciso de +/- 3 cm.
O sensor usa a mesma tcnica que os morcegos usam: ele consegue medir a distncia
calculando o tempo que leva para uma onda sonora bater em um objeto e retornar como se fosse
um eco.
Objetos maiores com superfcies duras retornam melhores leituras. Enquanto que objetos
feitos de tecido macio ou que possuem curvas (como uma bola) ou que so muito finos e pequenos
podem ser difceis para o sensor detectar.
* Dois ou mais sensores ultrassnicos atuando no mesmo espao podem interromper uns aos
outros sua leitura.
Faa voc mesmo!
Conecte o sensor de ultrassom ao NXT. Selecione no visor o submenu View. Selecione o cone
do sensor de ultrassom e a porta onde voc o conectou, e pressione o boto Run (boto laranja).
Para medir a distncia de um objeto mova sua mo para perto do sensor e observe a mudana de
leitura no visor.
Try me
O NXT vm com a funo Try Me. Conecte o sensor de ultrassom porta 4 do NXT e
selecione o menu "Try Me" no NXT para testar o sensor de ultrassom Voc ter uma reao
divertida.
Sensor de Som
O sensor de som faz com que seu rob oua! O sensor de som pode detectar
tanto decibis (dB) quanto decibel ajustado (dBA). Um decibel uma medida da
presso do som.
dBA: no modo dBA a sensibilidade do sensor de som ajustada para a
8
sensibilidade dos ouvidos humanos. Em outras palavras, so os sons que os seus ouvidos so
capazes de ouvir.
dB: na medio de decibis padro (sem ajuste) todos os sons so medidos com a mesma
sensibilidade. Deste modo, estes sons podem ser muito altos ou muito baixos para serem ouvidos
por nossos ouvidos.
O sensor de som pode medir nveis de presso de som de at 90 dB o mesmo produzido por
uma roadeira de gramas. Nveis de presso sonora so muito complexos, ento as leituras do
sensor de som so mostradas no visor em percentagens (%). Quanto menor for o valor, mais calmo
o ambiente. Por exemplo:
4 - 5% - como uma sala de estar silenciosa;
5 - 10% - seria como uma pessoa conversando um pouco distante;
10 - 30% - como uma conversao normal prxima ao sensor, ou uma msica tocando em
um volume normal;
30 - 100% - como pessoas gritando ou uma msica sendo tocada em volume alto.
Faa voc mesmo!
Teste a habilidade do sensor de som:
Conecte o sensor de som no NXT; Selecione o submenu View no visor do NXT. Selecione o
cone do sensor de som e a porta onde voc o conectou. Faa alguns barulhos e veja as leituras no
visor. Use o sensor para medir sons prximos a voc.
Que altura seus amigos falam? Quanto barulho faz o ar condicionado?
Try Me
O NXT vm com a funo Try Me. Conecte o sensor de som porta 2 do NXT e selecione o
menu "Try Me" no NXT para test-lo.
Explicando os Servomotores
Sensor de rotao embutido
Cada um dos trs servomotores inclusos no kit possui um
sensor de rotao embutido em si. Isso permite que se possa
controlar os movimentos do rob com mais preciso. O sensor
de rotao mede as rotaes do motor em graus, ou em voltas
completas (com a exatido de +/- 1 grau). Uma volta equivale a
360, ento se voc define um motor para rodar 180 seu eixo de
sada rodar meia volta.
O sensor de rotao embutido em cada motor tambm lhe permite definir velocidades
diferentes para seus motores (definindo parmetros de fora diferentes no software).
* Tente rodar os motores em velocidades diferentes.
10
Usamos esse modelo pois relativamente fcil, rpido e utiliza todos os sensores que
acompanham o kit, servindo muito bem ao propsito de apresentao que temos. As ilustraes e o
passo-a-passo que seguiremos foi copiado do guia ilustrado que acompanha o kit Lego Educacional
9797.
Vamos agora montar nosso rob. Iremos constru-lo passo-a-passo, testando todos os
sensores, um de cada vez.
Primeiramente, o rob montado ficar como na imagem abaixo, sem os sensores:
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Antes de comearmos a trabalhar com o software que utilizaremos para criar os programas
para os robs LEGO temos que falar sobre programao e sobre a lgica de programao.
O que programao?
Programao, segundo o dicionrio, o ato ou efeito de programar ou planejar um evento.
Tambm consta que programa um plano contendo as aes a serem tomadas em um evento. Mais
especificamente, na rea da informtica, a programao o ato de programar uma mquina para que
uma tarefa (programa) seja executada por ela. O programa uma sequncia de cdigos onde
especificamos o qu fazer e como fazer.
Com as definies anteriores, podemos inferir uma definio mais elaborada, com termos
mais adequados. Programao o processo de escrita, teste e manuteno de um programa de
computador. O programa escrito em uma linguagem de programao - embora seja possvel, com
alguma dificuldade, escrev-lo diretamente em linguagem de mquina - seguindo uma lgica de
programao. Diferentes partes de um programa podem ser escritas em diferentes linguagens.
Software um termo ingls generalizado que designa o conjunto de programas/aplicaes
armazenados em computador que so executados a fim de resolver alguma tarefa ou solucionar
43
algum problema. No Brasil tambm utilizamos o termo programa quando queremos substituir o
termo em ingls. Note que o prefixo SOFT (de software) usado em contraposio ao prefixo
HARD (de hardware). Ambos os termos j foram discutidos anteriormente no primeiro mdulo
desse projeto.
O que um algoritmo?
Definio: uma sequncia de passos (aes) que devem ser executados para se alcanar um
determinado objetivo.
Nota: No confunda algoritmo com algarismo. So duas palavras com significados
completamente diferentes.
Embora a palavra parea um pouco estranha, executamos algoritmos cotidianamente. Por
exemplo: a rotina diria de um aluno, que se levanta de manh, se prepara, pega um nibus (ou
carro) para vir at a UFG, assiste as aulas, volta para a casa (de nibus ou carro), estuda durante a
tarde, toma banho, janta, estuda depois do jantar, e em seguida vai dormir, um algoritmo que a
maioria dos alunos executa diariamente (ou pelo menos deveria executar). Um algoritmo tambm
pode ser comparado como uma receita culinria. Se obedecermos passo a passo as instrues de
uma receita, chegamos sempre ao mesmo resultado.
Mais abaixo teremos vrios exemplos de algoritmos.
Comandos de Controle
Os comandos de controle permitem alterar a direo tomada por um programa (desvio), ou
fazer com que partes especficas de um algoritmo seja executada mais uma vez (loop).
Existem trs estruturas bsicas para a construo de algoritmos: sequenciao, seleo e
repetio. A combinao destas trs estruturas permite-nos a construo de algoritmos para a
resoluo de problemas.
Imagine a seguinte situao: precisamos elaborar um algoritmo para trocar uma lmpada. O
algoritmo abaixo um exemplo para a resoluo.
44
Algoritmo 1
Incio
- pegue uma escada;
- coloque-a embaixo da lmpada;
- busque uma lmpada nova;
- suba na escada com a lmpada nova;
- retire a lmpada velha;
- coloque a lmpada nova;
- desa da escada.
Fim
Observe que este algoritmo resolve o nosso problema da troca de lmpada. Trata-se de um
algoritmo bastante simples, que utiliza-se apenas da estrutura de sequenciao, ou seja, nenhuma
seleo ou repetio de procedimentos aparece no algoritmo. Uma estrutura de sequncia,
caracteriza-se por possuir uma nica sequncia de aes, que executada apenas uma vez.
No entanto, antes de trocarmos a lmpada devemos nos certificar de que ela realmente esteja
queimada, para ento troc-la. Assim, podemos melhorar o nosso algoritmo.
Algoritmo 2
Incio
- ligue o interruptor
- se a lmpada no acender, ento:
- pegue uma escada
- coloque-a embaixo da lmpada
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
- fim-se
Fim
Observe que agora o nosso algoritmo, alm da estrutura de sequncia, passa a utilizar uma
estrutura de seleo. Na estrutura de seleo, uma condio deve ser analisada. A partir do
resultado da anlise, um caminho do algoritmo ser executado. Em outras palavras, uma estrutura
de seleo seleciona (escolhe) aes a serem executadas a partir de uma condio (que pode ser
simples ou composta).
Embora nosso algoritmo tenha melhorado, ainda podemos deix-lo mais completo. Quando
verificamos que a lmpada est queimada, subimos para troc-la, mas no consideramos a hiptese
da lmpada nova tambm estar queimada, e se isso ocorrer, precisaremos executar algumas aes
novamente, at que possamos efetivamente resolver nosso problema.
45
Algoritmo 3
Incio
- ligue o interruptor
- se a lmpada no acender, ento:
- pegue uma escada
- coloque-a embaixo da lmpada
- enquanto a lmpada no acender, faa:
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
- fim-enquanto
- fim-se
Fim
Neste algoritmo somente pararemos de trocar a lmpada quando colocarmos uma lmpada
que acenda. Portanto, um conjunto de aes ser executado repetidamente enquanto a condio de
repetio for verdadeira. Assim, inserimos uma estrutura de repetio no nosso algoritmo, que
passa a trabalhar com as trs estruturas bsicas de construo de algoritmos.
Vamos supor agora que tenhamos 3 lmpadas na sala de estar de uma casa, e queremos trocar
as que no estiverem funcionando. Para isso inserimos outro estilo de estrutura de repetio.
Algoritmo 4
Incio
- para (as lmpadas da sala) de 1 at 3 faa:
- ligue o interruptor
- se a lmpada no acender, ento:
- pegue uma escada
- coloque-a embaixo da lmpada
- enquanto a lmpada no acender, faa:
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
- fim-enquanto
- fim-se
- fim-para
Fim
46
Operadores Lgicos
Os operadores "e", "ou" e "no" permitem realizar a combinao lgica de variveis4 do tipo
booleano (lgico).
Para isto utilizam-se as tabelas verdade:
Varivel1
Varivel2
OU
Varivel NO
V
4 Na programao, uma varivel um elemento capaz de reter e representar um valor ou expresso. As variveis so
associadas a "nomes", chamados identificadores.
47
Algoritmo 5
Incio
- para (as lmpadas da sala) de 1 at 3 faa:
- ligue o interruptor
- se a lmpada no acender, ento:
- pegue uma escada
- coloque-a embaixo da lmpada
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
- se (a lmpada continua apagada) e (lmpadas novas acabaram),
ento:
- Pare!
- fim-se
- fim-se
- fim-para
Fim
Operadores Relacionais
Permitem medir a relao - ou realizar a comparao - entre dois valores.
A igualdade dada por ( = ).
Ex:
5=5
Ex:
4 <> 5
Ex:
5>4
Ex:
4<5
Ex:
5 >= 5, 5 >= 3
Ex:
4 <= 4, 2 <= 4
Negao ( ! ).
Ex:
!3
Algoritmo 6
Incio
- enquanto (houver lmpadas queimadas) e (tiver lmpada em estoque)
faa:
- troque lmpada queimada por uma que funcione
- fim-enquanto
- se (n de lmpadas trocadas = n de lmpadas queimadas), ento:
48
Algoritmo 7
Incio
- enquanto (houver lmpadas queimadas) e (tiver lmpada em estoque)
faa:
- lampada1
lampada_queimada
- lampada2
lampada_nova
- troqueLampadas (lampada1, lampada2)
- fim-enquanto
- se (n de lmpadas trocadas = n de lmpadas queimadas), ento:
- Imprimir (Terminou com sucesso!)
- seno:
- Imprimir (Terminou com falha!)
- fim-seno
- fim-se
Fim
A sada ou retorno de dados deve ser o resultado de alguma operao realizada por um
programa, proveniente de uma entrada dada anteriormente. Os valores podem ser armazenados em
variveis, podem servir como entrada para outras funes ou tambm podem ser utilizados pelo
dispositivo de hardware de sada padro, que no caso dos robs LEGO so os trs motores
conectados s portas A, B e C.
Algoritmo 8
Incio
- nrLampadasQueimadas
receber_n_de_lmpadas_queimadas()
receber_n_de_lmpadas_trocadas()
- nrLampadasTrocadas
- se (nrLampadasTrocadas = nrLampadasQueimadas), ento:
- Imprimir (Terminou com sucesso!)
- seno:
- Imprimir (Terminou com falha!)
- fim-seno
- fim-se
Fim
Algoritmo 9
Incio
- resultado = SOMAR(2, 3)
- Imprimir (resultado)
Fim
50
O software
D um duplo clique no cone criado na sua rea de trabalho.
Aps carregar o programa (barra verde totalmente carregada), a primeira janela do programa
ser inicializada:
51
Getting Started: demonstrao dos comandos bsicos para operar o software pela
primeira vez, alm de uma rpida viso dos recursos oferecidos
Help Window (Ajuda Rpida): mostra dicas e funes bsicas dos cones e
ferramentas
Painel de Inicializao rpida: permite abrir um novo programa ou um que foi salvo
anteriormente.
No painel de inicializao rpida, clique em Start New Program, digite o nome do seu
programa e clique em "GO". A tela habilitar paleta de ferramentas e outras funes:
rea de trabalho
NXT Window
52
53
Paletas de Programao
A paleta de programao est dividida em 3 partes:
54
Display: exibe informaes na tela do NXT, desde cones at dados obtidos pelos
sensores.
Wait: determina uma espera, que pode ser em funo do tempo do evento de um dos
sensores.
Comando MOVE
Ao arrastar esse cone para a rea de trabalho, aparecer uma caixa de
configurao na parte inferior da tela:
55
Ela indica a quantidade de rotaes que cada um dos motores realizou, ou poder 'resetar' os
valores.
1. Port: configura qual porta ser controlada, podendo ser uma, duas ou as trs
simultaneamente.
2. Direction: controla o sentido da rotao do motor (para frente, para trs ou parado).
Controla a direo do rob, quando a locomoo depende de 2 motores, cada um
controlando um lado da locomoo.
3. Steering: habilitado somente quando 2 motores esto selecionados, o que permite ao
rob fazer curvas e indica qual a direo que ele dever virar, ou se a curva ser mais
aberta ou mais fechada. Se somente um motor ou os trs motores estiverem
selecionados, essa opo ficar desabilitada.
4. Power: nvel de potncia dos motores (que vai de 0% a 100%). Este valor pode ser
ajustado digitando o nmero na caixa direita, ou deslizando o ponteiro sobre a barra
para a direita ou para a esquerda.
5. Duration: a durao do movimento do motor pode ser fornecida em:
Graus: uma volta equivale a 360, meia volta a 180 e assim sucessivamente;
Coast: somente desligar o motor, permitindo que este continue o movimento por
inrcia, permitindo uma parada mais suave.
56
Por 180:
________________
Comando RECORD/PLAY
Esses comandos so usados para gravar as aes que os motores realizam, desde
ensinar a posio de algum objeto para o brao mecnico at a sequncia de movimentos
que pode ser realizada por todos os motores ordenadamente.
Quando for escolhida a funo Record, aparecer a seguinte tela de configurao:
57
5. Note: podemos escolher uma nova nota para ser executada e sua durao em segundos.
Ainda possvel selecionar a nota musical atravs do teclado.
Comando DISPLAY
Podemos selecionar vrias maneiras Action de exibir as informaes no
display do NXT. Observe as figuras abaixo:
58
60
1. Button: seleciona qual dos botes aguarda para ser pressionado, podendo ser
. O boto
no pode ser utilizado devido a sua funo "Voltar".
ou
2. Action: define a ao que dever ocorrer com o boto escolhido, da mesma forma que
o sensor de toque.
3. Determina a quantidade a ser esperada.
Quando selecionamos Rotation Sensor:
Aqui, o NXT ir ler o tempo de seus cronmetros internos (3 cronmetros), que podem ser
usados para determinar o tempo de resposta ou no do rob.
1. Timer: seleciona um dos trs cronmetros disponveis;
2. Action: caso esteja selecionada a caixa Read ele l o valor obtido no timer, ou zera o
cronmetro selecionado se a caixa Reset estiver marcada;
3. Until: determina se deve esperar um valor maior ou menor que o indicado a frente (em
segundos).
Quando selecionado Receive Message:
1. Message: determina que tipo de mensagem deve receber, se texto (text), nmero
(number) ou lgico (logic);
2. Compare to: permite comparar as mensagens, com limites pr-definidos.
3. MailBox: determina em qual caixa de correio deve receber a mensagem. Existem 10
diferentes caixas para serem usadas.
62
Comando LOOP
Com o Loop, podemos condicionar a repetio de uma sequncia de cdigo de
programao de diversas maneiras.
Quando for selecionado Forever:
Quando for selecionado Time, o loop se repetir durante um determinado tempo, ou seja, ele
aciona um timer que ir determinar quando a sequncia dentro do loop iniciada e verifica se esse
tempo mais do que o configurado (em segundos). Se for maior, o loop termina e passa para a
sequncia de comando seguinte.
Quando for selecionado Logic:
Nesse caso o campo Until determina o valor da condio - true ou false - para que o fim do
loop acontea.
63
Comando SWITCH
Permite que o programa tome uma "deciso" conforme o que foi pr-determinado.
Basicamente, possibilita duas opes: Value ou Sensor.
Quandor for escolhido Value:
1. Type: define o tipo de valor, no caso de Value, que pode ser Logic, Number ou Text;
2. Display: como ser exibido o cone. Em Flat View, teremos linhas separadas,
permitindo visualizar a programao de cada condio. Caso contrrio, somente ser
visto uma linha de cada vez e necessrio clicar na aba para ver cada uma das linhas;
3. Conditions: permite estabelecer as condies. Assim, quando selecionado Logic no
campo Type, teremos apenas duas condies (True ou False). Caso seja selecionado
Text ou Number, pode-se adicionar mais condies, desde que Flat View no seja
habilitado. S possvel ver as opes uma a uma, pelo clique nas abas, que aparecem
conforme mais condies so adicionadas.
4. O boto * permite definir qual a condio padro a ser tomada, caso nenhuma das
outras seja possvel.
Quando for selecionado Touch Sensor:
64
65
66
67
Data Hub
Existe uma maneira de relacionar e utilizar os valores dos cones de
maneira a transform-los em grficos no display, ou mesmo utilizar esses
valores como potncia de motores, parmetros de sensores, etc. Para isso,
clicamos na parte inferior do cone.
Quando houver plugues a direita, eles so sadas de dados, e a esquerda,
eles se tornam entrada de dados. Isso significa que um mesmo dado no pode
ser utilizado de diversas formas. Uma maneira mais simples de visualizar, seria
colocando o valor de um sensor no Display do NXT. Para isso, conecte o seu
sensor de ultrassom na porta 01 do seu NXT, e construa o seguinte programa na
sua tela:
Nesse exemplo, temos o sensor de ultrassom, a funo "Number to Text", para possibilitar a
compatibilidade do formato do dado de sada com o dado de entrada.
Com esse programa acima, toda vez que alterar a distncia do objeto com o sensor, no display
ir aparecer a distncia medida pelo sensor. Note que as linhas so de cores diferentes,
representando formatos diferentes de dados. Caso a linha se torne cinza, significa que no existe
compatibilidade entre o dado de sada e o formato de entrada do mesmo.
68
Amarelo
Texto
Laranja
Incompatvel
Cinza
Lgico
Verde
69
Essas funes tambm podem ser acessadas pela Paleta Padro (j vista anteriormente).
70
ACTION
Refere-se a cones de execuo de tarefas, como inicializar um motor, exibir uma
mensagem na tela, aguardar um evento, tempo ou sensor, etc. Conta ainda com os
comandos:
COMANDO SEND MESSAGE
COMANDO LAMP
Sound Sensor: Permite saber instantaneamente o valor que o sensor est obtendo,
quando conectado ao NXT.
Timer: Permite alterar os valores dos trs timers (cronmetros) do NXT, podendo
optar por ler o valor atual ou ainda fazer a contagem iniciar do zero novamente
(reset).
Permite receber mensagens de outro NXT, sem utilizar fios, desde que o tipo de
mensagem e o nmero da caixa de correio (mailbox) sejam os mesmos em ambos NXT.
72
FLOW
Tem comandos referentes ao fluxo do programa, como esperas, repeties, tomadas
de decises e parada.
COMANDO STOP
Logic: realiza operaes lgicas a partir dos seguintes operadores lgicos - "And",
"Or", "Not" e "Xor".
Math: realiza as quatro operaes com os valores obtidos pelos sensores, podendo
utiliz-los como parmetros.
73
Range: define o intervalo que pode ser usado, ou que deve ser analisado.
COMANDO LOGIC
74
1. Valores da operao;
2. Operation: tipos de operao: Addition (Adio), Subtraction (Subtrao),
Multiplication (Multiplicao), Division (Diviso).
COMANDO COMPARE
Compara valores e define a condio como igualdade, maior que ou menor que.
COMANDO RANGE
1. Test: nmero para testar a condio, se esta no tiver sido definida por outro cone;
2. Define o incio e o fim do intervalo a ser usado;
3. Operation: define se os nmeros estaro dentro (inside) ou fora (outside) do intervalo.
COMANDO RANDOM
Gera um valor aleatrio, dentro de um intervalo determinado, que pode ser usado
na configurao.
75
COMANDO VARIABLE
Define variveis para serem usadas durante a programao, sendo que o software
possui trs pr-definidas.
Para criar novas variveis, v ao menu Edit > Define Variables e, na caixa que se abre clique
em Create para criar uma nova varivel e definir o tipo. Ao colocar o cone na tela, este ir aparecer
na relao de variveis do programa.
1. List: define o nome e o tipo da varivel - lgica (logic), numrica (number) ou texto
(text);
2. Action: define a ao em relao ao valor da varivel; atravs dele possvel utilizar
um valor j definido, ou atribuir um novo para uso posterior;
3. Value: quando habilitado Write em Action, pode-se atribuir um valor, texto ou
condio de verdadeiro ou falso, dependendo do tipo da varivel.
ADVANCED
As funes avanadas de tratamentos de variveis permitem aumentar o uso do
software a fim de transformar, armazenar valores e at calibrar os sensores, tornando os
robs o mais independente possveis.
76
Keep Alive: Coloca o NXT em estado de espera, seja para efetuar uma ao ou,
simplesmente, detectar dados sem consumir excessivamente a bateria.
COMANDO TEXT
77
Converte nmeros para textos, para poder utiliz-los com caixas de texto que no
aceitam nmeros.
Faz com que o NXT entre em modo de espera por um tempo determinado, medido
em milsimos de segundos, ou "sleep mode". Ao esgotar-se o tempo, o NXT retorna
programao (o que o difere do comando "Wait", que no o coloca em modo de espera). No
apresenta painel de configurao.
COMANDO FILE ACCESS
Permite registrar dados em arquivos no NXT, para leitura posterior. Podem ser
digitados em forma de texto ou nmeros, e so usados para registrar diversos dados
obtidos pelo rob.
1. Action: Determina se para ler (read), escrever (write), fechar (close) ou deletar
(delete) o arquivo;
2. Name: Determina o nome do arquivo a ser criado;
3. Type: Tipo do arquivo;
4. Text/Number: Nmero ou texto a ser escrito no arquivo;
COMANDO CALIBRATE
COMANDO RESET
79
Web Downloads: rene todos os blocos que voc fizer o download da web.
2. Em seguida, selecione esse bloco e v ao menu Edit e clique em Make a New Block. O
assistente My Builder ser aberto;
3. Em Block Name, nomeie o seu bloco, e em Block Description, escreva uma breve
descrio do que ele faz.
Logo abaixo aparecem os comandos que voc selecionou anteriormente.
80
81
Referncias
MORAES, Paulo Srgio de. Curso Bsico de Lgica de Programao, Unicamp Centro de Computao, 2000.
82
Sobre o projeto
Este projeto prope a difuso de conhecimentos da rea de computao para jovens alunos da
zona rural. Em especfico, o conhecimento em informtica existente no campus de Catalo da
Universidade Federal de Gois e os jovens pertencentes zona rural de Catalo, no estado de Gois.
Alm disso vislumbrado a aquisio de conhecimentos por parte dos envolvidos, a possibilidade
de incluir o jovem do campo social e digitalmente.
financiado com recursos do CNPQ e apoiado pela Prefeitura Municipal de Catalo.
O projeto coordenado pela Prof Dr. Selma Terezinha Milagre e tem a colaborao dos
professores Dr. Alexsandro Santos Soares, Dr. Marcelo Henrique Stoppa, Ms. Mrcio Antnio
Duarte, Dr. Roberto Mendes Finzi Neto e Dr. Vaston Gonalves da Costa.
Os bolsistas deste projeto so os autores deste material.
83