Vous êtes sur la page 1sur 51

Universidade Federal Fluminense

TEE - Departamento de Engenharia Eltrica


Programa de Educao Tutorial da Engenharia Eltrica PET-Eltrica

Apostila de Robtica Educacional


Verso 1.0

Autores: Elson Antonio Nunes Jnior


Hernani Justo da Silva Jnior
Marcus Vinicius Bouas
Rodrigo De Oliveira Siqueira
Niteri Rio de Janeiro
2013

Sumrio
1 - INTRODUO ................................................................................................................. 4
2 - O QUE PROGRAMAO? ........................................................................................... 4
3 - O KIT LEGO MINDSTORMS NXT .................................................................................... 6
3.1 NXT ..................................................................................................................................... 7
3.2 - SERVO-MOTORES............................................................................................................ 8
3.3 - SENSORES ........................................................................................................................ 9
4 - VISO GERAL DO SOFTWARE.................................................................................... 11
4.1- PALETA DE COMANDOS .................................................................................................12
4.2 - CONTROLADOR NXT ......................................................................................................14
5 - BLOCOS DE PROGRAMAO .................................................................................... 14
5.1 - MOVE BLOCK ...................................................................................................................14
5.2 - DISPLAY BLOCK ..............................................................................................................16
5.3 - TOUCH SENSOR BLOCK: ...............................................................................................18
5.4 - LIGHT SENSOR BLOCK: .................................................................................................19
5.5 - ULTRASONIC SENSOR BLOCK:....................................................................................21
5.6 - LOOP BLOCK: ...................................................................................................................22
5.7- SWITCH BLOCK ................................................................................................................25
5.8 - WAIT BLOCK: ....................................................................................................................26
5.9 - VARIABLE BLOCK: ...........................................................................................................26
5.10 - MATH BLOCK: ................................................................................................................27
5.11- Number To Text BLOCK ..................................................................................................28
5.11 - USANDO FIOS DE DADOS (Data Wires).....................................................................28
6 - Experimento 1 - Prticas com o Sensor de Som NXT: ............................................... 35
6.1 - Introduo: .........................................................................................................................35
6.2 - Sentidos e sensores: .........................................................................................................35
6.3 - Experimento proposto: ......................................................................................................37
6.4 - Entendendo o programa: ..................................................................................................37
6.5 - Atividades: ..........................................................................................................................38
7 - Experimento 2 Lanador NXT: .................................................................................. 39
7.1 Introduo:.........................................................................................................................39
7.2 Estudo do movimento dos corpos: ..................................................................................39
7.3 - Experimento Proposto:......................................................................................................41
7.4 - Entendendo o programa: ..................................................................................................42

[2]

7.5 - Atividades: ..........................................................................................................................42


8 - Experimento 3 - Usando os Sensores Eletrnicos NXT ............................................. 43
8.1 - Introduo: .........................................................................................................................43
8.2 O Sensor Ultrassnico .....................................................................................................43
8.3 - Experimento proposto: ......................................................................................................44
8.4 - Entendendo o programa ...................................................................................................45
9 - Experimento 4 - Fita Mtrica Eletrnica NXT: ............................................................. 46
9.1 - Introduo: .........................................................................................................................46
9.2 - Curiosidades sobre medidas e unidades: .......................................................................46
9.3 - Experimento proposto: ......................................................................................................49
9.4 - Entendendo o programa: ..................................................................................................49
9.5 - Atividades: ..........................................................................................................................50
10 - Desafios....................................................................................................................... 51

[3]

1 - INTRODUO
Organizadas pelo Programa de Educao Tutorial de Engenharia Eltrica da
Universidade Federal Fluminense (PET-Eltrica UFF), em parceria com o Departamento de
Engenharia Eltrica (TEE) e a Escola de Engenharia da UFF, as aulas de Robtica
Educacional Como Ferramenta de Aprendizado para o Ensino Mdio tm como objetivo
trazer para estudantes de Ensino Mdio atividades prticas que tracem paralelos entre
disciplinas tericas apresentadas no Ensino mdio, como Fsica e Matemtica.
Com o uso dos kits LEGO MINDSTORMS NXT, os alunos podero criar
experimentos onde ser posto em prtica a teoria das salas de aulas, aplicada a projetos. Alm
disso, os alunos tero a chance de se aproximar de certos assuntos, que primeira vista podem
parecer distantes e complicados, mas que com o incentivo certo, se tornam enormes fontes de
aprendizado e diverso. Estamos falando de Robtica e Programao.
Nessa apostila esto contidas: informaes sobre os componentes do kit LEGO
MINDSTORMS NXT 2.0 e suas funes; um tutorial bsico sobre a programao envolvida
na criao dos modelos, com exerccios, descrio de quatro experimentos com o kit Lego,
que sero realizados para o estudante perceber as aplicaes de conhecimentos de fsica e
matemtica, vistos na prtica; e, ao final do curso, um Desafio Final a ser executado pelos
alunos, para competirem no I Campeonato de Robs da UFF, a se realizar em Outubro.

2 - O QUE PROGRAMAO?
Programas so, basicamente, instrues que um computador recebe e executa
conforme lhe foi dito. Algo parecido com uma receita de bolo: voc quando quer preparar um
bolo, deve seguir uma lista de comandos em uma ordem especfica, para que consiga um
resultado esperado; voc no pode pular etapas, como por exemplo, acrescentar cobertura no
bolo antes de lev-lo ao forno; no pode usar 5 ou 6 ovos para fazer a massa do bolo;
resumindo, no pode ir alm das instrues, se voc quiser que o resultado final seja o bolo.
Assim como a receita de bolo para voc, o programa ser para o rob.

[4]

O grande desafio, porm, que o rob no possui um crebro como um humano,


capaz de interpretar informaes; portanto, as instrues que voc der para ele tm que ser
especficas.
Como pequeno exemplo: Voc quer construir um carro rob que desvie de obstculos
a frente dele sozinho. Para um ser humano dirigindo este carro, os comandos que voc daria
para ele seriam exatamente esses:
Ex.:
Dirija o carro at que, se encontrar um objeto desvie, e continue a dirigir.
Mas, para um carro-rob, os comandos precisam ser bem mais especficos:

Ligue os motores.
Siga em frente at que:
Se encontrar um objeto a frente:
Pare os motores;
Gire a direo duas vezes para esquerda;
Siga em frente.
Se no encontrar um objeto a frente:
Siga em frente.
A programao no software oficial da linha LEGO MINDSTORMS, a linguagem
NXT-G, do tipo programao em blocos, isto , possui um ambiente interativo de
arrastar blocos de comandos para fazer a cadeia de programao. Esta apostila cobrir os
comandos bsicos existentes no programa, o necessrio para se realizar os experimentos
contidos no final da apostila.

[5]

3 - O KIT LEGO MINDSTORMS NXT

O kit de Robtica Educacional com o qual aprenderemos o kit 9797 LEGO


MINDSTORMS Education NXT Base Set. Diferente dos blocos de montar Lego mais comuns,
o kit consiste, alm de suas peas, de trs servo-motores que fazem o rob se mover, vrios
sensores que o rob usa para interagir com o ambiente ao seu redor, e do NXT Intelligent
Brick (ou somente NXT, visto na fotografia abaixo), considerado o crebro do rob.
No total, o Kit Lego Mindstorms NXT 9797 composto de 437 peas, sendo:

01 Bloco lgico programvel LEGO NXT;

01 Sensor de Luminosidade; 01 Sensor de Som;

