Você está na página 1de 83

Introduo Programao

com Robs Lego


Projeto Levando a Informtica do
Campus ao Campo Mdulo III

Julho de 2010
Apoio:

Realizao:

Departamento de
Cincia da Computao

Autores:
Ana Paula Suzuki paullasuzuki@gmail.com
Andr Reis de Geus geus.andre@gmail.com
Gabriela Quirino Pereira gabiquirino@gmail.com
Rayner de Melo Pires raynermp@gmail.com
Salviano Ludgrio Felipe Gomes salviano.lfg@gmail.com

Introduo Programao com Robs Lego est sob a


Licena Creative Commons Atribuio-No a obras Derivadas.
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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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.

4
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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.
As portas de entrada e sada

Como mostrado na figura acima, o NXT possui trs portas de sada (output), onde se
conectam os motores. Essas portas esto acima do visor (portas A, B e C). Abaixo dos botes esto
mais quatro portas, agora as de entrada (input), onde se conectam os sensores (portas 1, 2, 3 e 4).
importante checar com ateno se os motores e sensores esto conectados corretamente pois eles
no so permutveis.
A porta USB para comunicao com o software est prxima s portas de comunicao com
os motores. Atravs dela podemos instalar os programas do computador para o rob, e tambm
coletar dados do rob para o computador. Caso no queiramos fazer essa comunicao atravs de
fios, podemos utilizar o bluetooth, tambm disponvel no NXT. Desse modo precisaremos do nome
do NXT, que mostrado no visor.

5
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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.

Na parte de baixo do visor mostrado os menus disponveis no NXT.


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.

6
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Sugestes para uso

Voc pode usar o sensor de toque para fazer seu rob pegar coisas: um brao robtico
equipado com um sensor de toque permite o rob saber se h ou no alguma coisa em seu brao
para agarrar. Ou voc pode fazer seu rob agir a um comando. Por exemplo, pressionando o boto
do sensor fazer o rob realizar alguma ao: andar, falar, fechar uma porta ou ligar sua TV.
Try me

O NXT vm com a funo Try Me. Conecte o sensor de toque porta 1 do NXT e selecione o
menu "Try Me" no NXT para testar o sensor de toque. Voc ter uma reao divertida.
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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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.

9
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Faa voc mesmo!

Teste a capacidade do sensor de rotao embutido em medir distncia:


Conecte um motor ao NXT;
Selecione o submenu View no visor do NXT;
Selecione o cone de rotaes dos motores;
Selecione a porta onde voc conectou o motor;
Conecte uma roda ao motor e mea as rotaes enquanto rola a rodinha ao longo do cho.
Try Me

O NXT vm com a funo Try Me. Selecione o menu "Try Me" no NXT para testar os
motores. Voc ver.
A montagem do nosso modelo
Nessa parte comearemos a montagem do nosso modelo de rob.
O modelo pronto dever ficar parecido com a imagem abaixo. A diferena que o nosso
modelo ficar todo conectado.

10
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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:

As imagens seguintes mostram a montagem passo-a-passo. As peas utilizadas e as suas


quantidades aparecero dentro do retngulo de fundo preenchido em azul. Prximo a esses
retngulos vm as ilustraes de encaixe das peas.
Os nmeros grandes em negrito enumeram cada passo. Basta seguir as ilustraes e montar o
rob.

11
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

12
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

13
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

14
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

15
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

16
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

17
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

18
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Agora vamos testar os motores

19
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

20
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Vamos testar o som.

21
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

22
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Testando se seu rob "enxerga":

23
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

24
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

25
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

26
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

27
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

28
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

29
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

30
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

31
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

32
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

33
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

34
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

35
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

36
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

37
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

38
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

39
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

40
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

41
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

42
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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 lgica de programao?


Lgica de Programao a tcnica de desenvolver uma sequncia lgica de passos para
atingir determinados objetivos dentro de certas regras baseadas na Lgica Matemtica e que depois
so adaptados para a Linguagem de Programao utilizada pelo programador para implementar
(construir) seu software. a tcnica de encadear pensamentos para atingir determinado objetivo. A
lgica de programao necessria para pessoas que desejam trabalhar com desenvolvimento de
sistemas e programas, ela permite definir a sequncia lgica para o desenvolvimento. Essa
sequncia lgica de passos conhecida como algoritmo. Vejamos mais abaixo.

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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

