TCC - Engenharia
TCC - Engenharia
TCC - Engenharia
Petrópolis
2015
UNIVERSIDADE CATÓLICA DE PETRÓPOLIS
CENTRO DE ENGENHARIA E COMPUTAÇÃO
CURSO DE ENGENHARIA DE COMPUTAÇÃO
____________________________________
___________________________________
Professor Orientador
Petrópolis
2015
Aluno: Caroline Maul de Araujo Lima Matrícula: 10100529
AVALIAÇÃO
AVALIADO POR
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.
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.
GND – Ground
RC – Radio Control
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
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.
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.
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)
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?
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)
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
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
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)
• técnicas pedagógicas
Pestalozzi
•forma de aplicar a educação sensorial
Montessori
•meio de manifestação do desenvolvimento
Piaget intelectual
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:
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
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)
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)
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.
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
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
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
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.
2
Adaptado de http://www.ed.gov/stem (tradução livre)
20
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)
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
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
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
À 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.
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.
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)
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
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.
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)
3.3. MEARM
5
http://largewire.com/product/atmega328p-pu-w-arduino-bootloader/
26
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.
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
3.5. LINGUAGEM C
7
http://www.towerpro.com.tw/product/sg90-analog/
28
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++
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.
10
http://fritzing.org/learning/get-started/
31
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
4.1. HARDWARE
12
http://www.mathias-wilhelm.de/arduino/projects/phenoptix-mearm/
33
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.
Os testes iniciais de funcionamento do braço, bem como, dos servo motores foram feitos
com o Arduino UNO e a IDE Arduino.
▪ 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).
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
Devido a essas limitações esse protótipo passou por modificações gerando assim sua
segunda versão.
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.
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
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.
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.
▪ 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)
15
http://br-arduino.org/2015/01/arduino-e-servos-como-controlar-servomotores.html
40
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.
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:
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
SOFTWARE HARDWARE
Circuito na
Código breadbord
Aluno
(microcontrolador)
Servo motores
Interpretador conectados ao
braço
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
5. CONCLUSÃO
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.
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.
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.
Um próximo passo imediato é o desenvolvimento do design PCB criado para esse pro-
jeto, figura 22.
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.
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
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
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
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
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.
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. (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
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.