02 Sensores de Toque; 01 Sensor de Ultrassom;

03 servomotores com encoders;

07 Cabos conectores (Padro RJ-12 polarizado direita);

Peas LEGO, como: Blocos de tamanhos diversos;

02 lmpadas (LED);

Elementos estruturais, como vigas (em L, retas e angulares) e pranchas;

Engrenagens (retas, cnicas e mistas, sistema coroa-pinho);

Correias, buchas e polias; Rodas, pneus e eixos de diversos tamanhos;

Conectores, conectores com inverso e conectores em ngulos;

Bateria recarregvel de on-Ltio 1400mA;

[6]

3.1 NXT

Figura 3.1 - NXT Intelligent Brick

O NXT a central de processamento do rob, pois, a partir dele, que ocorre o


trnsito de informaes, provenientes da programao que voc inseriu nele, como a leitura de
sinais do ambiente em que o rob est inserido. Ele possui quatro canais de entrada, onde os
sensores so inseridos, trs canais de sada, onde os servo-motores so inseridos, e uma
entrada USB, por onde se conecta a um computador para inserir o arquivo onde est escrita a
programao.
Tambm possui quatro botes de controle do rob (que tambm podem ser programados
para realizar aes se apertados), um sistema de alto falante do lado esquerdo, para reproduzir
sons, e uma tela de LCD que pode ser programada para demonstrar a atividade dentro do
NXT. Associados ao NXT esto diversos blocos de programao, como:

NXT Buttons Block,

Display Block, entre outros.

Os blocos de programao sero explicados mais adiante no captulo 5.

[7]

3.2 - SERVO-MOTORES
Os servo-motores so pequenos motores que realizam todas as tarefas mecnicas do
seu rob. Cada kit vem com trs servo-motores,
que sempre so conectados aos canais de sada
A, B e C do NXT. A eles esto associados
blocos de programao tais como:

Move Block;

Motor Block;

Calibrate Block;

Rotation Sensor Block;

Reset Motor Block.

Figura 3.2 - Servo-motor

A figura abaixo representa o funcionamento do servo-motor por dentro, composto de


vrias engrenagens de transmisso:

Figura 3.3 - Seo lateral do servo-motor NXT, mostrando o sistema de


engrenagens de transmisso de movimento.

[8]

3.3 - SENSORES
Sensores so dispositivos eletrnicos que tambm recebem comandos da programao
e realizam as mais variadas tarefas. Eles tambm so teis para recolher informaes do local
onde o rob est. Essas informaes so convertidas em dados, interpretados pelo NXT
Intelligent Brick, que reage de acordo com a programao descrita no cdigo. So conectados
s quatro portas de entrada 1, 2, 3 e 4. No kit LEGO coberto por essa apostila, os sensores
so: Light Sensor (Sensor de Luminosidade), 2 Touch Sensors (Sensores de toque), um
Ultrasonic Sensor (Sensor Ultrassnico), e um Sensor de Som (Sound Sensor).

3.3.1- SENSOR DE LUMINOSIDADE


O sensor de luminosidade capaz de captar diversos
nveis de luminosidade, seja de luz ambiente, ou luz
refletida em alguma superfcie. Ele tambm pode emitir
luz, atravs de um pequeno LED na ponta do sensor. O
Sensor de Cor pode detectar seis cores: Vermelho, azul,
verde, amarelo, branco e preto, enquanto a luz emitida pelo
LED pode ser vermelha, azul ou verde.

Figura 3.4 - Sensor de


Luminosidade

A ele est associado o bloco Light Sensor Block.

3.3.2- SENSOR DE TOQUE


Os sensores de toque servem para criar a sensao de
tato para o seu rob, para que ele possa perceber e reagir ao
ambiente a sua volta atravs do toque. Os botes podem
executar comandos quando apertados, pressionados, ou
levemente apertados.
A eles esto associados o bloco Touch Sensor Block.

[9]

Figura 3.5 - Sensor de Toque

3.3.3- SENSOR ULTRASSNICO

Figura 3.6 - Sensor Ultrassnico

O sensor ultrassnico capaz de emitir um leve sonar para rastrear o ambiente a sua
frente, agindo como os olhos do rob. Com esse sensor, possvel determinar tambm a
distncia de objetos que estejam no caminho do rob.
A ele est associado o bloco Ultrasonic Sensor Block.

3.3.3- SENSOR DE SOM


O sensor de som funciona como um pequeno microfone, que detecta o valor sonoro
em decibis, e capaz tambm de detectar diferentes timbres sonoros, agindo como os
ouvidos do rob.
A ele est associado o bloco Sound Sensor Block.
Alm desses sensores, tambm podem ser encontrados diversos outros que
complementam o seu rob, deixando cada vez mais autnomo e complexo. Porm, so
vendidos separadamente, como Sensores de Som (no necessrios a esse kit, j que o prprio
NXT possui um microfone interno), Temperatura, de Rotao, Acelermetros, etc.

[10]

4 - VISO GERAL DO SOFTWARE


A imagem abaixo exibe a tela inicial de programao do LEGO MINDSTORMS
NXT:

Figura 4.1 - Tela inicial do Programa LEGO MINDSTORMS NXT

A princpio, o programa abre a tela acima, dando as opes Create new program
(Criar novo programa) ou Open recent program (Abrir programa recente). direita, aparece
a guia Robo Center, que consiste de modelos de montagem de robs j disponibilizados pela
LEGO no software, que no sero abordados pela apostila.
Aps abrir um novo arquivo de nome Untitled-1.rbt, nome inicial que voc pode
modificar, estamos prontos para comear a programar. A seguinte tela aberta, mostrando a
Paleta de Comandos e o Controlador do NXT:

[11]

Figura 4.2 - Ambiente de programao do Programa LEGO MINDSTORMS NXT. Em destaque em vermelho,
a Paleta de Comandos

4.1- PALETA DE COMANDOS


No canto esquerdo do ambiente de programao, encontram-se a Paleta de Comandos,
onde esto os blocos que iremos usar para programar. Ela pode ser exibida de trs formas:
Common, Complete, e Custom. Usaremos apenas a exibio completa em nossa apostila.
Os blocos de programao se dividem na paleta completa em grupos de blocos, que
so: Common, Action, Sensor, Flow, Data, e Advanced.

[12]

Common: Nesse grupo encontram-se os blocos da paleta comum, que so os mais


utilizados geralmente em um programa. Com eles podemos acionar os servomotores, criar algumas repeties, usar o display do NXT para apresentar valores,
dentre outras aplicaes. Ex: Move Block, Loop Block, etc.

Action: Blocos que realizam aes, bem parecido com os blocos do grupo acima.
Destaque para o Motor Block, bloco usado para controlar com mais preciso apenas
um servo-motor por vez, e o Send Message Block, usado para controlar
remotamente o NXT via Bluetooth (no ser utilizado nos exerccios).
Sensor: Blocos usados pelos sensores, j mencionados anteriormente. Destaque para
o Timer Block, no mencionado anteriormente, que registra o tempo que o
programa est rodando, ou que um dos servo-motores est sendo executado, graas a
trs contadores internos de tempo, um para cada servo-motor.