importante salientar que existem vrias formas de se construir um algoritmo, pois as


pessoas pensam de formas diferentes. No entanto, devemos sempre buscar a melhor forma possvel
de se resolver um problema.

46
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Faa voc mesmo!

1) Um homem precisa atravessar um rio com um barco que possui capacidade de


transportar apenas ele e mais uma de suas trs cargas, que so: um cachorro, uma galinha e um saco
de milho. O que o homem deve fazer para conseguir atravessar o rio sem perder as suas cargas?
Lembrando que o homem no pode deixar a galinha com o milho (pois a galinha comeria o milho) e
nem o cachorro com a galinha (o cachorro comeria a galinha).
2) Trs jesutas e trs canibais precisam atravessar um rio. No entanto dispem apenas de
um barco com capacidade para duas pessoas. Por medida de segurana no se permite que em
alguma das margens do rio a quantidade de jesutas seja inferior quantidade de canibais. Qual a
sequncia de viagens necessrias para a travessia do rio com segurana para os jesutas?

Muitas vezes ser necessrio desviar a execuo do programa segundo uma condio.
Exemplo: ir universidade de carro ou de nibus? Para se testar condies necessrio utilizar
operadores lgicos e operadores relacionais.
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 E OU

V V V V

V F F V

F V F V

F F F F

Varivel NO

V F

F 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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Podemos modificar os algoritmos anteriores para ilustrar o uso de operadores lgicos.

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


A desigualdade dada por ( <> ). Ex: 4 <> 5
Maior que, pelo smbolo ( > ). Ex: 5>4
Menor que, pelo smbolo ( < ). Ex: 4<5
Maior ou igual, pelo smbolo ( >= ). Ex: 5 >= 5, 5 >= 3
Menor ou igual, pelo smbolo ( <= ). Ex: 4 <= 4, 2 <= 4
Negao ( ! ). Ex: !3

Continuando o exemplo com lmpadas, podemos exemplificar o uso de um operador


relacional da seguinte forma:

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

- Imprimir (Terminou com sucesso!)


- seno:
- Imprimir (Terminou com falha!)
- fim-seno
- fim-se
Fim

O que entrada e sada de dados?


Todo sistema, por definio, tem uma entrada (ou um conjunto de entradas), um
processamento (ou conjunto de processamentos), e uma sada. assim com o nosso sistema
respiratrio, sistema nervoso, sistema digestivo, e tambm com o sistema computacional.
Vimos no primeiro mdulo do projeto que no hardware temos entrada e sada de dados. O
mesmo acontece no software. O software recebe uma entrada, processa os dados conforme manda
seu algoritmo e depois gera uma sada. Assim tambm funcionam os robs LEGO.
A entrada de dados pode ser dada pela insero de dados atravs de teclado, de uma placa de
rede, modem, placa de som ou de outro dispositivo, ou pela atribuio de um valor uma varivel.
Nos robs LEGO a entrada fornecida pelos quatro sensores, conectados s portas 1, 2, 3 e 4.
O algoritmo abaixo exemplifica o processo de atribuio de valores variveis, e tambm
como usar outro algoritmo pronto para realizar uma tarefa especfica.

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

No algoritmo 7, o procedimento troqueLampadas um outro algoritmo separado, o


algoritmo 1. ele que faz todo o trabalho de pegar a escada, subir nela, retirar a lmpada queimada
- representada pela entrada lampada1 -, pegar a lmpada nova - representada pela entrada
lampada2 - e colocar no lugar da lmpada velha. Isso uma representao de entrada (insero)
de dados. No exemplo acima no inserimos dados via teclado, mas um algoritmo forneceu dados
para outro algoritmo atravs das variveis lampada1 e lampada2.

49
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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()
- nrLampadasTrocadas receber_n_de_lmpadas_trocadas()
- se (nrLampadasTrocadas = nrLampadasQueimadas), ento:
- Imprimir (Terminou com sucesso!)
- seno:
- Imprimir (Terminou com falha!)
- fim-seno
- fim-se
Fim

