Você está na página 1de 52

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS

CENTRO DE ENGENHARIA E COMPUTAÇÃO


CURSO DE ENGENHARIA DE COMPUTAÇÃO

MECANISMO LÚDICO DE INTRODUÇÃO AO ENSINO DE PROGRAMAÇÃO

Caroline Maul de Araujo Lima

Petrópolis

2015
UNIVERSIDADE CATÓLICA DE PETRÓPOLIS
CENTRO DE ENGENHARIA E COMPUTAÇÃO
CURSO DE ENGENHARIA DE COMPUTAÇÃO

MECANISMO LÚDICO DE INTRODUÇÃO AO ENSINO DE PROGRAMAÇÃO

Trabalho de Conclusão do Curso


apresentado ao Centro de Engenharia e
Computação da UCP como requisito
parcial para conclusão do Curso de
Engenharia de Computação como pré-
requisito para obtenção do título de
Bacharel em Engenharia de Computação.

____________________________________

Caroline Maul de Araujo Lima

___________________________________

Prof. Me. Mozar Baptista da Silva

Professor Orientador

Petrópolis

2015
Aluno: Caroline Maul de Araujo Lima Matrícula: 10100529

Título do trabalho: Mecanismo Lúdico de Introdução ao Ensino de Programação.

Trabalho de Conclusão do Curso apresentado ao Centro de Engenharia e


Computação da Universidade Católica de Petrópolis como requisito parcial para conclusão
do Curso de Engenharia da Computação.

AVALIAÇÃO

GRAU FINAL: ______

AVALIADO POR

Prof. Me. Mozar Baptista da Silva ________________________________

Prof. Dr. Fabio Lopes Licht ________________________________

Prof. Me. Paulo Cesar Lopes Leite ________________________________

Petrópolis, 17 de dezembro de 2015.

Prof. Dr. Fábio Lopes Licht


Coordenador
AGRADECIMENTOS

A Deus, autor e consumador da minha fé. A Ele seja dada toda honra, glória e louvor.

À minha mãe Solange e ao meu pai Carlos Alberto por todo apoio, respeito, amor e
força.

To my dear Randy Dillard, for helping me to see the future with new eyes.

Ao brilhante professor Mozar, que me direcionou na realização desse trabalho e me


ajudou a me encontrar profissionalmente na área de sistemas embarcados. E a todos os outros
professores que compartilharam seu conhecimento comigo e contribuíram na minha formação
pessoal e acadêmica.
RESUMO

Este trabalho apresenta o desenvolvimento de uma ferramenta lúdica para o ensino e


aprendizagem de programação. As tecnologias utilizadas para desenvolvimento deste projeto
podem ser divididas em duas partes: hardware (mecânica/eletrônica) e o software. Foram
utilizados um microcontrolador ATMEGA 368P e servos motores para automatizar um braço
mecânico. Concomitantemente, foi desenvolvido um interpretador para, com linguagem
própria, controlar este braço de maneira mais intuitiva e descomplicada, de forma que
educadores possam introduzir conceitos de programação como repetição e condicional de
maneira divertida e dinâmica, estimulando assim crianças, adolescentes, jovens e adultos a
aprenderem programação. Para este trabalho foram, ainda, executadas amostragens do
mecanismo e os resultados obtidos para cada um destes testes é descrita ao longo do seu
desenvolvimento.

Palavras-chave: ensino lúdico, programação, braço mecânico, ATMEGA 368P,


Servo motor, interpretador.
ABSTRACT

This work presents the development of a fun tool for teaching and learning
programming. The technologies used to develop this project can be divided in two main parts:
hardware (mechanic/electronic) and software. They were used a microcontroller ATMEGA
368P and servomotors for automating a mechanical arm. Concomitantly, it was developed an
interpreter to, with its own language, control the arm more intuitive and uncomplicated way,
so that teachers may introduce programming concepts such as repetition and conditional in a
fun and dynamic way, thus stimulating children, adolescents, young adults and adults to learn
programming. For this work were also performed mechanism samples and the results obtained
for each of these tests are described along its development.

Keywords: playful teaching, programming, mechanical arm, ATMEGA 368P,


servomotor, interpreter.
LISTA DE SIGLAS

EUA – Estados Unidos da América

FTDI – Future Technology Devices International

GND – Ground

IDE – Integrated Development Environment

I/O – In and out

LED – Light-emitting diode

MIT – Massachusetts Institute of Technology

OSH – Open-source hardware

PCB – Printed Circuit Board

PWM – Pulse Width Modulation

RC – Radio Control

RISC – Reduced Instruction Set Computing

SPI – Serial Peripheral Interface

STEM – Science, Technology, Engineering and Mathematics

USB – Universal Serial Bus


LISTA DE FIGURAS

Figura 1 – Características do Cérebro ao Assimilar Conhecimento. Fonte: Autora ................ 13


Figura 2 – Visão de grandes pensadores sobre o lúdico na educação e na sociedade .............. 15
Figura 3 – Projeção da Porcentagem de Crescimento de Empregos em STEM ...................... 19
Figura 4 – Programação com Anna e Elza. Um dos jogos para aprender programação disponível
no site Code.org ........................................................................................................................ 21
Figura 5 – Placa Arduino UNO ................................................................................................ 24
Figura 6 – Microcontrolador ATmega328P ............................................................................. 25
Figura 7 – MeArm v0.4 ............................................................................................................ 26
Figura 8 – Servo Motor SG90 .................................................................................................. 27
Figura 9 – Tela inicial IDE Arduino ......................................................................................... 28
Figura 10 – Tela inicial DEV-C++ ........................................................................................... 29
Figura 11 – Tela inicial Fritzing ............................................................................................... 30
Figura 12 – Módulo FTDI ........................................................................................................ 31
Figura 13 - MeArm: peças ........................................................................................................ 32
Figura 14 – Protótipo v.1. Fonte: Autora.................................................................................. 35
Figura 15 – Protótipo v.2. Fonte: Autora.................................................................................. 35
Figura 16 – Esquema do circuito do projeto. Fonte: Autora .................................................... 37
Figura 17 – Montagem circuito final. Fonte: Autora................................................................ 37
Figura 18 - Exemplo de PWM e posição do motor correspondente ......................................... 39
Figura 19 – Exemplo de código que o programa é capaz de interpretar. Fonte: Autora. ......... 42
Figura 20 – Diagrama interpretador-braço. Fonte: Autora. ...................................................... 43
Figura 21 – Circuito conectado ao braço. Fonte: Autora. ........................................................ 44
Figura 22 – Design PCB para microcontrolador ATmega 328P. Fonte: Autora. ..................... 46
SUMÁRIO

1. INTRODUÇÃO..................................................................................................................... 9
1.1. ORGANIZAÇÃO DO TRABALHO ..................................................................... 10
2. O ENSINO LÚDICO E O ENSINO DE PROGRAMAÇÃO ......................................... 11
2.1. COMO O CÉREBRO APRENDE ......................................................................... 12
2.2. O LÚDICO............................................................................................................. 14
2.2.1. O lúdico como ferramenta no processo de ensino .................................. 15
2.3. ENSINO DE PROGRAMAÇÃO: DE TENDÊNCIA À NECESSIDADE ........... 17
2.4. QUAL A MELHOR FORMA DE ENSINAR PROGRAMAÇÃO ....................... 20
2.4.1. Casos de Sucesso: Ludicidade na Programação ..................................... 20
3. O PROBLEMA E AS TECNOLOGIAS USADAS NA SOLUÇÃO .............................. 23
3.1. ARDUINO ............................................................................................................. 23
3.1.1. Arduino UNO .......................................................................................... 24
3.2. MICROCONTROLADOR ATMEGA328P .......................................................... 24
3.3. MEARM ................................................................................................................ 25
3.4. SERVO MOTORES .............................................................................................. 26
3.5. LINGUAGEM C .................................................................................................... 27
3.6. IDE ARDUINO ..................................................................................................... 28
3.7. DEV-C++ ............................................................................................................... 29
3.8. FRITZING ............................................................................................................. 29
3.9. MÓDULO FTDI .................................................................................................... 31
4. DESENVOLVIMENTO ..................................................................................................... 32
4.1. HARDWARE ........................................................................................................ 32
4.1.1. MeArm e Servo Motores......................................................................... 32
4.1.2. Teste iniciais: Arduino ............................................................................ 33
4.1.3. Protótipo v.1............................................................................................ 34
4.1.4. Protótipo v.2............................................................................................ 35
4.1.5. Protótipo final ......................................................................................... 36
4.2. SOFTWARE .......................................................................................................... 38
4.2.1. Compilador versus Interpretador ............................................................ 38
4.2.2. Biblioteca Servo.h ................................................................................... 38
4.2.3. Funcionamento geral do interpretador .................................................... 40
4.3. BRAÇO E INTERPRETADOR ............................................................................ 42
5. CONCLUSÃO ..................................................................................................................... 45
5.1. TRABALHOS FUTUROS .................................................................................... 46
6. BIBLIOGRAFIA ................................................................................................................ 48
9

1. INTRODUÇÃO

É indiscutível que a informática faz parte do dia a dia do ser humano, seja em uma
ligação através de um smartphone, o uso de um caixa eletrônico em um banco, ou o checar de
um e-mail. Em algum momento durante seu dia, as pessoas interagirão com mecanismos que
de alguma forma estão relacionados com a informática, e por conseguinte programação. E a
tendência é que essa interação cresça ainda mais nos próximos anos, e com isso também cres-
cerá a procura por profissionais que saibam desenvolver ferramentas para esse mercado da in-
formática. (Governmet, 2015)

