Upload
duongdien
View
219
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE ESTADUAL DE CAMPINAS – UNICAMP
CENTRO SUPERIOR DE EDUCAÇÃO TECNOLÓGICA - CESET
PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA
Título do Projeto: Integração de dispositivos robóticos a sistemas de apoio ao aprendizado
utilizando a plataforma Arduino.
Aluno: Julio Cesar Bortholotto (RA: 081816)
Orientador: Prof. Dr. Marcos Augusto Francisco Borges (CESET)
Co-orientador: Dr. João Vilhete Viegas d’Abreu (NIED)
Resumo
Muito se tem estudado sobre o uso de robótica no aprendizado. Paralelamente, existem vários trabalhos de desenvolvimento de sistemas computacionais de apoio ao aprendizado. Este projeto tem como objetivo avaliar qual o impacto da integração de robótica a sistemas computacionais para aprendizado. Será que a visualização física de conceitos trabalhados usualmente apenas em interfaces gráficas computacionais por sistemas de apoio ao aprendizado aumenta o entendimento do assunto pelos aprendizes? Quais as vantagens e desvantagens da integração dessas duas realidades? Este projeto busca analisar essas perguntas, a partir de uma abordagem prática, que consiste na realização de movimentos concomitantes de um dispositivo robótico externo em função de uma determinada ação na tela do computador em sistemas de apoio ao aprendizado previamente existentes.
1. Revisão do plano inicial
Muito se tem estudado sobre o uso de robótica no aprendizado. Os próprios orientadores deste projeto já realizaram vários projetos envolvendo essa realidade. A grande maioria apresenta resultados bastante favoráveis.
Paralelamente, existem vários trabalhos de desenvolvimento de sistemas computacionais de apoio ao aprendizado. O grupo de pesquisas DAFE do NIED (DAFE, 2009), do qual são membros o orientador e o co-orientador deste trabalho, já desenvolveu inúmeros exemplos de sistemas com esse objetivo.
A utilização da Robótica como forma de se enriquecer o ambiente de aprendizagem nas mais diferentes áreas de conhecimento tem se constituído em um recurso bastante utilizado em todos os níveis de ensino (CHELLA, 2002). Este projeto tem como objetivo avaliar qual o impacto da integração de robótica a sistemas computacionais para apoio ao aprendizado previamente existentes. Este projeto não almeja estudar sistemas especificamente construídos para trabalhar com robótica. A meta é avaliar qual o impacto nos aprendizes de se oferecer em sistemas de apoio ao aprendizado, além da interface gráfica, uma visualização física do que está sendo trabalhado no sistema.
Em trabalhos anteriores, os autores avaliaram o uso do framework GoGo Board, uma arquitetura aberta e de baixo custo, em projetos de robótica pedagógica. Embora os resultados
relacionados à aprendizagem tenham sido positivos, as placas apresentaram muitos problemas físicos ao longo do uso, o que mostrou que o framework pode ser pouco robusto para este tipo de aplicação. Conforme Ramos et al. (2007), a plataforma Arduino (2009) também é aberta e apresenta custo similar. Este projeto também visou estudar a viabilidade do uso desta plataforma para este fim.
Os resultados deste projeto foram o estudo da plataforma Arduino e a avaliação das vantagens potenciais que o uso de robótica associada a sistemas de apoio ao aprendizado pode trazer.
A seção 2 discute brevemente a placa Arduino e as seções 3 e 4 os sistemas computacionais de apoio ao aprendizado que foram utilizados ao longo do projeto. A seção 5 resume a dinâmica conduzida.
1.1. Cronograma e Metas Semestrais
Atividades Desenvolvidas:
- As metas a serem atingidas no primeiro semestre são:
a) Avaliação de placas Arduino;
b) Estudo da integração entre a placa Arduino e programas sendo executados em computador;
- As metas a serem atingidas no segundo semestre são:
c) Construção de célula do Jogo da Fábrica;
d) Construção do Mundo do Robô (versão robótica);
e) Condução das dinâmicas.
2. Avaliação das placas Arduino
A Arduino é uma placa que pode se conectar a vários outros dispositivos, com a qual se pode aplicar ações ou ler informações deles. Utilizando comandos pré-configurados na Arduino, ela passa a ser um centro de controle capaz de manipular diversos tipos de aplicações.
A seguir será apresentado como é a Arduino, alguns comandos básicos de manipulação dos dispositivos, e como podemos programá-la a partir de um computador convencional.
Figura 1: A
A A
Neste proj(2”x2,7”) efonte de en
Outcapacidadeespaços resuso dessescusto e masendo utiliz
A Pesta energiexterna. Se(Fig. 1 – It
A Areiniciar a seguida e rnão há necdo código
As provindos
Arduino Die
Arduino poseto estudame um cabo cnergia para a
tros modeloe de memórstritos. Tod
s recursos aaior disponzada.
Placa necessia é fornecie a placa nãtem 2) ligad
Arduino posplaca. Quanreiniciando
cessidade deautomaticam
entradas Ade sensores
ecimila. Ene
ssui vários mmos o modeconector USalimentar a
os da Arduria para os avia, no pro
adicionais ennibilidade n
sita de 5V pida através
ão está ligadda à tomada
ssui um botndo algum a execução
e fazer uplomente.
Analógicas s, botões, ch
2
1
ergia(1 e 2)
modelos de elo ArduinoSB para complaca.
ino são capcomandos,
ojeto em quncontrado n
no mercado
para seu fundo cabo U
da ao compu, ou a qualq
tão Reset (Fdeles é ativo do código
oad novame
(Fig. 1– Itehaves, poten
, Reset(3 e
placas, como Diecimilamunicação
pazes de coou até são
ue essa placanos demais
e cumpre
ncionamentoUSB (Fig. 1utador, pod
quer outra fo
Fig. 1 – Itemvado a placao desde o inente do com
em 5) servnciômetros,
4
4), Pinos A
m quantidada, que compcom o com
ontrolar maio menores pa está sendomodelos. Otodos os re
o. Quando e1 – Item 1)de ser alimenonte, pilhas
m 3) e um pa se desliganício. Nesta
mputador, a p
vem usualmetc.
4
nalógicos(5
des de portapõe uma pl
mputador, qu
is dispositivpara se adeqo utilizada, nO modelo Dequisitos do
ela está con, não necesntada atravéou baterias
pino Reset a completama ação nenhplaca já liga
mente para r
5) e Pinos D
as e tamanholaca de 5cmue também
vos, ou posquar a aplicnão se faz n
Diecimila teo projeto n
nectada ao cssitando deés de uma fs, que a forn
(Fig. 1 – Itmente, relighum códigoa e começa
recebimento
3
5
6
Digitais(6).
os variados.m x 6,85cmserve como
ssuem maiscações comnecessário oem o menorna qual está
omputador, uma fontefonte de 5Vneça 5V.
em 4), paraando-se em
o é perdido,a execução
o de dados
. m o
s m o r á
, e
V
a m
, o
s
As consideradque podem
A A
uma linguagrandes difCOM em q
Tab
portas Digdas digitais,mos figurativ
Arduino poagem baseaficuldades pque a placa
bela 1: Princ
gitais (Fig. pois seus vamente im
ssui um amada em C/Cpara se confestá conect
cipais coma
1– Item 6)valores varaginar como
Figura 2: S
mbiente própC++. O ambfigurar e usada, e fazer
andos.
) podem serriam apenas
mo Ligado ou
Software Ar
prio (Fig. 2biente oferesar: basta cor o upload d
r usadas tans em High u Desligado
rduino 0015
2) para a suce vários ex
onfigurar qudo código.
nto pra ente Low (5V
o.
ua programaxemplos pr
ual o modelo
trada como V/0V respec
ação, o quaráticos e não da Arduin
saída. Sãoctivamente),
al manipulao apresentano e a porta
o ,
a a a
Fig Na
programaçArduino. NLed acende
Na conter o nu13. A funçligada, e saparece napapel de Oled.
A pexecutadoscomandos o led, e repetidame
A A
serial, com“Software mesma env
1. in2. 3. vo4. { 5. 6. } 7. 8. 9. vo10. { 11. 12. 13. 14. 15. }
gura 3: Exem
tabela 1 ção da ArduNeste códiger e apagar
linha 1 coumero 13, ação “setup()serve para
a linha 5, quOUTPUT qu
principal fus repetidamcontidos deaguardar m
ente, o led f
Figura 4
Arduino podmo será apr
Arduino 0viando carac
nt ledPin
oid setup
pinMode
oid loop(
digital delay(1 digital delay(1
mplo de Pro
são exibiduino. Na figugo pode se valternadam
ontém a deca qual será u)” contido nse colocar
ue está idenue significa
unção é o mente enquan
entro da funmais um mficará acend
: Monitor S
de interagirresentado n015” pode cteres, e vis
Car
Ca
n = 13;
p()
e(ledPin
()
lWrite(l1000); lWrite(l1000);
ograma da A
dos alguns ura 3 é exibver alguns
mente.
claração de usada para ina linha 3
r funções dtificando qusaída, pois
“loop()”, nnto a Arduinção loop, omomento.
dendo e apag
Serial
r com o comno item 1.2
se testar osualizando o
racteres rec
aracteres a
n, OUTPUT
ledPin, H
ledPin, L
Arduino
comandosbido um exedos coman
uma variávdentificar qserá execut
de inicializaue o pino 1s será enviad
na linha 9, ino estiver los quais irãoPortanto q
gando altern
mputador ou2. E atravésos comandoos caractere
cebidos aqu
a enviar.
T);
HIGH);
LOW);
s principaisemplo de umdos básicos
vel numéricque o led qutado apenasação, como3 (identificdo através d
que contémligada. Este o ligar o ledquando o mnadamente.
u outros diss do “Mon
os colocadoes recebidos
ui.
s que podem código us que serão
ca rotulada ue será usados uma vez, o por exemado pela vadeste pino e
m todos osexemplo co
d, aguardar umétodo “lo
positivos atitor Serial”s na Ardui
s por ela.
em ser utiusado para c
usados par
a “ledPin” qdo estará liga
quando a Amplo “pinMariável “ledPenergia para
s comandosontém o coum momenoop()” for
través da co” (Fig. 4) pino interagi
ilizados naconfigurar ara fazer um
que passa aado ao pinoArduino for
Mode()” quePin”) terá oa acender o
s que serãonjunto de 4
nto, desligarexecutado
omunicaçãopresente noindo com a
a a
m
a o r e o o
o 4 r o
o o a
A placa Arduino tem a capacidade de controlar Servo Motores. Os Servos Motores são motores de precisão, que não giram continuamente em alta velocidade igual aos motores popularmente conhecidos, pois possuem um ângulo de rotação de 180 graus. A vantagem de usá-los é que são precisos, posicionando exatamente no ângulo que desejar entre 0 e 180 graus.
2.1. Integração entre Arduino e programas
Para que seja implementada uma integração entre a Arduino e um programa sendo executado em um computador, o primeiro passo é configurar a Arduino para trabalhar na mesma velocidade de comunicação (“baud”) que o programa no computador. É importante que ambos estejam configurados igualmente.
No “Serial Monitor” do compilador da Arduino é possível testar a comunicação serial enviando e recebendo dados. Neste “Serial Monitor” é possível alterar o baud apenas pressionando os botões disponíveis na própria janela. Para testar a comunicação entre outros programas do computador e a Arduino foi desenvolvida uma classe em C++, mas alterar o baud apresenta um pouco mais de dificuldade. Com análises realizadas neste código em C++ encontramos que o valor usado é “9600”: portanto adotamos este como padrão para a configuração da Arduino, utilizando o comando Serial.begin(9600); dentro da rotina “setup”.
Uma vez que o “baud” está configurado, deve-se identificar a porta COM correta, a qual o computador nomeou como sendo a porta em que a Arduino está conectada.
A função disponível para a transmissão a partir da Arduino é Serial.print(“”). O funcionamento da comunicação via serial é basicamente transmissão de caracteres individuais. Por exemplo, caso pretenda-se transmitir a palavra “Teste” utiliza-se Serial.print(“Teste”), porem a placa enviará letra por letra “T”, “e”, “s”, “t” e “e”. A transmissão de Serial.print(“Te”) e depois Serial.print(“ste”), terá como resultado o mesmo que o envio da palavra “Teste” para o computador que está recebendo as letras.
A parte mais complexa é o recebimento desses caracteres avulsos. Para que não haja necessidade de completo sincronismo (ou seja, no instante em que um dispositivo está enviando uma mensagem o outro dispositivo já está recebendo), existe um buffer, onde todos os caracteres recebidos são armazenados em uma fila, dando assim a liberdade ao programador de interpretá-los do modo que desejar.
Na programação da Arduino, cada vez que a função Serial.read() é chamada, é retirado o próximo caractere da fila do buffer. Como normalmente uma mensagem não consiste em apenas um caractere, mas sim em uma sequência de caracteres, é necessário identificar a sequência enviada correta para poder interpretá-la. A manipulação em um só comando de uma sequência de caracteres (conhecida como String), ainda não existe na programação da Arduino. Desta forma, é necessário o uso de um vetor de caracteres para compor a mensagem.
O objetivo deste projeto é a interação da Arduino com alguns jogos do computador. Dado este objetivo, adotou-se que o computador é quem vai processar todas as informações, indicando a Arduino seus próximos passos. Desta forma a Arduino deverá receber comandos do computador através da comunicação serial, e executar o que foi pedido.
Foi criado um protocolo de comunicação genérico, para o controle de todo e qualquer dispositivo que esteja conectado a quaisquer pinos da Arduino.
O pem seguidatipo de info
Os sendo norm
Porserão modiacender oPosteriorm“00010100
Foidiferenciarnão fosse n
Os estarmos userial. Podfigura 5, a
Fig
Est
que for nec
Outpara quandresponsabipara a Ardconfirmaçãacabou de terminou. N
Fig
protocolo coa seus respeormação.
valores usamalmente 0
r exemplo, nificados. Ads Leds no
mente, deve0000000x25
i utilizada ar mais facilmnumero, foi
pinos 1 e 2utilizando ademos verifseguir.
gura 5: Esqu
te método pcessária de p
tro importado enviar eilizar por cuduino, a Ardão de suces
enviar suaNeste caso a
gura 6: Repr
onsiste em eectivos valo
ados para acpara deslig
na placa exdota-se “0” s pinos 4 em ser env55x255;”.
a letra “x” mente os coescolhido a
2 são os pina comunicaçficar que os
uemático de
possibilita qpinos simul
ante fator pae receber duidar da lógduino resposso. E para
a mensagemadotou-se o
resentação d
enviar para ores. Desta f
cender um ado e 255 p
istem 14 pipara sem me o 6, de
viados os
entre os noonjuntos dea letra x ape
nos que podção através s pinos 1 e
uma mensa
que em umaltaneamente
ara uma bodados. Partgica geral, aonde devolva que ambo
m, adota-se o “;” (ponto
do fluxo de
a placa priforma em p
Led, são ospara ligado n
inos, então pmodificaçõeeve-se envi
2 valores
ovos valoree números, oenas por que
dem ser utilda USB, e2 não são
agem.
a única mee.
oa comunicatindo do pradotou-se quvendo os vaos os ladosum caractee vírgula).
dados entre
meiramentepoucos cara
s valores anna força má
primeirames e “1” paraiar o segui respectivo
es, para queo “x” poderestão visual
izados paraestes pinos
mais repre
nsagem sej
ação é estabrincipio queue sempre aalores dos ss da comunere especial
e os diferent
e quais pinocteres, pode
nalógicos, qáxima.
nte tem quea modificaçinte comanos aos 2
e as funçõeria ser um cl.
a a comunicficam reser
esentados n
a possível
belecer algue será o coapós algumsensores alinicação saibl que simbo
tes processo
os seriam memos mand
que variam
e se enviar ções. Desta ndo 000101pinos: por
es da Arduicaractere qu
cação serialrvados à co
no exemplo
atualizar a
uma regra omputador
m envio do ci presentes, bam quandoliza que a
os envolven
modificados,dar qualquer
de 0 a 255,
quais pinosforma, para100000000,r exemplo,
ino possamualquer que
. Apesar deomunicação
contido na
quantidade
de controleque irá se
computadorou alguma
do cada ummensagem
ndo a DLL.
, r
,
s a , ,
m e
e o a
e
e e r a
m m
A ccarregado compatívelem Delphiutilizada na
As modificaçõ
Comde algum ocomandos ação que desligando
NesArduino fu
3. Constr
A mcélula espe
Fig
comunicaçãna placa, el com os jogi, estes códa maioria d
tarefas de ões nos outr
mo mostra outro softwaque o softwa Arduino
o motores e
ste mesma runcionam pa
rução de cé
meta foi coecífica do Jo
gura 7: Softw
ão é feita ene no compugos “Jogo d
digos em C+as linguage
comunicaçros software
a representare, e se enware carreg
deve execsensores, e
representaçãara ambos o
élula do Jog
onstruir comogo da Fábr
ware do Jog
ntre a Arduinutador foi uda Fábrica” ++ foram cns.
ção ficam es.
ação na figuncarrega de gado na Ardcutar. A Arinformando
ão, podemoos programa
go da Fábri
m robótica urica.
go da Fábric
no e o Comutilizado cóe “Mundo R
compilados
restritas à
gura 6, a DLfazer o produino entenrduino trabo a leitura d
os observar as, “Jogo da
ica
uma célula,
ca
mputador, utódigos em Robô” que em uma D
DLL, não
LL se encarocessamentonde, e vai ebalha apenados sensores
que a mesma Fabrica” e
que repita
tilizando-se C++. Para foram previ
DLL, que p
sendo nec
rega de reco da lógica enviando esas executans, sem neces
ma DLL e o e “Mundo R
o que está
do código que este s
iamente despode ser inc
cessário faz
ceber algunsdesejada co
stes comandndo ordens,ssidade de “
mesmo códRobô”.
á acontecend
da Arduinoistema sejasenvolvidoscorporada e
zer grandes
s comandosonverter emdos de cada, ligando e“pensar”.
digo da
do em uma
o a s e
s
s m a e
a
No uma máquprodução dpara a áreasão transfe
Figura
A c
estão os pconseguiráprojeto vissimule todo
O eonde a bolrepresenta aguardará maquina (Fcanaleta deonde aguarservirá de m
Figura
1
Software duina. O objedas máquina de Processeridas da áre
a 8: Esquem
construção produtos quá visualizar sa construiro o jogo
esquemáticolinha repres
a matéria na canaletaFig. 8 – Itee matéria prrdará até qumatéria prim
a 9: Bolinha
2
1
do Jogo da etivo é confnas é repressado. A quaea de Proces
mático do mó
do módulo e estão sene entender
r apenas um
o da Fig. 8 enta o prodprima sen
a (Fig. 8 – em 3) faça rima (Fig. 8ue este prodma.
a usada (1) e
2
Fábrica (Fifigurar a fábsentada por antidade trassado para a
ódulo da fáb
para o jogndo produzi
melhor o qma célula, p
representaduto sendo pndo recebid
Item 2) quo serviço q
8 – Item 2) eduto seja tra
e comparaçã
3
2
ig. 7), cada brica para qbolinhas s
ansportada ea área de ma
brica.
o da fábricidos a cadaque se passapara que em
um dos móproduzido nda para serue represenque é repree jogar na cansportado (
ão com uma
participantque atinja osendo transfentre um jogatéria prima
a visa dema instante da na linha dm um traba
ódulos da lina fábrica. Ar utilizada
nta um estoesentado cocanaleta de p(Fig. 8 – Ite
a bola de gu
4
e é responso melhor deferidas da ágador e outra do jogador
onstrar fisicde tempo. Dde produçãoalho futuro,
inha de prodA primeira neste módque de matm a ação dprodutos proem 5) para o
ude (2)
sável pela pesempenho área de Maro, em que
or seguinte.
camente emDesta formao de uma fá, com a rep
dução de uação (Fig.
dulo da fábatéria primade retirar a rontos (Fig. o próximo m
5
3
produção depossível. A
atéria Primaas bolinhas
m que etapaa o usuárioábrica. Esteplicação, se
uma fábrica,8 – Item 1)brica, ondea, até que a
bolinha da8 – Item 4)
módulo que
e A a s
a o e e
, ) e a a ) e
A baço fazem bicicletaria
Figura
A c
construída obras civiscanaleta (Fpedestal (FItem 4). Dprojetadas
As direita, poiao lado dapróxima ca
Figura
O sproduzir opequena cdeslizando
bolinha (Figm parte de u
a.
a 10: Canale
canaleta (Futilizando
s. O perfil dFig. 10 – ItFig. 10 – IteDe forma apara se inte
bolinhas peis a mesma a máquina analeta.
a 11: Servo
servo motoro produto. Acavidade (Fo da canaleta
g. 9) utilizaum rolamen
eta completa
Fig. 10 – Itum perfil
de alumíniotem 1) foi
em 2), o braa ter uma egrarem ape
ercorrerão atem um lig(Fig. 8 – I
motor
r (Fig. 11 – A roda (Fig
Fig. 11 – Ita. Quando o
3
ada possui dnto de bicic
a (1), Pedes
tem 1) repde alumínio é possívelprojetada c
aço de supormontagem
enas com en
a canaleta (Fgeiro declivetens 3 e 5)
Item 1) é o g. 11 – Itetem 3) como servo girar
2
diâmetro decleta (Fig. 9
stal (2), Bra
presentada no em “L”,de se enco
com 3 itensrte da canalmais simp
ncaixes, sem
Fig. 10 – Ite. Ao final ), aguardan
que fará o em 2) que m espaço pr a roda, lev
3
2
e aproximad9 – Item 3)
aço de supor
no esquemánormalmenntrar em lojs (Fig. 10 –leta (Fig. 10ples e maism a necessid
tem 1) sempda canaleta
ndo a mesm
papel da mserá movimpara conter vará a bolin
1
4
damente 6m) encontrad
rte (3), Cana
ático (Fig. nte utilizadojas de mate– Itens 2, 30 – Item 3) s flexível, tdade de cola
pre do senti, as bolinha
ma transport
aquina da fmentada pel
uma bolinha para a pr
4
mm. Estas bdo facilmen
aleta (4).
8 – Itens o como canerial de con3 e 4), sende a canaletatodas as pas ou parafu
ido da esquas irão formtar uma a u
fábrica respolo servo, conha, que seróxima cana
1
bolinhas dente em uma
2 e 4) fointoneira emnstruções. Ado eles uma (Fig. 10 –eças foram
usos.
uerda para amar uma filauma para a
onsável porontem umae encaixaráaleta.
e a
i m A m –
m
a a a
r a á
A pinternas coforam utili
Figura
A p
Entre as dipedestal (Fpor uma roesta combi
primeira veortadas danzados 2 ped
a 12: Mini s
primeira veriferenças, esFig. 12 – Iteoda de isopinação é me
Figura
ersão da rodo forma àdestais (Fig.
servo motor
rsão da maqste último éem 2) para
por, com umenor, mais le
13: Módulo
oda foi conà pequena c. 10 – Item
quina, foi sué mais baratservir de ap
m revestimeeve e com u
o do Jogo da
3
nstruída comcavidade pa2) iguais ao
ubstituída pto e é mais fpoio. A primento lateral um visual m
a Fábrica em
1
m quatro cara carregaro da canalet
or um servofácil de manmeira versãde um pape
mais agradáv
m sua versã
camadas der a bolinha.a.
o motor mennusear neceão da roda telão fino (Fvel.
ão final.
2
e papelão, . Para servi
enor (Fig. 12essitando detambém foi Fig. 12 – Ite
sendo as 2ir de apoio,
2 – Item 1).e apenas um
substituídaem 3), pois
2 ,
. m a s
A cvisualizado
As ela se encada Fábrica
Umque não estencontradofunções. Poseja possív
4. Constr
A mRobô.
Figbolas na bo
No
representadlocomoverrestrição dvermelhas
Parseu robô programaç
O uavance até
construção do na Figura
funções lógarregue de s
apenas info
ma dificuldatão mais pre
o meios de rortanto, no
vel finalizar
rução da cé
meta foi con
gura 14: Umolsa do robô
Software ddo na Figur neste “mude não pod(Fig. 14 – I
ra fazer comdiretament
ção feita par
usuário podé o próxim
do módulo d13.
gicas para a e comunicaorme quand
de encontraesentes nas recompilar oultimo mêsa integraçã
élula do Mu
nstruir um
m exemplo ô)
do Mundo dura 14 por undo” apender andar nItem 3). O r
m que isto ae no códigra o robô est
de utilizar cmo cruzamen
do Jogo da F
movimentaar com a plado o faze-lo.
ada é que o versões atu
o Jogo, para deste proje
ão do módul
undo do Ro
modulo rob
do Mundo
do Robô o uum triangu
nas andandonas direçõerobô pode ta
aconteça, o ugo fonte dtá correta.
comandos pnto da mal
Fábrica foi
ação das boaca e contro.
software douais deste ma que seja aeto, estaremlo.
obô
bótico que r
do Robô (
usuário é caulo preto (o em cima es de ondeambém peg
usuário escdo software
para o robô lha azul na
concluída c
linhas foramla-la, neces
o Jogo da Fámesmo compadicionado a
mos em busc
repita o que
(com 4 par
apaz de cria(Fig. 14 –
da malha e existem par e soltar b
reve as linhe e compi
andar para a direção q
1
com sucesso
m adicionadsitando que
ábrica utilizpilador. Atéa DLL e suaa destes com
e está acon
edes, duas
ar comandoItem 1). Oazul (Fig.
paredes, repbolinhas (Fig
has de códigla-o novam
frente, queque estiver
2
o. Ele pode
das na DLLe o software
za alguns coé o momentoas chamadasmponentes,
ntecendo no
bolas no c
os para guiaO robô é c
14 – Item presentada g. 14 – Item
go dos movmente, para
e fará com apontando
4
2
3
ser
, para que e do Jogo
omponenteso não foi s de para que
Mundo do
chão e duas
ar um robô,apaz de se2), com apor linhas
m 4).
vimentos doa ver se a
que o robô(caso haja
o
s
, e a s
o a
ô a
espaço), oumesmo loc
Fig
Foidesenhada passando p
Parprojeto do para 2 serv
Fig
Os a girar ape16 – Item forma giraposição megraus ele continuam
u girar a escal.
gura 15: Cha
i criado um nesta mes
por cima da
ra a construmesmo lab
vos motores
gura 16: Serv
servos motnas 180 gra1) e uma tr
ando continediana e desgirará contente para a
12
squerda, que
assi do robô
robô capaz
sma superfímalha.
ução do chaboratório. O, e alguns fu
vo Motor d
tores aqui uaus, como prava limitadnuamente. Assa forma ptinuamente direita, ou u
1
e fará com
ô.
z de se locoície, a part
assi (Fig. 1O chassi é cfuros, que fo
esmontado.
utilizados fopadrão. Remdora (Fig. 16Assim, paraodemos conpara a esq
um sinal igu
que o robô
omover em utir de senso
5) do robôomposto de
oram utiliza
.
oram modifimovendo-se 6 – Item 2),a a sua utintrola-lo, asquerda, ou ual a 90 gra
ô gire 90° p
uma superfores de luz
ô foi utilizade uma peça ados para pa
icados intero encaixe d, o servo pelização, o p
ssim se envium sinal p
aus ele me m
1
para a esque
fície plana, gz que detec
do um chasde acrílico
assar o cabe
rnamente pade um potenerde o contrpotenciômeiarmos um s
para mais dmantem para
2
erda perman
guiado por ctam quand
ssi de sucao redonda coeamento.
ara que nãonciômetro inrole de rotaetro é fixadsinal para m
de 90 grausado.
necendo no
uma malhado ele esta
ata de outroom encaixe
se limitemnterno (Fig.ção e dessa
do em umamenos de 90s ele girará
o
a a
o e
m . a a 0 á
Fig
Par
foram pres
Tam(Fig.17 – Iserve para
Comutilizado nfixados uti
O crobô passapodemos s
O ereflexões. pelo sensodetectará a
A lquando o rmantendo-
gura 17: Rod
ra que o robsas com fios
mbém foramItem 3). Estvisualizaçã
mo suportena construçãlizando som
conjunto, dea sobre uma upor se a m
esquemáticoSe o Robô e
or de luz; ca baixa incid
lógica utilizrobô começ-o no rumo.
2
Rob
Chãdas (1), sens
bô possa ands apenas por
m utilizadostes foram utão do aluno,
e ao conjunão do módumente cola q
e sensor delinha preta
mesma é clar
o na Figuraestiver sobraso o robô
dência de lu
zada para aça a sofrer
bô
ão sores de luz
dar, foram fr motivo de
s um par detilizados pa como tamb
nto de sensulo do jogoquente.
luz e um La. Dependenra ou escura
a 17 demonre uma supe
esteja sobruz.
andar para fum desvio
3
z (2) e leds (
fixadas rode teste, assim
e sensores dara guiar o rbém para or
sores e ledso da fábrica
Led de altondo da quana e portanto
nstra a emierfície brancre uma linh
frente, foi aem sua traj
21
LinhPret
Rade L
(3).
das (Fig. 17m possibilita
de luz (Fig.robô em cimrientação do
s, foi utiliza (Fig. 10 –
o brilho, fointidade de lu se é uma li
issão de luzca, a luz refha preta, a
a partir de jetória, assi
2
2
Robô
Chã
ha ta
aios Luz
– Item 1) aando a troca
17 – Item 2ma da malhao próprio rob
zado o mes– Item 2). O
utilizado puz do led reinha preta o
z de um lefletirá na suluz não ser
2 sensores im corrigind
3
ô
ão
aos servo ma caso neces
2) e leds deha, pois a m
bô.
smo estilo dOs compone
para detectaefletida pelaou não.
ed e as duauperfície e srá refletida
capazes dedo instantan
3
motores, quessário.
e alto brilhoalha não só
de pedestalentes foram
ar quando oa superfície,
as possíveiserá captadae o sensor
e identificarneamente e
e
o ó
l m
o ,
s a r
r e
Já a lógica de girar a esquerda é um pouco mais complexa, pois de alguma forma os sensores devem identificar quando terminaram o giro. Para isso tomou-se a analise de estados aos quais os sensores passarão até chegar ao estado final de giro.
Inicialmente foi projetado um algoritmo em que 2 sensores ficam girando simetricamente sobre o eixo cruzamento das linhas guia (malha), notando-se cada estado em que é detectado que saiu de cima da linha e em seguida encontrou a outra linha. Entretanto está logica não mostrou eficiência pois exigia uma grande precisão no movimento do robô e na detecção dos sensores, que por estarem muito próximos ao cruzamento, acabavam por se perder nos estados.
Um segundo algoritmo foi desenvolvido, desta vez tomando como ponto de partida os 2 sensores ao redor da linha um pouco a frente do cruzamento. Desta maneira ao giro do robô, ambos os sensores passarão pelo mesmo trajeto, assim longe do cruzamento facilita a detecção dos estados. Porem não foi o suficiente para que o robô girasse perfeitamente. Mais detalhes sobre os algoritmos estão em anexo no documento.
Problemas encontrados: Durante o desenvolvimento, notou-se por mais que façamos correções, devido ao tamanho
do robô, atraso e variações em seus movimentos, as curvas não saem todas como esperado. Se considerarmos o ponto de partida exato como demonstrado nos algoritmos, eles normalmente funcionam, entretanto entre a execução de um e outro o estado final sofre variações e estas causam falhas de estados nos algoritmos seguintes.
Integração: Após o módulo construído, a integração com o software do Mundo Robô foi efetuada com
sucesso. A partir dos estudos feitos no início do projeto, o código desenvolvido para a Arduino esta apto a suprir todas as necessidades atuais de troca de informação entre o módulo e o computador, em paralelo com a DLL desenvolvida em C++ para o computador. As funções específicas para o funcionamento integrado com o Mundo Robô, como “Andar para Frente” e “Girar para Esquerda” de acordo com os algoritmos já apresentados, foram adicionados apenas na DLL, tomando controle sobre todo o processo.
No Software do Mundo Robô foi adicionado a DLL desenvolvida, e algumas chamadas de funções, dentro das funções onde o Robô andaria virtualmente, dessa forma enquanto o Robô virtual anda na tela, o jogo informa à DLL para fazer com que o robô físico ande para frente também, e a mesma se encarrega de controlar os motores e fazer as leituras dos sensores de acordo com as lógicas desenvolvidas, apenas informando passo a passo as ações que a Arduino deve executar.
A única mudança visível ao usuário do software do Mundo Robô, é que ao iniciar o software, uma mensagem é exibida na tela, informando se o módulo foi conectado ou não com sucesso ao computador. Dessa forma o Software funciona com ou sem a placa igualmente.
5. Dinâmicas de Aprendizado Com Usuários
Para a avaliação dos módulos foi proposto a execução de dinâmicas. Como o módulo do
Jogo da Fábrica não pôde ser completamente integrado ao software, em um primeiro momento foi conduzida uma dinâmica com o módulo do Mundo do Robô.
A dinâmica foi efetuada no dia 18/junho/2010, porém devido a grande frequência de provas da faculdade e de baixa frequência dos alunos neste período, a dinâmica foi efetuada com um grupo reduzido de alunos. A avaliação heurística participativa (AHP) (Muller et al, 1998) é uma técnica de inspeção participativa derivada da avaliação heurística (AH) de Nielsen (Nielsen e Mack, 1994). Esta avaliação teve como objetivo analisar a reação dos alunos com a integração da robótica ao software do Mundo do Robô.
Para a apresentação da Dinâmica, os algoritmos foram todos modificados para girar e andar apenas de acordo com um determinado tempo, em vista que não estava apto a seguir perfeitamente a malha desenhada em uma superfície.
Essas avaliações seguiram um questionário pré-impresso, e um roteiro pré-defino (anexo ao documento). Durante a dinâmica o aluno foi instruído dos comandos básicos para manipular o Robô, e lhe foi dado alguns desafios para andar com o robô, até um ponto especifico do “mundo” onde foi colocada uma bolinha virtual. Inicialmente o aluno testou os comandos apenas visualizando o resultado virtual no computador. Em seguida foi conectado o módulo robótico que instantaneamente tiveram uma surpresa agradável ao ver que ele se movimentava de acordo com seus comandos.
Após vencidos alguns desafios proposto pelo orientador da dinâmica, foi lhes entregue um pequeno questionário para conhecer um pouco do perfil dos alunos.
1Você sabe programar? ( )Sim ( )Não ( )Orientado Objeto ( ) Delphi
2É facil visualizar o funcionamento dos códigos implementados? ( )Muito difícil ( )Difícil ( )Intermediário ( )Fácil ( )Muito fácil
3Já está Familiarizado com programação? ( )Sim ( )Não
4Teve algum problema ao utilizar o Mundo Robô? ( )Sim ( )Não
5Recomendaria para quem esta começando? ( )Sim ( )Não
6Você já mexeu com robótica? ( )Sim ( )Não
7 Sugestões de melhorias/Observações do Usuário.
Questionário de Avaliação
Tabela 2. Questionário usado na condução da Avaliação Heurística Participativa
Algumas das sugestões dos participantes da dinâmica demonstraram que executando as
ações repetitivamente torna um pouco cansativo pelo fato do robô levar mais tempo para se locomover do que o robô virtual. Entretanto para que o robô fosse mais preciso em seus movimentos deveria ser ainda mais lento.
Outro ponto observado é que como o robô só gira para a esquerda (por motivos didáticos) os fios de energia e USB acabam se torcendo. Uma melhoria futura seria a utilização de uma bateria para fornecimento de energia e uma comunicação serial sem fio. Alunos afirmaram que se fosse possível analisar o percurso do robô seguindo uma malha física, facilitaria muito a o entendimento da programação dos códigos de movimentação a serem desenvolvidos.
6. Desafios Encontrados
Durante a fase de pesquisa do projeto, alguns desafios foram encontrados. Dentre eles podemos citar:
6.1. Material
Um dos objetivos desse projeto era demonstrar que, com materiais de baixo custo, era possível desenvolver uma estrutura robótica para auxiliar no Jogo da Fábrica. E de fato esse foi um dos desafios do projeto. Foram feitos testes com diversos tipos de materiais provenientes de reciclagem, mas os mesmos não apresentaram um resultado positivo para a montagem da canaleta. Posto isso, foi adquirido o perfil de alumínio em L por ter um baixo custo, que atendeu todos os requisitos para a criação da estrutura dos módulos robóticos. Em outras partes da montagem, foram usados isopor, reaproveitado de caixas de componentes eletrônicos, e as bolinhas foram doadas por uma biciletaria, mantendo assim o caráter de baixo custo do projeto.
6.2. Comunicação Serial
Para que o projeto funcionasse de um modo satisfatório, uma das partes mais importantes era a comunicação serial entre computador e placa Arduino. Foi difícil sincronizar os dois periféricos para que eles trabalhassem juntos de forma adequada. Mas esse foi um desafio superado. Por meio das pesquisas e testes executados na placa Arduino, foi possível chegar a um patamar de sincronismo que atendesse por completo as expectativas.
7. Outras informações
Desempenho Acadêmico do bolsista Durante este primeiro período de trabalhos e pesquisas, o aluno teve um aproveitamento acadêmico extremamente satisfatório, mantendo seu coeficiente de rendimento acima da média da sua turma e ocupando o segundo lugar dentre sessenta e quatro alunos.
8. Trabalhos futuros
Em uma continuação a este projeto, pode ser desenvolvido novas versões do módulo do robô para que supere os desafios encontrados e apontados neste projeto.
O Jogo da Fábrica após recompilado com as modificações de integrações com a DLL, pode ser feito uma dinâmica para avaliação de seu impacto no auxilio ao aprendizado. Para que o módulo represente toda uma fábrica, a célula desenvolvida neste projeto pode ser replicada e conectada uma nas outras em série formando uma grande linha de produção.
9. Conclusão
Durante o primeiro semestre o bolsista conseguiu atender a todo o cronograma para ele previsto. A placa foi estudada e vários exemplos de funcionamento foram construídos e testados. Foi desenvolvida uma DLL capaz de controlar as funções da Arduino através da comunicação serial, e possível de se integrar a diversas outras linguagens. Em simultâneo foi desenvolvido um código para a Arduino para que entenda as instruções enviadas pela DLL.
Durante parte do primeiro semestre e o segundo semestre o bolsista construiu 2 módulos robóticos para a integração com os 2 Softwares de apoio ao aprendizado “Jogo da Fábrica” e “Mundo do Robô” respectivamente.
Ao final foi aplicada uma dinâmica para a avaliação do módulo integrado ao “Mundo do Robô”, demonstrando que o módulo tem um grande potencial, e poderá dar continuidade em trabalhos futuros.
Este é um importante projeto que demonstrou grande satisfação na pesquisa do bolsista, a desenvolver novas técnicas para facilitar o aprendizado das pessoas de qualquer nível técnico.
10. Referências Bibliográficas
• Arduino. http://www.arduino.cc/ (último acesso em 14/abril/2009). • Tato. http://www.tato.ind.br/ (último acesso em 14/abril/2009) • BARANAUSKAS, Maria Cecilia Calani, GOMES NETO, N. G., BORGES, M. A. F.
Learning at Work through a Multi-User Synchronous Simulation Game. International Journal Of Continuing Education And Life Long Learning. , v.11, 2001.
• BARANAUSKAS, Maria Cecilia Calani, GOMES NETO, N. G., BORGES, M. A. F. Gaming at work: a learning environment for synchronized manufacturing. Computer Applications In Engineering Education. , v.8, p.162 - 169, 2000.
• Borges, M. A. F. Um processo para análise da interação em sistemas colaborativos mediados por ferramentas computacionais para comunicação textual. Tese de doutorado em Ciência da Computação. Universidade Estadual de Campinas, UNICAMP, Campinas, Brasil. 2004.
• BORGES, M. A. F. Avaliação de uma metodologia alternativa para aprendizagem de programação In: Workshop de Ensino de Informática (WEI), 2000, Curitiba. Anais do XX Congresso Nacional da Sociedade Brasileira de Computação. Curitiba: Editora Universitária Champagnat, 2000. v.1.
• CHELLA, M. T., Ambiente de Robótica Educacional com Logo In: XXII Congresso da Sociedade Brasileira de Computação - SBC2002, Florianópolis, SC, 2002.
• DAFE. Dinamização da aprendizagem e formação em empresas. Grupo de pesquisas do CNPq. Disponível em http://www.nied.unicamp.br/~dafe .
• Ramos, J.J.G., Neves Jr., O.R., d'ABREU, J. V. V. . Iniciativa para Robótica Pedagógica Aberta e de Baixo Custo para Inclusão Social e Digital no Brasil. In: VIII SBAI - Simpósio Brasileiro de Automação Inteligente, 2007, Florianópolis. Anais do VIII SBAI - Simpósio Brasileiro de Automação Inteligente, 2007. v. 01. p. 01-06.
• MULLER, M.J.; MATHESON, L.; PAGE, C.; GALLUP, R. Participatory Heuristic Evaluation. Interactions, september + october, 1998.
• NIELSEN, J.; MACK, R.L. Usability Inspection Methods, Wiley, New York, EUA, 1994, apud Muller et al., 1998.
Fig A ló
está contidonde o robpróximo pase deve and
Entsituações 3que o robôlinha, portasua rota. Oesquerdo.
Asssimultanea
Figesquerda.
AL
gura 18: Rep
ógica utilizda no relaciobô se enconasso (situaçdar até atingtretanto o m3 e 4 são açô acabou se anto desligaO mesmo v
sim é deteamente.
gura 19: Re
LGORITM
presentação
ada para guonamento entra paradoção 2) é andgir a situaçã
movimento dções que detdesviando pando o motovale para a
ectado a si
epresentação
MOS DE M
da lógica d
uiar o robô antre 5 possísobre um
dar até que ão final, onddo robô nãotectam um dpara a direitor esquerdosituação 4,
ituação 5
o da lógica
ANEXO IMOVIME
dos sensores
ao andar paríveis situaçcruzamentoos sensoresde se encono é preciso, desvio do rta que foi d
o o robô far, que corrig
quando am
a dos senso
I ENTAÇÃO
s e motores
ra frente (Fiões. A situao e os 2 ses detectem qntrará sobre
podendo seobô e corrig
detectado perá uma leve ge a rota ca
mbos os se
ores e moto
O DO ROB
para a ação
ig. 18) sem ação 1 indicnsores deteque saíram a próximo ce desviar doge sua rota.elo sensor es
curva para aso o robô
ensores det
ores para a
BÔ
o de andar p
se desviar dca o início dectam a linhda linha incruzamentoo percurso, . Na situaçãsquerdo ao
a a esquerdase desvie p
tectarão a
a ação de g
para frente.
do caminhodo processoha preta. Oicial. Então
o. portanto as
ão 3, vemospassar pela
a corrigindopara o lado
linha final
girar para a
o o O o
s s a o o
l
a
Fazpois primepara monta
Podesquerda aque um do2 e 3, em aguardandoambos os spela situaçbranca e en
O f
movimentasensores pade estado. estrutura, n
Parreformulaçmeio físico
Figa esquerda
Nes
movemos aa lógica deposicionadrapidament
Porsobre o cruque o robôterminando
zer com queeiramente foar o algoritmdemos ver qacionando cos sensores d
ambas o mo o outro lasensores estção 5 ou 6 antrando sob
funcionamea com tantaassavam muOu pelo fa
não é rápidora solucionção da parteo.
gura 20: Repa.
ste segundoa posição doe andar parados a frentete. r outro ladouzamento dô ao encono onde desej
e o robô viroi estudada mo. que na situaada motor edetectará qu
motor relativado detectartão fora da até chegar a
bre a linha p
ento deste aa precisão auito próximato de que o o suficientnar o proble física, es
presentação
o algoritmoos sensores a frente se me, eles se m
o, como estda malha, fontrar a linhaejamos.
re a esquerda lógica da
ação 1, o robem um sentue saiu de cvo ao lado r a saída da linha preta.a situação 7reta.
algoritmo nao ponto de
mo ao eixo do tempo dete para alterlema, tendote algoritm
da segunda
desenvolvpara a fren
manteve a mmovimentam
ta lógica seoi acrescentaa, continue
da é um proa figura 19,
bô se encontido, assim cima da linhdo sensor
a linha tamb. O mesmo 7, porem pa
não foi come detectar todo cruzamene resposta drnar entre oo em vista
mo foi totalm
a lógica dos
vido para gunte do robô, mesma, ficam mais, de
e inicia comado um pasandando p
cesso que eem que cad
ntra sobre o sem sair doha antes do que detecto
bém, desta fprocedimen
artindo de a
mplementadoodas as situnto, assim ndo motor, ds estados pra que não mente modi
s sensores e
uiar o robôficando for
ando até maetectando um
m o eixo dosso extra napor mais alg
exigiu um pda situação
cruzamentoo eixo. Em soutro, repre
ou a saída dforma atinginto ocorre dambos os se
o, pois o rouações, muitnão detectandevido ao serevistos.
havia matificado para
motores pa
a girar parra do eixo deais eficiente,ma movime
o robô (posa lógica de aguns miliss
pouco mais possível fo
o e inicia o seguida con
resentado nada linha paindo a situada situação ensores sain
obô é grandtas vezes e
ndo algumaseu tamanho
terial dispoa tentar se
ara a ação d
ara esquerdade rotação. D, pois com entação do
sição entre andar para segundos, d
de atenção,oi analisada
giro para anstataremosas situaçõesra de girar,
ação 4 onde4 passando
ndo da área
de e não sem testes oss mudançaso e peso da
onível paraadaptar ao
de girar para
a (Fig. 20),Desta formaos sensoresrobô mais
as 2 rodas)frente, para
dessa forma
, a
a s s , e o a
e s s a
a o
a
, a s s
) a a
ANEXO II ROTEIRO PARA A CONDUÇÃO DA AVALIAÇÃO HEURÍSTICA
PARTICIPATIVA
Roteiro para Experimento de Avaliação da Interface do Sistema Gene
1. Para realizar este experimento, recomenda-se que os aprendizes que efetuarão o teste do sistema Mundo Robô estejam organizados em duplas.
2. Indicar que o teste é do produto e não das pessoas que o farão (testar uma proposta para o uso do Mundo Robô).
3. Indicar que os aprendizes podem desistir a qualquer momento.
4. Apresentar o que está na sala: computador.
5. Fazer uso do “pensamento alto” (sugestões), pois todo pensamento é importante e pode ser usado para melhorias da interface.
6. Explicar que durante o experimento não haverá ajuda e que todas as dúvidas serão sanadas ao final do teste.
7. Explicar o que é o Mundo Robô.
8. Perguntar se existem dúvidas. Iniciar o exercício.
9. Conclusão das observações:
9.1. Explicação dos objetivos da observação;
9.2. Resposta a qualquer questão;
9.3. Discussão de qualquer coisa interessante que foi percebida, pedindo explicações: Utilizar o questionário de avaliação.
10. Avaliar os resultados obtidos.
OBS: Observar o comportamento dos usuários durante a dinâmica e anotar informações relevantes.