Flow: Grupo de blocos que contm Estruturas de Controle, que so blocos que
guiam o seu rob a agir de acordo com condies que podem ser estabelecidas por
ns, ou pelo local onde ele est. Essas estruturas tornam o programa, e consequente o
rob, mais inteligente. Por exemplo, temos o Loop Block, Wait Block, Stop Block,
e Switch Block
Data: Blocos lgicos ou matemticos, usados para fazer clculos e comparaes
entre os valores obtidos pelos sensores e servo-motores, e, a partir da, tomar aes.
Como exemplo, temos: Logic Block, Math Block, e Random Block. O uso desses
blocos torna seu programa muito mais preciso e dinmico, como veremos nos
exerccios.
Advanced: Esse blocos so usados para funes mais complexas do Lego
Mindstorms. Para o uso dessa apostila, sero utilizados somente o Number to Text
Block e File Access Block, e seus usos sero devidamente explicados conforme
necessrio.

Tabela 4.1 Paleta de comandos e seus grupos de blocos

[13]

4.2 - CONTROLADOR NXT


No canto inferior-direito, encontra-se o Controlador NXT, onde podemos fazer o
download dos programas criados para o NXT, alm de verificar caractersticas do NXT, como
bateria restante, memria ocupada, etc.

Janela NXT
Fazer download e iniciar
Fazer download

Parar o programa

Figura 4.3 - Controlador NXT e descrio dos seus botes

Agora que voc j conhece o layout bsico do programa, est na hora de comear a
conhecer os Blocos de Programao.

5 - BLOCOS DE PROGRAMAO
A programao em blocos do LEGO MINDSTORMS NXT-G a linguagem de
programao principal para se programar o Kit LEGO MINDSTORMS. Cada bloco existente
no programa possui certas configuraes, que precisam ser observadas da mesma forma, para
que o bloco faa exatamente o que se quer. Esta seo vai cobrir, alm de uma breve
descrio dos principais blocos, o conceito de Fios de Dados (Data Wires), necessrio para
trabalhar melhor com informaes coletadas pelo programa ou pelos sensores.
5.1 - MOVE BLOCK
O Move Block serve para girar os servo-motores em sentido horrio ou anti-horrio, e
dessa forma, fazer com que seu rob ande para frente ou para trs em uma linha reta, ou girar
para poder fazer uma curva. Voc pode tambm definir a distncia percorrida pelo seu rob
atravs da configurao de durao do movimento. Ao arrastar o Move Block para a linha de
comandos, as seguintes configuraes padro que iro aparecer nele so:

[14]

1. As letras no canto superior direito do bloco mostram quais portas de servo-motores


(A, B ou C) o bloco ir controlar;
2. Esse cone mostra em qual sentido seu servo-motor est girando.
3. Esse cone mostra o nvel de potncia no motor. Quanto mais potncia, maior a
velocidade que seu rob ir andar, ou maior fora ele ter para levantar coisas, ou
subir uma rampa, por exemplo. Para fazer movimentos mais precisos, porm, preciso
menos potncia.
4. Esse cone mostra a durao do movimento. Pode ser configurado para contar o
nmero de rotaes do motor, graus de giro, segundos de movimento, ou
infinitamente. Observe que os giros sero medidos de acordo com a engrenagem
interna do servo-motor, portanto, precisam ser convertidos adequadamente para
engrenagens ou rodas maiores.
5.1.1 - Configurando o Move Block

1. Seleciona os motores que voc quer controlar. Caso voc selecionar dois ou mais
motores, eles se movero em sincronia;
2. Escolhe o sentido de giro do motor (Horrio ou anti-horrio), ou informa para ele
parar. Selecionando Pare (Stop) ir desligar os motores;
3. Caso voc estiver usando dois ou mais motores para controlar um veculo, um de cada
lado, a configurao Steering estar disponvel. Ela serve para controlar a potncia

[15]

oferecida aos dois sensores de forma automtica. Ao deslizar o boto, o motor da


esquerda ou da direita receber mais ou menos potncia, o que til para fazer curvas;
4. Regula o nvel de potncia dada para os motores, de 0 a 100%;
5. Escolhe de qual forma ser controlada a Durao do movimento do rob (por rotaes
do motor, por graus de giro, segundos decorridos ou de forma infinita). Controlando a
durao do movimento, possvel controlar a distncia percorrida pelo rob.
6. Escolhe a prxima ao do seu rob (aps a durao do movimento ser respeitada). Os
motores podem frear (Brake) ou estacionar (Coast). O comando Brake faz com que o
motor pare com mais preciso. Ele tambm gasta mais energia, visto que realmente
trava as engrenagens do seu motor. J o comando Coast para os motores mais
suavemente.
7. As trs caixas de feedback fazem a contagem dos graus de giro ou rotaes dadas pelo
motores em tempo real, com o programa rodando, mas ainda ligado ao computador
pelo cabo USB. Aperte o boto reset para zerar os valores exibidos.
5.2 - DISPLAY BLOCK
O Display Block serve para poder exibir uma imagem ou texto na tela de LCD do seu
NXT. Ao inserir vrios Blocos Display em sequncia, voc pode ir criando imagens mais
complexas, ou adicionando mais texto na tela, conforme desejar. O uso da tela de LCD
importante para que voc tenha uma espcie de controle do que est acontecendo dentro de
seu programa, quando o rob estiver em funcionamento.

[16]

5.2.1 - Configurando o Display Block

1. Nesse menu voc pode escolher se vai exibir uma imagem, texto, ou um desenho
prprio; ou escolher a opo Reset, para apagar o display.
2. A opo Clear serve para apagar o contedo da tela.
Para exibir uma imagem (como na imagem acima), voc poder configurar as seguintes
opes:
3. Em File (Arquivo), voc poder escolher uma imagem do arquivo de imagens para
exibir.
4. Em Position (Posio), voc pode arrastar sua imagem exibida para qualquer canto da
tela, ou inserir as coordenadas X e Y de onde exatamente voc quer que a imagem seja
impressa na tela.

Para exibir texto (como na imagem acima), voc poder configurar as seguintes opes:
5. Escrever o texto desejado na caixa Text.
6. Em Position (Posio), voc pode arrastar seu texto para ser exibido em qualquer
canto da tela, ou inserir as coordenadas X e Y de onde exatamente voc quer que o
texto seja impresso na tela.

[17]

5.3 - TOUCH SENSOR BLOCK:


O Touch Sensor Block serve para monitorar as condies do Sensor de Toque em
pontos especficos do seu programa. Ele pode ser acionado de trs maneiras distintas
(encostado, pressionado e liberado) e, quando acionado, envia essa informao para o NXT,
que executa alguma ao com esse dado. Os sensores transportam essas informaes
coletadas atravs de Fios de Dados (Data Wires).
Os Fios de Dados so conectados no Input/Output de um bloco para outro,
transportando a informao obtida pelo primeiro bloco. No caso do Touch Sensor Block, essa
informao ser um valor lgico, ou seja, se o boto foi apertado, o sensor envia um valor
verdadeiro (True) para o NXT; seno, envia um valor falso (False). Em informtica, os
valores Tue/False so computados tambm como 0 e 1 pelo processador do NXT. Os Fios de
Dados sero mais bem abordados na seo 5.11.
Ao arrastar o Touch Sensor Block para a linha de comandos, as seguintes
configuraes padro que iro aparecer nele so:

1. O nmero mostra qual a porta do NXT esto conectadas ao sensor de toque. A porta
pode ser alterada na opo Port.
2. Esse cone mostra qual ao enviar um valor lgico para o NXT. Se o sensor for
acionado, envia um sinal True; Caso contrrio, envia um sinal False.
3. O Input de valores lgicos do bloco abre automaticamente quando o bloco for arrasto
para o programa. possvel expand-lo, para mostrar mais opes, ou fech-lo
totalmente, clicando na linha sombreada cima do Input.

[18]