No algoritmo 8 podemos ver que as variveis nrLampadasQueimadas e


nrLampadasTrocadas receberam, respectivamente, a sada - ou o retorno, ou ainda o resultado -
dos algoritmos receber_n_de_lmpadas_queimadas e receber_n_de_lmpadas_trocadas.
Para reforar os termos entrada e sada mostramos um ltimo algoritmo, que utiliza a funo
matemtica de soma. A funo SOMAR recebe dois argumentos - ou duas entradas - do tipo
nmero. O trabalho dessa funo somar os dois nmeros recebidos e retornar o resultado. Este
resultado armazenado na varivel resultado. Depois o contedo dessa varivel impresso no
monitor. No caso do exemplo abaixo, utilizamos os nmeros inteiros 2 e 3 como argumentos da
funo SOMAR.

Algoritmo 9
Incio
- resultado = SOMAR(2, 3)
- Imprimir (resultado)
Fim

50
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Robot Educator: contm instrues de programao e construo usando o modelo do


1
DRIVING BASE que acompanha o kit

My Portal: acesso direto novas ferramentas, downloads e informaes atualizadas


2
disponveis na internet

Barra de Ferramentas: ferramentas mais usadas, dispostas de maneira fcil e


3
acessvel

Getting Started: demonstrao dos comandos bsicos para operar o software pela
4
primeira vez, alm de uma rpida viso dos recursos oferecidos

Help Window (Ajuda Rpida): mostra dicas e funes bsicas dos cones e
5
ferramentas

Paletas de programao: paletas que dispem de todas as funes de programao do


6
NXT

Painel de Inicializao rpida: permite abrir um novo programa ou um que foi salvo
7
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 onde ser colocado os cones para montar a programao

fornece informaes sobre o NXT conectado, como memria, comunicao e


NXT Window
download

52
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Transferindo um programa para o NXT

Conecte o NXT ao computador atravs do cabo USB. Caso seja a primeira vez a ser
conectado aparecer, no canto inferior direito da tela, a seguinte mensagem em um balo: "Novo
Hardware Dectado". Aguarde at que outra mensagem seja exibida: "Novo Hardware encontrado e
pronto para ser usado".
Controlador (NXT Window)

Os cinco botes abaixo estabelecem a comunicao entre o computador e o NXT:

53
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Paletas de Programao

A paleta de programao est dividida em 3 partes:

54
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Paleta Padro (Common Pallete)

Move: controla os movimentos dos motores, individuais ou em conjunto.

Record / Play: "ensina" os movimentos ao seu rob, permitindo-lhe executar


exatamente os movimentos anteriores dos motores.

Sound: emite sons diversos, pr-gravados, e reproduz tons musicais definidos.

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.

Loop: funo usada para determinar a repetio de uma sequncia de programao,


indefinidamente ou no.

Switch: permite ao programa avaliar uma condio e, em seguida, um valor lgico


(True/False), conforme opes configuradas.

Comando MOVE

Ao arrastar esse cone para a rea de trabalho, aparecer uma caixa de


configurao na parte inferior da tela:

55
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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:
Rotaes: equivale a uma volta completa do eixo;
Graus: uma volta equivale a 360, meia volta a 180 e assim sucessivamente;
Segundos: independente do nmero de voltas do motor, a porta ativada pelo
tempo determinado;
Ilimitado: ir se mover indefinidamente ou at que a programao execute o
prximo cone da sequncia. Quando se habilita essa funo, a Steering
desabilitada automaticamente;
6. Next Action: define a prxima ao dos motores. Pode ser:
Brake: far com que o rob pare ao realizar a quantidade de movimento
determinado, o que pode faz-lo parar bruscamente, alm de "travar" o motor na
posio exata.
Coast: somente desligar o motor, permitindo que este continue o movimento por
inrcia, permitindo uma parada mais suave.

Faa voc mesmo!

Programe o rob para que ele ande para frente, segundo as configuraes abaixo, e mea a
distncia percorrida:

56
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Por 5 segundos: ________________