Para suprir o mercado com profissionais capacitados para desenvolver programas, go-
vernos de diversos países estão adotando em suas grades escolares de ensino fundamental e
médio o ensino de programação. Alemanha e Nova Zelândia, são exemplos de países que já
adotaram o ensino de programação ainda nas escolas. Estados Unidos, Dinamarca e Austrália
caminham para a mesma resolução. (Release, A is for algorithm, 2014) No Brasil, apesar de
não haver uma decisão direta sobre o tema por parte do governo, escolas nas capitais tem ade-
rido ao ensino de programação como atividade extracurricular. (Alvarez, 2014)

Um fator limitante ainda no que diz respeito a procura por aulas de programação e a
adoção por parte dos colégios ao ensino de programação é a dificuldade que muitas vezes os
alunos encontram para entender a lógica envolvida na escrita de um código. E de maneira geral,
a forma de ensino das escolas tem sido revista. (Branco, 2015) Os métodos de ensino tradicio-
nalistas, predominantes no Brasil e ainda no mundo, limitam a interação aluno – assunto estu-
dado, o que em matérias que requerem um nível maior de prática para se “absorver” o conhe-
cimento tornam o ensino complicado o que desestimula o aluno a estudar e atrapalham a com-
preensão da matéria. (Sá, 2014)

Essa revisão dos métodos de ensino não é recente e a corrente de estudiosos que acredi-
tam em uma maior interação do aluno em sala de aula e inclusive da inserção do lúdico como
método de ensino é crescente. Eles acreditam que com maior interação e com a inclusão de
ferramentas que de alguma forma envolvam a diversão e a brincadeira, farão com que os alunos
fixem melhor os conceitos. (Branco, 2015)

Um dos motivos que levam esses estudiosos a acreditarem que essa é a melhor maneira
de se aprender/ensinar se dá a partir da forma com que o cérebro aprende. Processo esse, que
10

envolve emoção, o estimulo através de novidades, e a repetição de padrões, ou seja, é um pro-


cesso que está intimamente ligado a vivência do ensino como ator, não como plateia. (Relvas,
2010)

Tendo essas informações como inspiração, esse projeto tem como objetivo a criação de
uma ferramenta lúdica para ser usada por educadores como método de apoio ao ensino de con-
ceitos básicos de programação. Nesse sentido será usado um braço robótico reforçando o con-
ceito de ludicidade, e um interpretador para que o aluno interaja com o braço de maneira des-
complicada, com funções simples em português. Em uma primeira visão o foco desse projeto
será o ensino de programação para jovens e adultos.

1.1. ORGANIZAÇÃO DO TRABALHO

Esse trabalho inicialmente abordará o porquê da escolha do método lúdico como melhor
método de ensino. E, também, apresentará breve panorama no crescimento da demanda de pro-
fissionais de desenvolvimento no mercado de trabalho, não só brasileiro, mas como uma ten-
dência mundial.

Em uma segunda parte, o trabalho abordará a construção da ferramenta e os materiais


utilizados para a mesma. Essa construção se dará em duas partes: hardware e software. Ao final
deste projeto, será descrita breve conclusão dos resultados obtidos e será apresentada uma seção
de “trabalhos futuros” de aprimoramento da ferramenta.
11

2. O ENSINO LÚDICO E O ENSINO DE PROGRAMAÇÃO

A educação tem passado por diversas mudanças e evoluções no Brasil e no mundo, essa
afirmação pode ser facilmente comprovada ao se olhar como se deu o ensino nas últimas déca-
das e sua comparação ao atual. Não só os avanços tecnológicos invadiram as salas de aulas,
mas também a inserção de diversas novas metodologias de ensino foram tomando espaço nas
escolas; estas visando a adequação do ensino da grade curricular ao perfil de cada aluno.
(Pessoa, 2012)

As metodologias de ensino podem ser divididas em duas grandes áreas: métodos tradi-
cionais e métodos modernos. (Capingala, 2015) Na abordagem pedagógica tradicional o foco
principal é na resolução de exercícios e na memorização de conceitos, fórmulas e informações
em geral; o papel do aluno é o de receber o conhecimento transmitido pelo professor, sem mai-
ores interações ao conteúdo ministrado. Em contrapartida, os métodos modernos levantam a
questão da necessidade do aprendizado ativo, participativo e de descobertas, levando em conta
ainda o desenvolvimento e ritmo de aprendizado natural de cada aluno. (Sá, 2014)

Estudiosos na área, como a educadora Maria Montessori (1870-1952), propuseram mé-


todos onde o conhecimento não era infligido ao aluno, mas sim construído por ele com apoio
de materiais que facilitassem esse processo, como objetos didáticos, livros, entre outras ferra-
mentas que agiriam de forma a incitar os aspectos sensórios, motores, racionais e intelectuais
do aluno. A função do professor, nesse método, é a de facilitador, onde ele mostraria as ferra-
mentas e como manipulá-las, bem como estimularia seu uso e o aluno “caminharia com suas
próprias pernas” em busca do conhecimento. (Branco, 2015)

No Brasil, ainda prevalece os métodos tradicionais, como principais métodos de ensino,


porém métodos de ensino modernos têm sido mesclados aos tradicionais cada vez mais nas
escolas à espelho de escolas estadunidenses e europeias. (Branco, 2015)

Apesar da aparência atraente dos métodos modernos, onde aluno não é mais espectador
de longos monólogos educacionais, mas sim participantes de atividades de ensino, ambos os
métodos têm defensores ferrenhos de sua eficácia e não há um consenso de qual é o melhor.
Alguns especialistas acreditam que cada criança aprende de uma maneira diferente, por conse-
guinte se adaptará a métodos diferentes de aprendizagem. Porém isso deixa aberta a questão de
por que elas aprendem diferentemente, e se realmente aprendem de maneira diferente; e, claro,
se as escolas brasileiras e mundiais que mesclam tipos de abordagem pedagógica diferentes
12

estão realmente seguindo o caminho certo, isso novamente nos remete a questão de qual é a
melhor abordagem pedagógica?

2.1. COMO O CÉREBRO APRENDE

A pergunta: qual melhor abordagem pedagógica, pode ser desmistificada em parte ao


entendermos como o cérebro assimila as informações e processa um novo conhecimento, ou
seja, aprende.

O processo de aprendizagem se dá atraves de uma mistura de mémória, atenção,


concentração, interesses, desejos, estímulos intrinsecos (nerotransmissores/hormônios) e
extrínsecos (informações externas do ambiente) que permeiam a mente e o cerebro humano.
(Relvas, 2010)

A caracteríctica do cérebro que o permite ser essa fascinante maquina com quase
imensurável capacidade é a sua plasticidade. Ela diz respeito a capacidade do sistema nervoso
alterar o funcionamento do sistema motor e perceptivo de acordo com as mudanças do
ambiente, através das organizaçoes das sinapses nervosas, ou seja, quanto mais se aprende mais
conexões neurais se formam, o cérebro se molda de acordo com a assimilação das informações.
(Relvas, 2010)

Uma vez que o cérebro assimila uma informação, ele a usa na assimilaçao de novas
informações, uma vez que o tempo todo ao iniciar o processo de um novo aprendizado ele
procura por padrões já conhecidos de maneira a facilitar o novo conhecimento. (Brasil, 2014)

Uma outra caracterítica do cerébro que marca o processo de assimilação do


conhecimento é a emoção. O cérebro sente as emoçoes, antes de raciocinar. Ele só realmente
“funciona” quando em conjunto com outros sistemas que se interconectam, recebem e
respondem aos estímulos para realizar um potencial de atividade elétricas e químicas, que são
os canais sensoriais (som, visão, tato, olfato, paladar). Após “sentir as emoções” (receber os
estimulos), ele vai reendereçar e enviar essas sensações para as outras áreas que o compoem de
forma que interpretá-las e/ou guardá-las, promovendo assim as lembranças e a aprendizagem
significativa. (Relvas, 2010)

Por buscar sempre por padrões, o cérebro tende a se concetrar melhor em infomações
novas do que em dados antigos ou já vistos, uma vez que ele não encontra correspondentes e
13

precisa construir novas sinapses. Dessa forma, quando o cérebro não encontra o “caminho mais
fácil”, ele emprega todas suas forças (concentração) para assimilar a nova informação. (Brasil,
2014)

Emoções

Plasticidade

Novidades Padrões

Figura 1 – Características do Cérebro ao Assimilar Conhecimento. Fonte: Autora

Conclui-se dessas informações que a aula deve ser reflexiva e não reprodutiva, o cérebro
necessita de desafios coerentes (novidade), interação e participação (emoção) para aprender. E
por reconhecer padrões é imprescindível a mesclagem do já aprendido com o novo de forma a
facilitar e acelerar a compreensão, se aproveitando da elasticidade (plasticidade) do cérebro.
(Relvas, 2010)

Uma vez que se compreende como o cérebro aprende novas informações é possível
escolher qual tem grandes chances de ser a melhor estratégia de ensino. Uma vez que os méto-
dos tradicionais são importantes porque focam na formação de padrões através da memoriza-
ção, a adoção dos métodos modernos, onde o aluno poderá interagir e estimular a todo tempo
seu cérebro absorvendo realmente a informação, é indispensável. O desafio então constitui em
unir métodos e conteúdos coerentes, que ao mesmo tempo satisfaçam o desejo e despertem a
curiosidade dos alunos de forma a tirar o melhor proveito do tempo passado em sala de aula e
que os ajudem a interagir (sentir) e entender a situação-problema apresentada.
14