5.3.1 - Configurando o Touch Sensor Block

1. Seleciona a porta que o Sensor de Toque est conectado.


2. O Sensor de Toque pode ser acionado de trs formas: Escolha Bumped (encostado) se
voc quer que o sensor seja acionado aps ser pressionado e liberto rapidamente
(menos de 0,5 segundos). Escolha Pressed (pressionado) se voc quer que o sensor
seja ativado no exato momento em que pressionado. E por fim, escolha Released
(liberado) se voc quer ativar o valor lgico True quando o sensor for solto (caso
contrrio da opo Pressed).
3. A caixa de feedback permite que voc teste seu sensor de toque, quando o rob ainda
est conectado ao PC pelo cabo USB. Se voc apert-lo, dependendo da opo que
marcou em (2), ir surgir o valor 0 ou 1 na caixa. Clique em Reset para limpar a caixa
aps o sensor ter sido apertado.
5.4 - LIGHT SENSOR BLOCK:
O sensor de cores do bloco possui dois modos: um para a deteco de cores diferentes
e o outro para medir a intensidade da luz. Os modos podem ser usados dentro de condies
impostas por loops ou mesmo por comando Wait, as informaes podem ser tanto
comparao de intensidade de luz quanto tonalidades.

1- Nmero da porta aonde o Sensor de cor esta ligado, este pode ser mudado pelas
configuraes do bloco.
2- Este cone mostra o modo de sensor de cor.

[19]

3- O concentrador de dados do bloco ir abrir automaticamente, quando o bloco


colocado na rea de trabalho. Voc pode arrastar fios que ligam informaes dos
dados obtidos pelo bloco para outro.
5.4.1 Configurando no modo sensor de cor:

1- O nmero no canto superior direito do Color Sensor bloco mostra qual porta NXT
estar controlando o bloco. Voc pode mudar este nmero no painel de configurao,
se voc precisar.
2- Este cone mostra o modo de sensor de luz e da cor selecionada na barra de funo:
vermelho, verde ou azul.
3- Este cone indica a tonalidade da cor definida
4- Use os controles deslizantes direita e esquerda para definir a faixa de cores que ir
definir o intervalo de cor: preto, azul, verde, amarelo, vermelho e branco.
5.4.2 - Configurando no modo Light Sensor

1- Use o controle deslizante para definir o valor desejado ou digite um valor diretamente
na caixa de entrada. Selecione o boto direita do controle deslizante com a opo
maior ( > ) se voc deseja comparar valores maiores do que o escolhido, escolha a
opo menor (<) se deseja comparar valores menores que o escolhido.
2- Se voc marcar a caixa de seleo "Light", o sensor de luz vai se transformar em sua
prpria fonte de luz e detectar essa luz, se ela refletida de volta para ele. A luz
padro gerada ser vermelha, mas voc pode escolher verde ou azul dependendo da
superfcie. Se a luz estiver selecionada, a cor a ser acionada ser mostrada como um
[20]

cone no bloco. Deixe a caixa de seleo "Light" desmarcada para medir a luz
ambiente.
3- A caixa de comentrios mostra a quantidade atual de luz detectada (0-100). Voc pode
us-la para experimentar diferentes valores.
5.5 - ULTRASONIC SENSOR BLOCK:
Este bloco pode detectar objetos a uma distncia mxima de cerca de 100 polegadas
(250 cm). Usando fios de dados, ele pode enviar a leitura de ultra-som e um sinal lgico (true
/ false) com base na leitura de ultra-som atual, verificando se esta se situa acima ou abaixo de
um ponto escolhido.
O ponto inicial o valor determinado de uma srie de nmeros em que uma alterao
na condio ocorre. Por exemplo, voc pode programar o seu rob para atacar quando um
objeto se aproximar mais de 30 polegadas (76 cm) de alcance mximo do sensor ultra-snico.
O ponto de disparo seria 30.

1- O nmero mostra qual das portas est conectado ao sensor ultra-snico. Voc pode
mudar este nmero no painel de configurao, se voc precisar.
2- Este cone mostra se o sensor de ultra-som est definido para detectar objetos
prximos ou distantes. As barras mais coloridas indicam distncias maiores de
deteco.
3- O concentrador de dados do bloco ir abrir automaticamente quando o bloco for
colocado na rea de trabalho. Voc pode arrastar fios que ligam informaes dos
dados obtidos pelo bloco para outro.

[21]

5.5.1 - Configurando o bloco do sensor ultra-snico:

1- Define em qual porta voc deseja por o sensor, por padro este est na 4.
2- Nesta opo voc pode usar a barra deslizante para escolher a distncia de
comparao que voc deseja medir; na opo logo abaixo da barra voc decide se
ir procurar por valores maiores ou menores em relao ao escolhido.
3- Nesta opo voc escolhe a unidade de comprimento, centmetros ou polegadas.
4- A caixa de dilogo te mostra qual a maior e a menor medida que pode ser
mensurada, de acordo com cada unidade.

5.6 - LOOP BLOCK:


Utilize este bloco para repetir sequncias do cdigo. Defina uma condio que vai parar o
loop; elas podem ser tempo decorrido, nmero de repeties, um sinal de lgica ou um sensor.
Voc tambm pode definir um loop que dure para sempre.
Algumas configuraes:

1- Quando a propriedade de ao de um bloco de Loop definido como "Forever", um


smbolo de infinito () exibido na parte inferior do bloco.
[22]

2- Se a caixa de seleo "Show Contador" selecionada no painel de configurao, um

plug aparecer que permitir que voc use o nmero de voltas concludas como uma
entrada em outro lugar no seu programa, voc tambm pode usar a contagem atual
para controlar o prprio loop.
3- Se voc optar por um sensor para controlar o loop, a imagem do sensor escolhido ir
aparecer na parte posterior. Por exemplo, se voc escolher um sensor de luz para
controlar o loop, um cone do sensor de luz ser exibido na parte ampliada do bloco.
Alm disso, todas as informaes relevantes sobre a propriedade do controle escolhido
sero exibidas na parte inferior do bloco.

[23]

5.6.1 Configuraes dos condicionais:


Forever

1- Marque a caixa "Show Contador", para usar o nmero de ciclos completos como

entrada para outro bloco.


Os sensores possuem basicamente o mesmo princpio, mudando claro que cada um tem
suas configuraes. Apresentaremos a configurao do touch sensor e as demais sero vistas
em prticas.

Touch Sensor

Se voc escolher "sensor de toque", os blocos de programao dentro do loop sero


repetidos at que um sensor de toque colidido, pressionado ou liberado. Ento, o ciclo vai
terminar e o programa vai continuar.

1- Porta onde o sensor estar conectado.


2- Seleciona a condio na qual o loop estar restringido, relacionado ao sensor de
toque neste caso.
3- A caixa de comentrios deixar voc testar o seu sensor de toque. Quando o sensor
ativado em seu rob, o nmero "1" ser exibido aqui.
4- Se a caixa de seleo "Show Contador" selecionada no painel de configurao,
um plug-in aparecer que permitir que voc use o nmero de voltas concludas
como uma entrada em outro lugar no seu programa.
[24]

5.7- SWITCH BLOCK


O Switch Block um bloco que tem a funo de deciso entre duas sequncias de
cdigos. Por exemplo, quando voc configura o TOUCH SENSOR, o switch block pode
executar uma srie de blocos quando o boto for pressionado, ou outra sequncia de blocos
quando no pressionado. Seria como um bloco de deciso, que divergisse entre duas escolhas.