Por 5 rotaes: ________________
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:

1. Name: d um nome para a sequncia a ser gravada.


2. Recording: escolha quais motores tero seus movimentos registrados.
3. Time: quanto tempo ir durar a gravao da sequncia de movimentos.
Quando for escolhida a funo Play, pode-se escolher na lista que aparece qual das aes
gravadas ser executada.
Comando SOUND

Utilizamos essa funo para executar uma sequncia de sons, ou para reproduzir
notas musicais durante a execuo do programa.
O painel de configurao da opo SoundFile apresentado abaixo:

1. Action: selecionar SoundFile significa utilizar arquivos de som pr-gravados;


2. Control: inicia a execuo do som (Play) ou a interrompe (Stop).
Quando selecionamos Stop, as outras funes ficam desabilitadas;
3. Volume: define a intensidade em que o som ser executado;
4. Function: faz o som se repetir indefinidamente, ao selecionar Repeat;

57
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

5. File: seleciona qual arquivo de som ser reproduzido. Ao clicar em um arquivo, o


software ir reproduz-lo, desde que a placa de som esteja habilitada.
Ao fazer o download do programa para o NXT, o arquivo de som utilizado tambm
ser enviado.
6. Wait: A opo "Wait for Completion" define quando a prxima ao ser executada.
Quando a opo est marcada a ao s ser executada quando o som ou tom for
emitido por completo; caso contrrio, a ao ocorrer assim que o som iniciar.
O painel de configurao da opo Tone apresentado abaixo:

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

1. Action: tipo de contedo a ser exibido (Imagem, Texto, Desenho, Reset);


2. Display: sobrescrever o anterior ou apag-lo (Clear);
3. Files: imagens disponveis para exibio;
4. Position: exibe a imagem selecionada, correspondente ao arquivo escolhido, e a sua
posio no visor - X(horizontal) e Y(vertical);
5. Text: quando esta funo for selecionado em Action, uma janela para digitao do
texto dever aparecer;
6. Position: posio do texto na tela; possvel escolher em que linha ir aparecer. A tela
composta por 8 linhas;
7. Type: possvel escolher o tipo de desenho - Point, Circle, Line - para desenhar e criar
desenhos; no caso da linha, define-se o seu incio e seu fim; no caso do crculo, define-se o
raio;
8. Position: mostra a posio do objeto no display.
Ao selecionar 'Reset' em Action, o display ser limpado.

Comando WAIT

O comando Wait insere uma espera no programa, condicionando a continuidade da


programao a um tempo ou a um evento de sensor.
Quando Time selecionado no campo Control, a janela abaixo aparece:

1. Until: Determina a quantidade a ser esperada. O tempo dado em segundos e dcimos


de segundos. Como sinal de separao de casas decimais, so aceitos tanto ponto quanto
vrgula.

Quando selecionamos Touch Sensor no campo Control, a janela abaixo aparece:

1. Port: selecione a porta em que o sensor est conectado;

59
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

2. Action: selecione a ao no sensor de toque - Pressed (Pressionado), Released


(Liberado) e Bumped (Pressionado e, em seguida, Liberado).

Quando selecionamos Sound Sensor:

1. Port: selecione a porta em que o sensor est conectado;


2. Until: configura a espera do sensor por um som maior ou menor que a intensidade
definida pelas barras ou pelo valor inserido.
3. Determina a quantidade a ser esperada.

Quando selecionado Light Sensor:

1. Port: selecione a porta em que o sensor est conectado;


2. Until: determina se o valor que o programa ir esperar "mais claro" (direita) ou mais
escuro (esquerda), ou ainda fazendo uso dos smbolos de < ou >. A variao deve estar
entre 0 e 100.
3. Determina a quantidade a ser esperada.
4. Function: ao selecionar a caixa Generate Light, o sensor ir acender seu led
localizado na parte inferior para produzir luz para leitura, caso contrrio, far a leitura
baseado na luz ambiente.

Quando selecionado Ultrasonic Sensor:

60
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

1. Port: selecione a porta em que o sensor est conectado;


