Escolar Documentos
Profissional Documentos
Cultura Documentos
Frente
Trs
Direita
Esquerda
O Controle Nvel 2 tem seu fluxo de informao relacionado a funo contro-
le_central. Isso porque esta funo tem como parmetro o comando que deve ser executado e
ento dispara as funes de controle dos atuadores de acordo com esse comando.
A funo que recebe as mensagens diretamente do Controle Nvel 1 a le_msg, esta
funo recebe via spi o comando e o interpreta, determinando qual a ao que deve ser rea-
lizada. A partir disso ela chama a funo controle_central passando por parmetro uma vari-
vel carregada do valor referente a ao que deve ser efetuada. Por sua vez, a funo contro-
le_central entra em execuo, interpreta o valor do parmetro e executa a ao corresponden-
te, como pode ser visualizado na Figura 25.
63
Figura 25: Funes de Controle.
A funo controle_central tambm executada pelo tratador de interrupes, o que
ocorre que quando uma interrupo acionada, ela carrega a varivel msg com o comando
que vai satisfazer o tratamento da interrupo e chama a funo controle_central. Ou seja, se
o sensor esquerdo, ou o boto ligado ao pino B0, for ativado, o rob deve ir para a direita,
ento a varivel msg carregada com o valor 3 e a funo controle_central chamada, como
seu parmetro est selecionado com o valor 3, chamada a funo de controle dos atuadores
para ir a direita.
A funo controle_central chamada, portanto, pelos tratadores das interrupes,
como pode ser visualizado na Figura 26, ou pela funo le_msg que a recebedora dos co-
mandos via SPI, que por sua vez, so os comandos vindos do computador tcnico.
64
Figura 26: Tratamento das Interrupes.
Como havia sido descrito no Captulo 4, os sensores sero tratados com prioridade
em relao ao comando do sistema estrategista, visto que esta uma forma de minimizar o
nmero de mensagens e de proteger o rob. Portanto o controle dos sensores feito por inter-
rupes e os comandos do tcnico so tratados por uma funo que executada dentro do lao
while(1).
65
6 CONSIDERAES FINAIS E PROPOSTAS PARA TRABA-
LHOS FUTUROS
Neste trabalho foi apresentado o sistema de controle embarcado desenvolvido para a
Equipe de Futebol de Robs Ararangu Intruders. O sistema desenvolvido tinha o objetivo de
tornar o rob um agente ativo, ou seja, com mais responsabilidades do que comumente acon-
tece no futebol de robs.
Para tornar o rob um jogador participativo ao invs de apenas reativo foi desenvol-
vido um sistema de controle embarcado que levasse em considerao no apenas informaes
advindas do computador tcnico, mas tambm informaes internas e externas lidas dos sen-
sores embarcados no rob.
O sistema embarcado visa auxiliar o computador tcnico no objetivo de vencer o jogo,
para isso assumiu maiores responsabilidades, mas qualquer atitude realizada no pelo bem
de um rob, mas sim da equipe. Dessa maneira pode-se perceber, que mesmo dotado de sen-
sores e tendo um papel mais ativo em campo, o sistema embarcado submete-se estratgia do
computador tcnico.
Pelo fato do futebol de robs ser um ambiente dinmico, todas as aes e reaes dos
robs ocorrem muito rapidamente, por conta disso, o sistema embarcado deve conciliar a
quantidade de informaes de entrada com as aes de sadas que devem ser condizentes com
a estratgia da equipe.
As mensagens recebidas do computador tcnico so muito constantes, mesmo assim
o sistema embarcado conseguiu gerenciar os comandos e executou cada um deles. Mesmo
tratando as informaes vindas dos sensores, a capacidade computacional do microcontrola-
dor deu ao rob o tempo suficiente para executar tanto o controle dos sensores e dos atuado-
res, quanto receber e agir de acordo com as mensagens do computador tcnico.
66
As tarefas de tempo real foram imprescindveis para a adequada recepo das men-
sagens, percebe-se que a partir dos resultados, o tempo de envio de mensagem do computador
tcnico maior do que o perodo em que a tarefa no est executando.
O sistema embarcado cumpriu com os requisitos bsicos de controle que se resumi-
am em executar adequadamente as aes recebidas e superou o que era pretendido quanto ao
tratamento de sensores. Dotar o rob de mais fontes de informao fortaleceu o sistema em-
barcado e tambm o computador tcnico, porque algumas responsabilidades passaram do con-
trole do sistema externo para o interno.
O sistema demonstrou interdependncia para com o computador tcnico ao invs da
dependncia comum categoria. E atestou-se que, nesse projeto o nico tipo de mensagem
que foi trocado entre o computador tcnico e o rob foram as aes que compe a estratgia
para fazer o gol, atingindo o objetivo de manter a troca de mensagens no menor nvel poss-
vel.
Assim a capacidade de processamento do computador tcnico ficou mais focada na
interpretao dos dados provenientes do sistema de viso e consequentemente na gerao de
estratgias, fazendo com que a equipe se torne mais competitiva.
6.1. Propostas para Trabalhos Futuros
Nesta Seo so listadas algumas propostas para trabalhos futuros.
1) Testar o sistema implementado nos robs reais;
2) Comparar a arquitetura proposta e os resultados apresentados com outros sis-
temas embarcados com arquitetura reativa, que no utilizam tarefas de tempo
real e diferentes nveis de controle.
3) Usar um sistema operacional embarcado para gerenciar as tarefas de tempo re-
al;
4) Comparar os resultados, principalmente o tempo de resposta, entre o sistema
embarcado proposto e os obtido com o uso de um sistema operacional embar-
cado.
67
REFERNCIAS
ARARANGU INTRUDERS. Misso. Disponvel em:
http://www.araranguaintruders.ufsc.br/ Acessado em: 10 out, 2012.
BENINI, Luca; MICHELI, Giovanni. Networks on chips: A new SoC paradigm. Computer,
v. 35, n. 1, p. 70-78, 2002.
BIAZUZ, Claudio J. Desenvolvimento de uma Arquitetura Hbrida e Distribuda para
Sistemas Multiagentes e sua Aplicao no Futebol de Robs. Dissertao (Mestrado)
Curso de Cincia da Computao, Universidade Federal de Santa Catarina, Florianpolis,
2008.
BORGES, Rodrigo W. Aplicabilidade de Sistemas Operacionais de Tempo Real (RTOS)
para sistemas embarcados de baixo custo e pequeno porte. Dissertao (Mestrado) Cur-
so de Cincias, Programa de Engenharia Eltrica, Universidade de So Paulo, So Carlos,
2011.
BOSA, Jefferson L. Sistema Embarcado para a Manuteno Inteligente de Atuadores
Eltricos. Dissertao (Mestrado) - Curso de Cincia da Computao, Universidade Federal
do Rio Grande do Sul, Porto Alegre, 2009.
CAMPBELL, Murray; HOANE, Joseph A. J; HSU, Feng-hsiung. Deep Blue. Artificial Intel-
ligence, , v. 134, n. 1, p. 57-83, 2002.
CARRO, Luigi; WAGNER, Flvio Rech. Sistemas computacionais embarcados. Jornadas
de atualizao em informtica. Campinas: UNICAMP, 2003.
CHENG, Gordon; ZELINSKY, Alexander. Supervised autonomy: A framework for human-
robot systems development. Autonomous Robots, v. 10, n. 3, p. 251-266, 2001.
CMP United Business Media. 2006 Embedded System Design State of Embedded Market
Survey. Pesquisa de Mercado, CMP United Business Media, 2006.
COSTA, Anna Helena Reali; PEGORARO, Ren. Construindo robs autnomos para par-
tidas de futebol: o time GUARAN. SBA Controle & Automao, Campinas, 2000.
DUDEK, Gregory; JENKIN, Michael. Computational principles of mobile robotics. Cam-
bridge University Press, 2010.
68
FERREIRA, Ivo A; Sistema de Controle e Superviso de Sistemas Embebidos: Tipo
SCADA. Dissertao (Mestrado) Curso de Engenharia Eltrica e de Computadores, Univer-
sidade do Porto, Porto, 2008.
GERVINI, Alexandre I. et al. Avaliao de Desempenho, rea e Potncia de Mecanismos
de Comunicao em Sistemas Embarcados. SEMISH'03XXX Seminrio Integrado de
Software e Hardware, 2003.
KRAETZCHMAR, G. et al. The ULM Sparrows: Research into Sensorimotor Integration,
Agency, Learning, and Multiagent Cooperation. ROBOCUP WORKSHOP. 1998
MACKWORTH, Alan, K. 1993. On seeing robots. Computer Vision: Systems, Theory, and
Applications, World Scientific Press: Singapore, pp. 113.
MACHADO, Guilherme Bertoni; SIQUEIRA, Frank. Integrao de Sistemas Embutidos
utilizando Web Services. Universidade Federal de Santa Catarina, 2004.
MAETA, Silvio M. Desenvolvimento da Infraestrutura Embarcada do Projeto AURO-
RA. Dissertao (Mestrado) Curso de Cincia da Computao, Universidade Estadual de
Campinas, Campinas, 2001.
MARWEDEL, Peter. Embedded system design: Embedded systems foundations of cyber-
physical systems. Springer, 2010.
MURPHY, Robin R. Introduction to AI Robotics. The MIT Press: London, England, 2000.
NOERGAARD, Tammy. Embedded System Architecture A comprehensive guide for engi-
neers and programmers. Newnes, 2005.
NOVAK, Gregor; SPRINGER, Richard. An I ntroduction to a Vision System used for a Mir-
oSOT Robot Soccer System. IEEE International Conference on Computational Cybernetics,
2004.
PAZOS, Fernando. Automao de Sistemas e Robtica. Editora Axcel, 2002.
ROBOCUP; KITANO, Hiroaki (ed). Robocup-97: Robot Soccer World Cup I. Springer,
1998.
RUSSEL, Stuart; NORVIG, Peter. Inteligncia Artificial. Editora Campus, 2004.
SALIM, Antonio; FUENTES, Olac; MUNZ, Anglica. Development of Local Vision-based
Behaviors for a Robotic Soccer Player. IEEE. Anais da Quinta Conferncia do Mxico em
Cincia da Computao, 2004.
SAHOTA, M. K. & MACKWORTH, A. K. Can Situated Robots Play Soccer? Anais da Inte-
ligncia Artificial Canadense, 1994.
SANTOS, Tlio L. Desenvolvimento de um Sistema Embarcado para Medio de Cor-
rente. Dissertao (Mestrado) Curso de Engenharia Eltrica, Universidade Federal de Santa
Catarina, Florianpolis, 2010.
69
SHAW, Alan C. Sistemas e Software de Tempo Real, 2001. Porto Alegre. Editora Book-
man.
SIEGWART, Roland; NOURBAKHSH, Illah R. Introduction to Autonomous Mobile Ro-
bots. 2004
SOBREIRA, Rodolfo M; SILVA, Francisco A; ROS, Renato L. Futebol de Robs, uma
aplicao de robtica. 2003.
TAURION, Cezar. Software embarcado: oportunidades e potencial de mercado. Rio de Ja-
neiro. Brasport, 2005.
VIANNA, Alexandre SG; MACHADO, Liliane S. Controle e Gerenciamento de Ambien-
tes Reais Educacionais Atravs de Ambientes Virtuais. International Conference on Engi-
neering and Computer Education (ICECE2009), Buenos Aires, Argentina. 2009.
WEISER, Mark., The Computer for the 21st Century. Scientific American, 1991.
WOLF, Wayne. Computers as Components: Principles of embedded computing system de-
sign. 2001
70
APNDICE I
Neste apndice so apresentadas mais informaes sobre tarefas de tempo real utili-
zadas pelo compilador CCS. Para um melhor entendimento foi elaborado um exemplo que
compara um programa com funes sem o uso de tempo real e um programa com tarefas de
tempo real.
As tarefas de tempo real so utilizadas em situaes onde vrias funcionalidades de
um programa devem entrar em execuo dentro de um prazo especfico. O RTOS possui um
ncleo central que se assemelha ao kernel de um SO, ele o encarregado por controlar a exe-
cuo das tarefas, se houver mais de uma tarefa, ele deve selecionar a tarefa que ser executa-
da segundo critrios estabelecidos no desenvolvimento da tarefa pelo programador.
O RTOS utilizado pelo compilador CCS permite que o microcontrolador PIC seja
dotado de um sistema embarcado que possua tarefas de tempo real. Para tanto, so necessrias
algumas diretivas inicias para a execuo das tarefas. A primeira a diretiva de pr-
processamento de delimitao de prazos e tempo de processamento #USE RTOS na qual os
parmetros em questo so o timer e o minor_cicle que delimitam o menor ciclo de execuo
do RTOS.
Para o sistema, as tarefas so simples funes, porm, acima da sua assinatura inicial
possui uma linha de cdigo que determina que a funo a seguir ser uma tarefa. As funes
que sero consideradas tarefas no devem ter nenhum parmetro alm dos especficos para o
ncleo do RTOS e tambm no devem ter retorno.
Deve-se utilizar a diretiva de pr-processamento #TASK, com os parmetros rate,
max, queue que informam, respectivamente o prazo de execuo da tarefa, quantas vezes ela
deve entrar em execuo dentro de um espao determinado de tempo, o tempo mximo de
execuo que ela pode atingir e quantos bytes sero alocados para as mensagens recebidas da
tarefa, por padro utilizado zero.
71
Depois de utilizar as duas diretivas acima e determinar quais funes sero tarefas de
tempo real, basta realizar a chamada da funo rtos_run que coloca em execuo o RTOS do
CCS.
Da mesma maneira que a execuo das tarefas de tempo real so acionadas pela fun-
o rtos_run, elas tambm podem ser encerradas durante a execuo de um programa. Se o
sistema embarcado contiver tarefas de tempo real e funes, as tarefas de tempo real so exe-
cutadas e depois de finalizadas, so encerradas, para que outras funcionalidades do programa
entrem em execuo. Para isso deve-se utilizar a funo rtos_terminate que encerra a execu-
o do ncleo do RTOS.
As tarefas de tempo real esto sempre relacionadas a prazos especficos, porm atra-
vs da funo rtos_await(Expre) uma tarefa de tempo real pode ficar em estado de espera.
Nesse caso, a tarefa finalizada, deixando o processador livre, caso seu parmetro, a expres-
so lgica Expre seja verdadeiro, ela volta a executar para ento finalizar completamente.
Para um melhor entendimento do RTOS do CCS foi desenvolvido um programa que
controla trs LEDS, conforme esquemtico da Figura 27. O programa dispe de uma organi-
zao totalmente distinta, usando funes executadas a partir da funo main() ou tarefas de
tempo real executadas pelo funo rtos_run().
Figura 27: Esquemtico do programa de exemplo.
72
A Figura 28 ilustra o cdigo fonte do sistema embarcado para ligar os trs LEDs.
Neste caso, o programa foi desenvolvido somente com funes, ou seja, no utilizada ne-
nhuma tarefa de tempo real. Cada funo do sistema entra em execuo seguindo a ordem em
que foram especificadas na funo main().
Figura 28: Programa para aceder trs LEDs sem o uso de funes de tempo real.
Pode ser notado que as chamadas das funes so feitas pela funo principal do
programa, a funo main(), porm, o cdigo se torna menos organizado, com mais dificulda-
des de manuteno, e tambm no supre algumas necessidades, como no caso em que os trs
LEDs necessitassem ser acessos ao mesmo tempo. A maior diferena encontrada entre as fun-
es e as tarefas de tempo real a certeza da execuo dentro de prazos especficos. Se as
funcionalidades devem ser tratadas de forma peridica pode-se utilizar timers e interrupes,
porm o controle sobre todas as funes se torna muito mais difcil para o programador, j
que os clculos de execuo de cada tarefa devem ser projetados por ele para que no entrem
em conflito.
No caso do RTOS as tarefas vo sendo simplesmente lanadas com seus respectivos
parmetros, e a execuo dessas tarefas ser responsabilidade do RTOS. O mesmo programa
desenvolvido para o exemplo da Figura 28 foi adaptado para usar tarefas de tempo real. A
Figura 29 ilustra o programa desenvolvido com o uso de tarefas de tempo real que so respon-
sveis por acender os LEDs.
73
Figura 29: Programa para aceder trs LEDs com o uso de funes de tempo real.
As tarefas entram em execuo dentro do seu prprio prazo obedecendo as restries
de prazo estipulado no programa.
74
Concede-se Universidade Federal de Santa Catarina UFSC, a permisso para reproduzir
cpias deste trabalho e emprest-las to somente para propsitos acadmicos e cientficos.
Direitos reservados. Leis 9.609/98 e 9.610/98. Autoriza-se copia, para utilizao exclusiva-
mente com finalidade didtica, desde que com a citao da fonte.
____________________________________
Autor
Freitas, Stfani A. G.
Tipo do Trabalho
Ararangu, __/__/ 2012.
n pg.