2.2. O LÚDICO

Entre os diversos métodos de ensino de enfoque dinamizador de aulas pode se destacar


o método lúdico, onde muito além da interação educando e conceito a ser aprendido, há um
ponto/estratégia chave: a brincadeira.

A palavra lúdico vem do latim ludus e significa brincar. Neste brincar estão incluídos
os jogos, brinquedos e divertimentos e é relativa também à conduta daquele que joga que brinca
e que se diverte. Por sua vez, a função educativa do jogo oportuniza a aprendizagem do indiví-
duo, seu saber, seu conhecimento e sua compreensão. (Teixeira, Rocha, & Silva, 2005)

Ao contrário do que parece o método lúdico conta com extrema organização e estudo
das ferramentas que deverão ser utilizadas no ensino. As atividades lúdicas se assentam em
bases pedagógicas, uma vez que envolvem critérios tais como a função de literalidade e não-
literalidade, a flexibilidade a partir de novas combinações de ideias e comportamentos, a au-
sências de pressão no ambiente (se opondo ao método tradicional), ajudando na aprendizagem
de noções e habilidades. (Santos, 2010)

Apesar de ludicidade (termo) ser recente, a prática já remete a época de pensadores


como Plantão (427-348) que utilizou atividades lúdicas no ensino da matemática, aplicando
atividades de cálculo ligadas a problemas concretos, extraídos da vida e dos negócios cotidia-
nos, a fim de que, para seus seguidores, esses problemas atingissem um nível superior de abs-
tração. Jesuítas, no século XVI, reavivaram essa ideia e retomaram essa prática, dando início a
uma, ainda que pequena, popularização da ideia de jogos serem usados para o ensino. (Pessoa,
2012)
15

• ocupação da criança com jogos educativos


Platão
• visão particular do mundo (principalmente o
Rousseau infatil)

• técnicas pedagógicas
Pestalozzi
•forma de aplicar a educação sensorial
Montessori
•meio de manifestação do desenvolvimento
Piaget intelectual

•alto valor formativo dos jogos


Comenius
Figura 2 – Visão de grandes pensadores sobre o lúdico na educação e na sociedade1

2.2.1. O lúdico como ferramenta no processo de ensino

O método lúdico, ou ainda, o lúdico como ferramenta de ensino pode ser separado por
duas etapas do processo de educação/aprendizagem de um indivíduo:

• No início da vida escolar até conclusão do ensino fundamental

O brincar faz parte da infância, e através deste possibilita um repertório de desenvolvi-


mentos, seja na esfera cognitiva, quanto na social, biológica, motora e afetiva. Além de encon-
trar prazer e satisfação, jogando a criança se socializa e aprende, além de poder reproduzir sua
realidade através da imaginação, expressando assim suas angústias, dificuldades, que por meio
das palavras seria difícil. (Santos, 2010)

Tendo como parâmetro essa característica própria da criança, se faz necessário que o
ensino e os professores sejam inovadores de forma a propiciar às crianças atividades significa-
tivas que facilitem a construção de novos conceitos e experiências ante ao novo mundo, o es-
colar, dando novo significado a ele e facilitando a aquisição de conhecimento. É nessa necessi-
dade que o lúdico se mostra muito eficaz e totalmente coerente. (Alves & Mota, 2011)

1
(Ornelas, 2008) – Reprodução: Autora
16

É ainda no ensino básico e fundamental que a criança é inserida em conceitos lógicos,


vistos no estudo da matemática e das ciências em geral. Nesse âmbito, de acordo com as dire-
trizes curriculares de ciências para o ensino fundamental, o trabalho com a perspectiva lúdica
de dinamização das aulas, precisa ser considerada nas estratégias de ensino independentemente
da série e da faixa etária do estudante, adequando encaminhamento, linguagem, e recursos uti-
lizados como apoio. O lúdico pode ser utilizado como promotor da aprendizagem nas práticas
escolares, possibilitando a aproximação dos alunos ao conhecimento científico. Neste sentido,
trabalhar com a ludicidade se constitui um importante recurso para o professor desenvolver a
habilidade de resolução de problemas, a favorecer a apropriação de conceitos e atender aos
anseios daqueles que ainda estão no processo de desenvolvimento. (Sousa, Silva, & Silva, 2012)

O lúdico na educação infantil (e fundamental) tem sido uma das estratégias mais bem-
sucedidas no que concerne à estimulação do desenvolvimento cognitivo e de aprendizagem de
uma criança. Essa atividade é significativa por que desenvolvem as capacidades de atenção,
memória, percepção, sensação e todo os aspectos básicos referentes à aprendizagem. (Dias,
2013)

• Na educação de jovens e adultos

Todo ser humano pode se beneficiar de atividades lúdicas tanto pelo aspecto de diversão
e interação ao objeto de estudo, quanto pelo aspecto da aprendizagem em si. A incorporação de
brincadeiras, de jogos, objetos e recreação na prática pedagógica desenvolve diferentes capaci-
dades que contribuem com a aprendizagem, ampliando a rede de significados necessários que
devem ser constituídos não só para crianças, mas também para jovens e adultos. Esclareça-se
que aula lúdica consiste em trazer para o ambiente escolar as técnicas de aprendizagem e aplica-
las na comunicação do conhecimento. (Sousa, Silva, & Silva, 2012)

As possibilidades do lúdico como um instrumento pedagógico são bem conhecidas.


Mesmo que o aluno não esteja diretamente envolvido na atividade, mas sim esteja na posição
de espectador, o lúdico é um poderoso meio para gravar na sua memória um determinado tema,
ou para leva-lo, através de um impacto emocional, a refletir sobre determinada questão moral;
ou, ainda, ao pensamento crítico e a análise lógica. Esta é, por conseguinte, uma das questões
essenciais do tema, as quais se podem observar os aspectos práticos de sua utilização pelo pro-
fessor, em outras palavras o lúdico da forma ao novo conhecimento, facilitando assim para
17

jovens e adultos compreenderem, principalmente, questões que envolvam lógica e raciocínio.


(Ornelas, 2008)

O lúdico constitui-se ainda uma possibilidade de um novo olhar para os jovens e adultos,
na retomada dos estudos que muitas vezes não tiveram acesso em tempo usual, ou ainda que
buscam aprender um novo conhecimento (uma outra língua, informática, entre outros), pois
dessa forma podem encontrar no ambiente de ensino um lugar prazeroso, descontraído e de
satisfação pessoal. Este método dinamizador (lúdico) muitas vezes é usado por educadores para
estimular a permanência do educando em sala de aula, uma vez que tais métodos permitem o
desenvolvimento em múltiplas dimensões e faz com que o aluno se prepare para novos desafios
que surgem ao se aprofundar em novos conteúdos e conceitos.

2.3. ENSINO DE PROGRAMAÇÃO: DE TENDÊNCIA À NECESSIDADE

A inclusão da disciplina ciência da computação nas grades curriculares tem se tornado


tendências nas escolas brasileiras, à modelo de países desenvolvidos. Identificou-se que essa
“nova linguagem” ajuda no raciocínio lógico e na criatividade, além de facilitar o aprendizado
de outras disciplinas como o português e a matemática.

Enquanto no Brasil, programação é apenas uma disciplina extracurricular nos colégios


que a adotaram, no Reino Unido se tornou uma disciplina obrigatória; Israel há uma década já
aderiu em sua grade de ensino médio a cadeira de programação; Nova Zelândia e Alemanha
recentemente aderiram ciência da computação aos seus currículos; e os Estados Unidos, Dina-
marca e Austrália caminham para a mesma resolução. (Release, A is for algorithm, 2014) Re-
centemente aprovada a STEM Education Act (HR 1020), garante a inserção de ciência da com-
putação ao grupo educacional de ciência, tecnologia, engenharia e matemática – termo dado
para a grade cientifica que deve/pode ser ministrada nas escolas americanas. (Release,
Bipartisan STEM Education Act Clears House and Senate, 2015)

Além desse importante ato que abre as portas para incentivos na área de ciência da com-
putação nos EUA. Grandes empresários da área como Bill Gates (Microsoft), Mack Zuckerberg
(Facebook), bem como executivos da Google incentivam e patrocinam projetos em prol da dis-
seminação do ensino de programação para crianças e jovens, e de forma geral a todos que se
interessarem pelo assunto.
18

Em discurso, dezembro de 2013 na semana do Ensino da Ciência da Programação, o


presidente norte-americano Barack Obama chamou a atenção para a importância do ensino da
programação de computadores. Ele pediu aos jovens que não se contentassem em apenas jogar
um novo videogame ou baixar um aplicativo mais recente, mas que aprendessem a criar seus
próprios jogos e aplicativos.

Mas por que esta agitação em torno do ensino de programação tem aumentado tanto nos
últimos tempos principalmente para crianças e jovens? Estudiosos nos Estados Unidos tem le-
vantado a bandeira de que proporcionalmente a facilidade que estudantes tem de absorver uma
ideia é sua baixa idade, ou seja, quanto mais jovem melhor. E uma vez que cada dia mais cri-
anças estão interagindo com o mundo em suas mãos através de seus smart devices, por que não
aprender também como funcionam ao invés de só os usar?! (Partovi, 2014) Educadores brasi-
leiros tem a mesma motivação, o desenvolvimento de habilidade que a programação exige dos
alunos, como raciocínio lógico, causa e consequência, raciocínio matemático e linguística, por
exemplo.