2. Until: determina se o valor lido pelo sensor ser maior (mais longe, direita) ou
menor (mais perto, esquerda), podendo usar os sinais de < ou > para determinar a
distncia.
3. Determina a quantidade a ser esperada.
4. Show: a medida usada pode ser em polegadas (inches) ou
centmetros (centimeters). A converso feita automaticamente. O valor dever ser
entre 0 e 250 polegadas ou de 0 a 635 centmetros.

Quando selecionado NXT Buttons:

1. Button: seleciona qual dos botes aguarda para ser pressionado, podendo ser ou
. O boto no pode ser utilizado devido a sua funo "Voltar".
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:

Como j explicamos antes, os servomotores possuem sensores de rotao embutidos.


1. Port: seleciona a porta em que o motor estar conectado;

61
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

2. Action: seleciona se dever ler (Read) a rotao ou zerar (Reset) a leitura.


Se Reset for selecionado, a opo Until desabilitada;
3. Until: determina at quando a leitura dever ser feita. Aqui considera-se o lado da
rotao;
4. Aqui inserimos o valor, a ser usado pelo Until, em graus (degrees) ou rotaes
(rotations);
5. Determina a quantidade a ser esperada.

Quando selecionado Timer:

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Comando LOOP

Com o Loop, podemos condicionar a repetio de uma sequncia de cdigo de


programao de diversas maneiras.
Quando for selecionado Forever:

1. Control: determina o modo de repetio; Selecionando Forever (em portugus, para


sempre), o trecho da programao contido no loop ser repetido infinitas vezes;
2. Show: quando selecionada a caixa Counter, o programa registra quantas vezes o loop
foi realizado. Caso contrrio, somente repete sem registrar.

Quando for selecionado Time:

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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:

2. Port: escolha da porta onde o sensor est conectado;


3. Action: seleciona qual padro deve ser esperado do sensor. Exemplo: se selecionado
Pressed, deve-se "seguir" a linha de programao que fica acima da bifurcao; caso
contrrio, segue-se a linha abaixo. No caso de escolher Bumped, deve-se escolher padres
somente entre verdadeiro ou falso.

Quando for selecionado Sound Sensor:

64
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

3. Compare: configura o parmetro de comparao de volume de som.

Quando for selecionado Light Sensor:

3. Compare: configura o parmetro de comparao do nvel de luminosidade;


4. Function: configura se a leitura ser somente da luz ambiente, ou, ao selecionar-se o
Generate light, acender o led no sensor.

Quando for selecionado Ultrasonic Sensor:

3. Compare: configura o parmetro de comparao de distncia do objeto detectado;


4. Show: determina a unidade de medida - polegadas (inches) ou centmetros
(centimeters).

Quando for selecionado NXT Buttons:

65
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

1. Button: seleciona o boto do NXT;


2. Action: tem a mesma funo Touch Sensor.
Quando for selecionado Rotation Sensor:

2. Action: configura ler o valor do sensor ou zer-lo;


4. Compare: configura o sentido da rotao, e se ser maior ou menor que o valor
determinado, em graus ou rotaes.

Quando for selecionado Timer:

3. Timer: seleciona um dos 03 timers disponveis no software;


4. Compare: determina o valor de comparao do timer, em segundos;

Quando for selecionado Receive Message:

1. Message: tipo de mensagem a ser recebida: Text, number, logic;


2. Compare to: parmetro para comparao conforme tipo selecionado acima: nmero
para number, texto para text, true ou false para logic;
3. Mailbox: escolher qual das 10 caixas de correio disponveis no software deve ser
consultada para a comparao.

66
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

67
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Formato do Dado Cor da linha de conexo

Numrico Amarelo

Texto Laranja

Incompatvel Cinza

Lgico Verde

Paleta Completa (Complete Pallete)

Como o nome j diz, contm todas as funes de programao disponveis no software.


Engloba todos os cones da Paleta Comum e mais alguns, permitindo um nvel de programao
mais complexo. Divide-se em:

Common: Rene as funes bsicas do software, j vistas


anteriormente;

Action: Aes a serem realizadas pelo programa, como ativar


motores,
emitir sons, exibir informaes no display. Refere-se a sada de
dados/aes;