1. Esse cone indicado pelo sensor mostra a condio imposta para escolher entre dois
caminhos de linha de blocos.
2. Caso o boto seja pressionado, ento ser executado o UPPER BLOCKS.
3. Caso o boto no seja pressionado, ser executado o LOWER BLOCKS.

Configuraes:

1- Esta opo est relacionada com o modo de controle do bloco podendo ser valor ou
sensor, abrindo algumas opes para o controle.
2- Esta opo, quando desmarcada, faz com que os caminhos do bloco virem abas e estes
fiquem mais compactos.
3- Esta opo a configurao do seu controle. Como na imagem foi escolhido o tipo
logic. vemos que este pode ser verdadeiro ou falso.
[25]

4- Esta opo escolhe o valor principal, aquele que ser a condio para continuar no

programa principal.
5.8 - WAIT BLOCK:
O Wait Block faz parte do conjunto de Flow Blocks, que so blocos que dinamizam as
aes e o movimento do seu rob, tornando-o mais inteligente. Esse bloco permite que seu
rob aguarde por um determinado tempo antes de tomar uma ao, ou que ele aguarde at que
certa condio seja satisfeita, para que ele tome uma ao definida. Observe que os servomotores no podem ser controlados diretamente pelo Wait Block, tendo que ser monitorados
pela opo de tempo no Wait Block.
O Wait Block vem com duas formas de controle: Aguardar algum sensor (esquerda), e
somente aguardar (direita).

Na funo de aguardar algum sensor:


1. O nmero no canto superior direito mostra qual porta do NXT o Wait Block est
monitorando. A porta pode ser mudada na opo Port.
2. Mostra qual sensor que voc est monitorando. Para cada sensor, existem
configuraes diferentes, mas que so bem parecidas com as configuraes dos
prprios blocos de sensores. No caso do Sensor de Toque, o cone mostrar qual a
condio que est sendo monitorada (Boto apertado, pressionado ou encostado).
5.9 - VARIABLE BLOCK:
Uma varivel um espao que voc reserva na memria do seu computador para
armazenar um determinado valor. Este o princpio deste bloco, armazenar um determinado
tipo de valor que voc precisa.

[26]

1- O nmero indicado na figura representa a sada de dados do bloco, ou seja, voc pode
utilizar os dados do bloco usando um fio de dados e o ligando em outro bloco que
possa utilizar esses dados.
Configuraes do bloco

1- O nmero 1 da figura indica o tipo da varivel que ser usada.


2- Na opo action voc pode escolher se a varivel ir receber um valor ou se vai ser
lido um valor armazenado nela.
3- Nesta opo voc pode inserir diretamente um valor para a varivel de acordo com o
tipo.
5.10 - MATH BLOCK:
Este bloco executa operaes aritmticas simples como adio, subtrao,
multiplicao e diviso. O bloco tambm pode executar valor absoluto e a raiz quadrada. Os
nmeros de entrada podem ser digitados ou fornecidos dinamicamente por fios de dados.

Na figura podemos observar duas entradas e uma sada, ou seja, nosso bloco permite a
entrada de 2 nmeros, dados, que sero fornecidos e de acordo com a escolha da operao ir
gerar uma resultado de sada.

[27]

5.11- Number To Text BLOCK

Bloco usado para a converso de nmeros para caracteres; isso serve quando
desejamos colocar no display do nosso Lego alguma informao numrica.
Os dados podem ser usados de blocos cujas sadas so nmeros, e fazemos uma
ligao por fios para a entrada #, ou podemos jogar um nmero diretamente na opo do
bloco como na figura abaixo.

5.11 - USANDO FIOS DE DADOS (Data Wires)


Fios de dados transportam informaes entre os blocos de programao. Algumas
condies so necessrias para a utilizao correta, o que veremos abaixo:

[28]

Podemos utilizar os fios de dados abrindo a aba de opes dos blocos para transportar
diferentes informaes. Cada tipo de dado tem uma respectiva entrada e sada, e isso varia
conforme o bloco. Por exemplo, no se deve transportar um dado numrico para uma entrada
lgica, quando isso feito, o prprio programa acusa, na forma de um fio cinza pontilhado, e
quando o fio corretamente transportado, este possui uma colorao especfica para o tipo de
dado.

EXEMPLOS DE PROGRAMAO
Exemplo 1 : Faa seu Rob andar durante 5 segundos com os motores B e C, depois gire 90
para a esquerda. Veja o passo a passo da montagem do rob ExpressBot no arquivo Passo
a passo - Exercicios de programao - ExpressBot.pdf.
Resoluo.: Para resolvermos esse problema devemos separ-lo em partes afim de facilitar o
processo;
Vamos comear fazendo nosso rob andar durante 5 segundos com os motores B e C.

Para isso podemos usar o bloco Move e configur-lo para andar neste intervalo de
tempo :

[29]

Trocar para
segundos

Agora vamos utilizar o bloco Move novamente para fazer a curva para a esquerda:

ngulo escolhido

Curva a esquerda

[30]

Mudar para
Graus

Loops:
Imagine que voc receba uma tarefa a ser cumprida, na qual voc executa uma mesma

atividade vrias vezes como, por exemplo, pegar 20 canetas em seu armrio e coloc-las em
uma mesa na sala, sendo que s permitido pegar uma por vez, o que voc faria? Isso
simples, voc iria andar at o armrio pegar uma caneta e voltaria at a sala com a mesma
colocando a caneta na mesa, e faria isso 20 vezes. Vale lembrar que nosso amigo rob no
entende uma ordem deste tipo, ou seja, ele precisa receber essas 20 tarefas de forma
independente. Mas, claro, no necessrio que voc repita a mesma tarefa 20 vezes.
Uma ferramenta muito usada por programadores em diversos ambientes de
programao o Loop, uma repetio, ou seja, essa ferramenta permite repetir uma atividade
um determinado nmero de vezes imposto pelo programador; em nosso caso, nosso bloco
muito usado em programas o bloco Loop, que configurado para fazer quantas repeties
desejar.

Vamos exemplificar:
Exemplo Rob: avance por 5 segundos, vire 90 para a esquerda. Repita quatro vezes.
Para este exemplo vamos usar trs blocos, um ser nosso bloco Loop e os outros para
o movimento de nosso rob.

[31]

Bloco Loop

Configuramos o Loop para


count, um contador, ou
seja, ir repetir o numero
de vezes por voc
escolhido.

Bloco Move

Configure o Loop para executar 4 vezes e os blocos de move de acordo com o que foi
pedido.
Sensores
Com apenas estes blocos de movimento e repetio (Loop), j temos a possibilidade
de criar vrios programas. Porm, antes de nos aprofundarmos em problemas mais
complexos, vamos voltar a comentar sobre os sensores, mas, desta vez, vamos utilizar seus
blocos e ver alguns exemplos de seu funcionamento.

Sensor de Toque

Vamos discut-lo diretamente em um exemplo:

[32]

1 Exemplo: Rob, ande at o sensor de toque a ser pressionado; quando esta condio for
satisfeita, recuar 3 segundos e girar 180 para trs.
Vamos apenas inserir o bloco que vai utilizar o sensor, o restante do programa fica
como exerccio.
Observamos que no se trata de um comando simples para colocar o bloco do sensor.
Se prestarmos ateno, vamos entender que a condio andar at o boto ser pressionado,
para isso vamos fazer o seguinte:

Vamos
primeiro clicar
aqui.

Segundo clicar
em Wait.

O bloco Wait como um controlador, ele muito usado para condicionar o