Apesar desses “nobres” objetivos serem de grande importância, o real motivo que tem
levado ao grande crescimento do interesse no ensino de programação para crianças e jovens é
o mercado do futuro, e o crescimento da necessidade de mão de obra na área. O governo ame-
ricano estima que até 2020, haverá um crescimento de 32% na oferta de empregos para desen-
volvedores e 22% para analistas de TI (tecnologia da informação). Daí a necessidade para se
treinar desde já os jovens para o futuro que “bate as portas”. Mais do que consumidores o foco
mundial, principalmente de grandes potencias agora é gerar criadores. (Governmet, 2015)
19

Projeção da Porcentagem de Crescimento de


Empregos em STEM: 2010-2020
80
Projeção da porcentagem de crescimento de

60
62%
empregos (2010-2020)

40

36%
32%
20
22%
14% 16%
0
Todas as áreas Matemáticos Analistas de Desenvolvedores Cientistas Engenheiros
Sistemas de Softwares Médicos Biomédicos

Figura 3 – Projeção da Porcentagem de Crescimento de Empregos em STEM2

Acredita-se que estudantes que com capacidade criativa e conhecimento técnico de pro-
gramação irão deter o poder no futuro, este futuro que tende a tornar as pessoas ainda mais
dependentes da tecnologia (principalmente as ligadas a informação) e suas facilidades.

Seja por motivos apenas educacionais, com o enfoque do melhor desenvolvimento ló-
gico dos alunos proporcionando uma melhor compreensão das disciplinas regulares do ensino
básico, ou ainda como enfoque maior e futurista, considerando um mundo cada vez mais tec-
nológico; algo que é inegável é a necessidade do ensino de programação a jovens, ou ainda a
introdução do mesmo a crianças.

Apesar desses diversos incentivos e dessa clara necessidade de mais desenvolvedores


na área de programação; o estudo de ciência da computação não é tão bem visto por parte dos
alunos. Uma das dificuldades encontradas por parte dos alunos é a interpretação e resolução de
problemas. Um outro ponto é a metodologia de ensino geralmente utilizada em escolas; por ser
pouco atrativa, os educandos não dedicam a devida atenção a aula e consequentemente tem
problemas na compreensão e resolução das atividades propostas. (Júnior, Belizario, & Oliveira,
2014)

2
Adaptado de http://www.ed.gov/stem (tradução livre)
20

2.4. QUAL A MELHOR FORMA DE ENSINAR PROGRAMAÇÃO

Foi visto ao longo desse capitulo como o método de ensino lúdico tem se expandido,
por seu caráter enriquecedor e a facilidade com que os alunos têm absorvido novos conheci-
mentos quando tal método é usado. No que tange ao ensino de programação, a crianças e jovens,
esse tem sido visto como o melhor método por diversas empresas e entusiastas interessados na
disseminação da ciência da computação em salas de aulas.
A escolha do lúdico como uma das melhores formas de ensino torna-se ainda mais clara
ao se analisar o caráter da aprendizagem da ciência de computação, composto, na maioria dos
casos, por superior parte pratica do que teórica, uma vez que é requerido do aluno a aplicação
das técnicas aprendidas na resolução de problemas a todo o tempo. (Quadros, Ogasawara,
Amorim, & Ribeiro, 2012)

2.4.1. Casos de Sucesso: Ludicidade na Programação

Dois projetos que vem chamando a atenção, mesclando o lúdico com a programação,
são a inciativa Code.org e a ferramenta SCRATCH.

• Code.org

É uma organização sem fins lucrativos que se dedica a expandir o acesso a todos de
ciência da computação, com enfoque em mulheres, minorias, e pessoas em geral onde o acesso
a tal conhecimento seria pouco provável, quiçá impossível, devido a posição que se encontram
no âmbito social. A visão do projeto é que todos os estudantes deveriam ter a oportunidade de
aprender ciência da computação. (Code.org, 2015)

Em seu site usa, principalmente, jogos como ferramenta de ensino; basicamente progra-
mas que ajudam a programar. A todo o tempo usam o lúdico: com personagens famosos de
desenhos eles envolvem crianças em histórias que ensinam conceitos básicos de programação,
como é o caso do curso que usa os personagens Anna e Elza do filme Frozen; a criança (jovem
21

ou adulto) interagem com esses personagens sempre baseado nos conceitos de programação.
Até completarem as tarefas e alçarem o objetivo do mesmo.

Figura 4 – Programação com Anna e Elza. Um dos jogos para aprender programação disponível no site

Code.org3

O projeto Code.org, também, treinam professores a usarem tais ferramentas de interação


aluno-conteúdo no auxílio do ensino de programação; e não só atua online, mas também estão
engajados em projetos envolvendo escolas nos Estados Unidos.

Os números de seu sucesso são expressivos com mais de 5 milhões de alunos cadastra-
dos em seu site. Com alcance global, através de cursos disponíveis em mais de 40 idiomas,
usados em mais de 180 países. Recebendo apoio do presidente dos Estados Unidos, Barak
Obama, e ainda das maiores empresas no ramo de tecnologia atualmente, como: Google, Mi-
crosoft, Apple, Salesforce, Electronic Arts, entre diversas outras e a lista continua a aumentar.
(Code.org, 2015)

• SCRATCH

É uma aplicação criada pelo MIT em 2007, que se baseia em linguagens de programa-
ção, como o Logo e o Squeak, e que permite, especialmente às crianças e adolescentes, criar e

3
https://studio.code.org/s/frozen/stage/1/puzzle/1
22

compartilhar histórias interativas, brincadeiras, jogos, música e animações online. (Alencar,


Freitas, Pessoa, & Martins, 2014)

O SCRATCH utiliza programação baseada em montagem de blocos, como um quebra-


cabeça que desenvolve tanto a parte criativa quanto a parte lógica do aluno. Se mostra eficaz
para o ensino/aprendizagem de conceitos básicos de programação pois consegue mostrar na
prática as diferenças entre cada estrutura de condição e repetição que controla fixando o conte-
údo de forma mais dinâmica e em um nível de compreensão lúdico. (Oliveira & Lopes, 2010)

Com funcionamento muito similar ao Code.org, tem, também, com número considerá-
vel de aluno inscritos, e cerca de 11 milhões de projetos criados e compartilhados em sua rede.
(MIT, 2015) Desde de sua criação o SCRATCH vem sendo usado em projetos acadêmicos de
análise de métodos de ensino na área de ciência da computação, obtendo em grande maioria
dos casos ótimos resultados. (Alencar, Freitas, Pessoa, & Martins, 2014)
23

3. O PROBLEMA E AS TECNOLOGIAS USADAS NA SOLUÇÃO

À exemplo de ferramentas de sucesso, como as já citadas, esse projeto tem como pro-
posta a criação de uma ferramenta lúdica para ensino de conceitos básicos de programação,
com um primeiro enfoque ao ensino a jovens e adultos.

Em carácter multidisciplinar, houve o interesse que essa ferramenta envolvesse, tam-


bém, robótica, enfatizando seu aspecto lúdico, e agindo de forma a atrair seu público alvo (alu-
nos) já em um primeiro contato.

Um dos diferenciais entre esse mecanismo de ensino e a aplicação proposta pelo site
Code.org, por exemplo, é sua total independência de conexão com a internet, possibilitando
assim seu uso em locais com acesso limitado a web ou, ainda, nenhum acesso. De maneira
geral, esse trabalho propõem o uso apenas de um computador e o mecanismo desenvolvido nele
para seu completo funcionamento.

As tecnologias/ferramentas e materiais que foram usadas no desenvolvimento do projeto


são as descritas abaixo.

3.1. ARDUINO

Arduino é um projeto de hardware de fonte aberta (OSH) que foi introduzido no mer-
cado em 2005, com o objetivo de fornecer uma maneira barata e fácil para entusiastas e profis-
sionais da eletrônica/robótica criarem dispositivos que interagem com o ambiente usando sen-
sores e atuadores. (Arduino, Home, 2015)

O projeto é baseado em desenhos de placas de microcontroladores, fabricado por vários


fornecedores, utilizando vários microcontroladores. Esses sistemas fornecem conjuntos de pi-
nos de entradas e saídas (I/Os) digitais e analógicas que podem ser interligados para várias
placas de expansão (shields) e outros circuitos. As placas idealizadas nesse projeto possuem,
ainda, comunicação serial ou USB para carregamento de programas de computadores no mi-
crocontrolador que está conectado a placa. (Kushner, 2011)

Por ser open-source (OSH) tem diversas versões oficiais, entre várias outras adapta-
ções/variações criadas por usuários para fins específicos.
24

3.1.1. Arduino UNO

O Arduino UNO é uma das versões do projeto Arduino. Essa, também, foi a primeira
placa a ser desenvolvida da família Arduino. É considerada, pelos próprios criadores, a melhor
placa para iniciantes aprenderem eletrônica e programação; A UNO é ainda a mais usada e a
que possui maior número de documentos produzidos de todas as versões existentes do Arduino.
(Arduino, Home, 2015). A placa UNO foi escolhida devido ao seu custo-benefício e também
por suas características suprirem as necessidades gerais do projeto.

Figura 5 – Placa Arduino UNO4

Baseada no microcontrolador ATmega328P, dispõe de 14 pinos digitais de I/O, dos


quais 6 podem ser usados como saídas PWM – modulação por largura de pulso), 6 entradas
analógicas, um cristal de quartzo 16 MHz (velocidade do clock), conexão USB, entrada para
fonte de tensão e botão reset. Opera com 5V, tem uma entrada recomendada de fonte de 7-12V,
porém admite valores entre 6-20V. E suas dimensões são: 68.6mm x 53.4mm, com peso de 25g.
(Arduino, Home, 2015)

