UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF...

3
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

Transcript of UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF...

Page 1: UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF fileSBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 1 UTILIZAÇÃO DE ARDUINO NO ENSINO

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

Page 2: UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF fileSBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 1 UTILIZAÇÃO DE ARDUINO NO ENSINO

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)

Page 3: UTILIZAÇÃO DE ARDUINO NO ENSINO DE ALGORITMOS, LÓGICA DE ... · PDF fileSBA Controle & Automação Vol. 00 no. 00 / Jan., Fev., Mar, Abril de 0000 1 UTILIZAÇÃO DE ARDUINO NO ENSINO

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.