SlideShare uma empresa Scribd logo
Departamento de Electr´onica, Telecomunicac¸˜oes e Inform´atica
Curso: [8240] Mestrado Integrado em Eng. de Computadores e Telem´atica
Disciplina: [47137] Introdu¸c˜ao `a Eng. de Computadores e Telem´atica
Ano lectivo: 2012/2013
Planeamento de uma prova no concurso
Robˆo Bombeiro
Autores:
[68535] Bruno Silva
[68799] Rui Oliveira
Turma/Grupo:
T5B / Pr´atica 3
Docentes:
Andr´e Z´uquete
Jo˜ao Barraca
Data:
19 de Janeiro de 2013
Resumo:
Pretende-se atrav´es deste relat´orio demonstrar sob forma escrita, um estudo
preparat´orio, sem quaisquer tipos de testes pr´aticos, do uso do robˆo DETI PIC
desenvolvido pelo Departamento de Eletr´onica, Telecomunica¸c˜oes e Inform´atica
da Universidade de Aveiro, no concurso ”Robˆo Bombeiro”.
1
´Indice
2
0.1 Introdu¸c˜ao
Como sabemos, um robˆo ´e um dispositivo, ou conjunto de dispositivos, eletro-
mecˆanicos ou biomecˆanicos capazes de realizar uma determinada funcionalidade
de forma independente, para isso ter´a de ser pr´e-programado, ou ent˜ao controlado
por um ser humano. Primordialmente os robˆos foram programados para desen-
volver trabalhos de baixa complexidade, como por exemplo, deslocarem-se sobre
superf´ıcies planas, interagir com obst´aculos, entre outros. Atualmente, os robˆos
realizam tarefas muito completas, e em muitos dos casos substituindo o trabalho
humano. Embora, nem sempre se tira partido de todas as capacidades do robˆo.
Neste relat´orio pretendemos planear e elaborar um algoritmo que nos permitir´a
a participa¸c˜ao do robˆo utilizado nas aula de Introdu¸c˜ao `a Engenharia de Compu-
tadores e Telem´atica (DETI PIC1
) no concurso ”Robˆo Bombeiro”.
Mais `a frente iremos mostrar as principais caracter´ısticas deste robˆo, e alguns
dos equipamentos e materiais que nos s˜ao facultados para conseguir participar
neste concurso. Para a programa¸c˜ao de robˆo utilizando um software, tamb´em este
desenvolvido pelo DETI, chamado DETInchanting criado a partir de linguagem
JAVA e C++ e adaptado do Enchanting, desenvolvido para robˆos da LEGO2
.
Neste caso, necessit´amos de ter conhecimentos b´asicos de programa¸c˜ao em JAVA,
para conseguir testar as capacidades do robˆo, atrav´es da implementa¸c˜ao blocos
que permitem executar opera¸c˜oes do tipo: if... else...; forever... ; repeat until... ;
entre outros.
Ambicionamos com este relat´orio, apresentar um algoritmo v´alido para uma
possivel participa¸c˜ao do robˆo DETI PIC (embora com algumas adapta¸c˜oes) no
concurso ”Robˆo Bombeiro”, organizado pelo Institulo Polit´ecnico da Guarda. Este
concurso realiza-se desde o ano de 2003, na cidade da Guarda
O objetivo deste concurso consiste em descobrir uma vela num labirinto (igual
para todos os robˆos) e apag´a-la (mas n˜ao de qualquer forma!). O local de partida
do robˆo no labirinto pode ser fixo ou vari´avel, o local da vela ´e vari´avel dentro
de certo limites. A classifica¸c˜ao final ´e calculada tendo em conta o tempo gasto a
encontrar e apagar a vela e um conjunto vari´avel de b´onus e penalidades.
1
Desenvolvido pelo Departamento de Eletr´onica, Telecomunica¸c˜oes e Inform´atica - UA
2
Empresa conceituada no fabrico de brinquedos, e atualmente no desenvolvimento de robˆos.
3
0.2 Descri¸c˜ao do problema
Pretendemos atrav´es deste relat´orio, tal como fis´amos na sec¸c˜ao anterior, preparar
um algoritmo v´alido, para uma poss´ıvel participa¸c˜ao do nosso robˆo no concurso
”Robˆo Bombeiro”, organizado pelo Institulo Polit´ecnico da Guarda.
Para que o nosso robˆo DETI PIC possa participar no presente concurso, ter´a
que possuir algumas adapta¸c˜oes que iremos demonstrar na pr´oxima sec¸c˜ao.
De seguida iremos enumerar os principais t´opicos que iremos defender nestre
relat´orio.
• Inicialmente o robˆo ser´a colocado num local pr´e-definido do labirinto. O juri
do concurso ao precionar o bot˜ao verde, o programa ser´a inicializado.
• O robˆo ter´a que percorrer as paredes do labirinto at´e encontrar um vela que
se encontrar´a no interior de um dos quartos.
• Quando o robˆo encontrar a vela, ter´a que a apagar utilizando para um dos
mecanismo de extin¸c˜ao existentes. Na pr´oxima sec¸c˜ao iremos descrever o
m´etodo que utiliz´amos.
• Tentaremos sumariar as op¸c˜oes base existentes e indicar as que s˜ao poss´ıveis
de explorar, neste concurso, com o robˆo DETI PIC e discutir as vantagens e
desvantagens das escolhas feitas.
• Programar, usando o DETInchanting, blocos de instru¸c˜ao para cada estado
(e blocos acess´orios ´uteis para v´arios estados).
Para al´em do problema acima descritos, pretendemos tamb´em adquirir alguns
dos conhecimentos introdut´orios do funcionamento e programa¸c˜ao da rob´otica uti-
lizando para isso o DETInchanting, programa este que iremos abordar mais `a
frente. Dado que nos foi imposto a realiza¸c˜ao deste relat´orio utilizando a lingua-
gem tipo LATEX, pretendemos tamb´em desenvolver as nossas competˆencias a n´ıvel
desta linguagem, alargando assim os nossos conhecimentos j´a adquiridos em aulas
anteriores.
4
0.3 Aparelhagem e equipamento
0.3.1 Robˆo DETI PIC
A nossa base de trabalho ´e o robˆo DETI PIC. Este robˆo ´e constitu´ıdo por dois
motores DC3
sem realimenta¸c˜ao, trˆes sensores de distˆancia frontais cobrindo um
ˆangulo de aproximadamente 45 graus para cada lado do robˆo, cinco sensores de
brilho na parte inferior do robˆo e quatro led’s na parte superior. O robˆo disp˜oe
ainda de dois bot˜oes, um interruptor e uma porta USB. Todo este robˆo foi de-
senvolvido de forma pr´atica e intuitiva `a introdu¸c˜ao `a programa¸c˜ao deste tipo de
m´aquinas. Para fazer o upload entre o robˆo e o computador utiliz´a-mos um cabo
USB4
2.0.
Figura 1: Robˆo DETI PIC
Devido ao facto de o nosso robˆo n˜ao possuir um equipamento que nos permi-
tir´a extingir a vela, decidimos utilizar uma ventoinha que ir´a ”apagar”a vela. Para
al´em deste acr´escimo, iremos adicionar ao nosso robˆo um detetor de infravermelhos
que nos ir´a permitir detetar a vela acesa, teremos neste caso de ter especial aten¸c˜ao
`a direcionalidade da dete¸c˜ao dos infravermelhos (unidirecionalidade vs. ominidire-
cionalidade) e a existˆencia de interferˆencias no processo de dete¸c˜ao causadas pelo
ambiente da prova (luz, calor, etc.).
O nosso robˆo possui dois bot˜oes (preto e vermelho), mas neste caso para a
3
Corrente cont´ınua
4
Universal Serial Bus
5
participa¸c˜ao neste concurso, iremos considerar que o preto ser´a verde (que ir´a
permitir o robˆo iniciar o seu percurso).
0.3.2 Componentes adicionais ao robˆo DETI PIC
• Ventoinha como sistema de extin¸c˜ao da chama da vela:
Ventoinha simples, com um pequeno motor de 12v.
Figura 2: Ventoinha com motor de 12v.
• Detector de chama por Infravermelhos (IV)
Detector de Chama Triple IR cs-tie-l100. Este detector usa 3 sensores que
medem 3 diferentes bandas de energia, emitidas a partir de chamas.
Figura 3: Sensor de IV
6
0.3.3 Software DETInchanting
O programa usado para a programa¸c˜ao de instru¸c˜oes a dar ao robˆo neste trabalho
foi o DETInchanting, uma adapta¸c˜ao do original Enchanting usado para progra-
mar robˆos da LEGO. Este interface foi desenvolvido na Universidade de Aveiro
com a inten¸c˜ao de facilitar a programa¸c˜ao dos robˆos utilizando um interface gr´afico
que se baseava em encaixes de blocos de c´odigo JAVA, na Figura 2 est´a represen-
tada o ambiente de trabalho deste programa. Este sofware usa um paradigma
gr´afico do tipo Scratch5
.
Figura 4: Ambiente do DETInchanting.
5
S˜ao interfaces gr´aficos que permitem que programas sejam criado atrav´es da sobreposi¸c˜ao de
blocos, tendo na sua base linguagens de programa¸c˜ao.
7
0.3.4 Labirinto e respectivos constituintes
O labirinto, na sua base tem dimens˜oes quadradas (248cm x 248cm) formado por
4 quartos e corredores com uma fisionomia bem conhecida.
Cada quarto possui apenas uma porta e duas delas, podem, opcionalmente,
existir em dois locais distintos. O ch˜ao do labirinto ´e fundamentalmente preto,
mas podem existir algumas ´areas de cor vermelha, azul ou verde (n˜ao fixas). As
entradas de cada quarto (portas) est˜ao sinalizadas por uma linha branca.
A ´area de partida padr˜ao ´e uma ´area circular de cor branca situada num ˆangulo
de um corredor. Os robˆos s˜ao colocados nesta ´area pelo seu dono, com a orienta¸c˜ao
que desejarem; o in´ıcio da prova d´a-se quando um dos ju´ızes carrega no bot˜ao verde
do robˆo. O labirinto possui paredes cuja altura n˜ao pode ser excedida por parte
alguma dos robˆos, para impedir que os mesmos possam descobrir a vela observando
por cima das paredes.
Figura 5: Esquema base do labirinto.
8
A ´area padr˜ao de partida dos robˆos ´e o c´ırculo marcado com a letra H. As
´areas sombreadas s˜ao meros exemplos de zonas onde o ch˜ao pode n˜ao ser preto.
As linhas brancas nas entradas dos 4 quartos n˜ao s˜ao assinaladas (est˜ao por baixo
das legendas que indicam que as portas possuem uma largura de 46 cm). Ao
contr´ario do que o diagrama sugere, o fundo tem normalmente a cor preta.
9
0.4 Procedimento
Para uma melhor interpreta¸c˜ao da nossa proposta de procedimento, decidimos
divir esta sec¸c˜ao em 2 subsec¸c˜oes descritas como ”Contornar paredes”, ”Entrar no
quarto, encontrar a vela e apag´a-la”.
0.4.1 Contornar paredes
O programa ir´a come¸car com o j´uri a pressionar o bot˜ao verde (que neste caso,
no nosso robˆo ser´a o preto). De seguida iremos introduzir um ciclo forever e no
interior desse ciclo iremos inserir:
• Dois blocos correspondentes aos motores em movimento para a frente com
velocidade igual a 60 unidades de velocidade.
• Num ciclo if se o sensor de distˆancia LEFT estiver entre 15 cm e 20 cm, ent˜ao
ser´a executado um bloco repeat until com a condi¸c˜ao ”Measure range dis-
tance from Left View sensor in cm (menor) 15”, ent˜ao o motor es-
querdo est´a parado enquanto que o motor direito continuar´a em movimentos
at´e que a condi¸c˜ao se deixe de verificar.
• Num novo ciclo if com a condi¸c˜ao ”Measure range distance from Left
View sensor in cm (menor) 15”, caso ela se verifique ent˜ao ir´a proceder
de forma an´aloga relativamente ao bloco anterior, ou seja, ser´a introduzido
um ciclo repeat until ”Measure range distance from Left View sensor
in cm (maior) 15”, caso esta condi¸c˜ao se verifique ent˜ao o motor direito
estar´a parado enquando que o esquerdo se encontrar´a em movimento `a ve-
locidade de 60.
• Por fim, no interior de um ciclo if iremos introduzir a condi¸c˜ao ”Measure
range distance from Left View sensor in cm (maior) 20”. De seguida
iremos introduzir um bloco ”reset timer”e de seguinda um ciclo repear until
com a condi¸c˜ao ”timer (maior) 600”, ent˜ao neste caso o motor direito e
esquerdo ir˜ao mover-se para frente embora com velocidade diferentes (isto
ter´a que acontecer devido ao facto do contorno no aresta da parede). Se-
guidamente introduzimos novamente um ciclo repeat until com as seguintes
10
condi¸c˜oes ”Measure range distance from Left View sensor in cm
(maior) 12” and ”Measure range distance from Left View sensor in
cm (menor) 20”, nesta situa¸c˜ao o motor direito ir´a mover-se `a velocidade
de 60 enquanto que o esquerdo ir´a mover-se `a velocidade de 95.
O resultado pretendido ´e o que se encontra esquematizado na figura abaixo.
Figura 6: Esquema do cortono da parede.
11
0.4.2 Entrar no quarto, encontrar a vela e apag´a-la
• Entrar no quarto:
A parte do c´odigo relativa ao robˆo entrar no quarto ´e algo simples, uma vez
que o nosso robˆo esta programado para seguir as paredes ”a esquerda”ele
tem um if presente que quando o sensor far left detectar uma linha enquanto
que o far right ainda n˜ao encontrou ele sabe que est´a a entrar num quarto.
Figura 7: Esquema da entrada do robˆo no quarto. Legenda: A linha a tracejado
representa a linha branca que o robˆo ter´a que detectar.
12
• Encontrar a vela:
Assim que o robˆo entra no quarto ele liga o seu sensor infravermelhos e testa
a presen¸ca da vela, isto ´e feito atrav´es de uma adapta¸c˜ao nossa que passa
pela cria¸c˜ao de um bloco vazio do tipo sensing uma vez que o sensor n˜ao
existe de verdade. Caso o robˆo n˜ao sinta a presen¸ca da vela ela vai entrar no
else desse mesmo if e vai ordenar o robˆo a andar para tr´as por forma a corrigir
a sua posi¸c˜ao e voltar a o corredor onde tem ainda mais uma instru¸c˜ao que
o faz andar para a frente ate passar a entrada para o quarto por forma a n˜ao
voltar a entrar no mesmo quarto. Caso o robˆo cinta a presen¸ca da vela ele
vai voltar a activar o bloco de seguir as paredes ate que os seus sensores de
brilho centrais detectem a linha que existe a volta da vela.
Figura 8: Robˆo detecta vela utilizando para isso o um sensor de IV.
13
• Apagar a vela:
Nesta sec¸c˜ao mais uma vez vamos usar um bloco criado por n´os para o
efeito de ligar o motor que activa a ventoinha uma vez o nosso robˆo n˜ao
ter fisicamente uma ventoinha. Quando o robˆo se encontrar no estado onde
acaba na sec¸c˜ao anterior, isto ´e, ter encontrado a linha que contorna a vela
ele deve ligar a ventoinha por 2 segundo e ap´os isso deve desliga-la.
Figura 9: Robˆo apagar a vela utilizando a ventoinha.
14
0.5 Resultados
0.5.1 Contornar paredes
O algoritmo que se apresenta de seguida foi elaborado atrav´es do DETInchanting
e pretende dar resposta a esta etapa da solu¸c˜ao do nosso problema.
Figura 10: Contornar a parede do labirinto.
15
0.5.2 Entrar no quarto, encontrar a vela e apag´a-la
O algoritmo que se apresenta de seguida foi elaborado atrav´es do DETInchanting
e pretende dar resposta a esta etapa da solu¸c˜ao do nosso problema.
Figura 11: Entrar no quarto, encontrar a vela e apag´a-la.
16
0.5.3 Diagrama de estados
Encontra-se representado na figura seguinte um diagrama que pretende demonstrar
a alternˆancia de estados presente neste conjunto de algoritmos.
Figura 12: Diagrama de estados
17
0.6 An´alise dos Resultados
Dado que n˜ao nos foi poss´ıvel testar os nossos programas, n˜ao teremos hip´otese
de analisar os resultados da´ı provenientes. Contudo, esperamos que os resultados
estejam correctos de modo a possibilitarem uma participa¸c˜ao no concurso desti-
nado.
18
0.7 Conclus˜oes
Chegado ao final deste relat´orio, ´e nossa inten¸c˜ao efetuar uma retrospetiva da
evolu¸c˜ao do mesmo, tendo em conta os problemas que nos depar´amos, objetivos,
e principais metodologias utilizadas.
Pensamos que os resultados que apresentamos neste relat´orio s˜ao v´alidos para
uma poss´ıvel participa¸c˜ao no concurso “Robˆo Bombeiro”, desenvolvido pelo IP
de Braga. Algumas das op¸c˜oes que tom´amos para que o nosso robˆo DETI PIC
conseguisse participar neste concurso foram as introdu¸c˜ao de:
• Sensor de infravermelhos: este sensor permitiu detetar a vela quando o
robˆo entrava em cada quarto (pois s´o aqui ´e que era acionado), n˜ao sabemos
qual o desempenho do sensor que decidimos utilizar, mas estamos convictos
que (caso test´assemos) iria resultar, embora com in´umeros problemas em
rela¸c˜ao `a dire¸c˜ao, que s´o poder˜ao ser corrigidos ap´os v´arios testes realizados.
• Ventoinha com motor: quando o sensor de IV detetar a vela ent˜ao a
ventoinha ser´a acionada de modo a extinguir a vela durantes algum tempo.
Poder´ıamos ter utilizado uma bomba de ´agua que seria acionada ap´os a
deten¸c˜ao da chama, mas neste caso ter´ıamos que ter aten¸c˜ao `a poss´ıvel da-
nifica¸c˜ao que poderia causar.
Tent´amos, na medida do poss´ıvel, que o robˆo voltasse (ap´os apagar a vela) a
iniciar o seu percurso, contornando sempre as paredes existentes `a sua direita, e
verificar se a vela estaria mesmo extinta naquele quarto, e caso n˜ao acontecesse
voltasse a acionar o mecanismo de extin¸c˜ao, deste modo o robˆo tentaria corrigir
uma eventual falha na efic´acia do mecanismo.
Durante todo o relat´orio n˜ao abord´amos um assunto de poss´ıvel ocorrˆencia: a
existˆencia de escadas. Neste caso o robˆo teria subir ou descer as escadas, contor-
nando de igual forma as paredes, pensamos que o robˆo DETI PIC n˜ao iria proceder
de forma eficaz pois precisaria de um modo de desloca¸c˜ao diferente, por exemplo
tipo caterpillar.
Sumariamente, ach´amos este trabalho muito interessante no ponto de vista de
uma poss´ıvel participa¸c˜ao num concurso deste tipo, e tamb´em permitiu-nos abrir
novos horizontes em rela¸c˜ao `a rob´otica e ao que nos espera ao longo do nosso curso,
19
que agora come¸ca. Em rela¸c˜ao `a produ¸c˜ao destes trabalho em linguagem LATEX,
ach´amos ter sido uma mais-valia, tanto a n´ıvel pessoal como a n´ıvel acad´emico
20
Bibliografia
[1] A.V.C.M. Z´uquete , Site da Unidade Curicular - Introdu¸c˜ao `a Engenharia de
Computadores e Telem´atica (10 Janeiro 2013). Diapositivos: robˆo DETI PIC
[Online] Available: http://www.ieeta.pt/ avz/Aulas/IECT/12-13/docs/6-
robo.pdf
[2] J. Barraca, D. Gomes, A. Z´uquete , Site da Unidade Curicu-
lar - Introdu¸c˜ao `a Engenharia de Computadores e Telem´atica (12
Dezembro 2012). Gui˜ao da aula pr´atica 9 [Online] Available:
http://www.ieeta.pt/ avz/Aulas/IECT/12-13/docs/projeto.pdf
[3] IPG, Robˆo Bombeiro 2012 Rules (12 Dezembro
2012). Fire-Fighting Robot Contest[Online] Available:
http://robobombeiro.ipg.pt/RB/pt/RulesRB2012.pdf
21

Mais conteúdo relacionado

Mais procurados

Shellscript
ShellscriptShellscript
Shellscript
tarcisioti
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
Robson Ferreira
 
Arduino Como Ferramenta De Estudos da Mecânica Clássica
Arduino Como Ferramenta De Estudos da Mecânica ClássicaArduino Como Ferramenta De Estudos da Mecânica Clássica
Arduino Como Ferramenta De Estudos da Mecânica Clássica
Daniel Mendes
 
Game programming
Game programmingGame programming
Game programming
Fabio Fonseca
 
Apostila pascal
Apostila pascalApostila pascal
Apostila pascal
Wesley Bruno
 
Linguagem logo
Linguagem logoLinguagem logo
Linguagem logo
wanluli
 
Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linha
Isvaldo Souza
 

Mais procurados (7)

Shellscript
ShellscriptShellscript
Shellscript
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
Arduino Como Ferramenta De Estudos da Mecânica Clássica
Arduino Como Ferramenta De Estudos da Mecânica ClássicaArduino Como Ferramenta De Estudos da Mecânica Clássica
Arduino Como Ferramenta De Estudos da Mecânica Clássica
 
Game programming
Game programmingGame programming
Game programming
 
Apostila pascal
Apostila pascalApostila pascal
Apostila pascal
 
Linguagem logo
Linguagem logoLinguagem logo
Linguagem logo
 
Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linha
 

Semelhante a Planeamento de uma prova no concurso - Robô Bombeiro

Curso Scratch 2015
Curso Scratch 2015Curso Scratch 2015
Curso Scratch 2015
Pedro Henrique Cacique Braga
 
Robótica com software e hardware livres
Robótica com software e hardware livresRobótica com software e hardware livres
Robótica com software e hardware livres
Marcelo Laranjeira Melo
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
MarcusHenriqueTeixeira
 
programar com Scratch.pdf
programar com Scratch.pdfprogramar com Scratch.pdf
programar com Scratch.pdf
mswebertech
 
Scratch-jeito_divertido_de_programar (1).pdf
Scratch-jeito_divertido_de_programar (1).pdfScratch-jeito_divertido_de_programar (1).pdf
Scratch-jeito_divertido_de_programar (1).pdf
osiasdebarrosanuncia
 
oficina de robótica educativa plano de curso
oficina de robótica educativa plano de cursooficina de robótica educativa plano de curso
oficina de robótica educativa plano de curso
Rodrigo Moraes Barbosa
 
WRVA 2015
WRVA 2015WRVA 2015
Apostila programacao
Apostila programacaoApostila programacao
Apostila programacao
Marcio Allison
 
Robótica - Lego
Robótica - LegoRobótica - Lego
Robótica - Lego
Colégio Cerp
 
Robô Seguidor de Linha
Robô Seguidor de LinhaRobô Seguidor de Linha
Robô Seguidor de Linha
Cida Luna
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
Antonio Costa aka Cooler_
 
Arduino
ArduinoArduino
Aula 1 lpa
Aula 1   lpaAula 1   lpa
Software Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaSoftware Livre para Aplicações em Robótica
Software Livre para Aplicações em Robótica
Linux User Goup Alagoas
 
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDKTDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
tdc-globalcode
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
Ricardo Rufino
 
Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012
Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012
Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012
Projeto Uca Na Cuca
 
Sindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaSindpd introducao arduinodomotica
Sindpd introducao arduinodomotica
Desiree Santos
 
Manual lab ino
Manual lab inoManual lab ino
Manual lab ino
Chellton Almeida
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
Campus Party Brasil
 

Semelhante a Planeamento de uma prova no concurso - Robô Bombeiro (20)

Curso Scratch 2015
Curso Scratch 2015Curso Scratch 2015
Curso Scratch 2015
 
Robótica com software e hardware livres
Robótica com software e hardware livresRobótica com software e hardware livres
Robótica com software e hardware livres
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
 
programar com Scratch.pdf
programar com Scratch.pdfprogramar com Scratch.pdf
programar com Scratch.pdf
 
Scratch-jeito_divertido_de_programar (1).pdf
Scratch-jeito_divertido_de_programar (1).pdfScratch-jeito_divertido_de_programar (1).pdf
Scratch-jeito_divertido_de_programar (1).pdf
 
oficina de robótica educativa plano de curso
oficina de robótica educativa plano de cursooficina de robótica educativa plano de curso
oficina de robótica educativa plano de curso
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Apostila programacao
Apostila programacaoApostila programacao
Apostila programacao
 
Robótica - Lego
Robótica - LegoRobótica - Lego
Robótica - Lego
 
Robô Seguidor de Linha
Robô Seguidor de LinhaRobô Seguidor de Linha
Robô Seguidor de Linha
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Arduino
ArduinoArduino
Arduino
 
Aula 1 lpa
Aula 1   lpaAula 1   lpa
Aula 1 lpa
 
Software Livre para Aplicações em Robótica
Software Livre para Aplicações em RobóticaSoftware Livre para Aplicações em Robótica
Software Livre para Aplicações em Robótica
 
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDKTDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012
Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012
Uso do Hardware Livre Arduino em Ambientes de Ensino-aprendizagem - JAIE2012
 
Sindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaSindpd introducao arduinodomotica
Sindpd introducao arduinodomotica
 
Manual lab ino
Manual lab inoManual lab ino
Manual lab ino
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 

Mais de Rui Oliveira

Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024
Rui Oliveira
 
Regulamento Interno - CRM Outeiro Grande
Regulamento Interno  - CRM Outeiro GrandeRegulamento Interno  - CRM Outeiro Grande
Regulamento Interno - CRM Outeiro Grande
Rui Oliveira
 
Estatutos CRMOG - versão antiga
Estatutos CRMOG - versão antigaEstatutos CRMOG - versão antiga
Estatutos CRMOG - versão antiga
Rui Oliveira
 
Resumo - Visão Por Computador
Resumo - Visão Por Computador Resumo - Visão Por Computador
Resumo - Visão Por Computador
Rui Oliveira
 
Gestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório PráticoGestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório Prático
Rui Oliveira
 
Relatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRelatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas Eletrónicos
Rui Oliveira
 
Apontamentos Arquitetura de Computadores 2
Apontamentos Arquitetura de Computadores 2 Apontamentos Arquitetura de Computadores 2
Apontamentos Arquitetura de Computadores 2
Rui Oliveira
 
Guião Felizmente há Luar!
Guião Felizmente há Luar!Guião Felizmente há Luar!
Guião Felizmente há Luar!
Rui Oliveira
 
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTODocumento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Rui Oliveira
 
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTOApresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Rui Oliveira
 
Teoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTONTeoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTON
Rui Oliveira
 
Sofbol em Portugal e no mundo
Sofbol em Portugal e no mundoSofbol em Portugal e no mundo
Sofbol em Portugal e no mundo
Rui Oliveira
 
A natação em portugal
A natação em portugalA natação em portugal
A natação em portugal
Rui Oliveira
 
1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido
Rui Oliveira
 
Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes Rui Oliveira
 
Corfebol em Portugal e no Mundo
Corfebol em Portugal e no MundoCorfebol em Portugal e no Mundo
Corfebol em Portugal e no Mundo
Rui Oliveira
 
1.2.Atrito cinético e estático
1.2.Atrito cinético e estático1.2.Atrito cinético e estático
1.2.Atrito cinético e estático
Rui Oliveira
 
1.1.Máquina de Atwood
1.1.Máquina de Atwood1.1.Máquina de Atwood
1.1.Máquina de Atwood
Rui Oliveira
 
Movimento circular
Movimento circularMovimento circular
Movimento circular
Rui Oliveira
 
Filarmónica XXI 1ªedição
Filarmónica XXI 1ªediçãoFilarmónica XXI 1ªedição
Filarmónica XXI 1ªedição
Rui Oliveira
 

Mais de Rui Oliveira (20)

Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024
 
Regulamento Interno - CRM Outeiro Grande
Regulamento Interno  - CRM Outeiro GrandeRegulamento Interno  - CRM Outeiro Grande
Regulamento Interno - CRM Outeiro Grande
 
Estatutos CRMOG - versão antiga
Estatutos CRMOG - versão antigaEstatutos CRMOG - versão antiga
Estatutos CRMOG - versão antiga
 
Resumo - Visão Por Computador
Resumo - Visão Por Computador Resumo - Visão Por Computador
Resumo - Visão Por Computador
 
Gestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório PráticoGestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório Prático
 
Relatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRelatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas Eletrónicos
 
Apontamentos Arquitetura de Computadores 2
Apontamentos Arquitetura de Computadores 2 Apontamentos Arquitetura de Computadores 2
Apontamentos Arquitetura de Computadores 2
 
Guião Felizmente há Luar!
Guião Felizmente há Luar!Guião Felizmente há Luar!
Guião Felizmente há Luar!
 
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTODocumento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
 
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTOApresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
 
Teoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTONTeoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTON
 
Sofbol em Portugal e no mundo
Sofbol em Portugal e no mundoSofbol em Portugal e no mundo
Sofbol em Portugal e no mundo
 
A natação em portugal
A natação em portugalA natação em portugal
A natação em portugal
 
1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido
 
Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes
 
Corfebol em Portugal e no Mundo
Corfebol em Portugal e no MundoCorfebol em Portugal e no Mundo
Corfebol em Portugal e no Mundo
 
1.2.Atrito cinético e estático
1.2.Atrito cinético e estático1.2.Atrito cinético e estático
1.2.Atrito cinético e estático
 
1.1.Máquina de Atwood
1.1.Máquina de Atwood1.1.Máquina de Atwood
1.1.Máquina de Atwood
 
Movimento circular
Movimento circularMovimento circular
Movimento circular
 
Filarmónica XXI 1ªedição
Filarmónica XXI 1ªediçãoFilarmónica XXI 1ªedição
Filarmónica XXI 1ªedição
 

Planeamento de uma prova no concurso - Robô Bombeiro

  • 1. Departamento de Electr´onica, Telecomunicac¸˜oes e Inform´atica Curso: [8240] Mestrado Integrado em Eng. de Computadores e Telem´atica Disciplina: [47137] Introdu¸c˜ao `a Eng. de Computadores e Telem´atica Ano lectivo: 2012/2013 Planeamento de uma prova no concurso Robˆo Bombeiro Autores: [68535] Bruno Silva [68799] Rui Oliveira Turma/Grupo: T5B / Pr´atica 3 Docentes: Andr´e Z´uquete Jo˜ao Barraca Data: 19 de Janeiro de 2013
  • 2. Resumo: Pretende-se atrav´es deste relat´orio demonstrar sob forma escrita, um estudo preparat´orio, sem quaisquer tipos de testes pr´aticos, do uso do robˆo DETI PIC desenvolvido pelo Departamento de Eletr´onica, Telecomunica¸c˜oes e Inform´atica da Universidade de Aveiro, no concurso ”Robˆo Bombeiro”. 1
  • 4. 0.1 Introdu¸c˜ao Como sabemos, um robˆo ´e um dispositivo, ou conjunto de dispositivos, eletro- mecˆanicos ou biomecˆanicos capazes de realizar uma determinada funcionalidade de forma independente, para isso ter´a de ser pr´e-programado, ou ent˜ao controlado por um ser humano. Primordialmente os robˆos foram programados para desen- volver trabalhos de baixa complexidade, como por exemplo, deslocarem-se sobre superf´ıcies planas, interagir com obst´aculos, entre outros. Atualmente, os robˆos realizam tarefas muito completas, e em muitos dos casos substituindo o trabalho humano. Embora, nem sempre se tira partido de todas as capacidades do robˆo. Neste relat´orio pretendemos planear e elaborar um algoritmo que nos permitir´a a participa¸c˜ao do robˆo utilizado nas aula de Introdu¸c˜ao `a Engenharia de Compu- tadores e Telem´atica (DETI PIC1 ) no concurso ”Robˆo Bombeiro”. Mais `a frente iremos mostrar as principais caracter´ısticas deste robˆo, e alguns dos equipamentos e materiais que nos s˜ao facultados para conseguir participar neste concurso. Para a programa¸c˜ao de robˆo utilizando um software, tamb´em este desenvolvido pelo DETI, chamado DETInchanting criado a partir de linguagem JAVA e C++ e adaptado do Enchanting, desenvolvido para robˆos da LEGO2 . Neste caso, necessit´amos de ter conhecimentos b´asicos de programa¸c˜ao em JAVA, para conseguir testar as capacidades do robˆo, atrav´es da implementa¸c˜ao blocos que permitem executar opera¸c˜oes do tipo: if... else...; forever... ; repeat until... ; entre outros. Ambicionamos com este relat´orio, apresentar um algoritmo v´alido para uma possivel participa¸c˜ao do robˆo DETI PIC (embora com algumas adapta¸c˜oes) no concurso ”Robˆo Bombeiro”, organizado pelo Institulo Polit´ecnico da Guarda. Este concurso realiza-se desde o ano de 2003, na cidade da Guarda O objetivo deste concurso consiste em descobrir uma vela num labirinto (igual para todos os robˆos) e apag´a-la (mas n˜ao de qualquer forma!). O local de partida do robˆo no labirinto pode ser fixo ou vari´avel, o local da vela ´e vari´avel dentro de certo limites. A classifica¸c˜ao final ´e calculada tendo em conta o tempo gasto a encontrar e apagar a vela e um conjunto vari´avel de b´onus e penalidades. 1 Desenvolvido pelo Departamento de Eletr´onica, Telecomunica¸c˜oes e Inform´atica - UA 2 Empresa conceituada no fabrico de brinquedos, e atualmente no desenvolvimento de robˆos. 3
  • 5. 0.2 Descri¸c˜ao do problema Pretendemos atrav´es deste relat´orio, tal como fis´amos na sec¸c˜ao anterior, preparar um algoritmo v´alido, para uma poss´ıvel participa¸c˜ao do nosso robˆo no concurso ”Robˆo Bombeiro”, organizado pelo Institulo Polit´ecnico da Guarda. Para que o nosso robˆo DETI PIC possa participar no presente concurso, ter´a que possuir algumas adapta¸c˜oes que iremos demonstrar na pr´oxima sec¸c˜ao. De seguida iremos enumerar os principais t´opicos que iremos defender nestre relat´orio. • Inicialmente o robˆo ser´a colocado num local pr´e-definido do labirinto. O juri do concurso ao precionar o bot˜ao verde, o programa ser´a inicializado. • O robˆo ter´a que percorrer as paredes do labirinto at´e encontrar um vela que se encontrar´a no interior de um dos quartos. • Quando o robˆo encontrar a vela, ter´a que a apagar utilizando para um dos mecanismo de extin¸c˜ao existentes. Na pr´oxima sec¸c˜ao iremos descrever o m´etodo que utiliz´amos. • Tentaremos sumariar as op¸c˜oes base existentes e indicar as que s˜ao poss´ıveis de explorar, neste concurso, com o robˆo DETI PIC e discutir as vantagens e desvantagens das escolhas feitas. • Programar, usando o DETInchanting, blocos de instru¸c˜ao para cada estado (e blocos acess´orios ´uteis para v´arios estados). Para al´em do problema acima descritos, pretendemos tamb´em adquirir alguns dos conhecimentos introdut´orios do funcionamento e programa¸c˜ao da rob´otica uti- lizando para isso o DETInchanting, programa este que iremos abordar mais `a frente. Dado que nos foi imposto a realiza¸c˜ao deste relat´orio utilizando a lingua- gem tipo LATEX, pretendemos tamb´em desenvolver as nossas competˆencias a n´ıvel desta linguagem, alargando assim os nossos conhecimentos j´a adquiridos em aulas anteriores. 4
  • 6. 0.3 Aparelhagem e equipamento 0.3.1 Robˆo DETI PIC A nossa base de trabalho ´e o robˆo DETI PIC. Este robˆo ´e constitu´ıdo por dois motores DC3 sem realimenta¸c˜ao, trˆes sensores de distˆancia frontais cobrindo um ˆangulo de aproximadamente 45 graus para cada lado do robˆo, cinco sensores de brilho na parte inferior do robˆo e quatro led’s na parte superior. O robˆo disp˜oe ainda de dois bot˜oes, um interruptor e uma porta USB. Todo este robˆo foi de- senvolvido de forma pr´atica e intuitiva `a introdu¸c˜ao `a programa¸c˜ao deste tipo de m´aquinas. Para fazer o upload entre o robˆo e o computador utiliz´a-mos um cabo USB4 2.0. Figura 1: Robˆo DETI PIC Devido ao facto de o nosso robˆo n˜ao possuir um equipamento que nos permi- tir´a extingir a vela, decidimos utilizar uma ventoinha que ir´a ”apagar”a vela. Para al´em deste acr´escimo, iremos adicionar ao nosso robˆo um detetor de infravermelhos que nos ir´a permitir detetar a vela acesa, teremos neste caso de ter especial aten¸c˜ao `a direcionalidade da dete¸c˜ao dos infravermelhos (unidirecionalidade vs. ominidire- cionalidade) e a existˆencia de interferˆencias no processo de dete¸c˜ao causadas pelo ambiente da prova (luz, calor, etc.). O nosso robˆo possui dois bot˜oes (preto e vermelho), mas neste caso para a 3 Corrente cont´ınua 4 Universal Serial Bus 5
  • 7. participa¸c˜ao neste concurso, iremos considerar que o preto ser´a verde (que ir´a permitir o robˆo iniciar o seu percurso). 0.3.2 Componentes adicionais ao robˆo DETI PIC • Ventoinha como sistema de extin¸c˜ao da chama da vela: Ventoinha simples, com um pequeno motor de 12v. Figura 2: Ventoinha com motor de 12v. • Detector de chama por Infravermelhos (IV) Detector de Chama Triple IR cs-tie-l100. Este detector usa 3 sensores que medem 3 diferentes bandas de energia, emitidas a partir de chamas. Figura 3: Sensor de IV 6
  • 8. 0.3.3 Software DETInchanting O programa usado para a programa¸c˜ao de instru¸c˜oes a dar ao robˆo neste trabalho foi o DETInchanting, uma adapta¸c˜ao do original Enchanting usado para progra- mar robˆos da LEGO. Este interface foi desenvolvido na Universidade de Aveiro com a inten¸c˜ao de facilitar a programa¸c˜ao dos robˆos utilizando um interface gr´afico que se baseava em encaixes de blocos de c´odigo JAVA, na Figura 2 est´a represen- tada o ambiente de trabalho deste programa. Este sofware usa um paradigma gr´afico do tipo Scratch5 . Figura 4: Ambiente do DETInchanting. 5 S˜ao interfaces gr´aficos que permitem que programas sejam criado atrav´es da sobreposi¸c˜ao de blocos, tendo na sua base linguagens de programa¸c˜ao. 7
  • 9. 0.3.4 Labirinto e respectivos constituintes O labirinto, na sua base tem dimens˜oes quadradas (248cm x 248cm) formado por 4 quartos e corredores com uma fisionomia bem conhecida. Cada quarto possui apenas uma porta e duas delas, podem, opcionalmente, existir em dois locais distintos. O ch˜ao do labirinto ´e fundamentalmente preto, mas podem existir algumas ´areas de cor vermelha, azul ou verde (n˜ao fixas). As entradas de cada quarto (portas) est˜ao sinalizadas por uma linha branca. A ´area de partida padr˜ao ´e uma ´area circular de cor branca situada num ˆangulo de um corredor. Os robˆos s˜ao colocados nesta ´area pelo seu dono, com a orienta¸c˜ao que desejarem; o in´ıcio da prova d´a-se quando um dos ju´ızes carrega no bot˜ao verde do robˆo. O labirinto possui paredes cuja altura n˜ao pode ser excedida por parte alguma dos robˆos, para impedir que os mesmos possam descobrir a vela observando por cima das paredes. Figura 5: Esquema base do labirinto. 8
  • 10. A ´area padr˜ao de partida dos robˆos ´e o c´ırculo marcado com a letra H. As ´areas sombreadas s˜ao meros exemplos de zonas onde o ch˜ao pode n˜ao ser preto. As linhas brancas nas entradas dos 4 quartos n˜ao s˜ao assinaladas (est˜ao por baixo das legendas que indicam que as portas possuem uma largura de 46 cm). Ao contr´ario do que o diagrama sugere, o fundo tem normalmente a cor preta. 9
  • 11. 0.4 Procedimento Para uma melhor interpreta¸c˜ao da nossa proposta de procedimento, decidimos divir esta sec¸c˜ao em 2 subsec¸c˜oes descritas como ”Contornar paredes”, ”Entrar no quarto, encontrar a vela e apag´a-la”. 0.4.1 Contornar paredes O programa ir´a come¸car com o j´uri a pressionar o bot˜ao verde (que neste caso, no nosso robˆo ser´a o preto). De seguida iremos introduzir um ciclo forever e no interior desse ciclo iremos inserir: • Dois blocos correspondentes aos motores em movimento para a frente com velocidade igual a 60 unidades de velocidade. • Num ciclo if se o sensor de distˆancia LEFT estiver entre 15 cm e 20 cm, ent˜ao ser´a executado um bloco repeat until com a condi¸c˜ao ”Measure range dis- tance from Left View sensor in cm (menor) 15”, ent˜ao o motor es- querdo est´a parado enquanto que o motor direito continuar´a em movimentos at´e que a condi¸c˜ao se deixe de verificar. • Num novo ciclo if com a condi¸c˜ao ”Measure range distance from Left View sensor in cm (menor) 15”, caso ela se verifique ent˜ao ir´a proceder de forma an´aloga relativamente ao bloco anterior, ou seja, ser´a introduzido um ciclo repeat until ”Measure range distance from Left View sensor in cm (maior) 15”, caso esta condi¸c˜ao se verifique ent˜ao o motor direito estar´a parado enquando que o esquerdo se encontrar´a em movimento `a ve- locidade de 60. • Por fim, no interior de um ciclo if iremos introduzir a condi¸c˜ao ”Measure range distance from Left View sensor in cm (maior) 20”. De seguida iremos introduzir um bloco ”reset timer”e de seguinda um ciclo repear until com a condi¸c˜ao ”timer (maior) 600”, ent˜ao neste caso o motor direito e esquerdo ir˜ao mover-se para frente embora com velocidade diferentes (isto ter´a que acontecer devido ao facto do contorno no aresta da parede). Se- guidamente introduzimos novamente um ciclo repeat until com as seguintes 10
  • 12. condi¸c˜oes ”Measure range distance from Left View sensor in cm (maior) 12” and ”Measure range distance from Left View sensor in cm (menor) 20”, nesta situa¸c˜ao o motor direito ir´a mover-se `a velocidade de 60 enquanto que o esquerdo ir´a mover-se `a velocidade de 95. O resultado pretendido ´e o que se encontra esquematizado na figura abaixo. Figura 6: Esquema do cortono da parede. 11
  • 13. 0.4.2 Entrar no quarto, encontrar a vela e apag´a-la • Entrar no quarto: A parte do c´odigo relativa ao robˆo entrar no quarto ´e algo simples, uma vez que o nosso robˆo esta programado para seguir as paredes ”a esquerda”ele tem um if presente que quando o sensor far left detectar uma linha enquanto que o far right ainda n˜ao encontrou ele sabe que est´a a entrar num quarto. Figura 7: Esquema da entrada do robˆo no quarto. Legenda: A linha a tracejado representa a linha branca que o robˆo ter´a que detectar. 12
  • 14. • Encontrar a vela: Assim que o robˆo entra no quarto ele liga o seu sensor infravermelhos e testa a presen¸ca da vela, isto ´e feito atrav´es de uma adapta¸c˜ao nossa que passa pela cria¸c˜ao de um bloco vazio do tipo sensing uma vez que o sensor n˜ao existe de verdade. Caso o robˆo n˜ao sinta a presen¸ca da vela ela vai entrar no else desse mesmo if e vai ordenar o robˆo a andar para tr´as por forma a corrigir a sua posi¸c˜ao e voltar a o corredor onde tem ainda mais uma instru¸c˜ao que o faz andar para a frente ate passar a entrada para o quarto por forma a n˜ao voltar a entrar no mesmo quarto. Caso o robˆo cinta a presen¸ca da vela ele vai voltar a activar o bloco de seguir as paredes ate que os seus sensores de brilho centrais detectem a linha que existe a volta da vela. Figura 8: Robˆo detecta vela utilizando para isso o um sensor de IV. 13
  • 15. • Apagar a vela: Nesta sec¸c˜ao mais uma vez vamos usar um bloco criado por n´os para o efeito de ligar o motor que activa a ventoinha uma vez o nosso robˆo n˜ao ter fisicamente uma ventoinha. Quando o robˆo se encontrar no estado onde acaba na sec¸c˜ao anterior, isto ´e, ter encontrado a linha que contorna a vela ele deve ligar a ventoinha por 2 segundo e ap´os isso deve desliga-la. Figura 9: Robˆo apagar a vela utilizando a ventoinha. 14
  • 16. 0.5 Resultados 0.5.1 Contornar paredes O algoritmo que se apresenta de seguida foi elaborado atrav´es do DETInchanting e pretende dar resposta a esta etapa da solu¸c˜ao do nosso problema. Figura 10: Contornar a parede do labirinto. 15
  • 17. 0.5.2 Entrar no quarto, encontrar a vela e apag´a-la O algoritmo que se apresenta de seguida foi elaborado atrav´es do DETInchanting e pretende dar resposta a esta etapa da solu¸c˜ao do nosso problema. Figura 11: Entrar no quarto, encontrar a vela e apag´a-la. 16
  • 18. 0.5.3 Diagrama de estados Encontra-se representado na figura seguinte um diagrama que pretende demonstrar a alternˆancia de estados presente neste conjunto de algoritmos. Figura 12: Diagrama de estados 17
  • 19. 0.6 An´alise dos Resultados Dado que n˜ao nos foi poss´ıvel testar os nossos programas, n˜ao teremos hip´otese de analisar os resultados da´ı provenientes. Contudo, esperamos que os resultados estejam correctos de modo a possibilitarem uma participa¸c˜ao no concurso desti- nado. 18
  • 20. 0.7 Conclus˜oes Chegado ao final deste relat´orio, ´e nossa inten¸c˜ao efetuar uma retrospetiva da evolu¸c˜ao do mesmo, tendo em conta os problemas que nos depar´amos, objetivos, e principais metodologias utilizadas. Pensamos que os resultados que apresentamos neste relat´orio s˜ao v´alidos para uma poss´ıvel participa¸c˜ao no concurso “Robˆo Bombeiro”, desenvolvido pelo IP de Braga. Algumas das op¸c˜oes que tom´amos para que o nosso robˆo DETI PIC conseguisse participar neste concurso foram as introdu¸c˜ao de: • Sensor de infravermelhos: este sensor permitiu detetar a vela quando o robˆo entrava em cada quarto (pois s´o aqui ´e que era acionado), n˜ao sabemos qual o desempenho do sensor que decidimos utilizar, mas estamos convictos que (caso test´assemos) iria resultar, embora com in´umeros problemas em rela¸c˜ao `a dire¸c˜ao, que s´o poder˜ao ser corrigidos ap´os v´arios testes realizados. • Ventoinha com motor: quando o sensor de IV detetar a vela ent˜ao a ventoinha ser´a acionada de modo a extinguir a vela durantes algum tempo. Poder´ıamos ter utilizado uma bomba de ´agua que seria acionada ap´os a deten¸c˜ao da chama, mas neste caso ter´ıamos que ter aten¸c˜ao `a poss´ıvel da- nifica¸c˜ao que poderia causar. Tent´amos, na medida do poss´ıvel, que o robˆo voltasse (ap´os apagar a vela) a iniciar o seu percurso, contornando sempre as paredes existentes `a sua direita, e verificar se a vela estaria mesmo extinta naquele quarto, e caso n˜ao acontecesse voltasse a acionar o mecanismo de extin¸c˜ao, deste modo o robˆo tentaria corrigir uma eventual falha na efic´acia do mecanismo. Durante todo o relat´orio n˜ao abord´amos um assunto de poss´ıvel ocorrˆencia: a existˆencia de escadas. Neste caso o robˆo teria subir ou descer as escadas, contor- nando de igual forma as paredes, pensamos que o robˆo DETI PIC n˜ao iria proceder de forma eficaz pois precisaria de um modo de desloca¸c˜ao diferente, por exemplo tipo caterpillar. Sumariamente, ach´amos este trabalho muito interessante no ponto de vista de uma poss´ıvel participa¸c˜ao num concurso deste tipo, e tamb´em permitiu-nos abrir novos horizontes em rela¸c˜ao `a rob´otica e ao que nos espera ao longo do nosso curso, 19
  • 21. que agora come¸ca. Em rela¸c˜ao `a produ¸c˜ao destes trabalho em linguagem LATEX, ach´amos ter sido uma mais-valia, tanto a n´ıvel pessoal como a n´ıvel acad´emico 20
  • 22. Bibliografia [1] A.V.C.M. Z´uquete , Site da Unidade Curicular - Introdu¸c˜ao `a Engenharia de Computadores e Telem´atica (10 Janeiro 2013). Diapositivos: robˆo DETI PIC [Online] Available: http://www.ieeta.pt/ avz/Aulas/IECT/12-13/docs/6- robo.pdf [2] J. Barraca, D. Gomes, A. Z´uquete , Site da Unidade Curicu- lar - Introdu¸c˜ao `a Engenharia de Computadores e Telem´atica (12 Dezembro 2012). Gui˜ao da aula pr´atica 9 [Online] Available: http://www.ieeta.pt/ avz/Aulas/IECT/12-13/docs/projeto.pdf [3] IPG, Robˆo Bombeiro 2012 Rules (12 Dezembro 2012). Fire-Fighting Robot Contest[Online] Available: http://robobombeiro.ipg.pt/RB/pt/RulesRB2012.pdf 21