3.2. MICROCONTROLADOR ATMEGA328P

O ATmega328P é um microcontrolador de 8 bits, produzido pela Atmel, baseado na


arquitetura RISC e acompanha a placa Arduino UNO. Entre suas características pode se desta-
car memória flash de 32KB (garantindo a capacidade de leitura enquanto grava), 23 linhas de

4
https://www.arduino.cc/en/Guide/Windows
25

I/O de uso geral, e 32 registradores. Além de possuir: oscilador interno, trabalho com interrup-
ções internas e externas e 5 modos de economia de energia. Opera com tensão 1.8-5.5V. (Atmel,
2015)

Figura 6 – Microcontrolador ATmega328P5

Microcontrolador é um sistema computacional completo inserido em um único circuito


integrado. Possui CPU, memória de dados (RAM) e de programa para manipulação de dados e
armazenamento de instruções, sistema de clock, portas I/O. Alguns microcontroladores ainda
possuem periféricos, como módulos de temporização, conversores analógico-digital, entre ou-
tros. (Melo & Leandro, 2011)

3.3. MEARM

Desenvolvido por Benjamin Gray na Universidade de Loughtborough - Reino Unido,


MeArm é um open-source braço robótico de baixo custo, geralmente fabricado em acrílico; é
uma verão em miniatura de um braço robótico industrial comumente usado. Possui 4 pontos de
articulação para adaptação de servo motores, sendo 3 para movimentos de mudança de posição
e uma garra.

Voltado para os já familiarizados com Arduino, Raspberry Pi ou outras placas de con-


trole, o MeArm vem sendo usado para os mais diversos projetos, principalmente por entusiastas
da robótica devido ao seu baixo custo e simplicidade. Seu projeto está disponível em diversos
sites e também para compra já cortado; ele se encontra atualmente na versão 1.0 (a usada neste
projeto foi a versão 0.4). (MeArm, 2015)

5
http://largewire.com/product/atmega328p-pu-w-arduino-bootloader/
26

Figura 7 – MeArm v0.46

A escolha desse braço se deu devido ao seu baixo custo, simplicidade de montagem,
portabilidade e a atratividade do seu design, uma vez que o enfoque do projeto foi estimular
jovens e adultos a aprenderem computação.

3.4. SERVO MOTORES

O braço robótico para seu funcionamento necessita de 4 servo motores, uma para cada
uma de suas articulações. O recomendado pelo desenvolvedor do MeArm, e o que foi usado
nesse projeto, é o micro servo motor 9g modelo SG90, fabricado pela TowerPro, devido suas
especificações técnicas.

Possui ângulo de rotação de 180 graus, opera com tensão de 4.8V (recomendado), tra-
balha com 3 pinos sendo um para controle e 2 de alimentação (positivo e neutro). (TowerPro,
2015)

6
http://www.instructables.com/id/MeArm-Build-a-Small-Hackable-Robot-Arm/
27

Figura 8 – Servo Motor SG907

3.5. LINGUAGEM C

A linguagem de programação C foi a escolhida para desenvolver esse projeto devido a


sua eficiência e compreensibilidade na programação para microcontroladores. Outro fator que
que marcou a escolha foi o fato da linguagem Arduino ser baseada em C, aceitando assim todas
as funções dessa linguagem. (Arduino, Introduction - Guide, 2015)

Entres as vantagens da linguagem C se destacam: ela possui tanto características de lin-


guagens de alto nível quanto de baixo nível, trabalhando em nível próximo ao da máquina; gera
códigos executáveis compactos e rápidos (ótimos para microcontroladores usualmente limita-
dos em espaço de armazenamento); interação com sistema operacional; é uma linguagem con-
fiável e simples. Indica-se seu uso principalmente no desenvolvimento de programas, como:
compiladores (tal qual nesse projeto), interpretadores, editores de texto; banco de dados; e al-
gumas vertentes da computação gráfica. (Linhares, 2004)

7
http://www.towerpro.com.tw/product/sg90-analog/
28

3.6. IDE ARDUINO

O Arduino Software (IDE), desenvolvido pela própria empresa, é um simples; e claro


ambiente de desenvolvimento multiplataforma. Desenvolvido em Java é derivado dos projetos
Processing e Wiring, e foi esquematizado para introduzir a programação a pessoas não famili-
arizadas com o desenvolvimento de software. Inclui um editor de código com recursos de realce
de sintaxe, parênteses correspondentes e identação automática. (Arduino, Introduction - Guide,
2015)

Figura 9 – Tela inicial IDE Arduino8

Por ter sido desenvolvido para as placas Arduino, ele simplifica a comunicação entre
computador e a placa, sintetizando a tarefa de compilar e carregar programas a um clique, sem
nenhuma necessidade de gerar códigos extras para indicar porta, ou estabelecer conexão para
se comunicar. Outro recurso que o tornou a melhor opção para esse projeto, foi a lista de bibli-
otecas que o acompanha, como a biblioteca “servo”, por exemplo, – que disponibiliza diversas
funções para controle de servo motores.

8
http://news.softpedia.com/news/ubuntu-make-0-9-brings-initial-support-for-the-arduino-ide-visual-stu-
dio-code-fixes-487467.shtml
29

Possui linguagem própria baseada em C/C++ o que permite o uso de qualquer uma das
funções e bibliotecas dessas linguagens. A versão utilizada no projeto foi a 1.6.5.

3.7. DEV-C++

Figura 10 – Tela inicial DEV-C++9

DEV-C++ é um ambiente de desenvolvimento integrado (IDE) para programação na


linguagem C/C++. Escrito em Delphi, é gratuito e de código aberto. (Orwell, 2015) Entre os
motivos que o levaram a ser escolhido como IDE para desenvolvimento do interpretador desse
projeto, destacam-se as funcionalidades que possui, como recurso de completar código, editor
com destaque de sintaxe personalizável, entre outros, e também sua portabilidade, velocidade
e simplicidade (interface amigável e intuitiva).

3.8. FRITZING

Fritzing é um software de código aberto que permite o design de placas de circuito im-
presso. Além de permitir o design de circuitos impressos, ele possui dois outros modos de ope-
ração: montagem em breadboard, e esquema do circuito. Uma vantagem é que os três modos
trabalham em conjunto, qualquer componente adicionado em um dos modos será automatica-
mente inserido nos outros com as mesmas ligações. Ele fornece, ainda, uma aba para testes,

9
http://www.cefns.nau.edu/~edo/Classes/CS122_WWW/Docs/DevC++guide.html
30

onde o usuário pode digitar seu código e verificar se o mesmo realiza as tarefas como esperado
no circuito projetado.

Segundo seus próprios desenvolvedores, o Fritzing é inspirado em projetos como o Ar-


duino e Processing, onde visa fazer com que projetos eletrônicos e robóticos se tornem acessí-
veis a todos. O projeto Fritzing possui ainda um website para troca de ideias, e discussões sobre
a ferramenta, ainda possui um serviço de produção de PCB caso os usuários desejem tornar seu
projeto realidade (serviço pago). (Fritzing, 2015)

Figura 11 – Tela inicial Fritzing10

10
http://fritzing.org/learning/get-started/
31

3.9. MÓDULO FTDI

Figura 12 – Módulo FTDI11

O módulo de conversão que usa o chip fabricado pela empresa Future Technology De-
vices International, mais conhecido como módulo FTDI, é um módulo de conversão USB para
Serial. O modelo usado nesse projeto, FT232RL, produzido pela Sparkfun, foi projetado para
trabalhar com a placa Arduino e com o microcontrolador que a acompanha. Ele permite a trans-
missão e recepção de dados Arduino-computador.

Um recurso vantajoso desse módulo, é o de fornecer energia ã placa pela própria cone-
xão USB com o computador. Dessa forma, viabiliza mais uma fonte de energia ao circuito, caso
opte-se por não usar a fonte do mesmo, por exemplo.

11
https://www.sparkfun.com/products/9716
32

4. DESENVOLVIMENTO

O projeto proposto neste trabalho constitui-se de duas partes: hardware e software, e


apesar de estarem intrinsicamente ligadas, para melhor entendimento e em uma primeira visão
do projeto, optou-se pela separação da explicação de cada uma dessas partes e sua posterior
agregação no final desse capítulo.

4.1. HARDWARE

O desenvolvimento da parte mecânica e eletrônica desse projeto passou por diversas


montagens e prototipagens até se alcançar o resultado esperado. A descrição de cada uma dessas
etapas se dará a seguir.

4.1.1. MeArm e Servo Motores

Figura 13 - MeArm: peças12

12
http://www.mathias-wilhelm.de/arduino/projects/phenoptix-mearm/
33

O braço robótico é composto de 33 peças, como mostrado na Figura 13, e em geral,


quando adquirido ele se encontra desmontado – situação desse projeto.

Apesar de sua montagem não ser complexa, ela requer certos cuidados, principalmente
nas articulações, onde, caso haja muito atrito entre as hastes (13, 14, 15, 16) por exemplo, im-
possibilitará o movimento do braço. Uma vez montando, os servo motores são posicionados
nas principais articulações do braço, possibilitando assim seu movimento.

Por estar ainda em fase de aprimoramento o MeArm necessita de correções, ainda mais
em suas dimensões. Um dos problemas encontrados, e o que elevou a dificuldade na montagem
é o peso dos servo motores. O motor que é posicionado para abertura e fechamento da garra,
por exemplo, adiciona peso extra ao braço, o que faz com que o braço abaixe rapidamente e o
e não consiga retornar ao estado anterior (levantar).