movimento do seu rob. Escolhemos este em control ,marcamos sensor e em action pressed.

A ideia de usar os outros sensores para controlar seu programa a mesma, voc pode
testar este mesmo programa com os outros sensores, adaptando cada situao com o sensor
em questo. Basicamente, usaremos nossos sensores assim, como uma ferramenta que
modificar o comportamento de nosso rob.

[33]

Existem muitos outros blocos dentro de nosso ambiente de trabalho no software,


porm, nem todos esses sero vistos. Teremos uma ideia mais geral de outros blocos nos
exerccios que esto por vir, que sero muito intuitivos e por isso evitaremos nos estender
neste tpico.
Aps abrir um novo arquivo, estamos prontos para comear a programar. Como
exerccio de programao, listamos os seguintes desafios abaixo. No necessria ainda
nenhuma montagem com as peas do kit para realizar esses exerccios, apenas que os sensores
estejam conectados ao NXT e que este esteja conectado ao computador.

Sensores

NXT

PC

EXERCCIOS DE PROGRAMAO:
1 - Usando o Display Block, faa com que o NXT exiba a mensagem Hello world! em seu
LCD por cinco segundos, depois espere um segundo e exiba um smile.
2 - Conectando um servo-motor ao NXT, faa com que o motor gire por cinco rotaes para
frente, aguarde dois segundos, gire de volta as cinco rotaes e pare. Faa o NXT tocar um
som avisando que completou o exerccio.

[34]

6 - Experimento 1 - Prticas com o Sensor de Som NXT:

6.1 - Introduo:
Nesse primeiro experimento, proposto que o grupo dever se dividir entre
construtores e programadores, para que a tarefa seja realizada mais rapidamente.
recomendvel que os alunos troquem de funes a cada atividade, para ficarem aptos s duas
etapas dos experimentos.
Neste experimento, ser proposto que as equipes construam um modelo de veculo
simples, para que possam control-lo atravs de som, usando o Sensor de Som. O passo a
passo para a montagem o arquivo Passo a passo Experimento 1 Base ModelBot.pdf. A
programao ser apresentada como pseudo-algoritmo, na seo Entendendo o Programa,
cabendo aos alunos a criao de seu prprio cdigo em NXT-G. Para a montagem dos
modelos, os alunos devero acessar a seo Robtica Educacional, no site do PET-Eltrica
UFF (www.peteletrica.uff.br), e baixar os arquivos em PDF.
6.2 - Sentidos e sensores:
Os cincos sentidos humanos:
Existem partes do seu corpo que atuam como rgos sensoriais: olhos, nariz, ouvidos,
lngua e pele. Eles so responsveis por levar informaes ao seu crebro sobre o ambiente ao
seu redor, para que ele tome decises. Isto muito similar ao funcionamento dos sensores dos
robs. O seu crebro usa continuamente as informaes que recebe de seus rgos sensoriais
para fazer seu corpo funcionar corretamente.

Figura 8.1 - Os cinco sentidos: viso, audio, paladar, tato e olfato

[35]

Quando os sensores do corpo humano detectam um estmulo, eles enviam essa


informao atravs do sistema nervoso (semelhantes a fios) para o crebro, que o rgo que
decide o que fazer com base nas informaes recebidas.
Sensores Eletrnicos:
Os sensores dos robs coletam informaes dos arredores, atravs de pequenos
componentes eletrnicos em seu interior, e enviam para o NXT Brick. Para enviarem essa
informao, os sensores se comunicam atravs dos fios (semelhante ao do sistema nervoso no
organismo humano) que os ligam ao NXT Brick, que utiliza a informao se o programa
requer. Os Sensores tambm so muito parecidos com os membros do corpo humano (ex:
Sensor ultrassnico e o sentido da viso; Sensor de toque e o sentido do tato, etc)

Figura 6.2 - NXT Brick e seus diversos sensores eletrnicos

Para o nosso experimento, iremos nos focar no uso do Sensor de Som, que tambm
o sentido auditivo do rob. Durante esta atividade, voc vai ganhar mais experincia na
programao dos seus robs, desta vez para responder a diferentes sons!
Como funciona o Sensor de Som:
Ondas sonoras so vibraes mecnicas dissipadas no ar, que so captadas e
interpretadas por nossos ouvidos. Toda onda sonora possui uma frequncia prpria, e quanto
maior a frequncia, mais agudo o som. Quanto menor a frequncia, mais graves so os sons.
No Sensor de Som, uma pequena camada fina de material elstico, chamada
diafragma, vibra quando atingida por ondas sonoras (semelhante a um tmpano humano). Se
[36]

as vibraes no diafragma so grandes em volume o bastante para ser detectado, o sensor de


som envia um sinal eltrico para o NXT Brick.
6.3 - Experimento proposto:
O experimento ir se focar no sentido da audio dos seres humanos e sua contraparte
em um rob, o Sensor de Som. Usando o modelo NXT Base ModelBot, os alunos so
desafiados a criar um programa usando o sensor de som. O rob deve responder ao som de
uma salva de palmas de mo. Ao ouvir a primeira palma, o rob, enquanto se move para
frente, deve virar para a direita e, em seguida, continuar a avanar. Na segunda palma, deve
virar esquerda e continuar a avanar. Fazendo isso, eles melhoram seu entendimento do
funcionamento do Sensor de Som, e reforam seu conhecimento a respeito de processos
sensoriais como um todo.

Figura 6.3 - Modelo NXT BaseModelbot com Sensor de som acoplado

6.4 - Entendendo o programa:

O programa necessrio para o experimento dever:

Movimentar-se por tempo indeterminado;


Reconhecer sons especficos e reagir a eles;
Parar de se mexer quando pedido;
Girar sobre o prprio eixo e voltar atrs;
[37]

Assim, o pseudo-algoritmo pode ser escrito da seguinte forma:

Rodar o programa por quanto tempo quiser:

Se mover por quanto tempo quiser;

Se captar o som de palmas:

Dar meia-volta;

Se movimentar para o lado oposto at ouvir palmas novamente;

Repetir o passo 3;

6.5 - Atividades:

As atividades a serem realizadas esto descritas na Folha de Atividades - Experimento 1 Prticas com o Sensor de Som NXT.

[38]

7 - Experimento 2 Lanador NXT:


7.1 Introduo:
Nesse experimento, ser proposto que as equipes construam um disparador de
projteis simples que ir realizar lanamentos oblquos, um experimento clssico de fsica
cinemtica. Com os lanamentos, os alunos podero observar a eficincia dos servo-motores
do NXT. O passo a passo para a montagem o arquivo Passo a passo Experimento 2 NXT
Ball Shooter.pdf, com algumas modificaes que sero passadas pelos professores. A
programao ser apresentada como pseudo-algoritmo, na seo Entendendo o Programa,
cabendo aos alunos a criao de seu prprio cdigo em NXT-G. Para a montagem dos
modelos, os alunos devero acessar a seo Robtica Educacional, no site do PET-Eltrica
UFF (www.peteletrica.uff.br), e baixar os arquivos em PDF.
7.2 Estudo do movimento dos corpos:
Um pouco de histria:
As nossas ideias atuais sobre o movimento dos corpos vm dos tempos de Galileu e de
Newton. Alm de provar, que, por exemplo, corpos de pesos diferentes caam com
velocidades diferentes (provando a existncia de uma fora gravitacional g, que se relaciona
com a massa dos corpos), Galileu tambm o responsvel pelo Princpio da independncia
dos movimentos, ou Princpio de Galileu, que anuncia a independncia dos movimentos na
vertical e horizontal de um mesmo corpo e seus movimentos relativos, ou seja, esses dois
movimentos podem ser estudados separadamente, pois eles no dependem um do outro.

