UNIVERSIDADE FEDERAL DE GOIÁS � UFG
CAMPUS CATALÃO � CAC
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO � DCC
Bacharelado em Ciência da Computação
Projeto Final de Curso
O Uso da Robótica Educacional no EnsinoFundamental: relatos de um experimento
Autor: Gabriela Quirino Pereira
Orientador: Dr. Vaston Gonçalves da Costa
Catalão - 2010
Gabriela Quirino Pereira
O Uso da Robótica Educacional no Ensino Fundamental: relatos de um
experimento
Monogra�a apresentada ao Curso de
Bacharelado em Ciência da Computação da
Universidade Federal de Goiás � Campus Catalão
como requisito parcial para obtenção do título de
Bacharel em Ciência da Computação.
Área de Concentração: Computação e Sociedade
Orientador: Dr. Vaston Gonçalves da Costa
Catalão - 2010
Pereira, Gabriela Q.
O Uso da Robótica Educacional no Ensino Fundamental: relatos de um
experimento/Gabriela Quirino Pereira� Catalão � 2010
Número de páginas: 66
Projeto Final de Curso (Bacharelado) � Universidade Federal de Goiás, Campus
Catalão, Curso de Bacharelado em Ciência da Computação, 2010.
Palavras-Chave: 1. Robótica Educacional. 2. Informática Educacional. 3. NXT
Gabriela Quirino Pereira
O Uso da Robótica Educacional no Ensino Fundamental: relatos de um
experimento
Monogra�a apresentada e aprovada em de
pela Banca Examinadora constituída pelos professores:
Dr. Vaston Gonçalves da Costa � Presidente da Banca
Dr. Roberto Mendes Finzi Neto
Dr. Marcelo Henrique Stoppa
AGRADECIMENTOS
À Deus, pela vida e pela força que me concedeu;
Aos meus pais, Maria Luiza e Valdivino, pelo apoio, incentivo, amor, e pela educação
digna que me proporcionaram;
Aos meus avós, simplesmente por serem as pessoas mais importantes da minha vida;
Ao meu irmão, Arthur, pelo carinho, amizade e apoio.
Ao meu namorado, Claudio, pelo carinho, imenso companheirismo e paciência.
Aos amigos de faculdade, por todos os bons momentos vividos juntos durantes estes
anos de convivência e amizade;
Ao meu professor e orientador, Vaston, pela ajuda e paciência.
RESUMO
Pereira, G. O Uso da Robótica Educacional no Ensino Fundamental: re-
latos de um experimento. Curso de Ciência da Computação, Campus Catalão, UFG,
Catalão, Brasil, 2010, 66p.
Atualmente, os cursos ligados à área de informática, seja em nível de graduação ou
de ensino médio, vêm sofrendo uma perda de interesse por parte dos jovens. E várias
são as técnicas conhecidas que tentam buscar jovens interessados em seguir carreira numa
área que carece de pro�ssionais capacitados. Dentre as mais conhecidas, muitas envolvem
o uso de computadores e de novas tecnologias. Trata-se da Informática Educacional,
que conta com diversos recursos computacionais utilizados com o objetivo de facilitar o
aprendizado das várias disciplinas. Neste contexto existe também a Robótica Educacional,
aplicada com o mesmo objetivo. Dentro da Robótica educacional o uso dos kits robóticos
Lego R© Mindstorms R© NXT são os mais amplamente empregados por sua facilidade de
aquisição e de manipulação. Neste trabalho é apresentado um estudo sobre a Informática
Educacional e Robótica Educacional que pode ser empregada no ensino fundamental e
médio como auxiliar no processo de ensino/aprendizagem de conceitos fundamentais de
computação, de forma lúdica e divertida, estimulando a criatividade do aluno. Este estudo
foi aplicado à jovens da zona rural de Catalão durante o projeto Levando a Informática
do Campus ao Campo e apresentou resultados animadores no que concerne ao ganho de
conhecimento e interesse pela área de computação.
Palavras-Chaves: Robótica Educacional, Informática Educacional, NXT
i
Sumário
1 Introdução 1
2 As Novas Tecnologias na Educação 3
2.1 As Novas Tecnologias e o Uso do Computador . . . . . . . . . . . . . . . . 3
2.2 O que é Informática Educacional? . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 A Informática Educacional: pesquisas na área . . . . . . . . . . . . 4
2.3 Robôs e Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 A Robótica Educacional . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Lego R© Mindstorms R© NXT 7
3.1 Kits Lego R© Mindstorms R© NXT . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Lego R© Mindstorms R© Education NXT Base Set 9797 . . . . . . . . . . . . 8
3.2.1 As Portas de Entrada e Saída . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 O Visor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Os Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.4 Os Servomotores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 A Linguagem de Programação NXT-G e o Software Lego R© Mindstorms R©
NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Explicando o software Lego R© Mindstorms R© NXT: comandos . . . . . . . 16
3.4.1 Comunicação Computador x NXT . . . . . . . . . . . . . . . . . . . 16
3.4.2 Paletas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Estudo de caso: O Projeto de Extensão Levando a Informática do Cam-
pus ao Campo 50
4.1 O Projeto de Extensão Levando a Informática do Campus ao Campo . . . 50
4.1.1 Objetivos e estrutura do projeto . . . . . . . . . . . . . . . . . . . . 51
4.2 Atividades desenvolvidas no Módulo 3 . . . . . . . . . . . . . . . . . . . . 52
4.2.1 Atividade 1: Pensar de maneira sequencial e atribuições de valores . 53
4.2.2 Atividade 2: Estrutura de repetição e condicionais . . . . . . . . . . 55
4.2.3 Atividade 3: Desa�o à Criatividade . . . . . . . . . . . . . . . . . . 56
ii
4.3 Resultados obtidos com as atividades . . . . . . . . . . . . . . . . . . . . . 59
4.4 Re�exos do Projeto de Extensão: ganhos obtidos e obstáculos encontrados 59
4.4.1 Benefícios Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2 Di�culdades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5 Trabalhos Futuros 62
6 Conclusão 63
Referências 65
iii
Lista de Figuras
3.1 Kits Lego R©Mindstorms R© NXT. Disponível em http://www.nxtprograms.
com/help/parts/9797.html . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Kit Lego R© Mindstorms R© Education NXT Base Set 9797. Disponível em
http://guide.lugnet.com/set/9797 . . . . . . . . . . . . . . . . . . . . 9
3.3 Brick NXT. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4 Ilustração do Brick e suas portas de conexão. [Suzuki et al., 2010] . . . . . 10
3.5 Visor do brick. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.6 Sensor de luz. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . . . . . 11
3.7 Sensor de toque. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . . . . 12
3.8 Sensor ultrassônico. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . . 12
3.9 Sensor de Som. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . . . . . 12
3.10 Servomotor. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . . . . . . 13
3.11 Tela inicial do software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.12 Tela inicial do software com um novo arquivo a ser construído. . . . . . . . 15
3.13 Botões de comunicação do software com o computador. . . . . . . . . . . . 16
3.14 Paletas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.15 Ícones da Paleta Padrão. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . 18
3.16 Ícone Move. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.17 Opções do Comando Move. . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.18 Ícone Record/Play. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.19 Opções do Comando Record/Play. . . . . . . . . . . . . . . . . . . . . . . . 20
3.20 Ícone Sound. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.21 Opções do Comando Sound ao escolher a opção SoundFile. . . . . . . . . . 21
3.22 Opções do Comando Sound ao escolher a opção Tone. . . . . . . . . . . . . 21
3.23 Ícone Display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.24 Comando Display - Opção Image. . . . . . . . . . . . . . . . . . . . . . . . 22
3.25 Comando Display - Opção Text. . . . . . . . . . . . . . . . . . . . . . . . . 22
3.26 Comando Display - Opção Drawing. . . . . . . . . . . . . . . . . . . . . . . 22
3.27 Ícone Wait. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.28 Comando Wait - Opção Time. . . . . . . . . . . . . . . . . . . . . . . . . . 23
iv
3.29 Comando Wait - Opção Touch Sensor. . . . . . . . . . . . . . . . . . . . . 24
3.30 Comando Wait - Opção Sound Sensor. . . . . . . . . . . . . . . . . . . . . 24
3.31 Comando Wait - Opção Light Sensor. . . . . . . . . . . . . . . . . . . . . . 24
3.32 Comando Wait - Opção Ultrassonic Sensor. . . . . . . . . . . . . . . . . . 25
3.33 Comando Wait - Opção NXT Buttons. . . . . . . . . . . . . . . . . . . . . 25
3.34 Comando Wait - Opção Rotation Sensor. . . . . . . . . . . . . . . . . . . . 26
3.35 Comando Wait - Opção Timer. . . . . . . . . . . . . . . . . . . . . . . . . 26
3.36 Comando Wait - Opção Receive Message. . . . . . . . . . . . . . . . . . . . 27
3.37 Ícone Loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.38 Comando Loop - Opção Forever. . . . . . . . . . . . . . . . . . . . . . . . . 27
3.39 Comando Loop - Opção Time. . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.40 Comando Loop - Opção Logic. . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.41 Ícone Switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.42 Comando Switch - Opção Value. . . . . . . . . . . . . . . . . . . . . . . . . 29
3.43 Comando Switch - Opção Touch Sensor. . . . . . . . . . . . . . . . . . . . 29
3.44 Comando Switch - Opção Sound Sensor. . . . . . . . . . . . . . . . . . . . 30
3.45 Comando Switch - Opção Light Sensor. . . . . . . . . . . . . . . . . . . . . 30
3.46 Comando Switch - Opção Ultrasonic Sensor. . . . . . . . . . . . . . . . . . 30
3.47 Comando Switch - Opção NXT Buttons. . . . . . . . . . . . . . . . . . . . 31
3.48 Comando Switch - Opção Rotation Sensor. . . . . . . . . . . . . . . . . . . 31
3.49 Comando Switch - Opção Timer. . . . . . . . . . . . . . . . . . . . . . . . 31
3.50 Comando Switch - Opção Receive Message. . . . . . . . . . . . . . . . . . . 32
3.51 Data HUB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.52 Exemplo da utilização do DATA HUB. . . . . . . . . . . . . . . . . . . . . 33
3.53 Cor da linha de conexão referente a cada formato de dado. . . . . . . . . . 33
3.54 Ícones da Paleta Completa. [Suzuki et al., 2010] . . . . . . . . . . . . . . . 34
3.55 Funções do ícone Common. . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.56 Funções do ícone Action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.57 Ícone Send Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.58 Opções do Comando Send Message. . . . . . . . . . . . . . . . . . . . . . . 35
3.59 Ícone Lamp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.60 Opções do Comando Lamp. . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.61 Funções do ícone Sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.62 Opções do ícone Sensor. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . 37
3.63 Ícone Receive Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.64 Opções do comando Receive Message. . . . . . . . . . . . . . . . . . . . . . 38
3.65 Funções do ícone Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.66 Ícone Stop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
v
3.67 Funções do ícone Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.68 Opções do ícone Data. [Suzuki et al., 2010] . . . . . . . . . . . . . . . . . . 39
3.69 Opções do comando Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.70 Ícone Math. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.71 Opções do comando Math. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.72 Ícone Compare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.73 Opções do comando Compare. . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.74 Ícone Range. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.75 Opções do comando Range. . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.76 Ícone Random. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.77 Opções do comando Random. . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.78 Ícone Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.79 Opções do comando Variable. . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.80 Funções do ícone Advanced. . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.81 Opções do ícone Advanced. [Suzuki et al., 2010] . . . . . . . . . . . . . . . 44
3.82 Ícone Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.83 Opções do comando Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.84 Ícone Number to Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.85 Opções do comando Number to Text. . . . . . . . . . . . . . . . . . . . . . 45
3.86 Ícone Keep Alive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.87 Ícone File Acess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.88 Opções do comando File Acess. . . . . . . . . . . . . . . . . . . . . . . . . 46
3.89 Ícone Calibrate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.90 Opções do comando Calibrate. . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.91 Ícone Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.92 Opções do comando Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.93 Ícones da Paleta Personalizada. [Suzuki et al., 2010] . . . . . . . . . . . . . 48
3.94 Exemplo de programa a ser transformado em um bloco. . . . . . . . . . . . 48
3.95 Assitente My Block Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1 Modelos de robôs montados pelos alunos no Módulo 3. . . . . . . . . . . . 52
4.2 Programa desenvolvido pelos alunos como solução da atividade 1. . . . . . 54
4.3 Programa desenvolvido pelos alunos como solução da atividade 2. . . . . . 56
4.4 Programa desenvolvido pelos alunos como solução da atividade 3. . . . . . 58
vi
Lista de Abreviações
CNPq Conselho Nacional de Desenvolvimento Cientí�co e Tecnológico
NXT Next (próximo), de próximo ao modelo RCX
NXT-G NXT - Graphic
RCX Robotics Command eXplorer
SBC Sociedade Brasileira de Computação
UFG Universidade Federal de Goiás
vii
Capítulo 1
Introdução
Atualmente, os cursos ligados a área de informática, tanto em nível médio quanto de
graduação, sofrem uma perda de interesse por parte dos jovens. Dados da última reu-
nião da Sociedade Brasileira de Computação realizada em São Bento - RS, [SBC, 2010]
mostram que a média no vestibular nos cursos de computação, que antes era de 9 can-
didatos por vaga em �nais da década de noventa, hoje está abaixo de 2 candidatos por
vaga. Outro ponto que chama a atenção é a quantidade de mulheres que procuram estes
cursos, dados da Carnegie Mellon University, mostram que de 1996 a 2007 o número de
mulheres nos Estados Unidos que procuram os cursos ligados a área de computação caiu
em 80%. [University, 2010b]
Na mesma reunião da SBC foi apresentado que o mercado demanda por pro�ssionais
da área de computação. Com a pouca oferta destes pro�ssionais, os que existem estão
recebendo bons salários.
Pode-se argumentar que esta é uma tendência natural aos cursos ligados à pro�ssões da
área de tecnologia. Há sempre uma procura inicial por tais cursos pelos jovens, seguindo
modismo e curiosidade, mas com o passar do tempo, e devido a um saturamento do mer-
cado, a tendência seria uma redução na procura estabilizando em valores mais próximos
da realidade do mercado.
A justi�cativa para tal cenário, segundo pesquisadores da Carnegie Mellon University,
está na di�culdade em abstrair certos conceitos teóricos de computação. Constatou-se que
o jovem precisa se sentir atraído pelos conceitos e que também precisa de uma aplicação
imediata para os mesmos. Cursos de computação, focam inicialmente em fornecer a
base matemática necessária para a compreensão dos conceitos futuros de computação,
utilizando apenas quadro e giz, e isto frustra o jovem que, em seu dia-a-dia, se depara
com as fantásticas criações desta ciência - como, por exemplo, jogos, vídeos e comunidades
virtuais - e não vislumbra como aplicar o que está aprendendo para produzir tais criações.
Assim como vem acontecendo com o ensino de matemática e física, a alternativa para
motivar o jovem a ingressar e permanecer em cursos de computação seria a utilização do
1
lúdico, do �palpável�, tanto para aplicar os conceitos aprendidos em disciplinas do curso
quanto para ensinar alguns dos conceitos teóricos.
Várias são as abordagens possíveis para motivar o jovem a continuar seus estudos
superiores na área de computação. Casos de sucesso são encontrados na utilização de
aplicativos como Alice R© [University, 2010a] e GeoGebra R© [GeoGebra, 2010] em institui-
ções de ensino superior nos Estados Unidos e na Europa. No Brasil, contudo, as práticas
com tais ferramentas são poucas e sua divulgação menor ainda.
Neste trabalho será apresentada uma forma de motivar o jovem a se interessar pela
área de computação, através do uso de kits de Robótica educacional. Para tanto, as
atividades empregadas levaram o jovem a adquirir conceitos fundamentais de computação
de forma construtiva e divertida. Em cada atividade o jovem é convidado a solucionar
um problema programando, através de uma interface amigável, o kit robótico Lego R©
Mindstorms R© Education NXT Base Set 9797.
Durante a tentativa de solucionar o problema, o jovem, que possui pouco conheci-
mento de programação, acaba percebendo as vantagens de se aproveitar trechos de código
utilizados em outros programas, de se informar sobre a possibilidade de usar recursos que
facilitem a forma de escrever uma instrução e por buscar soluções criativas.
A apresentação da forma motivacional adotada aconteceu durante o projeto de exten-
são da Universidade Federal de Goiás, Levando a Informática do Campus ao Campo, que
atende jovens da zona rural do município de Catalão.
Para melhor apresentar o trabalho, a monogra�a foi subdividida por capítulos con-
templando as seguintes etapas:
1. No capítulo 2, será realizada um explanação de informática na Educação e Robótica
Educacional. Mostrando que estas áreas estão inseridas em computação, apesar de
alguns crerem existir uma dissociação entre educação e informática.
2. No capítulo 3, será apresentado o kit Lego R© Mindstorms R© Education NXT Base
Set 9797, bem como o software Lego R© Mindstorms R© NXT. Optou-se por fazer
tal capítulo pormenorizado, com o intuito que servisse como fonte de pesquisa em
português das funcionalidades básicas de kit robótico e do software em questão.
3. No capítulo 4, encontram-se as explicações do projeto de extensão e algumas ativi-
dades realizadas durante a execução do Módulo 3: Introdução à programação básica
de robôs. Aborda-se cada etapa de criação dos alunos para resolver as atividades,
bem como o ganho computacional adquirido durante o processo.
4. No capítulo 5, são apresentadas propostas de trabalhos futuros.
5. No capítulo 6, são apresentadas as conclusões.
2
Capítulo 2
As Novas Tecnologias na Educação
Neste capítulo será tratado o tema �Computador e Sociedade�, como sub-área da
Ciência da Computação, enfatizando o tópico �Informática na Educação�, ressaltando
algumas discussões acerca de pesquisas na área. Será apresentado também neste capítulo,
a �Robótica Educacional� e o uso do robô como ferramenta auxiliadora no processo de
ensino e aprendizado. Espera-se que o leitor seja convencido da importância de pesquisas
em educação no curso de Ciência da Computação.
2.1 As Novas Tecnologias e o Uso do Computador
É perceptível o constante crescimento das diversas formas de tecnologia e nas mais
diferentes áreas. Os avanços tecnológicos se encontram presentes em nosso cotidiano de tal
modo que se tornam corriqueiros e de extrema necessidade. O mundo físico é reproduzido
digitalmente, e assim, aumentam as formas dos serviços serem realizados. Como exemplos,
temos as lojas virtuais onde é possível comprar e vender mercadorias, os sites de bancos
onde é possível realizar diversas transações �nanceiras etc.
O avanço das novas tecnologias interfere diretamente nas diversas possibilidades de
lazer, entretenimento, pesquisa, relacionamento e trabalho. Muitas são as possibilidades
de comunicação e acesso à informação disponíveis.
Neste contexto de avanços tecnológicos e suas diversas aplicações, encontra-se a infor-
mática e o uso do computador, presentes atualmente na maioria dos contextos e aplicações,
por mais simples e naturais que sejam. O uso do computador, a pouco tempo atrás con-
siderado desnecessário, hoje é considerado instrumento básico para o desenvolvimento da
maioria das atividades ditas �modernas�, mudando a forma de agir da sociedade.
Estas mudanças sociais que acontecem cada vez com mais intensidade e velocidade
implicam também na educação, e no modo como esta é implementada, trazendo à tona
a redução da estagnação na forma de ensinar e aprender. As metodologias educacionais
3
utilizadas tentam, cada vez mais, se adequarem aos novos tempos e aos avanços tecnológi-
cos.
2.2 O que é Informática Educacional?
Dentre as diversas áreas da Ciência da Computação, existe a área de Computador
e Sociedade, que relaciona estes avanços tecnológicos da informática e seus re�exos na
sociedade. Surge então a Informática Educacional, onde os métodos educativos têm como
base a utilização do computador. Esta área da educação parte do princípio de que o uso
do computador pode auxiliar, estimular e melhorar o processo de ensino/aprendizado.
No Brasil, o interesse pela utilização da informática na educação surgiu em 1971,
quando foi promovido um seminário sobre o uso de computadores para auxiliar o ensino
de Física, realizado na Universidade Federal de São Carlos (UFSCar). Também nesse ano
ocorreu a Primeira Conferência Nacional de Tecnologia em Educação Aplicada ao Ensino
Superior, no Rio de Janeiro. [Zanelatto, 2004]
A ideia básica é utilizar o computador como ferramenta de apoio para o desenvolvi-
mento de tarefas escolares, no intuito de que este proporcione ao aluno maior entendimento
e interesse em aprender. Objetiva-se que, por meio de projetos interdisciplinares, o aluno
aprenda conteúdos especí�cos das várias disciplinas e o lema é �aprender informática e
aprender com a informática�.
Não se tem o objetivo de substituir os métodos tradicionais de ensino, mas auxiliar
no desenvolvimento das atividades educacionais, através do intercâmbio de informações e
do estímulo à consciência crítica, de forma mais ágil, concreta e agradável para o aluno,
onde o conhecimento vem de várias direções, e não só do professor. [Educacional, 2010].
Diversas são as metodologias utilizadas neste processo que incluem vários recursos
de computador, como imagens, animações, áudios, vídeos, jogos, programas educativos
próprios etc. Todos estes recursos demonstram ser estimulantes e interessantes aos alunos,
que se sentem mais in�uenciados ao aprendizado. Estas técnicas fogem aos padrões tradi-
cionais de ensinar e aprender, sendo inovadoras, modernas, criativas e descontraídas for-
mas de tratar o processo de ensino.
No entanto, as mudanças nas formas de ensino necessitam muito mais do que sim-
plesmente o uso das novas tecnologias, mas também de educadores e alunos capacitados
intelectual, técnica e emocionalmente.
2.2.1 A Informática Educacional: pesquisas na área
Para muitos o uso do computador é considerado parte importante para a solução dos
�problemas educacionais� existentes, e o uso do computador e das novas tecnologias nas
4
escolas de Ensino Fundamental e Médio cresce juntamente com estas perspectivas.
Contudo, muito do que se pesquisa em relação à aplicação das novas tecnologias na
educação não possui fundamentos cientí�cos. Existe a grande necessidade de estudos
com base em experiências e pesquisas. De fato, existem vários relatos sobre o uso de
computadores como ferramentas auxiliadoras no processo de ensino, mas pouco se fala
(ou faz) quanto à pesquisas e experiências práticas.
Como exemplo pode ser citado o trabalho de [Barros et al., 2009], que apresenta uma
revisão sistemática da literatura, sendo utilizados 109 artigos com relatos dos ganhos (se
houveram) obtidos pelos alunos com o uso do computador. Neste trabalho �ca evidente
que muitas ferramentas são apresentadas, porém estas não mostram a viabilidade das
aplicações e nem tampouco os resultados obtidos com a aplicação das técnicas.
O trabalho de [Barros et al., 2009] baseia-se em artigos com experiências na área, e a
conclusão de seus autores é que existem poucas evidências experimentais publicadas em
revistas internacionais que suportam a crença de que o uso do computador proporciona
ganhos na Educação Fundamental e Média.
2.3 Robôs e Robótica
Os robôs e sistemas robotizados são instrumentos criados com habilidades diversas,
tais como executar determinadas ações, reações e capacidade sensorial. Podem ser progra-
mados para desenvolver funções especí�cas, inclusive à partir de uma sensação detectada.
O fato de serem reprogramáveis é o que diferem os robôs de máquinas autônomas.
O termo Robótica foi inicialmente utilizado pelo escritor Isaac Asimov em sua obra
intitulada �Runaround�, sendo de�nida como o estudo e utilização de robôs, de�nição esta
que posteriormente foi adaptada pela comunidade cientí�ca.
Robôs são hoje instrumentos fantásticos criados pelo homem e usados a seu serviço.
Estas máquinas são usadas nas mais diversas áreas e com as mais diversas �nalidades,
interagindo e se adaptando ao meio. São utilizados para substituir o homem em trabalhos
de risco ou inacessíveis, ou mesmo para oferecer comodidade e liberar o homem para
praticar outras atividades de sua preferência, como lazer e descanso. Atualmente é natural
encontrarmos robôs e sistemas robotizados realizando tarefas humanas.
2.3.1 A Robótica Educacional
O crescimento do uso dos novos recursos tecnológicos nas escolas vem crescendo con-
sideravelmente. O computador está presente no cotidiano escolar com maior frequência
e intensidade do que à poucos anos atrás. Surge neste contexto, a Robótica Educacional
como ferramenta auxiliadora no processo de ensino.
5
A Robótica Educacional é também conhecida como Robótica Pedagógica, e é aplicada
em ambientes educacionais onde o aluno pode montar, desmontar, programar e reprogra-
mar um robô ou sistema robotizado. Estes sistemas proporcionam aos alunos momentos
não só de aprendizado, mas também de lazer e entretenimento.
O ensino da robótica não trata apenas o ganho do conhecimento sobre tal assunto
(montar e programar o robô), mas também é aplicado na intenção de auxiliar no apren-
dizado dos conceitos de diversas disciplinas e ainda no ganho intelectual e de raciocínio
lógico.
O principal objetivo da robótica pedagógica é fornecer um ambiente onde o aluno
aprenda, não somente, como construir e manipular um robô, mas também todos os
conceitos lógicos envolvidos no processo, estimulando ainda sua criatividade e raciocínio
[Castilho, 2002].
A robótica tem aspectos multidisciplinares, tendo em vista que o ato de montar e pro-
gramar um robô exige conhecimento em várias áreas. Diversos conceitos são abordados
e almejados, como o desenvolvimento do raciocínio lógico, capacidade de solucionar pro-
blemas, trabalho em equipe, senso crítico, criatividade etc., pois junta a teoria à prática.
No ensino da robótica o professor deixa de ser o único provedor de informações e co-
nhecimento e o aluno é estimulado a raciocinar sobre o problema a ser resolvido, buscando
soluções em conceitos e aplicações de outras disciplinas envolvidas como matemática, física
e computação.
Para se desenvolver o uso da Robótica Educacional, o aluno deve primeiramente de-
tectar o problema a ser solucionado e em seguida entender como solucioná-lo de forma
lógica e ordenada utilizando o robô. Durante a programação do robô, que possui lin-
guagem de programação própria, há todo um pensamento sequencial sobre causa/efeito,
no sentido de programar para obter a ação que realmente se deseja, o que é extremamente
estimulante ao desenvolvimento do raciocínio lógico. [Castilho, 2002]
O aluno tem ainda a comodidade de desenvolver a programação e em seguida testá-la,
reprogramando caso os testes não sejam satisfatórios e testando até que se obtenha o
resultado esperado, obtendo assim uma nova chance de corrigir os próprios erros e re�etir
sobre suas ações.
No capítulo seguinte é apresentado o kit de Robótica Educacional Lego R©Mindstorms R©
NXT R© Base Set 9797, muito utilizado em meios acadêmicos como ferramenta auxiliadora
no processo de ensino. Ainda será visto a linguagem de programação NXT-G e detalhes
do Software Lego R© Mindstorms R© NXT R©, que acompanha o kit em questão.
6
Capítulo 3
Lego R© Mindstorms R© NXT
Neste capítulo é apresentado o kit de Robótica Educacional Lego R© Mindstorms R©
NXT Base Set 9797, suas principais características e seus componentes básicos, bem
como o software Lego R© Mindstorms R© NXT , que acompanha o kit em questão e que é
utilizado para programá-lo em linguagem própria - a NXT-G.
3.1 Kits Lego R© Mindstorms R© NXT
Os Kits Lego R© Mindstorms R© NXT são kits de robôs programáveis lançados pela
Lego R© em Julho de 2006, substituindo a primeira geração do Kit Lego R© Mindstorms R©
incluindo software próprio, o Lego R© Mindstorms R© NXT. [Salazar, 2008]
Existem diversas versões do NXT, a 8527 (versão 1.X), a 9797, que é considerada a
versão básica para uso educacional, e a 9648, que é um kit de apoio com peças adicionais
usado com frequência juntamente com a versão 9797, a qual possui peças um pouco mais
limitadas para criação de alguns modelos. A Figura 3.1 ilustra os kits.
Modelos NXT:
• Lego R© Mindstorms R© NXT 1.X Retail Version (8527);
• Lego R© Mindstorms R© Education NXT Base Set (9797);
• Education Resource Set (9648).
7
Figura 3.1: Kits Lego R© Mindstorms R© NXT. Disponível em http://www.nxtprograms.
com/help/parts/9797.html
Estes kits mais se parecem com um brinquedo, e são utilizados amplamente em todo
o mundo por escolas, universidades e crianças.
3.2 Lego R© Mindstorms R© Education NXT Base Set
9797
O Kit Lego R© Mindstorms R© Education NXT Base Set 9797 se caracteriza por ser um
kit básico amplamente utilizado no ensino da Robótica Educacional.
Este kit é composto por 431 peças: 3 servomotores (máquinas que apresentam movi-
mento proporcional a um comando, em vez de girar ou se mover livremente sem um
controle mais efetivo de posição como a maioria dos motores), 4 sensores (toque luz, som
e ultrassônico), 7 cabos para conexões com motores e sensores, um cabo USB, o brick in-
teligente NXT que é o corpo central do robô, bateria recarregável, base giratória, rodinhas,
pneus, blocos, vigas, eixos, engrenagens e polias (tipo de roda para correia transmissora
de força e movimentos). As peças do kit são mostradas na Figura 3.2.
8
Figura 3.2: Kit Lego R© Mindstorms R© Education NXT Base Set 9797. Disponível em
http://guide.lugnet.com/set/9797
O brick NXT R© é o cérebro dessas pequenas máquinas [Lego, 2010]. Ele viabiliza
autonomia na execução de diferentes tarefas tais como a criação, programação e montagem
de robôs com noções de distância, capazes de reagir a movimentos e ruídos, e de executar
movimentos com razoável grau de precisão. A Figura 3.3 mostra o brick.
Figura 3.3: Brick NXT. [Suzuki et al., 2010]
No brick são conectados os cabos que vão até os motores e que vêm dos sensores.
9
3.2.1 As Portas de Entrada e Saída
Como mostrado na Figura 3.4, o brick possui três portas de saída (output), onde se
conectam os motores. Essas portas estão acima do visor (portas A, B e C).
Figura 3.4: Ilustração do Brick e suas portas de conexão. [Suzuki et al., 2010]
Abaixo dos botões estão mais quatro portas, agora as de entrada (input), onde se
conectam os sensores (portas 1, 2, 3 e 4). É necessário veri�car se os motores e sensores
estão conectados corretamente pois eles não são permutáveis.
A porta USB para comunicação com o software está próxima às portas de comunicação
com os motores. Através dela é possível copiar os programas do computador para o robô,
e também do robô para o computador. Esta comunicação pode ser realizada por bluetooth,
também disponível no NXT.
3.2.2 O Visor
Como é visto na Figura 3.5, na parte superior do visor, no canto esquerdo, estão os
ícones que informam sobre o status e a conexão bluetooth ou USB do robô. No canto
direito, o ícone da bateria informando a carga disponível. Na parte de baixo do visor é
mostrado os menus disponíveis no NXT. O alto falante encontra-se na lateral direita do
brick.
10
Figura 3.5: Visor do brick.
O botão central é usado para selecionar opções desejadas. Ele também é usado para
ligar o robô. As setas direcionais (botões da direita e da esquerda) são utilizadas para a
navegação nos menus disponíveis no visor. O botão inferior é utilizado para a navegação
nos diferentes níveis dos menus. Também é usado para desligar o robô.
3.2.3 Os Sensores
No kit 9797 existem quatro tipos de sensores: o de luz, o de toque, o ultrassônico e o
de som, que serão detalhadamente mostrados a seguir.
Sensor de Luz
O sensor de luz é um dos dois sensores que dão �visão� ao robô (o sensor ultrassônico
é o outro). Ele permite que o robô distingua entre claro e escuro � branco e preto. Ele
pode ler a intensidade de luz em uma sala e medir a intensidade de luz em superfícies
coloridas, por exemplo.
Figura 3.6: Sensor de luz. [Suzuki et al., 2010]
Algumas aplicações: É possível usar o sensor de luz para criar um robô alarme de
assaltante: quando um intruso entrar em uma sala e acender a lâmpada o robô pode
reagir de alguma forma.
Sensor de Toque
O sensor de toque concede ao robô o sentido do tato. Ele detecta quando o botão do
sensor é pressionado (Pressed), quando foi pressionado e é liberado (Released) e quando
é tocado e liberado rapidamente (Bumped).
11
Figura 3.7: Sensor de toque. [Suzuki et al., 2010]
Algumas aplicações: Pode-se criar um robô capaz de reagir a um comando, no caso,
quando o sensor de toque for pressionado ou liberado. Por exemplo, pressionando o botão
do sensor fazer o robô realizar alguma ação: andar, falar, girar etc.
Sensor Ultrassônico
Este sensor permite ao robô percepções similares à visão, detectando onde os objetos
estão. O sensor ultrassônico mede distâncias em centímetros e em polegadas. Ele é capaz
de medir distâncias de 0 a 255 centímetros com uma precisão de aproximadamente 3 cm.
O sensor usa a mesma técnica que os morcegos usam: ele consegue medir a distância
calculando o tempo que leva para uma onda sonora bater em um objeto e retornar.
Figura 3.8: Sensor ultrassônico. [Suzuki et al., 2010]
Objetos maiores com superfícies duras facilitam a leitura feita por este sensor. En-
quanto que objetos feitos de tecido macio ou que possuem curvas (como uma bola, por
exemplo) ou que são muito �nos e pequenos podem ser difíceis para o sensor detectar.
Sensor de Som
O sensor de som dá ao robô a capacidade de perceber os sons.
Figura 3.9: Sensor de Som. [Suzuki et al., 2010]
O sensor de som pode detectar tanto decibéis (dB) quanto decibel ajustado (dBA).
Um decibel é uma unidade de medida do som.
12
dBA: no modo dBA a sensibilidade do sensor de som é ajustada para a sensibilidade
dos ouvidos humanos.
dB: na medição de decibéis padrão (sem ajuste) todos os sons são medidos com a
mesma sensibilidade. Deste modo, estes sons podem ser muito altos ou muito baixos para
serem ouvidos por ouvidos humanos.
O sensor de som pode medir níveis de pressão de som de até 90 dB - o mesmo produzido
por uma roçadeira de gramas. Níveis de pressão sonora são muito complexos, então as
leituras do sensor de som são mostradas no visor em porcentagens (%). Quanto menor
for o valor, mais calmo é o ambiente. Alguns exemplos:
4 - 5% - é como uma sala de estar silenciosa;
5 - 10% - seria como uma pessoa conversando um pouco distante;
10 - 30% - é como uma conversação normal próxima ao sensor, ou uma música tocando
em um volume normal;
30 - 100% - é como pessoas gritando ou uma música sendo tocada em volume alto.
3.2.4 Os Servomotores
Cada um dos três servomotores inclusos no kit NXT possui um sensor de rotação
embutido. Isso permite que seja possível controlar os movimentos do robô com mais
precisão.
O sensor de rotação mede as rotações do motor em graus, ou em voltas completas
(com a exatidão de aproximadamente 1 grau).
Figura 3.10: Servomotor. [Suzuki et al., 2010]
O sensor de rotação embutido em cada motor também lhe permite de�nir velocidades
diferentes para seus motores (de�nindo parâmetros de força diferentes no software).
13
3.3 A Linguagem de Programação NXT-G e o Software
Lego R© Mindstorms R© NXT
O NXT não é útil sem um programa escrito pelo usuário que descreva quais deverão
ser suas ações/reações. Uma facilidade é que não é necessário entender profundamente de
programação para desenvolver programas para o mesmo. [Astolfo et al., 2007]
A NXT-G é uma linguagem de programação grá�ca baseada em blocos de montagem,
e não utiliza código escrito. Por esta característica, é considerada de fácil usabilidade e
aprendizado, principalmente por crianças e pessoas com pouco ou nenhum conhecimento
em programação. [Hansen, 2009]
A programação em NXT-G é totalmente ilustrada e intuitiva, o que gera maior co-
modidade ao programador. Os comandos e atribuições de valores às variáveis podem ser
facilmente manipulados.
Com o software Lego R© Mindstorms R© NXT é possível desenvolver programas no com-
putador e colocá-los no brick do robô por conectividade bluetooth ou USB. [Lego, 2010]
Este software se caracteriza por utilizar linguagem própria (a NXT-G) e ser de fácil
utilização. Também é possível programar o robô utilizando diretamente o brick, porém
com funções e quantidade de comandos mais limitados.
A Figura 3.11 mostra a tela inicial do software, onde:
Figura 3.11: Tela inicial do software.
14
1. Robot Educator: contém instruções de programação e construção usando o modelo
do DRIVING BASE 1;
2. My Portal: acesso direto à novas ferramentas, downloads e informações atualizadas
disponíveis na internet;
3. Barra de Ferramentas: ferramentas mais usadas, dispostas de maneira fácil e acessível;
4. Getting Started: demonstração dos comandos básicos para operar o software pela
primeira vez, além de uma rápida visão dos recursos oferecidos;
5. Help Window (Ajuda Rápida): mostra dicas e funções básicas dos ícones e ferra-
mentas;
6. Paletas de Programação: paletas que dispõem de todas as funções de programação
do NXT;
7. Painel de Inicialização rápida: permite abrir um novo programa ou um que foi salvo
anteriormente.
A Figura 3.12 corresponde à tela inicial com um novo arquivo a ser construído.
Figura 3.12: Tela inicial do software com um novo arquivo a ser construído.
1O DRIVING BASE é o robô sugerido pelo manual do kit 9797 para testes dos sensores.
15
3.4 Explicando o software Lego R© Mindstorms R© NXT:
comandos
Nesta seção é mostrado minuciosamente o software Lego R© Mindstorms R© NXT, seus
ícones principais e suas funções.
Trata-se de um Tutorial contendo as funções básicas para utilização do software e tem
como referência a apostila Introdução à Programação com Robôs Lego - Projeto Levando
a Informática do Campus ao Campo, desenvolvida para uso no projeto que intitula a
apostila, pelos alunos monitores do mesmo. [Suzuki et al., 2010]
3.4.1 Comunicação Computador x NXT
A Figura 3.13 mostra os botões que estabelecem a comunicação entre o computador e
o NXT.
Figura 3.13: Botões de comunicação do software com o computador.
16
3.4.2 Paletas
Existem três paletas contendo os ícones de programação, mostrados na Figura 3.14:
Figura 3.14: Paletas.
17
Paleta Padrão
Figura 3.15: Ícones da Paleta Padrão. [Suzuki et al., 2010]
Comando MOVE
Figura 3.16: Ícone Move.
Ao arrastar o ícone MOVE para a área de trabalho do software aparecerá na parte
inferior da tela a Figura 3.17:
18
Figura 3.17: Opções do Comando Move.
A Figura 3.17 mostra os valores estabelecidos para os motores, podendo estes serem
alterados.
1. Port: con�gura qual porta será controlada, podendo ser uma, duas ou as três si-
multaneamente.
2. Direction: controla o sentido da rotação do motor (para frente, para trás ou parado).
Controla a direção do robô, quando a locomoção depende de 2 motores, cada um
controlando um lado da locomoção.
3. Steering: habilitado somente quando 2 motores estão selecionados, o que permite
ao robô fazer curvas e indica qual a direção que ele deverá virar, ou se a curva será
mais �aberta� ou mais �fechada�. Se somente um motor ou os três motores estiverem
selecionados, essa opção �cará desabilitada.
4. Power: nível de potência dos motores (que vai de 0% a 100%). Este valor pode ser
ajustado digitando o número na caixa à direita, ou deslizando o ponteiro sobre a
barra para a direita ou para a esquerda.
5. Duration: a duração do movimento do motor pode ser fornecida em:
Rotações: equivale a uma volta completa do eixo;
Graus: uma volta equivale a 360o, meia volta a 180o e assim sucessivamente;
Segundos: independente do número de voltas do motor, a porta é ativada pelo tempo
determinado;
Ilimitado: irá se mover inde�nidamente ou até que a programação execute o pró-
ximo ícone da sequência. Quando se habilita essa função, a Steering é desabilitada
automaticamente;
6. Next Action: de�ne a próxima ação dos motores. Pode ser:
Brake: fará com que o robô pare ao realizar a quantidade de movimento determi-
nado, o que pode fazê-lo parar bruscamente, além de "travar"o motor na posição
exata.
19
Coast: somente desligará o motor, permitindo que este continue o movimento por
inércia, permitindo uma parada mais suave.
Comando RECORD/PLAY
Figura 3.18: Ícone Record/Play.
Estes comandos são usados para gravar as ações que os motores realizam, desde ensinar
a posição de algum objeto ao robô até a sequência de movimentos que pode ser realizada
por todos os motores ordenadamente.
Quando for escolhida a função Record, aparecerá a seguinte tela de con�guração como
na Figura 3.19 :
Figura 3.19: Opções do Comando Record/Play.
1. Name: designa um nome para a sequência a ser gravada.
2. Recording: escolhe quais motores terão seus movimentos registrados.
3. Time: registra quanto tempo irá durar a gravação da sequência de movimentos.
Quando for escolhida a função Play, pode-se escolher na lista que aparece qual das
ações gravadas será executada.
Comando SOUND
Figura 3.20: Ícone Sound.
20
Essa função é utilizada para executar uma sequência de sons, ou para reproduzir notas
musicais durante a execução do programa.
O painel de con�guração da opção SoundFile é apresentado na Figura 3.21:
Figura 3.21: Opções do Comando Sound ao escolher a opção SoundFile.
1. Action: selecionar SoundFile signi�ca utilizar arquivos de som pré-gravados;
2. Control: inicia a execução do som (Play) ou a interrompe (Stop). Quando Stop é
selecionado, as outras funções �cam desabilitadas;
3. Volume: de�ne a intensidade em que o som será executado;
4. Function: faz o som se repetir inde�nidamente, ao selecionar Repeat ;
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 também será
enviado.
6. Wait: A opção Wait for Completion de�ne quando a próxima ação será executada.
Quando a opção está marcada, a ação só será executada quando o som ou tom for
emitido por completo; caso contrário, a ação ocorrerá assim que o som se iniciar.
O painel de con�guração da opção Tone é apresentado na Figura 3.22:
Figura 3.22: Opções do Comando Sound ao escolher a opção Tone.
5 Note: é possível escolher uma nova nota para ser executada e sua duração em
segundos. Ainda é possível selecionar a nota musical através do teclado.
21
Comando DISPLAY
Figura 3.23: Ícone Display.
Várias maneiras podem ser selecionadas (Action) para exibir as informações no display
do NXT, como mostra a Figura 3.24, a Figura 3.25 e a Figura 3.26:
Figura 3.24: Comando Display - Opção Image.
Figura 3.25: Comando Display - Opção Text.
Figura 3.26: Comando Display - Opção Drawing.
1. Action: é o tipo de conteúdo a ser exibido (Imagem, Texto, Desenho, Reset);
2. Display: sobrescrever o anterior ou apagá-lo (Clear);
3. Files: imagens disponíveis para exibição;
4. Position: exibe a imagem selecionada, correspondente ao arquivo escolhido, e a sua
posição no visor � X (horizontal) e Y (vertical);
22
5. Text: quando esta função for selecionado em Action, uma janela para digitação do
texto deverá aparecer;
6. Position: posição do texto na tela; é possível escolher em que linha irá aparecer. A
tela é composta por 8 linhas;
7. Type: é possível escolher o tipo de desenho - Point, Circle, Line - para desenhar e
criar desenhos; no caso da linha, de�ne-se o seu início e seu �m; no caso do círculo,
de�ne-se o raio;
8. Position: mostra a posição do objeto no display.
Ao selecionar Reset em Action, o display será limpo.
Comando WAIT
Figura 3.27: Ícone Wait.
O comando Wait insere uma espera no programa, condicionando a continuidade da
programação a um tempo ou a um evento de sensor.
Quando Time é selecionado no campo Control, a Figura 3.28 aparecerá na tela:
Figura 3.28: Comando Wait - Opção Time.
1. Until: Determina a quantidade a ser esperada. O tempo é dado em segundos e
décimos de segundos. Como sinal de separação de casas decimais, são aceitos tanto
ponto quanto vírgula.
Quando Touch Sensor é selecionado no campo Control, a Figura 3.29 é mostrada:
23
Figura 3.29: Comando Wait - Opção Touch Sensor.
1. Port: seleciona a porta em que o sensor está conectado;
2. Action: seleciona a ação no sensor de toque - Pressed (Pressionado), Released (Li-
berado) e Bumped (Pressionado e, em seguida, Liberado).
Quando é selecionado Sound Sensor, temos a Figura 3.30:
Figura 3.30: Comando Wait - Opção Sound Sensor.
1. Port: seleciona a porta em que o sensor está conectado;
2. Until: con�gura a espera do sensor por um som maior ou menor que a intensidade
de�nida pelas barras ou pelo valor inserido.
3. Determina a quantidade a ser esperada.
Quando é selecionado Light Sensor, a Figura 3.31 será mostrada:
Figura 3.31: Comando Wait - Opção Light Sensor.
1. Port: seleciona 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 símbolos de < ou >. A variação
deve estar entre 0 e 100.
24
3. Determina a quantidade a ser esperada.
4. Function: ao selecionar a caixa Generate Light, o sensor irá acender seu led locali-
zado na parte inferior para produzir luz para leitura, caso contrário, fará a leitura
baseado na luz ambiente.
Quando é selecionado Ultrasonic Sensor, temos a Figura 3.32:
Figura 3.32: Comando Wait - Opção Ultrassonic Sensor.
1. Port: seleciona 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 distância.
3. Determina a quantidade a ser esperada.
4. Show: a medida usada pode ser em polegadas (inches) ou centímetros (centimeters).
A conversão é feita automaticamente. O valor deverá ser entre 0 e 250 polegadas
ou de 0 a 635 centímetros.
Quando é selecionado NXT Buttons, aparecerá a Figura 3.33:
Figura 3.33: Comando Wait - Opção NXT Buttons.
1. Button: seleciona qual dos botões aguarda para ser pressionado, podendo ser o
botão laranja do brick ou os botões direita/esquerda. O botão inferior não pode ser
utilizado devido a sua função �Voltar�;
2. Action: de�ne a ação que deverá ocorrer com o botão escolhido, da mesma forma
que o sensor de toque.
25
3. Determina a quantidade a ser esperada.
Quando selecionamos Rotation Sensor, temos a Figura 3.34:
Figura 3.34: Comando Wait - Opção Rotation Sensor.
Como já explicado anteriormente, os servomotores possuem sensores de rotação em-
butidos.
1. Port: seleciona a porta em que o motor estará conectado;
2. Action: seleciona se deverá ler (Read) a rotação ou zerar (Reset) a leitura. Se Reset
for selecionado, a opção Until é desabilitada;
3. Until: determina até quando a leitura deverá ser feita. Aqui considera-se a direção
da rotação;
4. Aqui é inserido o valor a ser usado pelo Until, em graus (degrees) ou rotações
(rotations);
5. Determina a quantidade a ser esperada.
Quando selecionado Timer, a Figura 3.35 aparecerá :
Figura 3.35: Comando Wait - Opção Timer.
Aqui, o NXT irá ler o tempo de seus cronômetros internos (3 cronômetros), que podem
ser usados para determinar o tempo de resposta ou não do robô.
1. Timer: seleciona um dos três cronômetros disponíveis;
2. Action: caso esteja selecionada a caixa Read ele lê o valor obtido no timer, ou zera
o cronômetro selecionado se a caixa Reset estiver marcada;
26
3. Until: determina se deve esperar um valor maior ou menor que o indicado a frente
(em segundos).
Quando selecionado Receive Message, temos a Figura 3.36:
Figura 3.36: Comando Wait - Opção Receive Message.
1. Message: determina que tipo de mensagem deve receber, se texto (text), número
(number) ou lógico (logic);
2. Compare to: permite comparar as mensagens, com limites pré-de�nidos.
3. MailBox: determina qual caixa de correio deve receber a mensagem. Existem 10
diferentes caixas para serem usadas.
Comando LOOP
Figura 3.37: Ícone Loop.
Com o Loop, podemos condicionar a repetição de uma sequência de código de progra-
mação de diversas maneiras.
Quando for selecionado Forever, temos a Figura 3.38:
Figura 3.38: Comando Loop - Opção Forever.
1. Control: determina o modo de repetição; Selecionando Forever o trecho da progra-
mação contido no loop será repetido in�nitas vezes;
27
2. Show: quando selecionada a caixa Counter, o programa registra quantas vezes o
loop foi realizado. Caso contrário, somente repete sem registrar.
Quando for selecionado Time, então veremos a Figura 3.39:
Figura 3.39: Comando Loop - Opção Time.
Quando for selecionado Time, o loop se repetirá durante um tempo �xado, ou seja,
ele aciona um timer que irá determinar quando a sequência dentro do loop é iniciada e
veri�ca se esse tempo é maior do que o con�gurado (em segundos). Se for maior, o loop
termina e passa para a sequência de comando seguinte.
Quando for selecionado Logic, temos a Figura 3.40:
Figura 3.40: Comando Loop - Opção Logic.
Nesse caso o campo Until determina o valor da condição - true ou false - para que o
�m do loop aconteça.
Comando SWITCH
Figura 3.41: Ícone Switch.
O Comando Switch permite que o programa tome uma �decisão� conforme o que foi
pré-determinado. Basicamente, possibilita duas opções: Value ou Sensor.
Caso seja escolhido Value:
28
Figura 3.42: Comando Switch - Opção Value.
1. Type: de�ne 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, per-
mitindo visualizar a programação de cada condição. Caso contrário, somente será
vista uma linha de cada vez e é necessário clicar na aba para ver cada uma das
linhas;
3. Conditions: permite estabelecer as condições. Assim, quando selecionado Logic no
campo Type, teremos apenas duas condições (True ou False). Caso seja selecionado
Text ou Number, pode-se adicionar mais condições, desde que Flat View não seja
habilitado. Só é possível ver as opções uma a uma, pelo clique nas abas, que
aparecem conforme mais condições são adicionadas.
4. O botão * permite de�nir qual a condição padrão a ser tomada, caso nenhuma das
outras seja possível.
No caso de ser escolhido Sensor, o que pode ocorrer é:
Quando for selecionado Touch Sensor :
Figura 3.43: Comando Switch - Opção Touch Sensor.
1. Port: escolha da porta onde o sensor está conectado;
2. Action: seleciona qual padrão deve ser esperado do sensor. Exemplo: se selecionado
Pressed, deve-se �seguir� a linha de programação que �ca acima da bifurcação; caso
contrário, segue-se a linha abaixo. No caso de escolher Bumped, deve-se escolher
padrões somente entre verdadeiro ou falso.
29
Quando for selecionado Sound Sensor :
Figura 3.44: Comando Switch - Opção Sound Sensor.
3. Compare: con�gura o parâmetro de comparação de volume de som.
Quando for selecionado Light Sensor :
Figura 3.45: Comando Switch - Opção Light Sensor.
3. Compare: con�gura o parâmetro de comparação do nível de luminosidade;
4. Function: con�gura 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 :
Figura 3.46: Comando Switch - Opção Ultrasonic Sensor.
3. Compare: con�gura o parâmetro de comparação de distância do objeto detectado;
4. Show: determina a unidade de medida - polegadas (inches) ou centímetros (cen-
timeters).
30
Quando for selecionado NXT Buttons:
Figura 3.47: Comando Switch - Opção NXT Buttons.
1. Button: seleciona o botão do NXT;
2. Action: tem a mesma função Touch Sensor.
Quando for selecionado Rotation Sensor:
Figura 3.48: Comando Switch - Opção Rotation Sensor.
2. Action: con�gura ler o valor do sensor ou zerá-lo;
4. Compare: con�gura o sentido da rotação, e se será maior ou menor que o valor
determinado, em graus ou rotações.
Quando for selecionado Timer :
Figura 3.49: Comando Switch - Opção Timer.
3. Timer: seleciona um dos 3 timers disponíveis no software;
4. Compare: determina o valor de comparação do timer, em segundos;
31
Quando for selecionado Receive Message:
Figura 3.50: Comando Switch - Opção Receive Message.
1. Message: tipo de mensagem a ser recebida: text, number, logic;
2. Compare to: parâmetro para comparação conforme tipo selecionado acima: número
para number, texto para text, true ou false para logic;
3. Mailbox: escolher qual das 10 caixas de correio disponíveis no software deve ser
consultada para a comparação.
DATA HUB
Figura 3.51: Data HUB.
A utilização do Data HUB é uma maneira de relacionar e utilizar os valores dos ícones
de maneira a transformá-los em grá�cos no display, ou mesmo utilizar esses valores como
potência de motores, parâmetros de sensores, etc. Para isso, deve-se clicar na parte inferior
do ícone Display.
Quando houver plugues a direita, eles são saídas de dados, e a esquerda, eles se tornam
entrada de dados. Isso signi�ca que um mesmo dado não pode ser utilizado de diversas
32
formas. Uma maneira mais simples de visualizar, seria colocando o valor de um sensor no
display do NXT.
Um exemplo prático é mostrado na Figura 3.52:
Figura 3.52: Exemplo da utilização do DATA HUB.
Este exemplo mostra, no ícone do sensor ultrassônico, a função Number to Text, para
possibilitar a compatibilidade do formato do dado de saída com o dado de entrada. Com
este programa, toda vez que a distância do objeto medida pelo sensor for alterada, o valor
medido irá aparecer no display.
As linhas são de cores diferentes, representando formatos diferentes de dados.
Caso a linha se torne cinza, signi�ca que não existe compatibilidade entre o dado de
saída e o formato de entrada do mesmo.
Figura 3.53: Cor da linha de conexão referente a cada formato de dado.
33
Paleta Completa (Complete Pallete)
A Paleta Completa contém todas as funções de programação disponíveis no software.
Engloba todos os ícones da Paleta Comum e mais alguns, permitindo um nível de progra-
mação mais complexo. Divide-se em:
Figura 3.54: Ícones da Paleta Completa. [Suzuki et al., 2010]
COMMON
Figura 3.55: Funções do ícone Common.
As funções do ícone Common também podem ser acessadas pela Paleta Padrão, já
mostradas anteriormente.
34
ACTION
Figura 3.56: Funções do ícone Action.
Refere-se à ícones de execução de tarefas, como inicializar um motor, exibir uma men-
sagem na tela, aguardar um evento, tempo ou sensor, etc. Conta ainda com os comandos
listados a seguir:
COMANDO SEND MESSAGE
Figura 3.57: Ícone Send Message.
Con�gura o envio de mensagens via bluetooth, para diferentes NXTs.
Para que o comando funcione, é necessário ativar o bluetooth no NXT.
Figura 3.58: Opções do Comando Send Message.
1. Connection: indica para qual conexão a mensagem será enviada;
2. Message: indica se a mensagem enviada será de texto (text), número (number), ou
lógica (logic);
3. Espaço para inserção da mensagem;
4. Mailbox: indica a qual caixa de correio está endereçada a mensagem no outro NXT.
35
COMANDO LAMP
Figura 3.59: Ícone Lamp.
Con�gura o funcionamento de lâmpadas com o NXT.
Figura 3.60: Opções do Comando Lamp.
1. Port: indica a qual porta a lâmpada está conectada;
2. Action: indica se acende ou apaga a lâmpada;
3. Intensity: con�gura a intensidade da lâmpada. O valor vai de 0 a 100%.
SENSOR
Figura 3.61: Funções do ícone Sensor.
Seus comandos permitem ler os valores/respostas dos sensores, calibrar seus valores,
e que usemos estes dados dentro do programa.
36
Figura 3.62: Opções do ícone Sensor. [Suzuki et al., 2010]
COMANDO RECEIVE MESSAGE
Figura 3.63: Ícone Receive Message.
Este comando permite receber mensagens de outro NXT, sem utilizar �os, desde que
o tipo de mensagem e o número da caixa de correio (mailbox ) sejam os mesmos em ambos
NXTs.
37
Figura 3.64: Opções do comando Receive Message.
1. Message: de�ne o tipo de mensagem que deve ser recebida;
2. Compare to: parâmetro para comparação;
3. Mailbox: de�ne qual a Mailbox deve ser usada para comparar/receber a mensagem.
FLOW
Figura 3.65: Funções do ícone Flow.
O ícone Flow tem comandos referentes ao �uxo do programa, como esperas, repetições,
tomadas de decisões e parada.
COMANDO STOP
Figura 3.66: Ícone Stop.
O comando Stop não possui painel de con�guração e sua função é �nalizar todo o
programa. No caso de ser usado junto à motores, desliga os motores após uma rotação,
interrompendo a leitura dos sensores e das demais funções.
Outros comandos do menu FLOW são Wait, Loop e Switch, e já foram citados ante-
riormente.
38
DATA
Figura 3.67: Funções do ícone Data.
São comandos referentes ao tratamento dos dados obtidos pelos sensores ou motores,
sendo possível transformá-los em grá�cos ou mesmo aprimorar os dados para tornar o
desempenho mais e�ciente.
Figura 3.68: Opções do ícone Data. [Suzuki et al., 2010]
39
COMANDO LOGIC
Figura 3.69: Opções do comando Logic.
1. De�ne o valor das entradas como verdadeiros ou falsos, e mostra gra�camente o
resultado;
2. Operation: con�gura o tipo de operação entre And, Or, Xor e Not.
É possível realizar operações com operadores lógicos.
COMANDO MATH
Figura 3.70: Ícone Math.
O Comando MATH permite realizar operações matemáticas (adição, subtração, di-
visão e multiplicação) com os valores obtidos pelos sensores, utilizando tais resultados em
grá�cos ou como parâmetros de con�guração.
Figura 3.71: Opções do comando Math.
1. Valores da operação;
2. Operation: tipos de operação: Addition (Adição), Subtraction (Subtração), Multi-
plication (Multiplicação), Division (Divisão).
40
COMANDO COMPARE
Figura 3.72: Ícone Compare.
Este comando compara valores e de�ne a condição como igualdade, maior que ou
menor que.
Figura 3.73: Opções do comando Compare.
1. Entrada de valores a serem comparados;
2. Operation: de�ne o Tipo de Comparação: LessThan (menor que), Greather Than
(maior que), Equals (igual).
COMANDO RANGE
Figura 3.74: Ícone Range.
De�ne o intervalo de valores para ser usado como na con�guração.
Figura 3.75: Opções do comando Range.
41
1. Test: número para testar a condição, se esta não tiver sido de�nida por outro ícone;
2. De�ne o início e o �m do intervalo a ser usado;
3. Operation: de�ne se os números estarão dentro (inside) ou fora (outside) do inter-
valo.
COMANDO RANDOM
Figura 3.76: Ícone Random.
O Comando Random gera um valor aleatório, dentro de um intervalo determinado,
que pode ser usado na con�guração.
Figura 3.77: Opções do comando Random.
1. Range: de�ne o intervalo de valores de onde será escolhido o número aleatório,
de�nido entre o mínimo e o máximo. Quando o valor digitado ultrapassar os val-
ores, tanto acima quanto abaixo, a range permanece no valor mínimo (0), ou no
máximo (100).
COMANDO VARIABLE
Figura 3.78: Ícone Variable.
42
De�ne variáveis para serem usadas durante a programação, sendo que o software possui
três pré-de�nidas. Para criar novas variáveis os comandos são: menu Edit > De�ne
Variables > Create. Ao colocar o ícone na tela, este irá aparecer na relação de variáveis
do programa.
Figura 3.79: Opções do comando Variable.
1. List: de�ne o nome e o tipo da variável - lógica (logic), numérica (number) ou texto
(text);
2. Action: de�ne a ação em relação ao valor da variável; através dele é possível utilizar
um valor já de�nido, ou atribuir um novo para uso posterior;
3. Value: quando habilitado Write em Action, pode-se atribuir um valor, texto ou
condição de verdadeiro ou falso, dependendo do tipo da variável.
ADVANCED
Figura 3.80: Funções do ícone Advanced.
As funções avançadas de tratamentos de variáveis permitem aumentar o uso do soft-
ware a �m de transformar, armazenar valores e até calibrar os sensores, tornando os robôs
o mais independente possíveis.
43
Figura 3.81: Opções do ícone Advanced. [Suzuki et al., 2010]
COMANDO TEXT
Figura 3.82: Ícone Text.
Este combina várias sequências de texto, concatenando até três delas;
Figura 3.83: Opções do comando Text.
1. Text: sequências de texto ou sentenças a serem concatenadas.
44
COMANDO NUMBER TO TEXT
Figura 3.84: Ícone Number to Text.
Converte números para textos, para poder utilizá-los com caixas de texto que não
aceitam números.
Figura 3.85: Opções do comando Number to Text.
Number: número a ser convertido em texto.
COMANDO KEEP ALIVE
Figura 3.86: Ícone Keep Alive.
Faz com que o NXT entre em modo de espera, ou �sleep mode�, por um tempo de-
terminado, medido em milésimos de segundos. Ao esgotar-se o tempo, o NXT retorna à
programação (o que o difere do comando Wait, que não o coloca em modo de espera).
Este comando não apresenta painel de con�guração.
COMANDO FILE ACCESS
Figura 3.87: Ícone File Acess.
45
Permite registrar dados em arquivos no NXT, para leitura posterior. Podem ser digi-
tados em forma de texto ou números, e são usados para registrar diversos dados obtidos
pelo robô.
Figura 3.88: Opções do comando File Acess.
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;
Text/Number: Número ou texto a ser escrito no arquivo;
COMANDO CALIBRATE
Figura 3.89: Ícone Calibrate.
Permite calibrar os sensores de luz e de som com os valores do ambiente, permitindo
uma interação e precisão maior do robô com o ambiente.
Figura 3.90: Opções do comando Calibrate.
1. Port: Porta em que o sensor está conectado;
2. Sensor: Tipo de sensor que está conectado, se é de Luz ou de Som;
46
3. Action: Determina se é para calibrar o sensor ou resetar os valores, voltando a
con�guração padrão;
4. Value: Determina o valor a ser calibrado, se é o máximo ou mínimo.
COMANDO RESET
Figura 3.91: Ícone Reset.
Quando utilizado o comando MOVE, automaticamente o NXT faz um ajuste entre
a rotação dos motores con�gurados, aumentando a precisão dos movimentos. Porém,
ao utilizar o parâmetro de con�guração COAST, o mesmo pode perder a precisão na
quantidade de movimento (Degrees ou Rotations). Para ajustar a duração do movimento
nessa situação, usamos o comando RESET MOTOR.
Figura 3.92: Opções do comando Reset.
1. Port: Portas que devem ter seus valores resetados.
47
Paleta Personalizada (Custom Pallete)
A paleta personalizada irá conter dois menus: os blocos de programa criados pelo
programador emMy Blocks, ou aqueles que poderão ser baixados via download da internet,
em WebDownloads, disponibilizados por usuários quaisquer.
Figura 3.93: Ícones da Paleta Personalizada. [Suzuki et al., 2010]
My Blocks - Como criar um bloco personalizado
Para ter blocos no menuMy Blocks, é preciso criá-los antes. Os seguintes passos devem
ser seguidos:
• Abrir uma janela e criar o programa a ser transformado em um bloco, como por
exemplo, o da Figura 3.94:
Figura 3.94: Exemplo de programa a ser transformado em um bloco.
• Selecionar este bloco e, no menu Edit, clicar em Make a New My Block. O assistente
My Block Builder será aberto;
• Em Block Name, nomear o seu bloco, e em Block Description, escrever uma breve
descrição do que ele faz.
Logo abaixo aparecem os comandos selecionados anteriormente.
48
Figura 3.95: Assitente My Block Builder.
• clicar em Next para continuar.
• escolher um ícone para representar o bloco e clicar em Finish.
Ao colocar o ponteiro do mouse sobre My Blocks novamente, irá aparecer o ícone do
bloco criado. Para utilizá-lo, basta arrastá-lo para a área de trabalho do software.
49
Capítulo 4
Estudo de caso: O Projeto de Extensão
Levando a Informática do Campus ao
Campo
Neste capítulo é apresentada a técnica de construção de conhecimento em computação
através da utilização do kit de robótica educacional, mostrando os resultados obtidos.
Inicialmente, será apresentado o projeto de extensão Levando a Informática do Campus
ao Campo, desenvolvido pela Universidade Federal de Goiás - UFG, Campus Catalão, onde
foi aplicada a técnica durante a execução de algumas atividades.
4.1 O Projeto de Extensão Levando a Informática do
Campus ao Campo
Atendendo a chamada do edital 023/2008 do CNPq, professores dos departamentos
de Ciência da Computação e Matemática do Campus Catalão da Universidade Federal de
Goiás � UFG, dentre eles o professor Vaston Gonçalves da Costa, submeteram o projeto
�Levando a Informática do Campus ao Campo".
O projeto conta com �nanciamento do CNPq e com o apoio da Secretaria Municipal de
Educação do Município de Catalão. Além de verbas para suprir gastos com deslocamento
e aquisição de materiais, o CNPq fornece aporte �nanceiro para o pagamento de bolsas de
iniciação cientí�ca. Atualmente, o projeto conta com a participação de 4 bolsistas, dentre
eles, Gabriela Quirino Pereira.
50
4.1.1 Objetivos e estrutura do projeto
O objetivo geral do projeto é apresentar conceitos de computação e robótica educa-
cional aos alunos do Ensino Fundamental da zona rural da região de Catalão.
Objetiva-se também que os alunos disseminem o conhecimento adquirido no projeto
em seu ambiente escolar e residencial, proporcionando conhecimento também à outras
pessoas a sua volta. Estes alunos presenciais são considerados �alunos multiplicadores de
conhecimento�.
O projeto é ministrado em 4 Módulos, sendo que o primeiro Módulo foi ministrado
em Julho de 2009, o segundo em Janeiro de 2010, o terceiro em Julho de 2010 e o quarto
e último será ministrado em Janeiro de 2011, todos com duração de 2 semanas cada, no
período das férias escolares.
Estão cadastrados no projeto 24 alunos de 3 escolas da rede pública de ensino da zona
rural de Catalão (8 alunos por escola). As escolas participantes são: Escola Maria Bárbara
Sucena, Escola Arminda Rosa de Mesquita e Escola Santa Inês, e as aulas acontecem no
Campus Catalão da Universidade Federal de Goiás � UFG.
Os Módulos são divididos da seguinte maneira:
• Módulo 1: Hardware e Internet;
• Módulo 2: Software Básico (Editor de Texto e de Planilhas);
• Módulo 3: Introdução e Programação Básica de Robôs;
• Módulo 4: Programação Avançada de Robôs.
Módulo 1: Hardware e Internet
No Módulo 1 os alunos tiveram aulas sobre a estrutura física de um computador.
Visualizaram e praticaram a montagem e desmontagem do mesmo, observando seus com-
ponentes eletrônicos e entendendo o funcionamento de cada um. Também tiveram aulas
sobre a instalação e con�guração de sistemas operacionais e ainda sobre Internet, naveg-
ação em sites, criação de e-mails e ética na internet (conhecida como Netiqueta).
Módulo 2: Curso de Software Básico (Editor de texto e de Planilhas)
No Módulo 2 foi apresentado aos alunos a utilização do Editor de Textos BrO�ce
Writer e o Editor de Planilhas BrO�ce Calc. Os alunos aprenderam, à partir de exercícios
práticos, as funções básicas destas ferramentas e como empregá-las em seu cotidiano.
51
Módulo 3: Introdução e Programação Básica de Robôs
No Módulo 3 os alunos tiveram aulas sobre Robótica Educacional utilizando o kit
robótico Lego R© Mindstorms R© NXT Base Set 9797 e o kit Education Resource Set (9648).
Vários conceitos foram apresentados aos alunos, como noções básicas de programação
e montagem dos robôs. Diversos modelos foram montados e programados para diversas
�nalidades.
Módulo 4: Programação Avançada de Robôs
No Módulo 4 (a ser desenvolvido em Janeiro de 2011), tendo em vista que os alunos já
foram apresentados à montagem e programação dos robôs, serão desenvolvidas atividades
com grau de complexidade mais elevado, como por exemplo, o jogo de futebol de robôs.
Os alunos terão maior liberdade para desenvolver modelos de sua preferência e programá-
los para realizar as funções que desejarem, fato este que permitirá ao aluno desenvolver
sua criatividade.
4.2 Atividades desenvolvidas no Módulo 3
No decorrer das aulas, muitas atividades foram desenvolvidas pelos alunos, desde
atividades propostas pelo professor até atividades criadas e desenvolvidas pelos próprios
alunos. Foram construídos vários modelos diferentes de robôs como carros, animais e
humanoides.
Figura 4.1: Modelos de robôs montados pelos alunos no Módulo 3.
A Figura 4.1 apresenta alguns modelos de robôs construídos pelos alunos durante o
Módulo 3. Para cada um destes modelos, foram aplicados vários programas diferentes
52
para testar e visualizar as relações de causa/efeito da programação com as reações dos
robôs.
Dentre as várias atividades, três serão apresentadas neste trabalho, mostrando suas
in�uências no processo de aprendizagem e desenvolvimento dos alunos. As duas primeiras
foram aplicadas no robô escorpião. Foram propostas aos alunos 2 atividades com este
modelo, uma mais simples e outra com grau um pouco maior de complexidade. Na terceira
atividade o modelo de robô não foi sugerido, �cando a cargo do aluno a descoberta do que
melhor se adequaria à realização da tarefa. A atividade 3 teve como objetivo estimular
não só o conhecimento, mas também a criatividade dos alunos.
4.2.1 Atividade 1: Pensar de maneira sequencial e atribuições de
valores
A 1o atividade proposta consistia em programar o robô escorpião que, ao perceber um
som qualquer, andasse para frente 10 rotações, atacasse com a cauda e, após atingir o
alvo, emitisse um som, retirasse a cauda do alvo e retornasse para o lugar de origem.
Objetivo do problema: O aluno deveria ser capaz, ao �nal da atividade, de reconhecer
as formas de se programar os principais sensores do Kit 9797, entendendo como atribuir
valores às variáveis dos sensores e como disponibilizar os comandos de forma sequencial.
Habilidades desenvolvidas: Com esta atividade o aluno é apresentado aos conceitos
iniciais de lógica de programação e de linguagem de programação. O aluno entende que
é necessário especi�car corretamente a ordem com que cada instrução deve ser executada
e quais os valores devem ser informados para cada execução do problema.
A solução apresentada pelos alunos:
• Criaram uma instrução em que o sensor de som, ao perceber o barulho, habilitaria
os motores;
• Em seguida �zeram uma instrução em que os motores B e C, responsáveis pelo
movimento das �patas� do escorpião, deveriam ser ativados para andar 10 rotações
à frente.
• Para que o escorpião atacasse, os alunos desenvolveram uma instrução em que o
motor A, responsável pelo movimento da �cauda� do escorpião, após a parada dos
motores B e C, deveria executar uma movimento rápido para atingir algo a sua
frente.
• A forma de o escorpião detectar que havia atingido o alvo era através da instalação
de um sensor de toque na ponta de sua �cauda�. Os alunos instruíram o robô a
emitir um som tão logo o sensor de toque fosse acionado.
53
• Após o som, os alunos ativaram novamente o motor A em movimento contrário da
execução inicial. Fazendo, assim, que o escorpião retornasse a �cauda� à posição
inicial.
• Por último, criaram um instrução de movimento contrário para os motores B e C,
para que o robô voltasse à posição inicial.
Figura 4.2: Programa desenvolvido pelos alunos como solução da atividade 1.
Na Figura 4.2 é apresentada a tela de programação do Mindstorms R© NXT com as
instruções implementadas pelos alunos em NXT-G para resolver a primeira atividade.
Tão logo os alunos souberam que o robô deveria agir a partir de um som, perceberam
a necessidade de utilizar o sensor de som, bem como o sensor de toque para que o mesmo
notasse o momento em que o alvo fosse atingido. Estas necessidades foram rapidamente
detectadas.
Para chegar a tal programa, alguns erros foram cometidos pelos alunos como: certa
confusão ao desenvolver o programa com comandos referentes aos sensores e motores
correspondentes (com relação às portas de conexão corretas), di�culdade para notar que os
motores dos movimentos das �patas� deveriam ser interrompidos para que o robô atacasse
com a �cauda�, o momento certo de executar esta ação e ainda di�culdade de identi�car
como o robô deveria executar o movimento contrário para voltar à posição inicial.
Foi notória a facilidade com que os alunos associaram as ações a serem executadas pelo
robô com as opções dos ícones do programa como move, sound sensor e touch sensor. Ao
perceberem a ação a ser executada, logo identi�cavam qual ícone deveria ser escolhido.
A linearidade das instruções mostrou que os alunos agiram de forma sequencial. Outro
ponto que chamou a atenção durante o processo de construção do programa foi a econo-
54
mia de instruções. Os alunos perceberam, depois das várias tentativas de construção e
execução do programa, que quanto mais recursos colocavam nas instruções, mais tempo
era consumido para a transmissão das informações do computador para o robô. Este
conceito de redução de tempo de transmissão é algo que todo cientista da computação se
preocupa e surgiu naturalmente nos alunos, nesta atividade.
4.2.2 Atividade 2: Estrutura de repetição e condicionais
Na atividade 2 os alunos foram convidados a fazer com que o robô escorpião começasse
a andar inde�nidamente até encontrar um obstáculo. Quando encontrasse o obstáculo,
que andasse para trás 5 rotações, porém se o obstáculo se encontrasse em uma distância
menor que 30 cm do robô, ele deveria atacar com a cauda.
Objetivo do problema: O objetivo era que os alunos, além de utilizar os conhecimentos
já obtidos na atividade 1, aprendessem instruções um pouco mais avançadas, como a
instrução loop (repetição de comandos).
Habilidades desenvolvidas: Com tal atividade o aluno pratica a programação dos robôs
utilizando conceitos elaborados de lógica e de linguagem de programação, vivenciando a
integração dos comandos simples com técnicas elaboradas, o que lhe permite entender
onde e quando utilizá-las.
A solução apresentada pelos alunos:
• Observaram a necessidade de um laço de repetição para que o robô pudesse andar
inde�nidamente até encontrar o alvo e criaram a instrução para esta função;
• Em seguida desenvolveram uma instrução para que o robô, ao detectar o alvo através
do sensor ultrassônico, veri�casse a distância que se encontrava do mesmo.
• Ao veri�car que a distância do alvo era superior a 30 cm, uma instrução foi aplicada
para ativar os motores B e C, referentes as �patas� do escorpião, para que este se
deslocasse para trás, o equivalente a 5 rotações;
• Caso a distância veri�cada fosse inferior a 30 cm, outra instrução era criada, a qual
fazia com que o robô interrompesse o funcionamento dos motores B e C e então
ativasse o motor A (referente à �calda� do mesmo), de modo a atingir o alvo.
• Em seguida desenvolveram outra instrução para o sensor de toque da �calda� do
robô. Assim que esta detectasse o toque no alvo, o motor A seria ativado para que
a calda retornasse à origem em movimento contrário.
• Foi observado que as ações desde a veri�cação da distância do robô ao alvo até o
retorno da calda à posição de origem deveria ser executada repetidamente, o que
levou os alunos a aplicar o laço de repetição a estas instruções.
55
Figura 4.3: Programa desenvolvido pelos alunos como solução da atividade 2.
Na Figura 4.3 é mostrada a tela de programação do Mindstorms R© NXT com as
instruções implementadas pelos alunos em NXT-G para resolver o segundo problema.
Os alunos perceberam a necessidade de criar uma estrutura de repetição, e também
de aplicar métodos diferentes caso a distância do alvo até o robô fosse inferior ou superior
à 30 cm, porém não sabiam como fazê-lo.
Também houveram di�culdades nesta atividade, como por exemplo, entender o que
fazer para que o robô andasse inde�nidamente, como funciona o comando de repetição,
e entender como tratar os condicionais �se� e �senão� (no caso de veri�car a distância do
alvo e, a partir desta informação, qual ação a ser executada).
Os alunos notaram que poderiam aproveitar o código desenvolvido na primeira ativi-
dade, mostrando que as técnicas de repetição e reuso de código surgem naturalmente
quando os alunos se deparam com problemas desta ordem.
Um aspecto interessante nesta atividade foi que os alunos conseguiram, à partir da
primeira atividade, raciocinar com maior rapidez e de forma lógica para desenvolver o
programa, aproveitando instruções do código anterior e desempenhando a atividade com
mais senso crítico em relação à lógica da estrutura. Eles identi�caram que havia ne-
cessidade de programar a ação para ser executada inde�nidamente, diferentemente da
atividade anterior.
4.2.3 Atividade 3: Desa�o à Criatividade
Nesta atividade os alunos deveriam desenvolver um robô que conseguisse encontrar um
alvo em uma área delimitada. A área consistia de uma folha branca de 1m2 com bordas
56
pretas de 2cm de espessura, enquanto o alvo era um quadrado menor que se encontrava
dentro do maior, também de cor branca com bordas pretas, porém de 10cm2.
Os objetivos a serem alcançados eram: o robô não poderia sair da área da folha branca
(quadrado maior), e ao encontrar o alvo (quadrado menor), deveria ativar um efeito sonoro
e parar.
Objetivo: Nesta atividade o aluno deveria conciliar os conceitos teóricos aprendidos
nas atividades anteriores com criatividade e trabalho em grupo.
Habilidades desenvolvidas: A busca por soluções novas a partir de conhecimentos pré-
adquiridos, o estímulo por soluções criativas e o intercâmbio de ideias entre os grupos.
A solução apresentada pelos alunos:
• Como o robô teria que andar inde�nidamente no intuito de encontrar o alvo, os
alunos entenderam que ele deveria andar até encontrar uma borda preta. Então
criaram um comando para tal função dentro de um comando de repetição;
• Em seguida desenvolveram um comando para analisar a cor, com o objetivo de
encontrar a cor preta;
• Foi aplicada uma instrução que �zesse com que o robô parasse ao notar a presença
da cor preta;
• Criaram um instrução para o robô andar apenas o su�ciente para analisar a cor
predominante além da borda preta, sem sair da área delimitada;
• Caso a cor fosse diferente de branco:
� Então o robô estava na borda delimitadora da área, o que levou os alunos a
aplicarem um comando que o �zesse andar para trás;
� Em seguida desenvolveram uma instrução para gerar um número aleatório como
entrada para de�nir o grau de rotação que o robô faria;
� Neste momento, devido ao comando de repetição, o programa se reiniciaria e
o robô continuaria na busca pelo alvo;
• Caso a cor fosse branca:
� Criaram um comando para que fosse emitido um som;
� Em seguida aplicaram um comando para que o programa fosse �nalizado.
57
Figura 4.4: Programa desenvolvido pelos alunos como solução da atividade 3.
Na Figura 4.4 é mostrada a tela do Mindstorms R© NXT com as instruções implemen-
tadas pelos alunos em NXT-G para resolver o terceiro problema.
Muitos aspectos interessantes foram observados na construção deste programa, prin-
cipalmente no que diz respeito à evolução na capacidade de raciocínio lógico dos alunos
desde a primeira atividade até a terceira.
As necessidades da utilização do sensor de luz para identi�car a intensidade da cor
e do comando de repetição para que o robô andasse inde�nidamente foram facilmente
detectadas, uma vez que já haviam se deparado com situações similares anteriormente.
Também chamou a atenção o fato dos alunos notarem a necessidade de um comando
que �zesse o robô parar ao detectar a cor preta, e andar apenas o su�ciente para veri�car
a cor predominante após a borda preta, pois o robô correria o risco de sair da área
delimitada.
Outro fato curioso foi a aplicação de um número aleatório como valor de entrada para
de�nir o grau de rotação que o robô faria. Este comando foi desenvolvido para que o robô
se virasse de modo aleatório, e não �zesse a busca em uma direção especí�ca.
Os alunos perceberam que, depois de encontrado o alvo e emitido o som, o programa
precisaria de um comando que �zesse o programa parar, e não apenas parar a instrução
corrente, pois como estava no loop, se não houvesse este comando de �nalização o robô
reiniciaria a busca pelo alvo.
Com a realização desta atividade �caram notórias as habilidades adquiridas pelos
alunos desde a primeira atividade até então. A capacidade de analisar o problema e en-
tender qual instrução aplicar em cada etapa para resolvê-lo aumentou consideravelmente.
O emprego da instrução random mostra a preocupação dos alunos em desenvolver
um programa que atendesse às necessidades propostas de modo mais e�ciente. Esta
58
característica leva a crer que os alunos melhoraram a capacidade de utilizar o software e
ainda que o objetivo de estimular a criatividade ao propor a atividade foi alcançado.
4.3 Resultados obtidos com as atividades
O objetivo de se apresentar as duas primeiras atividades nesta ordem era estimular, a
partir de um programa mais simples, o raciocínio lógico dos alunos e a busca por soluções
conhecidas para se resolver problemas mais complexos. E este objetivo foi alcançado.
Os alunos entenderam a resolução de problemas mais complexos à partir de exemplos
mais simples, aproveitando o código já utilizado e os conhecimentos já obtidos.
Com a terceira atividade o ganho foi mais além. Pretendia-se que, no �nal da atividade,
o aluno encontra-se a melhor forma de resolver o problema em questão. Ficou evidente
que cada grupo se esforçou para criar uma solução diferente da apresentada por outro
grupo. Durante a apresentação da solução, os alunos questionavam a equipe para sanar
qualquer dúvida a respeito do enunciado do problema, discutiam qual o melhor formato
do robô (onde deveriam inserir os sensores, quais sensores deveriam utilizar) e por �m,
após vários re�namentos sucessivos e sem sucesso, os alunos perceberam que antes de
começar a implementar deveriam fazer um esboço do código, ou seja, descobriram que
fazer o algoritmo antes é fundamental para a produção de um bom código.
Todos os grupos conseguiram cumprir as atividades. Aqueles que obtiveram mais
sucesso na conclusão da atividade eram questionados pelos demais grupos para que
pudessem realizar melhoras em seus robôs.
Novas disputas foram feitas após as modi�cações. O robô modi�cado, com as infor-
mações passadas pelo grupo vencedor da primeira disputa, tinham rendimento melhor que
o vencedor anterior. O que é motivador, pois mostra para o aluno que pequenos ajustes
no projeto podem resultar em melhoras signi�cativas de desempenho.
Este conceito de melhoria de desempenho é fundamental em computação, e foi con-
seguido de forma divertida com adolescentes de idade inferior a 16 anos.
4.4 Re�exos do Projeto de Extensão: ganhos obtidos e
obstáculos encontrados
O objetivo geral do projeto de extensão Levando a Informática do Campus ao Campo
é levar aos alunos participantes do mesmo conhecimentos sobre informática e robótica
educacional e que estes disseminem estes conhecimentos em seu ambiente escolar e resi-
dencial.
Com o ensino da informática básica, objetiva-se que os alunos, além de aprenderem
59
as técnicas, consigam aplicá-las em seu cotidiano, facilitando a execução de tarefas por
meio do uso do computador.
A robótica educacional não trata apenas o ganho do conhecimento de montagem e pro-
gramação de robôs, mas também de desenvolvimento intelectual, habilidades de raciocínio
lógico, senso cítico, criatividade, capacidade de resolver problemas etc.
Sendo assim, o objetivo do projeto não é apenas levar conhecimentos técnicos sobre
estes assuntos aos alunos, mas também de bene�ciar intelectualmente os mesmos.
4.4.1 Benefícios Obtidos
Analisando-se o comportamento dos alunos desde o início do projeto (Julho de 2009)
até o momento, é possível notar as mudanças e os re�exos do projeto. Muitos foram os
benefícios obtidos. Dentre eles, aumento na capacidade de:
• Absorção dos conteúdos aplicados;
• Raciocínio lógico e sequencial;
• Associar conhecimentos de robótica com conhecimentos de outras áreas como matemática
e física, por exemplo;
• Desenvolver atividades em equipe;
Além de:
• Desenvolvimento da criatividade e senso crítico;
• Melhora no comportamento em sala de aula e na relação aluno/aluno e aluno/professor;
• Maior rapidez em executar as atividades solicitadas.
Os alunos se mostram dedicados às aulas e ao projeto, executando as tarefas solicitadas
e sugerindo novas atividades a serem desenvolvidas.
Este trabalho mostra que os objetivos deste projeto estão sendo alcançados, no mo-
mento em que se pode notar os ganhos obtidos pelos alunos.
4.4.2 Di�culdades
Um grande problema existente na inserção da informática na educação é a resistência
por parte dos professores. Muitas vezes eles não possuem conhecimento su�ciente na área
e/ou são �elmente adeptos às metodologias tradicionais de ensinar, e por isso são contra
a introdução das novas tecnologias nas escolas. Além do que, antes de ensinar, teriam
que aprender.
60
Uma di�culdade encontrada no desenvolvimento do projeto de extensão e na pesquisa
deste trabalho, foi justamente a falta de aceitação por parte dos professores das escolas
participantes do projeto.
61
Capítulo 5
Trabalhos Futuros
Como re�exos do Projeto de Extensão Levando a Informática do Campus ao Campo
até o presente momento, foram observados vários benefícios obtidos pelos alunos do pro-
jeto e algumas di�culdades no decorrer do mesmo.
Segundo o edital do projeto, este se direciona ao ensino da informática e robótica
educacional exclusivamente aos alunos do Ensino Fundamental da zona rural de Catalão
- GO e, portanto, não houve grande preocupação em trazer os professores dos alunos
até o ambiente acadêmico de aplicação do projeto. Como consequência, pode não ter
�cado claro aos professores os objetivos do projeto e os benefícios que teriam os alunos
ao participar do mesmo.
Um desa�o a ser vencido, e que �ca como sugestão para ainda maior êxito do projeto,
será o de trazer os professores dos alunos ao Campus e mostrar as reais metas do ensino
da informática e robótica educacional bem como os ganhos já obtidos pelos alunos até o
presente momento.
Em relação à futuros trabalhos acadêmicos na área, um possível tema a ser desen-
volvido é a utilização da linguagem Java na programação dos robôs utilizando o kit Lego R©
Mindstorms R© NXT Base Set 9797.
Com o material adquirido pelo projeto, seria interessante que o departamento de
computação do campus Catalão da UFG ministrasse o�cinas periódicas para alunos da
zona urbana da cidade. O modelo de se trabalhar durante as férias se mostrou muito
importante para o deslocamento dos alunos da zona rural, no entanto para os alunos da
zona urbana tais o�cinas poderiam ser realizadas durante o período letivo, nos �nais de
semana ou em turno diferente daquele em que o aluno tem suas aulas regulares.
62
Capítulo 6
Conclusão
Com base nos estudos desenvolvidos para a realização deste trabalho, é possível veri-
�car os benefícios obtidos pelos alunos participantes do Projeto de Extensão Levando a
Informática do Campus ao Campo, sejam conhecimentos técnicos sobre os temas apresen-
tados, sejam benefícios intelectuais.
Objetivos de desenvolver nos alunos habilidades como: noções básicas do uso do com-
putador, de programação e da Robótica Educacional, desenvolvimento do raciocínio lógico
e do senso crítico, capacidade de trabalhar em equipe e capacidade de aplicar conceitos
da robótica à outras disciplinas como matemática e física foram alcançados e é notório na
convivência com os alunos se analisado o comportamento dos mesmos desde o início do
projeto até a fase atual (Módulo 3).
É prematuro a�rmar que o benefício maior, de atrair o jovem para cursos de Com-
putação, foi alcançado. Mas, após este intercâmbio com alunos da zona rural atendidos
pelo projeto Levando a Informática do Campus ao Campo, as expectativas são as melhores
possíveis quanto ao êxito deste processo.
Evidente que alguns obstáculos no desenvolvimento do trabalho foram encontrados,
mas as soluções são fáceis de se implementar. O principal desa�o envolve a inclusão dos
professores na formação, paralela ou anteriormente a formação do jovem. Ou seja, a
experiência obtida facilitará a execução de projetos futuros da mesma natureza.
Foi observado que o uso do software Lego R© Mindstorms R© NXT de fato auxilia e fa-
cilita o aprendizado de programação. No entanto, por proporcionar diversas facilidades ao
desenvolvedor, a utilização deste programa acaba por acomodá-lo em relação ao método
de programação (em linguagem grá�ca). Outro aspecto relevante que foi observado é que
a utilização deste software é útil apenas nas fases iniciais do aprendizado de programação
e no desenvolvimento de programas menos complexos, ou seja, não é viável à progra-
madores mais experientes, e portanto tem maior utilidade à desenvolvedores iniciantes
e com pouco ou nenhum conhecimento em programação, como é o caso dos alunos do
projeto de extensão supracitado.
63
Este trabalho se mostra relevante, uma vez que apresenta os benefícios obtidos pelos
alunos, analisando se os objetivos do projeto estão sendo alcançados, e também ao apre-
sentar o obstáculo supracitado e até então não identi�cado, colaborando para o melhor
desempenho de outros projetos.
O Projeto de Extensão se encontra em andamento, e será concluído em Janeiro de
2011. Sendo assim, os estudos deste trabalho foram parciais e não conclusivos em relação
aos reais re�exos do projeto.
64
Referências
Astolfo, D., Ferrari, M., e Ferrari, G. (2007). Building Robots with Lego R© Mindstorms
NXT R©. Syngress.
Barros, A., Wainer, J., Claudio, K., Ribeiro Ferreira, L., e Dwyer, T. (2009). Uso de
computadores no ensino fundamental e médio e seus resultados empíricos: Uma re-
visão sistemática da literatura. Revista Brasileira de Informática na Educação, 16(1).
Disponível em http://bibliotecadigital.sbc.org.br/?module=Public&action=
PublicationObject&subject=292&publicationobjectid=103, Acessado em Setem-
bro de 2010.
Castilho, M. (2002). Robótica na educação: Com que objetivos? Monogra�a de Especiali-
zação em Informática na Educação, Universidade Federal do Rio Grande do Sul -Porto
Alegre. Disponível em: http://www.pgie.ufrgs.br/alunos_espie/espie/mariac/
public_html/robot_edu.html, Acessado em Julho de 2010.
Educacional, E. I. (2010). Informática educacional. Disponível em: http://www.
informaticaeducacional.com/home/index.php, Acessado em Outubro de 2010.
GeoGebra (2010). Geogebra. http://www.geogebra.org/cms/. Acessado em Novembro
de 2010.
Hansen, J. C. (2009). Lego R© Mindstorms NXT R© - Power Programming. Variant Press.
Lego (2010). Lego mindstorms. http://mindstorms.lego.com/en-us/whatisnxt/
default.aspx. Acessado em outubro/2010.
Salazar, S. R. G. (2008). Ambiente de programação de robôs móveis. Dissertação de
Mestrado de Ciência da Computação e Matemática Computacional, Instituto de Ciên-
cias Matemáticas e de Computação - ICMC - USP. Disponível em: www.teses.usp.
br/teses/disponiveis/55/55134/tde...165003/.../dissergio.pdf, Acessado em
Julho de 2010.
SBC (2010). Sociedade brasileira de computação. http://www.sbc.org.br/. Acessado
em Agosto de 2010.
Suzuki, A. P., de Geus, A. R., Pereira, G. Q., de Melo Pires, R., e Gomes, S. L. F. (2010).
Introdução à programação com robôs lego. Universidade Federal de Goiás, Campus
Catalão.
University, C. M. (2010a). Alice. http://www.alice.org/. Acessado em Novembro de
2010.
65
University, C. M. (2010b). Carnegie mellon university. Disponível em: http://www.cmu.
edu/index.shtml, Acessado em Novembro de 2010.
Zanelatto, M. S. (2004). Robótica educacional nos cursos de ciência da computação.
Monogra�a de Conclusão de Curso de Ciência da Computação, Universidade Estadual
de Londrina. Disponível em: www2.dc.uel.br/nourau/document/?view=81, Acessado
em Novembro de 2010.
66