Sensor: Funes e leitura dos sensores, tratamento da entrada de


dados;

Flow: Funes de fluxo do programa, como aguardar, repetir,


esperar;

Data: Funes relativas ao tipo e tratamento de dados obtidos;

Advanced: Funes avanadas de tratamento de variveis.

69
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Essas funes tambm podem ser acessadas pela Paleta Padro (j vista anteriormente).

70
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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


Configura o envio de mensagens via Bluetooth, para diferentes NXTs.
Para que o comando funcione, lembre-se de ativar no Bluetooth no seu NXT.

1. Connection: indica para qual conexo a mensagem ser enviada;


2. Message: indica se a mensagem enviada ser de texto (text), nmero (number), ou
lgica (logic);
3. Espao para insero da mensagem;
4. Mailbox: indica a qual caixa de correio est endereada a mensagem no outro NXT.

COMANDO LAMP
Configura o funcionamento de lmpadas com o NXT.

1. Port: indica a qual porta a lmpada est conectada;


2. Action: indica se acende ou apaga a lmpada;
3. Intensity: configura a intensidade da lmpada. O valor vai de 0% a 100%.

SENSOR

Seus comandos permitem ler os valores/respostas dos sensores, calibrar seus valores,
e permite que usemos estes dados dentro do programa.

71
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Touch Sensor: Permite testar o funcionamento do seu sensor, quando conectado no


NXT. Ao pression-lo, ir aparecer o nmero 1; ao colocar Reset, o sensor voltar a
0.

Sound Sensor: Permite saber instantaneamente o valor que o sensor est obtendo,
quando conectado ao NXT.

Ultra-sonic Sensor: Permite a visualizao instantnea do valor que o sensor est


lendo.

Rotation Sensor: Permite testar o funcionamento do seu sensor, quando conectado


ao NXT. Ao pression-lo ir aparecer o nmero 1; ao clicar Reset, o sensor voltar a
0.

NXT Buttons: Permite testar o funcionamento do seu sensor, quando conectado ao


NXT. Ao pression-lo, ir aparecer o nmero 1; ao clicar reset, o sensor voltar a 0.

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

Receive Message: Permite receber mensagens de outro NXT, respeitando as


configuraes feitas nos dois NXTs.

COMANDO RECEIVE MESSAGE


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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

1. Message: define o tipo de mensagem que deve ser recebida;


2. Compare to: parmetro para comparao;
3. Mailbox: define qual a Mailbox deve ser usada para comparar/receber a mensagem.

FLOW

Tem comandos referentes ao fluxo do programa, como esperas, repeties, tomadas


de decises e parada.

COMANDO STOP
No possui painel de configurao e sua funo finalizar todo o programa. No
caso de ser usado junto a motores, desliga os motores aps uma rotao, interrompendo
a leitura dos sensores e das demais funes.
Outros comandos do menu FLOW so Wait, Loop e Switch, e j foram vistos anteriormente.
DATA

Comandos referentes ao tratamento dos dados obtidos pelos sensores ou motores,


sendo possvel transform-los em grficos ou mesmo aprimorar os dados para tornar o
desempenho mais eficiente.

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.

Compare: compara dois valores entre si.

73
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Range: define o intervalo que pode ser usado, ou que deve ser analisado.

Random: determina um valor aleatrio, dentro do intervalo determinado.

Variable: define o valor de uma varivel, a ser usado em comparao, operao ou


qualquer outra funo.

COMANDO LOGIC

1. Define o valor das entradas como verdadeiros ou falsos, e mostra graficamente o


resultado;
2. Operation: configura o tipo de operao entre And, Or, Xor e Not.

possvel realizar operaes com operadores lgicos. Para facilitar a compreenso, siga as
tabelas verdade das pginas 46 e 47.

COMANDO MATH
Permite realizar operaes matemticas (adio, subtrao, diviso e
multiplicao) com os valores obtidos pelos sensores, utilizando tais resultados em
grficos ou como parmetros de configurao.

74
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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.

1. Entrada de valores a serem comparados;


2. Operation: Define o Tipo de Comparao: LessThan (menor que), Greather Than
(maior que), Equals (igual).