[39]

Abaixo, um exemplo clssico do princpio: O lanamento oblquo de um corpo.

Figura 7.1 - Lanamento Oblquo de um corpo

Observe que podemos separar o movimento oblquo do corpo em dois: o movimento


vertical e o movimento horizontal. O projtil se deslocar para a frente em uma trajetria que
vai at uma altura mxima e depois volta a descer, formando uma trajetria parablica..
Movimento horizontal:
Na direo horizontal o corpo realiza um Movimento Uniforme com velocidade igual
a Vx. O alcance mximo a distncia entre o ponto do lanamento e o ponto da queda do
corpo, e, por se tratar de um movimento uniforme, determinado por:

, sendo t a

durao total do movimento.


Movimento vertical:
Na direo vertical o corpo realiza um Movimento Uniformemente Variado, com
velocidade inicial igual a Voy, e acelerao da gravidade (g). Durante a subida, a velocidade
vertical diminui, chegando a um ponto de altura mxima H, onde Vy=0, e desce aumentando a
velocidade, at chegar mesma altura a qual foi lanado, onde volta a possuir a velocidade
vertical inicial. Por ser um MUV, para determinarmos a altura mxima do movimento,
utilizamos as equaes de Funo Horria:

[40]

E a Equao de Torricelli:

Observe que a acelerao da gravidade ser positiva ou negativa, dependendo se o


projtil esta subindo (desacelerando), ou descendo (acelerando).
Para encontrarmos a velocidade instantnea em que o projtil foi disparado, faremos a
soma vetorial das velocidades horizontal e vertical, ou seja,

. O vetor

velocidade tangente trajetria em cada momento. Observe tambm que, pela equao
acima, tambm podemos obter a seguinte relao trigonomtrica entre as velocidades, sendo
o ngulo de lanamento do projtil:
e

7.3 - Experimento Proposto:


O experimento desse captulo ir propor a montagem de um lanador de projeteis, que
atua em um ngulo determinado. Os alunos devero fazer a montagem de acordo com o passo
a passo, e tentar observar algumas grandezas relacionadas ao movimento do projtil. Aps
obtidas essas grandezas, os alunos iro alterar a potncia oferecida aos servo-motores em seus
programas, para que acertem alvos a distncias menores ou maiores. Um grfico relativo a
potncia do servo-motor e o alcance das bolinhas disparadas dever ser traado ao final.

Figura 7.2 - Modelo NXT Ball Shooter usado para lanamentos oblquos

[41]

7.4 - Entendendo o programa:


O programa necessrio para o experimento dever:

Apresentar instrues na tela de como atuar;


Responder a algum comando para disparar (Ex: Botes NXT);
Mover o servo-motor de forma precisa, disparando um projetil por
vez;
Repetir os disparos quantas vezes quiser;
Obs: Iniciaremos com os motores a 50% de potncia.

7.5 - Atividades:

As atividades a serem realizadas esto descritas na Folha de Atividades - Experimento 2 Lanador de projeteis NXT.

[42]

8 - Experimento 3 - Usando os Sensores Eletrnicos NXT


8.1 - Introduo:
Neste experimento, ser proposto que as equipes construam um modelo de veculo,
aonde seus movimentos so controlados pelos sensores ultrassnico e de toque. O passo a
passo para a montagem o arquivo Tutorial Experimento 4 - Explorer.pdf. A programao
ser apresentada como pseudo-algoritmo, na seo Entendendo o Programa, cabendo aos
alunos a criao de seu prprio cdigo em NXT-G. Para a montagem dos modelos, os alunos
devero acessar a seo Aulas de Robtica Educacional, no site do PET-Eltrica UFF
(www.peteletrica.uff.br), e baixar os arquivos em PDF.
8.2 O Sensor Ultrassnico
Vamos abordar o conceito fsico de ondas, que como veremos posteriormente, ser
usado em nosso modelo escolhido.
Ondas se dividem em trs tipos principais. Vamos abordar apenas dois tipos deles,
pois o outro no de nosso interesse neste material.
Ondas mecnicas: Essas ondas so as mais conhecidas por ns, j que esto presentes
em grande parte de nosso dia-dia. So, por exemplo, as ondas do mar, as ondas sonoras e as
ssmicas. Todas tem caractersticas em comum: obedecem as Leis de Newton e existem
apenas em meios materiais, como a gua, o ar e as rochas.
Ondas eletromagnticas: Essas ondas podem ser menos conhecidas, mas so muito
usadas. Podemos destacar a luz visvel, as ondas de rdio e televiso, as micro-ondas, os raios
X e as ondas de radar. Elas no precisam de um meio fsico para se propagar; o maior
exemplo disso a luz solar que atravessa o vcuo e chega at ns.
Um sensor que utiliza o conceito de ondas em nosso experimento o sensor
ultrasnico, que gera ondas eletromagnticas que se propagam at encontrarem algum
obstculo, sendo refletidas de volta e, com esses dados que chegam ao sensor, podemos
realizar diversas aplicaes.
Abaixo segue uma imagem que mostra basicamente o funcionamento do Explorer.
Este utiliza o conceito de reflexo de uma onda, em que temos que nosso sensor, ao mesmo
[43]

tempo em que cria o pulso de ondas, tambm capta o mesmo, e utiliza-o no seu
funcionamento.

Figura 8.1 - Funcionamento do sensor

8.3 - Experimento proposto:


O experimento ir se focar ao uso do sensor
ultrassnico e o Sensor de toque. Usando o modelo
ExplorerBot, os alunos so desafiados a criar um programa
usando os sensores citados. O rob deve desviar de objetos a
sua frente, de maneira que o sensor ultrassnico seja usado
para visualizar objetos de certa forma altos, j o sensor de
toque serve para os objetos muito baixos que ficam fora do
alcance do ultrassnico.

[44]

Figura 8.2 - ExplorerBot

8.4 - Entendendo o programa

Movimentar-se por tempo indeterminado;


Reconhecer objetos especficos e reagir a eles;
Parar de se mexer quando visualizado um objeto;
Olhar para os lados escolher o lado mais limpo de obstculos e ir
nesta direo;

Assim, o pseudo-algoritmo pode ser escrito da seguinte forma:


1

Rodar o programa por quanto tempo quiser:

Se mover por quanto tempo quiser;

Se captar um objeto com o sensor ultrassnico:

parar, olhar para os lados;

seguir na direo com menos obstculos;

Se o sensor de toque dor ativado:

dar r;

olhar para os lados seguir na direo com menos obstculos

Repetir o passo 3;

[45]

9 - Experimento 4 - Fita Mtrica Eletrnica NXT:


9.1 - Introduo:
Nesse experimento, os alunos iro construir um equipamento simples, capaz de medir
o comprimento de superfcies retangulares, medindo em duas ou trs dimenses. Usando
essas medidas, o NXT sozinho ir calcular a rea e volume dessas superfcies, e apresentar na
tela de LCD o resultado. O passo a passo para a montagem o arquivo Passo a passo
Experimento 4 NXT Area and Volume Calculator.pdf. A programao ser apresentada
como pseudo-algoritmo, na seo Entendendo o Programa, cabendo aos alunos a criao de
seu prprio cdigo em NXT-G. Para a montagem dos modelos, os alunos devero acessar a
seo Robtica Educacional, no site do PET-Eltrica UFF (www.peteletrica.uff.br), e baixar
os arquivos em PDF.
9.2 - Curiosidades sobre medidas e unidades:
O corpo humano como unidade:
As primeiras unidades de medida referiam-se direta ou indiretamente ao corpo
humano. Por volta de 3500 a.C. - quando na Mesopotmia e no Egito comearam a ser
construdos os primeiros templos - seus projetistas tiveram de encontrar unidades mais
uniformes e precisas. Adotaram a longitude das partes do corpo de um nico homem
(geralmente o rei) e com essas medidas construram rguas de madeira e metal, ou cordas com
ns, que foram as primeiras medidas oficiais de comprimento.