Uma possível solução seria o redimensionamento das hastes para que houvesse uma
melhor distribuição do peso dos servo motores, ou ainda, e essa foi a solução tomada, regular
o atrito entre as hastes (aumentando/diminuindo aperto dos parafusos que as conectam) e sem-
pre utilizar o braço com todos os motores ligados, de forma a usar os próprios servo motores
para impedir o movimento (“segurar”) das hastes.

O segundo problema encontrando foi a instabilidade do movimento da base. Ao acionar


seu movimento com o motor, havia muita trepidação, e por ela estar apenas encaixada ao motor,
se soltava facilmente da parte inferior do braço. A fim de diminuir essas falhas, colocou-se um
parafuso ligando a base ao servo motor da base, de forma a fixa-la ao mesmo, isto diminui
consideravelmente a trepidação ao rotacionar e ainda acabou com o problema do desprendi-
mento base-motor.

4.1.2. Teste iniciais: Arduino

Os testes iniciais de funcionamento do braço, bem como, dos servo motores foram feitos
com o Arduino UNO e a IDE Arduino.

Esses testes consistiam em:

▪ Checar a velocidade de rotação dos servo motores: os servos possuem veloci-


dade de 0.12sec/60o, porém essa velocidade só é realmente aproveitada se a
taxa de transmissão de dados (ângulo de rotação desejado) para o motor tiver
34

velocidade correspondente. Para tal, constatou-se que o melhor baud rate13 é


de aproximadamente 57600, para se obter uma boa resposta do servo motor.

▪ Checar ângulos de rotação: os servo motores usados nesse projeto tem alcance
de 180o (variação de ângulo: 0o a 180o), porém o formato do braço infringe
limitações, ou pode exceder esses ângulos. De modo geral, verificou se que a
base poderia ultrapassar o valor de 180o, mas uma amplitude de ~140o, para
esse projeto foi o ideal. Já o motor lateral que define o movimento de
“sobe/desce” do braço o ideal é ~50o; para o servo que faz o movimento
“frente/trás” do braço o ideal é um ângulo de ~60o; finalmente para garra, de-
vido suas dimensões, seu ângulo pode variar em até 45o.

▪ Verificar melhor ligação (pinos) para controle do braço: como foi usada a bi-
blioteca Servo.h14, os pinos 9 e 10, não podem ser utilizados, pois causam in-
terferências (“saltos”) no servo motor ao girar, portanto foram escolhidas 4
saídas que não tivessem essa funcionalidade (7, 8, 13 e 12).

4.1.3. Protótipo v.1

Apesar da placa UNO suprir as necessidades do projeto em geral, a intenção do projeto


foi desde o início criar uma ferramenta única, com foco total no braço mecânico e no interpre-
tador (software) desenvolvido; para tanto, iniciou-se a criação de protótipos para o desenvolvi-
mento de uma placa com essa visão, usando o mesmo microcontrolador usado na placa Ar-
duino: o microcontrolador Atmega 328P.

O primeiro protótipo desenvolvido, Figura 14, apesar de funcional, tinha seu funciona-
mento limitado a uma entrada de 5V (tensão de trabalho do microcontrolador), e caso houvesse,
mesmo que pequenas variações dessa tensão o sistema oscilava, causando problemas na opera-
ção do braço. E, ainda, se a tensão fosse pouco maior poderia acarretar na queima do micro-
controlador. Outro problema, foi a ausência de uma opção de reinicio, caso houvesse travamen-
tos (botão reset).

13
Baud rate é o número de vezes que um sinal de um canal de comunicação muda seu estado, ou varia,
por segundo.
14
Mais sobre a biblioteca Servo.h será visto adiante nesse projeto.
35

Figura 14 – Protótipo v.1. Fonte: Autora

Devido a essas limitações esse protótipo passou por modificações gerando assim sua
segunda versão.

4.1.4. Protótipo v.2

Figura 15 – Protótipo v.2. Fonte: Autora


36

Na nova versão, protótipo v.2 (Figura 15), foi incluído um regulador de tensão que per-
mite a entrada de até 12 V, e ainda 2 capacitores para resolver problemas de oscilações de
tensão. Também, foi adicionado ao circuito o botão reset, facilitando a reinicialização do mi-
crocontrolador sem a necessidade de corte de energia, por exemplo. Inclui-se ainda led adicio-
nal indicando se circuito está ou não ligado, além do led teste ligado junto a saída digital 13 do
microcontrolador, que já havia no protótipo v.1.

Apesar dessa nova versão corrigir os erros anteriores, ainda era necessária a inclusão de
uma alguma forma para transmissão de dados (USB, serial, bluetooth) para o microcontrolador
constantemente, uma vez que novos programas criados pelos alunos passariam pelo interpreta-
dor e seria executado no braço robótico, para tanto o computador deve sempre estar conectado
à placa. Para solucionar essa última dificuldade foi gerado a versão final desse protótipo.

4.1.5. Protótipo final

Para viabilizar a constante interação computador-microcontrolador, foi adicionado ao


protótipo final entradas para integração de um módulo de conversão FTDI, que permite a con-
versão serial (saídas do microcontrolador) para USB.

Nas Figuras 16 e 17, estão o esquema do circuito final gerado e a breadboard com a
montagem desse circuito, respectivamente; o circuito foi desenvolvido com a ferramenta Fri-
tzing. Foi criado, ainda com o Fritzing, o design de uma placa de circuito impresso, para que
em um trabalho futuro se produza uma placa oficial para esse projeto.
37

Figura 16 – Esquema do circuito do projeto. Fonte: Autora

Figura 17 – Montagem circuito final. Fonte: Autora


38

4.2. SOFTWARE

O software desenvolvido para esse projeto foi um interpretador que juntamente com a
biblioteca Servo.h, já disponível na IDE Arduino, movimenta o braço de acordo com o código
escrito pelo professor ou aluno. A seguir será melhor descrito o que é um interpretador e como
funciona o que foi desenvolvido nesse projeto, bem como, será abordada breve explicação sobre
a biblioteca para controle de servo motores.

4.2.1. Compilador versus Interpretador

Compiladores e interpretadores são formas de tradução de um código de forma que o


computador o compreenda. Para se entender o porquê da escolha de desenvolver um interpre-
tador ao invés de um compilador deve-se analisar suas diferenças.

O compilador é um programa que ao interpretar um código gera outro código que é


interpretado pelo computador. Esse novo código (o código compilado), é chamado de código
objeto. Os compiladores analisam o código em três partes: de forma sintática, léxica e semân-
tica. (Müller, 2009)

Já os interpretadores veem o código fonte do programa escrito como sendo o código


objeto, traduzindo linha a linha e em seguida executando cada uma das linhas. Ele analisa o
código sintática e semanticamente. (Müller, 2009)

Para esse projeto foi escolhido um interpretador para que uma vez interpretado o pro-
grama do aluno (ou professor) este já seria executado e interagiria com o braço, sem necessidade
de execução de nenhum outro programa gerado, como é o caso do compilador.

4.2.2. Biblioteca Servo.h

Esta biblioteca permite o controle, a partir de um microcontrolador, de RC servo moto-


res. Estes servos possuem engrenagens e um eixo que pode ser precisamente controlado. Os
padrões dos servos permitem que o eixo seja posicionado entre os ângulos de 0 a 180, é nesse
controle que a biblioteca age, com uma série de funções para interação com os servo motores
(Arduino, Servo, 2015), descritas a seguir:
39

▪ Função attach() – indica ao programa qual saída (pino) o servo motor está co-
nectado.
▪ Função write() – é nela que se indica o valor, em graus, do ângulo que se deseja
no servo; é ela que o “escreve” no servo motor.
▪ Função writeMicrosenconds() - indica um valor em microssegundos para o
eixo do servo. Na maioria dos servos, 1000 é um valor máximo anti-horário de
posição, 2000 é um valor máximo no sentido horário e 1500 é a posição central
do range do servo. (Figura 18)
▪ Função read() – “lê” a posição atual do servo (ângulo), o último valor passado
pela função write.
▪ Função attached() – verifica se a um servo conectado a saída indicada.
▪ Função detach() – desconectada, virtualmente, o servo da saída na qual fora
conectado anteriormente. (Arduino, Servo, 2015)

A biblioteca envia os comandos pelo pino de sinal, e realiza um PWM, para variar o
ângulo do motor, Figura 18. Porém, essa biblioteca desativa a função PWM nas saídas digitas
9 e 10 do microcontrolador, o que acarreta em um funcionamento irregular do motor ao ser
ligados nestas saídas ao usar essa biblioteca. (Arduino, Servo, 2015)

Figura 18 - Exemplo de PWM e posição do motor correspondente15

15
http://br-arduino.org/2015/01/arduino-e-servos-como-controlar-servomotores.html
40

No interpretador, foram integradas funções dessa biblioteca, para conectar o servo a


placa e para todas as operações de “escrita” de novos ângulos nos servo motores, essas funções
foram integradas a parte do software desenvolvido na IDE Arduino, onde se dá o envio das
funções para o microcontrolador.

4.2.3. Funcionamento geral do interpretador

O objetivo do desenvolvimento do interpretador, foi o de aproximar a linguagem de


