UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF...
Transcript of UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF...
SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 1
UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE PROGRAMAÇÃO E ROBÓTICA
Janneene Brum Guimarães
Willians de Paula Pereira
GPMecatrônica – Grupo de Pesquisa em Automação e Robótica
Departamento de Pesquisa, Inovação e Pós-Graduação Instituto Federal de Educação, Ciência e Tecnologia de Rondônia – IFRO
Campus Porto Velho
Porto Velho, RO – Brasil
Resumo Tendo como foco o hardware livre, este artigo
descreve como a utilização da plataforma Arduino pode
auxiliar no ensino de lógica de programação e robótica.
Priorizando práticas como Coding Dojo e manipulação de
hardware as quais criariam facilidades para o aluno imergir na
área da robótica tanto trabalhando com o hardware como com o software. Visto que é um campo em grande expansão no Brasil.
Palavras Chaves: Robótica, Lógica de Programação, Arduino.
Abstract: Focusing on the free hardware, this article describes
how to use the Arduino platform can assist in the teaching of
logic programming and robotics. Coding Dojo practices such
as prioritizing and handling of hardware which would create
facilities for the students to immerse in robotics working with
both the hardware and the software. Since it is a booming field
in Brazil.
Keywords: Robotics, Logic Programming, Arduino.
1 INTRODUÇÃO
A lógica de programação é uma disciplina que está presente em
grande parte da grade de cursos técnicos e de graduação
voltados para a área de informática, bem como nas engenharias
elétrica, mecânica e mecatrônica, através disso vê-se a
necessidade de fazer com que ela tenha o seu conceito teórico
aplicado de forma prática em níveis que vão além de softwares
criados para computador.
A robótica pode ter grande parceria no ensino da lógica de
programação, pois através dela o aluno será introduzido no
mundo da automação, criando, inovando e contribuindo para o
desenvolvimento da ciência desde o primeiro momento de um
curso técnico ou de graduação, visto que a matéria de lógica de
programação normalmente é ministrada nos primeiros períodos do curso.
Para alunos que fazem cursos voltados para engenharia,
quando cursarem essa disciplina praticando através de
conceitos da robótica em plataformas livres como o Arduino
será mais fácil assimiliar conteúdos de outras matérias como
eletrônica, física, mecânica e mecatrônica.
2 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO
De acordo com Cormen (2002) “um algoritmo é qualquer
procedimento computacional bem definido que toma algum
valor ou conjunto de valores como entrada e produz algum
valor ou conjunto de valores como saída”.
Colocando em foco pessoas que iniciarão seus cursos voltados
para área da computação ou engenharia e não tiveram contato
com a tradução de problemas reais para o computador fica
dificil a interpretação do “como fazer?”.
A disciplina de algoritmos e lógica de programação
normalmente é introduzida com a criação de situações do
cotidiano descritas através de uma linguagem conhecida como
português estruturado ou portugol, após esse entendimento o
aluno passa a conhecer linguagens de programação e
consequentemente desenvolver sistemas para computador.
Essa matéria é um gargalo para o andamento dos cursos
técnicos e de graduação voltados para área de informática
porque essa é a base para outras matérias que estão
relacionados com desenvolvimento de sistemas.
Porém, essa disciplina poderia além de oferecer o conhecimento de desenvolvimento de sistemas, criar situações
em que o aluno possa utilizar conceitos da robótica e ter
possibilidades para trabalhar tanto no desenvolvimento de
sistemas para computador, como sistemas embarcados para
robôs e possivelmente não teria tanta dificuldade nas matérias
que estariam ligadas ao hardware do computador.
Os conceitos práticos de algoritmos e lógica de programação
são introduzidos por comandos de entrada e saída vistos
através da tela do computador onde o aluno que está
aprendendo é o desenvolvedor e ao mesmo tempo testador dos
programas que ele mesmo fez, em virtude disso a robótica
poderia facilitar o entendimento desse tipo de situação e o
Artigo Submetido em xx/xx/xx
1a. Revisão em xx/xx/xx; 2a. Revisão em xx/xx/xx; 3a. Revisão em xx/xx/xx; 4a. Revisão em xx/xx/xx; Aceito sob recomendação do Ed. Consultor Prof. Dr. Yyyy
Yyyyyyyy yy Yyyyyyyy
2 SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000
aluno passaria a ser somente o desenvolvedor e os testes seriam realizados pelas placas que são programadas dentro dos robôs,
por exemplo: os comandos de entrada e saída dos
computadores seriam substituídos pelo acender e apagar dos
LEDs das placas dos robôs. Ao invés do aluno desenvolvedor
inserir dados para o programa que foi desenvolvido para fazer
os testes necessários a placa faria esses testes sozinha e não
sofreria interferência humana.
Para efeitos de demonstração, abaixo será colocado dois
códigos que fazem procedimentos de saída, porém um será
feito em linguagem de programação C para computadores e o
outro na linguagem de programação utilizada para a plataforma
de hardware livre Arduino.
/* Exemplo de código Linguagem C para computador */
// Mostrando mensagem na tela
void main()
{
printf("Hello World!\n"); // mostra mensagem
system("PAUSE"); // para a execução da tela
}
/* Exemplo de código para Arduino */
// Piscando Led
int ledPin = 13; // Led da porta digital 13
void setup()
{
// Configura porta do led para escrita / saída
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH); // liga o LED
delay(1000); // espera um segundo
digitalWrite(ledPin, LOW); // desliga o LED
delay(1000); // espera um segundo
}
Nota-se nesses códigos uma diferença em relação ao seu
tamanho, porém os dois apresentam comandos de saída, no que
é feito em linguagem C para computadores irá imprimir na tela
o resultado ao contrário da plataforma Arduino que irá fazer a
sua saída quando o LED acender.
Porém o código da plataforma de robótica é mais completo em
virtude de ter que preencher o número da porta em que o LED
irá acender, definir se a saída será feita em uma porta digital ou
analógica e delimitar tempo para a saída. Isso ajudaria o aluno
a pensar nos componentes eletrônicos e não somente em um programa de computador.
3 ROBÓTICA COMO ALIADA NO APRENDIZADO
De acordo com Castilho (2002) “a teoria de equilibração, de
Piaget, trata de um ponto de equilíbrio entre a assimilação e a
acomodação, e assim, é considerado como um mecanismo
auto-regulador na interação com o meio-ambiente. Na robótica
educacional é oferecido ao aluno um ambiente onde o mesmo pode manusear, criar, programar por si mesmo e, através desta
prática lúdica, desenvolve o raciocínio lógico tão importante
nas diversas áreas do conhecimento”.
Facilitar o aprendizado é um dos benefícios que o trabalho com
robótica proporciona, através disso desenvolver o raciocinio lógico é primordial para a assimilação do conteúdo ministrado
na disciplina de algoritmos e lógica de programação.
O trabalho realizado em plataformas de robótica proporciona o
entendimento que vai além de traduzir situações do cotidiano
para o computador. Ela induz o desenvolvedor a pensar além
de resoluções de problemas dos usuários através do computador e passa a enxergar a solução de problemas que
poderiam ser facilitadas com a criação que vai desde pequenos
dispositivos para a automação residencial como grandes
dispositivos de automação industrial.
4 ARDUINO COMO PLATAFORMA PARA ESTUDO DE ROBÓTICA
Conforme Souza (2011) o Arduino é uma plataforma de
hardware open source, de fácil utilização, ideal para a criação de dispositivos que permitam interação com o ambiente,
dispositivos estes que utilizem como entrada sensores de
temperatura, luz, som etc., e como saída leds, motores,
displays, auto-falantes etc., criando desta forma possibilidades
ilimitadas.
A plataforma utiliza-se de uma camada simples de software
implementada na placa, que é um bootloader, e uma interface
amigável no computador que utiliza a linguagem Processing,
baseada na linguagem C/C++. Através do bootloader dispensa-
se o uso de programadores para o chip - no caso a família AVR
do fabricante ATMEL - facilitando ainda mais o seu uso uma
vez que não exige compiladores ou hardware adicional. Neste
ambiente de desenvolvimento, são disponibilizadas bibliotecas
que permitem o interfaceamento com outros hardwares,
permitindo o completo desenvolvimento de aplicações simples
ou complexas em qualquer área.
Figura 1: Arduino
Fonte: Banzi (2006)
SBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 3
5 CODING DOJO
Segundo Coding Dojo (2011) “um Coding Dojo é uma reunião
onde um grupo de programadores se unem para trabalhar em
um desafio de programação. Eles estão lá para se divertir e se
envolver, a fim de melhorar suas habilidades.”
A prioridade em um Coding Dojo é utilizar práticas de
metologias ágeis para o desenvolvimento do algoritmo, como a
programação em par, desenvolvimento guiado por testes e
utilização de reuniões durante o desenvolvimento com todo o
grupo que esteja participando para averiguar a eficiência do
código. Então além do aluno aprender algoritmos, ele estará
melhorando a forma como escreve seus códigos de programas.
Esse Codingo Dojo normalmente é realizado em um período
entre uma a uma hora e meia, tempo suficiente para que essa
prática seja adotada dentro de sala de aula. Ele pode ser
realizado em diversas linguagens de programação e todos os
alunos praticam diante de apenas um computador, um teclado e
um mouse, sendo a tela desse computador projetado em uma
parede para que todos tenham acesso ao que está sendo desenvolvido e cada dupla se reveza até todos passem pelo
computador para dar sua contribuição e resolver o problema
proposto.
Porém o Coding Dojo poderia ser uma prática aliada a
produção de conhecimento em robótica também, pois essa
prática poderia estar vinculada com a produção de conhecimento na plataforma Arduino. Os desafios poderiam
ser propostos para resolver tanto problemas de hardware como
do software do robô, por exemplo desafios para fazer um robô
andar para frente ou ainda desafios que façam o robô andar em
círculo. Através disso o professor poderia selecionar quais
alunos tem mais facilidades com hardware ou com software e a
partir disso trabalhar esses diferenciais em sala de aula
preparando o aluno para diferentes situações.
6 CONSIDERAÇÕES FINAIS
A robótica tem proporcionado a educação meios de facilitar o
seu uso, um exemplo é a utilização de placas de hardware livre
como é o caso das placas da plataforma Arduino, além de terem o seu custo bem abaixo das outras proporciona maior
facilidade para ser programada, assemelhando-se com as
linguagens para desenvolver software para computador.
Com a utilização de robótica nos primeiros anos de seu curso,
seja de graduação ou técnico, o aluno estará apto a conhecer-se
sabendo pra qual área seguir. A disciplina de algoritmos e lógica de programação deixaria de ser unicamente voltada para
programas de computadores e passaria a estar ligando
hardware e software no mesmo contexto.
Práticas como Codingo Dojo e a manipulação do hardware
deixará o aluno com o pensamento dinâmico, resolvendo
diversos tipos de situação, além do mais estará proporcionando conhecimento de uma área que está em grande expansão.
REFERÊNCIA BIBLIOGRÁFICA
Banzi, M. et al. (2006). Arduíno. http://www.Arduino.cc.
Castilho, Maria Inês. (2002). Robótica na educação: com que
objetivos?. Pós-Graduação em Informática na Educação
– Universidade Federal do Rio Grande do Sul. Porto Alegre – RS.
Coding Dojo. (2011). WhatIsCodingDojo. http://Coding Dojo.org/cgi-bin/wiki.pl?WhatIsCodingDojo
Cormen, Thomas H. et al. (2002). Algoritmos: Teoria e
Prática. Elsevier, Rio de Janeiro – RJ.
Pet, Programa de Educação Tutorial. (2010). O que é Coding
Dojo?. Universidade Federal de Santa Catarina – UFSC.
Florianópolis – SC. http://pet.inf.ufsc.br/dojo/o-que-eh-
dojo/
Souza, Anderson R. de et al. (2011). A placa Arduino: uma
opção de baixo custo para experiências de física
assistidas pelo PC. Rev. Bras. Ensino Fís. vol.33 no.1
São Paulo –SP.