[46]

So exemplos de unidades de medidas antigas, e hoje pouco utilizadas:

Jarda (distncia do centro do peito at a


ponta dos dedos): 1 jarda = 91,44 cm;
Polegada (usada ainda no sistema
americano de medidas): 1 polegada =
30,48 cm;
P (usada ainda no sistema americano
de medidas): 1 p = 2,54 cm;

Figura 9.1 - Unidades de medidas antigas

Para medir superfcies:


Os sacerdotes dos templos daquele tempo, encarregados de arrecadar os impostos
sobre a terra, provavelmente comearam a calcular a extenso dos campos por meio de um
simples golpe de vista. Certo dia, ao observar trabalhadores pavimentando uma superfcie
retangular com mosaicos quadrados, algum sacerdote deve ter notado que, para conhecer o
nmero total de mosaicos, bastava contar os de uma fileira e repetir esse nmero tantas vezes
quantas fileiras houvesse. Assim nasceu a frmula da rea do retngulo: multiplicar a base
pela altura.
J para descobrir a rea do tringulo, os antigos fiscais seguiram um raciocnio
extremamente geomtrico. Para acompanh-lo, basta tomar um quadrado ou um retngulo e
divid-lo em quadradinhos iguais. Suponhamos que o quadrado tenha 9 "casas" e o retngulo
12. Esses nmeros exprimem ento a rea dessas figuras. Cortando o quadrado em duas partes
iguais, segundo a linha diagonal, aparecem dois tringulos iguais, cuja rea, naturalmente, a
metade da rea do quadrado.
E claro, haviam construes que requeriam uma parede curva. Assim, um novo
problema se apresenta: como determinar o comprimento de uma circunferncia e a rea de um
crculo. Por circunferncia entende-se a linha da periferia do crculo, sendo este uma
superfcie. J os antigos gemetras observavam que, para demarcar crculos, grandes ou
pequenos, era necessrio usar uma corda, longa ou curta, e gir-la em torno de um ponto fixo,
[47]

que era a estaca cravada no solo como centro da figura. O comprimento dessa corda conhecido hoje como raio - tinha algo a ver com o comprimento da circunferncia. Retirando
a corda da estaca e colocando-a sobre a circunferncia para ver quantas vezes cabia nela,
puderam comprovar que cabia um pouco mais de seis vezes e um quarto (6,28). Qualquer que
fosse o tamanho da corda, o resultado era o mesmo.
E a rea do crculo? A histria da Geometria explica-a de modo simples e
interessante. Cerca de 2000 anos a.C., um escrivo egpcio chamado Ahmes raciocinava
diante do desenho de um crculo no qual havia traado o respectivo raio. Seu propsito era
encontrar a rea da figura.

Figura 9.2 - Representao de raio e dimetro

Conta a tradio que Ahmes solucionou o problema facilmente: antes, pensou em


determinar a rea de um quadrado e calcular quantas vezes essa rea caberia na rea do
crculo. Que quadrado escolher? Qualquer um? Parecia razovel tomar o que tivesse como
lado o prprio raio da figura. Assim fez, e comprovou que o quadrado estava contido no
crculo mais de 3 vezes e menos de 4, ou aproximadamente, trs vezes e um stimo
(atualmente dizemos 3,14 vezes). Concluiu ento que, para saber a rea de um crculo, basta
calcular a rea de um quadrado construdo sobre o raio (raio do quadrado), e multiplicar a
respectiva rea por 3,14.
O nmero 3,14 bsico na Geometria e na Matemtica. Os gregos tornaram-no um
pouco menos inexato: 3,1416. Hoje, o smbolo ("pi") representa esse nmero irracional, j
determinado com uma aproximao de vrias dezenas de casas decimais. Seu nome s tem
cerca de duzentos anos e foi tirado da primeira slaba da palavra grega peripheria,
significando circunferncia.

[48]

9.3 - Experimento proposto:


O modelo NXT Area and Volume Calculator consiste de uma roda anexada ao
NXT, que mede a distncia percorrida pela roda. Construa uma fita mtrica inteligente, que
mede comprimento de superfcies, e que calcula sozinha a rea entre essas grandezas e o
volume, alm de apresentar os resultados em tempo real no display. Quantos metros cbicos
voc acha que possui a sala em que voc se encontra? Tente medir isso!

Figura 6.3 - Modelo NXT Area and Volume Calculator

9.4 - Entendendo o programa:

O programa necessrio para a montagem dever:

Realizar as medidas quantas vezes quiser;


Relacionar o giro da engrenagem do servo-motor NXT ao giro da
roda de medio (lembrando que a circunferncia da roda dada
por C = 2R);
Armazenar o valor medido para cada uma das grandezas;
Entender quando que uma medio foi completada (para que
possa fazer a prxima);
Multiplicar esses valores para obter rea e Volume;
Exibir os valores que esto sendo medidos (e o resultado de
rea e volume), enquanto eles esto sendo medidos.

[49]

Observe que, para que o NXT entenda que cada medio foi completada, ele precisa
ser condicionado a isso, ou seja, uma condio proposta pelo programador deve ser cumprida,
para que ele siga adiante com o programa. Caso contrrio, o NXT nunca iria determinar que
uma medio fosse terminada, mesmo que o usurio termine a medio por conta prpria.
Assim, o pseudo-algoritmo pode ser escrito da seguinte forma:

Fazer as medidas quantas vezes quiser:

Apresentar para o usurio qual boto ele deve apertar para realizar as medidas;

Resetar o giro do Sensor de Rotao do Servo-motor;

Enquanto no pressionar o boto Prximo:

Medir a rotao do motor com o Sensor de Rotao;

Calcular a rotao da roda;

Guardar esse valor;

Transformar esse valor obtido (Nmero) em um valor Texto, que possa ser
apresentado na tela;

Escrever e apresentar na tela esse valor, especificando o que ele


(comprimento, altura, largura, rea ou volume);

10
Aps o usurio pressionar o boto prximo, refazer os passos 3 (que deve ser
feito separado),e de 5 a 9, e depois:
11

Calcular outro valor (rea), com os dois valores j guardados;

12

Repetir passos 7 a 9;

13

Repetir passo 10;

14

Repetir passo 11, mas agora, usando os dois ltimos valores que foram guardados
(rea + comprimento/largura/altura), calcular um terceiro valor (volume);

15

Repetir passos 8 e 9.

9.5 - Atividades:
As atividades a serem realizadas esto descritas na Folha de Atividades - Experimento 4 - Fita
Mtrica Eletrnica NXT.
[50]

10 - Desafios
Nesta seo vamos pr em prtica todo o conhecimento em relao parte de
montagem e programao em LEGO Mindstorms NXT adquiridos at aqui. Seguem abaixo
alguns desafios que as equipes de estudantes devero executar. A montagem ser fornecida
pelos professores, mas a programao ser totalmente original. Usem sua criatividade para
resolver os problemas apresentados!

[51]