COMANDO RANGE
Define o intervalo de valores para ser usado como na configurao.

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

1. Range: define o intervalo de valores de onde ser escolhido o nmero aleatrio,


definido entre o mnimo e o mximo. Quando o valor digitado ultrapassar os valores, tanto
acima quanto abaixo, a range permanece no valor mnimo (0), ou no mximo (100).

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Text: Combina vrias sequncias de texto em uma s.

Number to Text: Transforma uma sequncia de nmeros em texto, para


que possa ser usado com cones que no possuam ligaes para nmeros.

Keep Alive: Coloca o NXT em estado de espera, seja para efetuar uma ao ou,
simplesmente, detectar dados sem consumir excessivamente a bateria.

File Access: Permite armazenar nmeros e textos do programa em arquivos


na memria do NXT, permitindo o posterior acesso.

Calibrate: Permite calibrar os sensores de luz e som em situaes especficas.

Reset: Permite resetar a posio dos motores, reajustando-os quanto ao movimento


conjunto de um par de motores.

COMANDO TEXT
Combina vrias sequncias de texto, concatenando at trs delas;

1. Text: sequncias de texto ou sentenas a serem concatenadas.

77
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

COMANDO NUMBER TO TEXT


Converte nmeros para textos, para poder utiliz-los com caixas de texto que no
aceitam nmeros.

Number: nmero a ser convertido em texto.

COMANDO KEEP ALIVE


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
Permite calibrar os sensores de luz e de som com os valores do ambiente,
permitindo uma interao e preciso maior do rob com o ambiente.

78
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

1. Port: Porta em que o sensor est conectado;


2. Sensor: Tipo de sensor que est conectado, se de Luz ou de Som;
3. Action: Determina se para calibrar o sensor ou resetar os valores, voltando a
configurao padro;
4. Value: Determina o valor a ser calibrado, se o mximo ou mnimo.

COMANDO RESET
Quando utilizado o comando MOVE, automaticamente o NXT faz um ajuste entre
a rotao dos motores configurados, aumentando a preciso dos movimentos. Porm, ao
utilizar o parmetro de configurao COAST, o mesmo pode perder a preciso na quantidade de
movimento (Degrees ou Rotations). Para ajustar a durao do movimento nessa situao, usamos o
comando RESET MOTOR.

1. Port: Portas que devem ter seus valores resetados.

Paleta Personalizada (Custom Pallete)

A paleta personalizada ir conter dois menus: os blocos de programa que voc ir criar, em
My Blocks, ou aqueles que podero ser baixados via download na internet, em WebDownloads,
disponibilizados por usurios como voc.
Esses blocos de programa so uma sequncia de comandos pr-determinados que foram
salvos, para facilitar a programao dos seus robs.

My Blocks: rene os blocos criados pelo usurio.

79
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Web Downloads: rene todos os blocos que voc fizer o download da web.

My Blocks - Como criar um bloco personalizado

Para ter blocos no menu My Blocks, preciso cri-los antes. Para isso, siga os seguintes
passos:
1. Abra uma janela e crie o programa que voc deseja transformar em um bloco, como
por exemplo,

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
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

4. Clique em Next para continuar.


5. Escolha um cone para representar o bloco e clique em Finish.
Quando colocar o ponteiro do mouse sobre My Blocks novamente, ir aparecer o seu cone
do bloco que voc criou. Para utiliz-lo, basta arrast-lo para a rea de trabalho do software.

81
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

Referncias
MORAES, Paulo Srgio de. Curso Bsico de Lgica de Programao, Unicamp -
Centro de Computao, 2000.
[Online] What is NXT? - http://mindstorms.lego.com/en-us/whatisnxt/default.aspx
[Online] NXT Tutorial - http://www.ortop.org/NXT_Tutorial/index.html
Manual de Programao para o NXT software - Educao Tecnolgica. ZOOM Ed.
Educacional Ltda, 2003. 2003.

Introduo Programao com Robs Lego est sob a


Licena Creative Commons Atribuio-No a obras Derivadas.

82
Introduo Programao com Robs Lego Projeto Levando a Informtica do Campus ao Campo

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

Você também pode gostar