o uso da robótica educacional no ensino … · gabriela quirino pereira o uso da robótica...

79

Upload: buinga

Post on 29-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

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

À mim mesma...

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