programação ainda mais a linguagem natural do aluno. Para alcançar esse objetivo, o interpre-
tador tem uma série de funções já pré-estabelecidas, em português, que o aluno pode usar em
seu código para movimentar o braço. Em outras palavras, ele entende as funções do aluno e
envia ao microcontrolador o que o usuário deseja que o braço faça.

Por ser uma ferramenta didática ela requer, por parte de um instrutor ou professor, sua
prévia explicação, ela assim funciona como uma ferramenta de apoio ao ensino. O professor
explica ao aluno os conceitos de programação e o aluno tem a oportunidade de visualmente ver
esses conceitos sendo aplicados, acontecendo no braço.

Para o desenvolvimento do interpretador foram usados dois programas distintos: IDE


Arduino e DEV-C++. No DEV-C++ foi desenvolvido o código do interpretador em si, onde
seria traduzido o código do aluno em funções na linguagem C, para depois serem passadas (via
conexão serial) para uma segunda tradução, onde as funções em C serão “entendidas” e modi-
ficadas para funções da biblioteca “Servo.h” para movimentar os motores, e assim procedendo
com sua final execução através da IDE Arduino.

As funções, operações e comandos que compõem o programa e que o usuário pode usar
em seu código são as descritas a seguir:

▪ Operações matemáticas (soma, subtração, multiplicação e divisão): o usuário


pode realizar operações a longo do programa, dentro ou fora de loops, para
modificar valores de variáveis e/ou atribuir valores a variáveis.
▪ Criação de variáveis e atribuição de valores a elas.
▪ Loop enquanto: permite ao aluno realizar repetição de uma ou várias instruções
em um chamado laço de repetição.
41

▪ Condicional se-então-senão: permite ao aluno analisar se uma condição é ver-


dadeira ou não e a partir dessa informação imprimir um resultado correspon-
dente, modificando a posição do braço ou ainda mudando variáveis, realizando
diversas atividades conforme o resultado obtido.
▪ Função inicializa: ao usá-la o usuário retornará aos valores de início do braço,
que são os ângulos iniciais pré-estabelecidos para os motores a todo o mo-
mento que são inicializados.
▪ Função salva: salva a posição atual dos motores, para futuro uso.
▪ Função recupera: retorna o braço para as posições salvas anteriormente, caso
nenhum valor tenha sido salvo, ele retorna as posições de inicialização dos
servos.
▪ Função base: essa função é usada na atribuição de um valor (ângulo) para o
motor de base, valor esse a ser especificado pelo usuário.
▪ Função garra: abre e fecha a garra de acordo com valor de ângulo indicado.
▪ Função esquerda: rotaciona motor esquerdo do braço de acordo com o ângulo
informado.
▪ Função direita: rotaciona o motor direito do braço segundo o valor informado
pelo usuário.

O código do aluno poderá ser escrito na ferramenta Bloco de Notas, por exemplo, ou
qualquer outra ferramenta de texto similar, porém é necessário que seja salvo em formato .txt;
esse código salvo deve ser indicado no interpretador, este por sua vez analisará sintática e se-
manticamente o código e o executará se este estiver dentro dos quesitos dessa análise, ou seja,
dentro dos padrões adotados para esse interpretador. A Figura 19 mostra um exemplo de código
que o usuário poderá escrever para o interpretador.
42

Figura 19 – Exemplo de código que o programa é capaz de interpretar. Fonte: Autora.

É importante ressaltar que apesar de ser um programa facilitador, o interpretador ainda


exige que o aluno mantenha estruturas na escrita do código. É necessário que se inicie o pro-
grama com a declaração de variáveis, indique o “início” e o “fim” do programa, usando as
palavras reservadas correspondentes, e ainda indique a início (enquanto) e fim (fimequanto) do
loop, ainda da condicional se (se – então – fimse). Essa exigência tem a intenção de mostrar
(ensinar) e acostumar o aluno a estrutura de programação, facilitando assim sua futura interação
com reais linguagens de programação.

4.3. BRAÇO E INTERPRETADOR

O diagrama a seguir, Figura 20, relaciona a interação entre o braço e o interpretador,


mostrando, assim, as etapas do processo de funcionamento do mecanismo.
43

SOFTWARE HARDWARE

Circuito na
Código breadbord
Aluno
(microcontrolador)

Servo motores
Interpretador conectados ao
braço

Figura 20 – Diagrama interpretador-braço. Fonte: Autora.

Incialmente, o usuário deve digitar em um editor de textos como Bloco de Notas, por
exemplo, o código que deseja que seja interpretado e executado no braço. Em seguida, o cami-
nho desse arquivo de texto deve ser indicado no interpretador e iniciada a execução, esse tra-
duzirá o código escrito. Por meio da IDE Arduino, esse código será enviado, via USB, para o
microcontrolador conectado ao circuito; este por sua vez, enviará as novas posições aos motores
para movimentar o braço.

A Figura 21 mostra a montagem final da ferramenta proposta nesse projeto, com o cir-
cuito – na breadboard – desenvolvido conectado ao braço robótico (servo motores).
44

Figura 21 – Circuito conectado ao braço. Fonte: Autora.


45

5. CONCLUSÃO

É indiscutível o avanço tecnológico que o mundo vivencia, e gradativamente mais e


mais o homem interage com sistemas informatizados e inteligentes. Essa interação, em um fu-
turo não muito distante, não será apenas de uso dessas facilidades, muitos começaram a criar
suas próprias ferramentas, mesmo não necessariamente sendo desenvolvedores. E é nessa ten-
dência que muitos governos de diversos países tem apostado, ensinando crianças e jovens desde
de cedo a escreverem seus próprios programas.

Em um panorama geral da educação, entre os métodos de ensino que vem fazendo su-
cesso se destaca o método lúdico, onde aluno e conteúdo estão o tempo todo interagindo com
ferramentas pedagógicas que envolvem diversão e prazer, o que garante a atenção do aluno ao
assunto, facilitando assim a absorção do conhecimento, além de estimular a prática do conteúdo
uma vez que todo momento que interage com a ferramenta ele pratica o conceito aprendido.
Com destaque para matérias que envolvem lógica, como matemática, por exemplo.

Focando nessa tendência mundial de ensino de programação, e no bem-sucedido método


lúdico, iniciativas como o Code.org e SCRATCH usam o método lúdico para o ensino de lógica
de programação. Usando essas ferramentas, os alunos aprendem conceitos básicos e intermedi-
ários de programação através de jogos e atividades divertidas com personagens infantis famo-
sos, abrindo assim as portas para um posterior estudo de linguagem de programação.

Inspirados nessas iniciativas esse projeto se deu, com a proposta de criação de um inter-
pretador, aproximando os conceitos básicos de programação a uma linguagem próxima ao
aluno. Esse interpretador pode ser visto como um “mascarador”, ele oculta do aluno funções,
conceitos de biblioteca, entre outras características da programação, que em um primeiro con-
tato se mostram complexas e podem “assustar” o educando, desestimulando assim seu apren-
dizado.

Enfatizando o caráter lúdico da ferramenta, foi inserido a esse interpretador funções que
o permitisse interagir com um braço mecânico, onde o aluno pode ver seu código “aconte-
cendo”, movimentando o braço lateralmente, abaixando, pegando pequenos objetos, e o que a
sua imaginação o permitir criar.

Para o funcionamento do braço mecânico, foi desenvolvido um circuito com o micro-


controlador Atmega 328P para conexão dos motores e sua interligação com o computador. Para
comunicação computador-circuito foi ainda usada uma interface FTDI, permitindo assim a
46

constante mudança de código no microcontrolador, para a cada nova criação o aluno poder
testar seu código diretamente no braço.

Esse mecanismo, foi criado para servir como ferramenta de apoio ao professor, que após
explicar os conceitos de programação, poderá usar essa ferramenta mostrando a realidade do
que foi explicado para o aluno. O professor, ainda, poderá introduzir conceitos de robótica à
aula, como o uso de servo motores, por exemplo. Ela se mostra assim uma ferramenta completa
de auxílio em sala de aula, estimulando visualmente o aluno e propiciando sua interação com a
programação e, ainda, ajudando o educador na apresentação de conceitos de programação e
robótica.

5.1. TRABALHOS FUTUROS

Um próximo passo imediato é o desenvolvimento do design PCB criado para esse pro-
jeto, figura 22.

Figura 22 – Design PCB para microcontrolador ATmega 328P. Fonte: Autora.


47

Vale notar que no design PCB, criado a partir do circuito desenvolvido para esse projeto
(figura 16), foram deixadas trilhas com pontos de solda das saídas de SPI possibilitando o apri-
moramento futuro do projeto, integrando-o a uma placa Arduino ou Raspberry Pi, ou ainda
usando um módulo de conversão similar ao FTDI, por exemplo, dando maior abrangência fu-
tura para uso desse projeto em novas e ainda mais robustas ferramentas. Preocupou-se também
em disponibilizar 4 saídas 5V e 4 GNDs para conexão de cada um dos motores à placa.

Ainda no que diz respeito ao hardware, uma importante atualização seria a troca do
modelo do braço, versão 0.4 pela 1.0, que passou por correções que melhoraram seu desempe-
nho de modo geral, principalmente com relação ao peso dos motores e as dimensões do braço.
E a inclusão de um botão liga e desliga no circuito, eliminando assim a necessidade de desco-
nexão da fonte para seu desligamento, e sua reconexão para ligar.

Um terceiro aprimoramento seria o desenvolvimento de uma interface gráfica. Essa fer-


ramenta por ser textual, limita seu uso a crianças e jovens com maior experiência linguística.
Assim a implementação de uma interface gráfica baseada em blocos, por exemplo, abrangeria
seu uso a crianças com idade inferior, recém alfabetizadas.

Outro aprimoramento seria a inserção, da função “para”, a possibilidade de se utilizar


vetores e matrizes, entre outras funções de nível intermediário que não foram inseridas nesse
projeto, fornecendo ao aluno uma gama maior de possibilidades para escrita de seu código.
48

6. BIBLIOGRAFIA

Alencar, G. A., Freitas, A. K., Pessoa, M. d., & Martins, D. J. (10 de Dezembro de 2014).
Utilizando o SCRATCH nas aulas de Lógica de Programação do Proeja: Um relato de
experiência. Acesso em 06 de Novembro de 2015, disponível em TISE 2014 - XIX
Conferência Internacional sobre Informática na Educação,:
http://www.tise.cl/volumen10/TISE2014/tise2014_submission_110.pdf

Alves, Z. F., & Mota, M. Â. (15 de Setembro de 2011). Contribuição do lúdico no processo
ensino e aprendizagem. Acesso em 06 de Novembro de 2015, disponível em Congresso
de Pesquisa em Educação Norte-Mineiro - UNIMONTES: http://www.coped-
nm.com.br/terceiro/index.php?option=com_content&view=article&id=49:contribuica
o-do-ludico-no-processo-ensino-e-aprendizagem&catid=7:saberes-e-praticas-
educativas&Itemid=28

Arduino. (01 de Novembro de 2015). Home. Acesso em 06 de Novembro de 2015, disponível


em Arduino: https://www.arduino.cc/

Arduino. (30 de Outubro de 2015). Introduction - Guide. Acesso em 06 de Novembro de 2015,


disponível em Arduino: https://www.arduino.cc/en/Guide/Introduction

Arduino. (03 de Outubro de 2015). Servo. Acesso em 05 de Novembro de 2015, disponível em


Arduino: https://www.arduino.cc/en/Reference/Servo

Atmel. (16 de Novembro de 2015). ATmega328. Acesso em 08 de Novembro de 2015,


disponível em Atmel: http://www.atmel.com/devices/atmega328.aspx

Branco, E. L. (22 de Julho de 2015). EduqueNet. Acesso em 03 de Novembro de 2015,


disponível em Métodos e Teorias Pedagógicas:
http://www.eduquenet.net/teoriasped.htm

Brasil, U. (01 de Abril de 2014). Entenda como o cérebro assimila conhecimento e melhore
suas aulas. Acesso em 02 de Novembro de 2015, disponível em Universia Brasil:
http://noticias.universia.com.br/ciencia-
tecnologia/noticia/2014/04/01/1092623/entenda-como-cerebro-assimila-
conhecimento-e-melhore-suas-aulas.html
49

Capingala, J. C. (14 de Janeiro de 2015). Técnicas/Métodos de Ensino. Acesso em 03 de


Outubro de 2015, disponível em CIS - Instituto Superior de Ciências Sociais e Relações
Internacionais: http://cis-edu.org/pdf/T%C3%A9cnicas_%20ensino.pdf

Code.org. (25 de Novembro de 2015). About us. Acesso em 25 de Novembro de 2015,


disponível em Code.org: https://code.org/about

Dias, E. (09 de Dezembro de 2013). A importância do lúdico no processo de ensino-


aprendizagem na educação infantil. Acesso em 10 de Novembro de 2015, disponível
em Instituto Cuiabano de Educação:
http://www.ice.edu.br/TNX/storage/webdisco/2013/12/09/outros/2774a576f536917a9
9a29a6ec671de86.pdf

Fritzing. (01 de Novembro de 2015). Home. Acesso em 01 de Novembro de 2015, disponível


em Fritzing: http://fritzing.org/home/

Governmet, U. (25 de Maio de 2015). STEM: Education for Global Leadership. Acesso em 02
de Novembro de 2015, disponível em US Department of Education:
http://www.ed.gov/stem

Júnior, O. P., Belizario, B. N., & Oliveira, J. V. (13 de Novembro de 2014). Ensino de
Programação nas Escolas Públicas: Criando Novos Gênios. Acesso em 14 de
Novembro de 2015, disponível em Organização do Estados Ibero-Americanos:
http://www.oei.es/congreso2014/memoriactei/673.pdf

Kushner, D. (26 de Outubro de 2011). The Making of Arduino. Acesso em 15 de Novembro de


2015, disponível em IEEE Spectrum: http://spectrum.ieee.org/geek-life/hands-on/the-
making-of-arduino/0

Linhares, R. R. (16 de Novembro de 2004). Aspectos básicos de linguagem C. Acesso em 13


de Outubro de 2015, disponível em Departamento Acadêmico de Informática- UTFPR:
http://www.dainf.cefetpr.br/~robson/prof/common/c/aspec.htm

MeArm. (13 de Novembro de 2015). Home. Acesso em 13 de Novembro de 2015, disponível


em MeArm - Blog: http://blog.mearm.io/

Melo, J. L., & Leandro, G. V. (10 de Outubro de 2011). Mini curso: Microcontrolador PIC
18F452 / Proteus. Acesso em 13 de Outubro de 2015, disponível em Departamento de
Engenharia Elétrica - Universidade Federal do Paraná:
50

http://www.eletrica.ufpr.br/~james/Laboratorio%20V/arquivos/Mini%20Curso%20Mi
crocontrolador.pdf

MIT. (25 de Novembro de 2015). About Scratch. Acesso em 25 de Novembro de 2015,


disponível em SCRATCH: https://scratch.mit.edu/about/

Müller, N. (10 de Março de 2009). Diferença entre compiladores e interpretadores. Acesso em


12 de Novembro de 2015, disponível em Oficina da Net:
https://www.oficinadanet.com.br/artigo/1527/diferencas_entre_compiladores_e_interp
retadores

Oliveira, A. P., & Lopes, C. (04 de Outubro de 2010). Scratch na infância: estudo de impactos
da experienciação lúdica e co-participativa de crianças de 6 anos. Acesso em 10 de
Novembro de 2015, disponível em Universidad de Salamanca:
http://campus.usal.es/~comunicacion3punto0/comunicaciones/020.pdf

Ornelas, M. B. (01 de Outubro de 2008). O lúdico na educação: mais que um jogo de palavras.
Aprensentação de Slides - Aula. Rio Grande do Sul.

Partovi, H. (12 de Maio de 2014). Teach Coding as Early as Possible. Acesso em 12 de


Novembro de 2015, disponível em The New York Times:
http://www.nytimes.com/roomfordebate/2014/05/12/teaching-code-in-the-
classroom/teach-coding-as-early-as-possible

Pessoa, M. d. (03 de Dezembro de 2012). O Lúdico como ferramenta no processo de ensino.


Acesso em 11 de Outubro de 2015, disponível em Laboratório de Brinquedos e Jogos
(LABRINJO) - UFC:
http://www.labrinjo.ufc.br/index.php?option=com_phocadownload&view=category&i
d=6:monografias&Itemid=93

Quadros, J. R., Ogasawara, E., Amorim, M. C., & Ribeiro, R. C. (22 de Junho de 2012). Estudos
sobre o Usos de Jogos para Apoiar o Aprendizado de Programação em um Curso
Técnico de Informática. Acesso em 16 de Outubro de 2015, disponível em Associação
Educacional Dom Bosco: http://www.aedb.br/seget/arquivos/artigos12/24816249.pdf

Release, P. (26 de Abril de 2014). A is for algorithm. Acesso em 26 de Outubro de 2015,


disponível em The Economist:
http://www.economist.com/news/international/21601250-global-push-more-computer-
science-classrooms-starting-bear-fruit
51

Release, P. (01 de Outubro de 2015). Bipartisan STEM Education Act Clears House and Senate.
Acesso em 26 de Outubro de 2015, disponível em Committee on Science, Space &
Technology - US Government: https://science.house.gov/news/press-
releases/bipartisan-stem-education-act-clears-house-and-senate

Relvas, M. (08 de Março de 2010). Neurociência & Aprendizagem. Acesso em 11 de Novembro


de 2015, disponível em UOL - Vya Estelar:
http://www2.uol.com.br/vyaestelar/cerebro_aprende_pela_emocao.htm

Sá, R. (22 de Fevereiro de 2014). Concepção Pedagógica Tradicional. Acesso em 01 de


Novembro de 2015, disponível em Info Escola:
http://www.infoescola.com/pedagogia/concepcao-pedagogica-tradicional/

Santos, É. A. (13 de Junho de 2010). O Lúdico no Processo Ensino-Aprendizagem. Acesso em


26 de Outubro de 2015, disponível em Núcleo de Atividades, Pesquisas sobre Educação,
Ambiente e Diversidade - UNEMAT: http://need.unemat.br/4_forum/artigos/elia.pdf

Sousa, E. M., Silva, F. d., & Silva, T. R. (20 de Outubro de 2012). Importância das Atividades
Lúdicas: uma proposta para o ensino de Ciências. Acesso em 26 de Outubro de 2015,
disponível em Congresso Norte Nordeste de Pesquisa e Inovação:
http://propi.ifto.edu.br/ocs/index.php/connepi/vii/paper/viewFile/3948/2742

Teixeira, M. d., Rocha, L. J., & Silva, V. S. (2005). Lúdico um espaço para a construção de
identidades. Virtú - ICH.

TowerPro. (06 de Novembro de 2015). SG90 Analog. Acesso em 06 de Novembro de 2015,


disponível em TowerPro: http://www.towerpro.com.tw/product/sg90-analog/

Você também pode gostar