• Nenhum resultado encontrado

Desenvolvimento de um Robô de baixo custo para o concurso de Micromouse

N/A
N/A
Protected

Academic year: 2021

Share "Desenvolvimento de um Robô de baixo custo para o concurso de Micromouse"

Copied!
103
0
0

Texto

(1)

Desenvolvimento de um Robˆ

o

de Baixo Custo para o

Concurso de Micromouse

Por

Samir Pinto Mehmeti

Orientador: Doutor Ant´

onio Lu´ıs Gomes Valente

Co-orientador: Doutor Salviano Filipe Silva Pinto Soares

Disserta¸c˜ao submetida `a

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO para obten¸c˜ao do grau de

MESTRE

em Engenharia Electrot´ecnica e de Computadores, de acordo com o disposto no DR – I s´erie–A, Decreto-Lei n.o 74/2006 de 24 de Mar¸co e no

Regulamento de Estudos P´os-Graduados da UTAD DR, 2.a s´erie – Delibera¸c˜ao n.o 2391/2007

(2)
(3)

Desenvolvimento de um Robˆ

o

de Baixo Custo para o

Concurso de Micromouse

Por

Samir Pinto Mehmeti

Orientador: Doutor Ant´

onio Lu´ıs Gomes Valente

Co-orientador: Doutor Salviano Filipe Silva Pinto Soares

Disserta¸c˜ao submetida `a

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO para obten¸c˜ao do grau de

MESTRE

em Engenharia Electrot´ecnica e de Computadores, de acordo com o disposto no DR – I s´erie–A, Decreto-Lei n.o 74/2006 de 24 de Mar¸co e no

Regulamento de Estudos P´os-Graduados da UTAD DR, 2.a s´erie – Delibera¸c˜ao n.o 2391/2007

(4)
(5)

Orienta¸c˜ao Cient´ıfica :

Doutor Ant´onio Lu´ıs Gomes Valente

Professor Associado com Agrega¸c˜ao do Departamento de Engenharias Escola de Ciˆencias e Tecnologia

da Universidade de Tr´as-os-Montes e Alto Douro

Doutor Salviano Filipe Silva Pinto Soares

Professor Auxiliar do Departamento de Engenharias Escola de Ciˆencias e Tecnologia

da Universidade de Tr´as-os-Montes e Alto Douro

(6)
(7)

”In the middle of difficulty lies opportunity”| ”No meio da dificuldade encontra-se a oportunidade.”

Einstein (1879 – 1955)

”Success is going from failure to failure without losing enthusiasm | Sucesso ´e ir de fracasso em fracasso sem perder o entusiasmo”

Winston Churchill(1874 – 1965)

(8)
(9)

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO Mestrado em Engenharia Electrot´ecnica e de Computadores

Os membros do J´uri recomendam `a Universidade de Tr´as-os-Montes e Alto Douro a aceita¸c˜ao da disserta¸c˜ao intitulada “Desenvolvimento de um Robˆo de Baixo Custo para o Concurso de Micromouse” realizada por Samir Pinto Mehmeti para satisfa¸c˜ao parcial dos requisitos do grau de Mestre.

Julho 2018

Presidente: Doutor Jo˜ao Pav˜ao,

Dire¸c˜ao do Mestrado em Engenharia Eletrotecnica e de

Computadores do Departamento de Engenharias da Universidade de Tr´as-os-Montes e Alto Douro

Vogais do J´uri: Doutor Jo˜ao Paulo Coelho,

Professor Adjunto da Escola Superior de Tecnologia e Gest˜ao do Instituto Polit´ecnico de Bragan¸ca

Doutor Ant´onio Lu´ıs Gomes Valente,

Professor Associado com Agrega¸c˜ao do Departamento de Engenharias da Escola de Ciˆencias e Tecnologia

da Universidade de Tr´as-os-Montes e Alto Douro

Doutor Salviano Filipe Silva Pinto Soares,

Professor Auxiliar do Departamento de Engenharias da Escola de Ciˆencias e Tecnologia

da Universidade de Tr´as-os-Montes e Alto Douro

(10)
(11)

Desenvolvimento de um Rob˜

o

de Baixo Custo para o

Concurso de Micromouse

Samir Pinto Mehmeti

Submetido na Universidade de Tr´as-os-Montes e Alto Douro para o preenchimento dos requisitos parciais para obten¸c˜ao do grau de

Mestre em Engenharia Electrot´ecnica e de Computadores

Resumo — ´E f´acil entender que os conhecimentos nas ´areas da ciˆencia, tecnologia,

engenharia e matem´atica (STEM) s˜ao de enorme relevˆancia na actualidade e, inexoravelmente, na projec¸c˜ao e prepara¸c˜ao do futuro da vida e da humanidade.

A hist´oria do micromouse em Portugal iniciou-se em 2011. A comunidade cient´ıfica portuguesa tem investido em m´etodos de investiga¸c˜ao atrav´es de concursos e organiza¸c˜ao de festivais de rob´otica. Sabe-se que os concursos rob´oticos s˜ao um bom m´etodo para cativar alunos a desenvolver habilidades nas ´areas das STEM. Um deles ´e o consurso Micromouse, em que um robˆo aut´onomo tem de ser capaz de descobrir o caminho at´e ao centro de um labirinto. Ao longo do tempo tˆem sido desenvolvidos kits rob´oticos para Micromouse. Estes visam tornar a programa¸c˜ao mais acess´ıvel, de modo a facilitar o seu uso pelos utilizadores.

Desenvolveu-se um novo kit rob´otico Micromouse conhecido como Flash. Este ´e baixo custo e permite o uso de linguagens de programa¸c˜ao como CircuitPhython, Makecode e Arduino. Nesta disserta¸c˜ao apresenta-se o planeamento e desenvolvimento do hardware, software e ainda os custos monet´arios associados ao kit rob´otico. Palavras Chave: Micromouse, Microelectr´onica, Kit Rob´otico, STEM’s, Rob´otica Educativa, Ensino.

(12)
(13)

Development of Robotic Kit

for the Micromouse Contest

Samir Pinto Mehmeti

Submitted to the University of Tr´as-os-Montes and Alto Douro in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering and Computers

Abstract — It is easy to understand that knowledge in the areas of science, technology, engineering and mathematics (STEM) is of major relevance today and inexorably in projecting and preparing the future of life and humanity.

The Portuguese scientific community has been investing in research methods through competitions and organization of robotic festivals. It is known that robotic contests are a good method to captivate students to develop skills in the areas of STEM. One is the Micromouse competition, in which an autonomous robot needs to be able to find its way to the center of a maze. The history of the micromouse in Portugal begins in 2011. MIcromouse robotic kits have been developed over the years. These aim to make programming more accessible, so its easy for the users.

A new MIcromouse robotic kit known as Flash, has been developed. This one allows the use of programming languages such as CircuitPhython, Makecode and Arduino. This dissertation presents the planning and development of hardware, software and the monetary costs associated to this robotic kit.

Key Words: Micromouse, Microelectronics. Robotic Kit, STEM’s, Educational Robotics, Education

(14)
(15)

Agradecimentos

Ao Professor Doutor Ant´onio Lu´ıs Gomes Valente, Professor Auxiliar do Departamento de Engenharias da Universidade de Tr´as-os-Montes e Alto Douro, orientador deste trabalho, pela sua motiva¸c˜ao, sugest˜oes, ideias inovadoras, orienta¸c˜oes, boa disposi¸c˜ao e sobretudo pela sua amizade.

Ao Professor Salviano Filipe Silva Pinto Soares, Professor do Departamento de Engenharia Electrot´ecnica e de Computadores da Universidade de Tr´as-os-Montes e Alto Douro, na qualidade de co-orientador, pelas suas observa¸c˜oes, orienta¸c˜oes e disponibilidade.

Ao Samuel Matos, pela sua disponibilidade e prontid˜ao.

Ao Peter Harrisson pelos conte´udos e esclarecimentos disponibilizados de bom grado. A todos os meus colegas do Mestrado Integrado em Engenharia Electrot´ecnica e de Computadores da Universidade de Tr´as-os-Montes e Alto Douro pela sua amizade, simpatia, e companheirismo ao longo deste percurso acad´emico.

`

A minha m˜ae Ana Maria Machado Pinto, pelo apoio ao longo deste percurso bem como pelo tempo e aten¸c˜ao desej´avel de que a privei.

`

A B´arbara Adriana Sarmento Dias Fernandes pela paciˆencia, ajuda e motiva¸c˜ao proporcionadas.

Ao meu pai Ragmi Mehmeti pelo apoio ao longo deste percurso acad´emico. xv

(16)

A todos, um sincero obrigado!

UTAD, Samir Pinto Mehmeti

Vila Real, 25 de junho de 2018

(17)

´Indice geral

Resumo xi

Abstract xiii

Agradecimentos xv

´Indice de tabelas xxi

´Indice de figuras xxi

Gloss´ario, acr´onimos e abreviaturas xxv

1 Introdu¸c˜ao 3 1.1 Motiva¸c˜ao e objectivos . . . 5 1.2 Organiza¸c˜ao da disserta¸c˜ao. . . 6 2 O Concurso Micromouse 7 2.1 Hist´oria . . . 7 2.2 Micromouse em Portugal . . . 9 2.3 Regras . . . 11

3 Kits para Micromouse 13

3.1 EDUmouse . . . 14

3.2 Gr´ıgora . . . 14

3.3 Project Futura . . . 15 xvii

(18)

3.4 µMaRT-INO. . . 16

3.5 Ton-Bot . . . 17

3.6 Picaxe Kit . . . 17

3.7 Theseus Kit . . . 18

3.8 Tabela Comparativa . . . 20

3.9 An´alise cr´ıtica . . . 21

3.9.1 EDUmouse . . . 21 3.9.2 Gr´ıgora . . . 21 3.9.3 Project Futura . . . 21 3.9.4 µMaRT-INO e Ton-Bot . . . 21 3.9.5 Picaxe Kit . . . 22 3.9.6 Thesus Kit . . . 22

3.10 Desenvolvimento de um novo Kit . . . 22

4 Flash - O novo kit rob´otico Micromouse 23 4.1 Unidade central e perif´ericos . . . 23

4.2 Escolha do microcontrolador . . . 26

4.3 Sensores refletivos e driver de controlo . . . 27

4.3.1 Escolha dos LED emissores . . . 27

4.3.2 Escolha dos fototrans´ıstors recetores . . . 28

4.3.3 Esquem´atico dos sensores refletivos . . . 30

4.3.4 Escolha do driver dos sensores refletivos . . . 30

4.3.5 Esquem´atico do driver sensores refletivos . . . 31

4.4 Motores . . . 32

4.4.1 Drivers de motores . . . 33

4.5 Mem´oria flash e EEPROM . . . 34

4.5.1 Esquem´atico mem´oria flash e EEPROM . . . 34

4.6 Girosc´opio/Aceler´ometro . . . 35

4.6.1 Esquem´atico do MPU6050 . . . 35

4.7 Encoders . . . 36

4.7.1 Desenho dos Encoders . . . 36

4.7.2 Sensores ITR8307 . . . 37

4.7.3 Dual Schmitt-Trigger Buffer . . . 38

4.7.4 Esquema de Montagem dos Encoders . . . 38

4.8 Desenho Final . . . 38

5 Resultados 43 5.1 Carregamento do Bootloader . . . 45

5.2 M´odulo para controlo dos sensores infra-vermelhos . . . 46

5.3 M´odulo de controlo dos encoders e aceler´ometro . . . 48 xviii

(19)

5.3.1 Determinar a Velocidade do Robˆo . . . 50

5.3.2 Pseudoc´odigo para leituras dos encoders . . . 50

5.4 M´odulo de controlo dos motores . . . 51

5.4.1 TurnRight e TurnLeft . . . 52

5.4.2 TurnBack . . . 53

5.4.3 Mover 1/2 c´elula e 1 c´elula . . . 54

5.4.4 An´alises do m´odulo . . . 54

5.4.5 Pseudo c´odigo do m´odulo de controlo dos motores . . . 55

5.5 An´alise de custos do kit rob´otico . . . 56

6 Conclus˜ao e trabalho futuro 59 Referˆencias bibliogr´aficas 61 A Regras do Concurso Micromouse 67 A.0.1 Robˆo Micromouse . . . 67

A.0.2 Labirinto . . . 68

A.0.3 Concurso . . . 69

A.0.4 Specifications for the Maze . . . 71

A.0.5 Specifications for the Micromouse . . . 72

A.0.6 Rules for the Contest . . . 72

A.1 Tabela Excel do pre¸co das componentes. . . 76

(20)
(21)

´Indice de figuras

2.1 Euromico 1980 . . . 8 2.2 MPC2017. . . 10 2.3 MPC Labirinto . . . 10 2.4 Gr´ıgora MPC . . . 10 2.5 MPC Labirinto 2018 . . . 10 2.6 MPC 2018 . . . 11 2.7 MPC 2016 Resolu¸c˜ao Labirinto . . . 11 3.1 Edumouse . . . 14 3.2 Gr´ıgora . . . 15

3.3 Project Futura Kit . . . 16

3.4 µMart-INO Kit . . . 16

3.5 Ton-Bot Kit . . . 17

3.6 Picaxe Kit . . . 18

3.7 Theseus Kit . . . 18

4.1 Diagrama de blocos representativo dos v´arios m´odulos do robˆo Micromouse 24 4.2 Posicionamento dos sensores com o robˆo no meio de uma c´elula do labirinto . . . 25

(22)

4.3 ATSAMD51J19A-AU Microcontrolador . . . 27

4.4 Pad˜oes de Luz Infra-Vermelha . . . 29

4.5 LED Emissor de Infra-Vermelho SFH4550 . . . 30

4.6 Sensor ´Otico Infravermelho luz-tens˜ao TSL260R-LF . . . 30

4.7 Esquem´atico dos sensores IR . . . 31

4.8 Driver LED ULN2003V12 . . . 31

4.9 Esquema de Montagem do Driver Sensores IR em Eagle . . . 32

4.10 Motores DC . . . 32

4.11 ZXMHC3A01N8 . . . 33

4.12 TC4427A . . . 33

4.13 Esquem´atico dos drivers dos motores . . . 33

4.14 26WF016B-104I/SN . . . 34

4.15 24LC64FT-I/OT . . . 34

4.16 Esquem´atico das mem´orias flash e EEPROM . . . 34

4.17 Girosc´opio MPU6050 . . . 35

4.18 Esquem´atico MPU6050 . . . 35

4.19 Encoders . . . 36

4.20 Posicionamento Angular dos Sensores dos Encoders . . . 37

4.21 Posicionamento dos Encoder nas Rodas . . . 37

4.22 Sensor dos Encoders ITR8307 . . . 38

4.23 SN74LVC2G17 Dual Schmitt-Trigger Buffer . . . 38

4.24 Esquema de Montagem Encoders EAGLE . . . 39

4.25 Desenho e disposi¸c˜ao de componentes final da placa PCB . . . 41

5.1 In´ıcio da montagem . . . 43

5.2 Placa com componentes soldadas e robˆo completo . . . 44

5.3 Connec¸c˜ao SWD . . . 45

5.4 Programador Atmel-ICE . . . 45

5.5 Teste aos LED IR para desenho da curva de distˆancia . . . 47

5.6 Curva de distˆancia da parede . . . 47

5.7 Pulsos de Ambos sensores do Encoder. . . 49

5.8 Circunferˆencia Ilustrativa do trajeto das rodas . . . 52 xxii

(23)

5.9 Curva da Velocidade dos Motores . . . 53

5.10 Diagrama de Controlo . . . 54

5.11 Controlo da velocidade em malha fechada . . . 55

A.1 Tabela de pre¸co dos componentes . . . 77

(24)
(25)

Gloss´

ario, acr´

onimos e

abreviaturas

Gloss´

ario de termos

MPC — Micromouse Portuguese Contest IR — Infravermelho

STEM — Science, Technology, Engineering and Mathematics IMU — Unidade de medi¸c˜ao inercial

Lista de acr´

onimos

Sigla Expans˜ao

CMOS Complementary Metal-Oxide-Semiconductor DC Direct Current (corrente cont´ınua)

MOSFET Metal-Oxide-Semiconductor Field-Effect Transistor xxv

(26)

1

(27)
(28)

——————————————————-1

Introdu¸c˜

ao

Fazendo uma observa¸c˜ao consciente do que se passa no mundo hodierno, percebemos que a evolu¸c˜ao tecnol´ogica est´a logo ao virar da esquina. Com efeito, a cada passo presenciamos os progressos e novos frutos da criatividade humana: o primeiro robˆo humanoide e pessoal do mundo (2014), a Amazon com ideias de criar um drone para entregas, uma empresa Japonesa que criou um dos robˆos de salvamento com melhor ranking no mundo (Eguchi,2016) e a lista ´e infind´avel.

´

E f´acil entender que os conhecimentos nas ´areas da ciˆencia, tecnologia, engenharia e matem´atica (STEM) s˜ao de enorme relevˆancia na actualidade e, inexoravelmente, na projec¸c˜ao e prepara¸c˜ao do futuro da vida e da humanidade (Ritz and Fan,2015). A procura, por investigadores e t´ecnicos qualificados, tem vindo a reflectir-se na expans˜ao e desenvolvimento da economia europeia e mundial (Pugliese).

Uma iniciativa da European Coordination Body in STEM Education tem como objectivo melhorar a aprendizagem e os processos de ensino na ´area das STEM. Pretende-se, assim, diminuir o a diferen¸ca de conhecimentos entre os pa´ıses Europeus e Asi´aticos (Kennedy and Odell,2014). Assim, e na persecu¸c˜ao de se atrair e garantir jovens motivados para adquirir tais conhecimentos, procuram-se operacionalizar e instituir m´etodos apelativos no sentido de estimular a aprendizagem nestas ´areas.

(29)

4 CAP´ITULO 1. INTRODUC¸ ˜AO

O desafio, na actualidade, ´e capacitar e dotar os jovens para que aprofundem as suas competˆencias e explorem a sua imagina¸c˜ao, tendo como objetivo a cria¸c˜ao de novos e inovadores produtos tecnol´ogicos. Para tal, alguns m´etodos recorrem ao uso de tecnologias tais como robˆos, aplica¸c˜oes, jogos, concursos rob´oticos, etc. em sistemas de ensino b´asico e secund´ario.

Hoje em dia, tamb´em j´a se faz uso de ferramentas adequadas a fim de tornar a programa¸c˜ao mais apelativa, com ambientes gr´aficos atractivos, bem como uma l´ogica intuitiva e divertida para as crian¸cas, como ´e o caso do Scratch (Resnick et al.,

2009).

Os concursos rob´oticos s˜ao um bom m´etodo para cativar jovens alunos a desenvolverem habilidades nas ´areas das STEM (Mataric et al.,2007). Na verdade, o ser humano ´e bastante competitivo e sente uma constante necessidade de aprendizagem e atualiza¸c˜ao, principalmente porque os jovens sentem, intrinsecamente, uma curiosidade imanente e irreverente acerca do mundo e de tudo o que dele faz parte. Estes concursos desempenham um papel crucial, uma vez que estimulam o esp´ırito competitivo dos seus participantes, fazendo-os ansiar por desenvolver o melhor robˆo do concurso.

´

E certo que um jovem motivado tem muito mais probabilidade de cooperar no ensino das ´areas que se pretende, por isso a comunidade cient´ıfica portuguesa tem investido em m´etodos de investiga¸c˜ao atrav´es de concursos e organiza¸c˜ao de festivais de rob´otica tais como,“Festival Nacional de Rob´otica” (FNR), “Robˆo Bombeiro 2017 - IPG” (rob, b), “Roboeste” (ROE), “Robot Party” (RPa) e o “Micromouse Portuguese Contest” (UTA), organizado pela Universidade de Tr´as-os-Montes e Alto Douro, que ´e o principal foco desta disserta¸c˜ao.

O concurso rob´otico Micromouse ´e tamb´em um m´etodo e estrat´egia para cativar a participa¸c˜ao dos jovens. O Micromouse faz parte de um concurso mundial onde pequenos robˆos aut´onomos resolvem um labirinto composto por 16 × 16 c´elulas em que cada uma tem 168 × 168 mm2 e paredes de 12 mm de espessura.

Um robˆo micromouse ´e constru´ıdo de forma a explorar um labirinto, partindo de um dos seus cantos em dire¸c˜ao ao centro, no menor per´ıodo de tempo poss´ıvel.

(30)

1.1. MOTIVAC¸ ˜AO E OBJECTIVOS 5

Este possui um micro- controlador que est´a ligado aos sensores e aos motores, permitindo que o micromouse se mova autonomamente e receba um constante feedback dos sensores de modo a evitar choques com as paredes. O robˆo precisa de manter um registo da sua trajet´oria, bem como reconhecer se encontrou ou n˜ao o centro do labirinto, acabando por selecionar o caminho mais r´apido para chegar do ponto de partida ao centro do labirinto (Borges,2014).

De facto, para jovens pr´e-universit´arios, a cria¸c˜ao deste robˆo poder´a ser bastante complexa, uma vez que exige conhecimentos de mecˆanica, hardware e software. Al´em disso, a compra de kits que requerem menos conhecimentos de STEM e que simplificam bastante este processo podem ser muito dispendiosas (Mataric et al.,

2007). Tal situa¸c˜ao poder´a ter como consequˆencia a desmotiva¸c˜ao dos jovens. Portanto, torna-se fundamental elaborar um kit rob´otico Micromouse que apresente um baixo custo e fa¸ca uso de bibliotecas que permitam a sua programa¸c˜ao de uma forma mais acess´ıvel e motivadora. A t´ıtulo de exemplo, pode-se referir a programa¸c˜ao Ardu´ıno por ser bastante simples de usar. Esta programa¸c˜ao baseia-se nas linguagens C/C++ . CyrcuitPython ´e uma linguagem de alto n´ıvel, de f´acil leitura, escrita e manuten¸c˜ao. A MakeCode ´e uma linguagem de programa¸c˜ao por blocos similar ao Scratch de Resnick et al.(2009).

1.1

Motiva¸

ao e objectivos

O objetivo desta disserta¸c˜ao visa desenvolver um kit rob´otico, de baixo custo, para a participa¸c˜ao em concursos Micromouse. O kit deve possuir as seguintes caracter´ısticas: baixo custo, microcontrolador de 32-bit, permitir linguagem gr´afica (ex: MakeCode), permitir linguagem Python (CircuitPython) e permitir a utiliza¸c˜ao do IDE Arduino. Ser˜ao elaboradas bibliotecas de software para facilitar a programa¸c˜ao do robˆo por iniciantes `a rob´otica m´ovel.

(31)

6 CAP´ITULO 1. INTRODUC¸ ˜AO

1.2

Organiza¸

ao da disserta¸

ao

Esta disserta¸c˜ao encontra-se estruturada em seis cap´ıtulos.

No Cap´ıtulo 1 elabora-se uma introdu¸c˜ao de enquadramento e esclare-se a motiva¸c˜ao do trabalho.

No Cap´ıtulo 2 desenvolve-se a tem´atica alusiva aos concursos de micromouse. Inicialmente, faz-se referˆencia a um breve resumo da historia deste concurso. De seguida, foi especificada a hist´oria deste concurso em Portugal. Posteriormente, explicitam-se as regras referentes ao mesmo.

No Cap´ıtulo 3 apresentam-se os diferentes kits rob´oticos de micromouse existentes no mercado, fazendo uma an´alise cr´ıtica dos mesmo. Por fim, elaborou-se uma tabela comparativa dos componentes de cada kit.

No Cap´ıtulo 4 apresentam-se os principais requisitos do novo kit rob´otico para Micromouse, analisam-se os crit´erios de sele¸c˜ao de cada um dos componentes que comp˜oe o novo Kit e elabora-se o esquem´atico com as liga¸c˜oes das componentes. Posteriormente, faz-se o desenho da placa PCB, dos encoders e determina-se a disposi¸c˜ao dos componentes na placa.

No Cap´ıtulo 5 faz-se uma discuss˜ao dos resultados obtidos em termos de hardware, nomeadamente, fabrico da placa, solda de componentes e montagem completa de kit. De seguida, faz-se uma an´alise dos algoritmos respons´aveis pelos m´odulos de controlo dos sensores, encoders e motores. Por fim, fez-se uma an´alise detalhada do custo de cada uma das componentes do kit rob´otico.

No Cap´ıtulo 6 elabora-se uma reflex˜ao cr´ıtica do projeto, fazendo uma an´alise os resultados obtidos e verificando se estes foram de encontro ao pretendido. De

seguida, estabeleceram-se objetivos futuros relativamente `a continua¸c˜ao de desenvolvimento deste projeto.

(32)

2

O Concurso Micromouse

A competi¸c˜ao de Micromouse inicou-se pelo mundo desde o final da d´ecada de 1970. Pelo que se sabe, a sua forma mais moderna de competi¸c˜ao teve origem por volta dos anos 1980 (Harrison, 2010).

2.1

Hist´

oria

Em 1977 a IEEE Spectrum magazine introduziu o conceito de Micromouse e em maio desse ano anunciou a “Amazing Micromouse Competition” (Incrivel Competi¸c˜ao de MicroMouse) que se realizara em 1970. Nesta competi¸c˜ao os robˆos tinham que encontrar o caminho para sa´ırem do lab´ırinto de 10×10. O vencedor foi um robˆo seguidor de paredes de alta velocidade.

No ano de 1980 o professor John Bilinsley, modificou as regras e introduziu a primeira competi¸c˜ao Europeia que teve lugar em Euromicro, Londres. Desta vez, o robˆo tinha como objetivo encontrar o centro do labirinto. Nick Smith conseguiu ter o primeiro robˆo de Micromouse (Sterling Mouse) a encontrar e reconhecer o centro do labirinto, apesar n˜ao ser a uma velocidade muito impressionante (0.18 m s−1).

(33)

8 CAP´ITULO 2. O CONCURSO MICROMOUSE

Figura 2.1 – Euromico 1980

No ano seguinte, na Micro Expo Exhibition, Paris apenas 8 robˆos em 13 conseguiram fazer o seu caminho at´e ao centro do labirinto. O primeiro lugar foi atribu´ıdo a Nick Smith, obtendo um tempo inferior a 3.5 min. A segunda competi¸c˜ao de Micromouse do UK teve lugar em Wembly. Desta vez, o robˆo Thumper de Dave Woodfield foi o vencedor com um tempo de 47 s ficando o Sterling Mouse de Nick Smith em segundo lugar. Alan Dibley ficou em terceiro com o seu Thezius fazendo um tempo de 2 min 27 s. Thezius estava especialmente interessado no poder de processamento do ZX80.

Em 1982 foram as finais Bitˆanicas do Euromouse. com 82 competidores presentes na feira Earls Court Computer fair. De um total de 7 finalistas, Alan Dibley arrecadou o primeiro e segundo lugares. O robˆo T3 (Terceira gera¸c˜ao da familia dos Thezeus) ganhou com um tempo de 1 min 13 s.

No ano de 1985 realizou-se a primeira competi¸c˜ao mundial de Micromouse em Tsukuba, Jap˜ao. Os Japoneses enviaram labirintos para pa´ıses de todo o mundo com intuito de atrair participantes. Uma grande variedade de robˆos Micromouse de todo o mundo participaram na competi¸c˜ao. O campe˜ao mundial foi Noriko-1 do Jap˜ao seguido por mais 5 Japoneses. O Inglˆes Dave Woodfield arrecadou o s´etimo lugar.

(34)

2.2. MICROMOUSE EM PORTUGAL 9

Em 1986 deu-se a primeira competi¸c˜ao dos EUA, em Atlantic City. Esta foi a primeira competi¸c˜ao de Dave Otten do MIT, com o seu robˆo Mitee Mouse I que acabou por ficar classificado em ´ultimo lugar. No ano seguinte (1987) Dave, conseguiu arrecadar o primeiro e segundo pr´emio com os seus Mitee Mouse I e Mitee Mouse II no IEE World Micromouse Championship, Londres. Este foi tamb´em o ano em que se realizou o primeico consurso de Signapura cujo vencedor foi o robˆo MIR3+ do Nanyang Technological Institute

O UK Championship de 1989, em Londres foi ganho pelos membros da equipa de Signapura. A Dave Woodfield’s Enterprise ficou em quinto classificado enquanto que o Mitee Mouse III de Dave Otten ficou em segundo classificado. Os trˆes primeiros executaram tempos com difere¸ca, entre eles, inferior a meio segundo. Em Outubro deste ano realizou-se tamb´em a Fist International Micromouse Competition (Primeira Competi¸c˜ao Internacional de Micromouse de Singapura).

A s´etima competi¸c˜ao anual IEE Micromouse Competiton, no ano de 1992, teve novamente lugar em Londres. Com nove participantes, o vencedor foi o Mitee Mouse III com a melhor pontua¸c˜ao global mas o Mouse Mobile II, de Louis Geoffrey do Canad´a, realizou o percurso mais r´apido. O robˆo Motor Mouse 2 de Derek Hall realizou o percurso com um bom tempo mas sofreu penaliza¸c˜oes, tal como aconteceu ao robˆo Mars 1 de Andrew Gattell.

2.2

Micromouse em Portugal

A hist´oria do micromouse em Portugal inicia-se em 2011. Para al´em de incluir o concurso anual em Portugal, visa proporcionar um ambiente de aprendizagem completo em tecnologia, fomentando a criatividade e a competˆencia. Desta forma e al´em da competi¸c˜ao anual, o projeto est´a associado ao desenvolvimento de: firmware de kit rob´otico (Gr´ıgora S) na forma de bibliotecas Arduino, dispon´ıveis e apoiadas na comunidade GitHub, workshops para alunos e professores, atividades de divulga¸c˜ao nas escolas, divulgadas no site oficial do evento e publica¸c˜oes cient´ıficas. Atualmente o projeto tamb´em inclui uma linguagem de programa¸c˜ao gr´afica - Scratch.

(35)

10 CAP´ITULO 2. O CONCURSO MICROMOUSE

O concurso portugˆes de micromouse (Micromouse Portuguese Contest) j´a vai com 5 edi¸c˜oes. As primeiras 3 edi¸c˜oes 2013, 2014 e 2015 (figura 2.2) tiveram lugar em Vila Real, no Dolce Vita Douro, com participantes de todo o pa´ıs. Em 2016, a 4a edi¸c˜ao do MPC teve lugar em ´Agueda e contou com a participa¸c˜ao especial de

Ng Beng Kiat (figura 2.2), professor no Ngee Ann Polytechnic no Departamento de Engenharia Electrot´ecnica e de Computadores e Peter Harrison (figura 2.7), respons´avel pelo site Micromouse Online.

O MPC de 2017 teve lugar em Gondomar com a participa¸c˜ao especial de Peter Harrsion e Chao-Wei Chen com o seu novo kit EDUmouse. A ´ultima edi¸c˜ao do MPC, em 2018, teve tamb´em lugar em Gondomar (figura 2.7). Contou com a participa¸c˜aode especial de Peter Harrison e Derek Hall do Reino Unido (figura 2.6).

Figura 2.2 – MPC2017 Figura 2.3 – MPC Labirinto

(36)

2.3. REGRAS 11

Figura 2.6 – MPC 2018 Figura 2.7 – MPC 2016 Resolu¸c˜ao Labirinto

2.3

Regras

O concurso Micromouse ´e uma competi¸c˜ao entre indiv´ıduos. Por isso, existem regras para organizar e garantir que todos tenham as mesmas oportunidades e o mesmo tratamento. Posto isto, vamos analisar as diferentes regras e ver de que modo podem diferir de concurso para concurso.

Podemos dividir as regras em trˆes categorias: Regras para o robˆo (micromouse), para o labirinto e para o concurso, que passamos a especificar. As regras que o robˆo deve cumprir s˜ao, por norma, univerais podendo, no entanto, sofrer pequenas altera¸c˜oes dependedendo do concurso. Relativamente ao labirinto, as regras s˜ao universais para todos os concursos podendo sofrer apenas altera¸c˜ao na cor das paredes (brancas com o topo vermelho ou completamente brancas).

Para podermos analisar as regras aplicadas ao concurso vamos primeiro entender algumas defini¸c˜oes: Tempo de Pesquisa (Search Time) ´e o tempo que o robˆo demora quando est´a a fazer a pesquisa do labirinto; Tempo de Volta (Run Time) ´e o tempo de uma corrida desde a c´elula de partida at´e `a c´elula de destino; Penalidade de Pesquisa (Search Penalty) s˜ao penaliza¸c˜oes associadas ao tempo que o robˆo demora a fazer

(37)

12 CAP´ITULO 2. O CONCURSO MICROMOUSE

a pesquisa do labirinto; Penalidade de Toque (Touch Penalty) ´e uma penalidade atribu´ıda quando ´e necess´ario pegar manualmente no robˆo quer seja para o trazer de volta `a c´elula inicial ou no caso de se ter despistado. As regras do concurso podem diferir nos seguintes aspetos: Tempo oficial (Tempo da melhor volta), tempo limite para o competidor, numero de voltas permitidas e modo de determina¸c˜ao do Tempo de Volta (manual ou com sensores). Nas regras da APEC micromouse, o tempo oficial ´e determinado pela seguinte equa¸c˜ao:

T empoOf icial = T empoV olta + SearchP enalty + T ouchP enalty

SearchP enalty = 1

30 × T empoP esquisa T ouchP enalty = 1

10× T empoV olta + 3

que ´e a mesma para as regras do micromouse UK. J´a no MPC, o Tempo Oficial ´e apenas o melhor Tempo de Volta. Pode tamb´em haver divergˆencias no que diz ao respeito ao tempo de atua¸c˜ao, podendo variar entre 5 - 10 minutos. Em alguns concursos, o n´umero de voltas neste tempo pode ser limitado a 5 voltas, a 7 voltas ou ilimitadas dentro do tempo estipulado, como no caso do MPC (UTAD,

2015) (Japan,2017).

(38)

3

Kits para Micromouse

Ao longo do tempo tˆem sido desenvolvidos kits rob´oticos para Micromouse. Estes visam tornar a programa¸c˜ao e constru¸c˜ao mais acess´ıveis, de modo a facilitar o seu uso pelos utilizadores. O objetivo de um kit ´e possuir um leque de bibliotecas j´a criadas, que possam ser usadas pelo utilizador, de modo que este n˜ao tenha necessidade de se preocupar com a parte mais complexa da programa¸c˜ao. As bibliotecas que os kits disponibilizam tornam a programa¸c˜ao mais simples e intuitiva, pricipalmente para jovens que procuram aprender rob´otica. Tendo em conta o contexto em que os kits rob´oticos se enquadram, conv´em referir que estes devem possuir um baixo custo, de forma a ser poss´ıvel o investimento por parte das escolas ou alunos. Neste cap´ıtulo vamos apresentar alguns kits de micromouse, que j´a se encontram no mercado, falar das suas caracter´ısticas e compar´a-los. Sabemos que cada robˆo de micromouse possui sempre: motores, unidade princ´ıpal de controlo (microcontrolador), sensores IR, per´ıf´ericos de controlo (drivers para controlo de motor), encoders, fonte de alimenta¸c˜ao e interface com utilizador.

Todos os kits tˆem sensores IR e fazem uso do principio de refle¸c˜ao da radia¸c˜ao infravermelha para se guiar no labirinto.

(39)

3.1

EDUmouse

O robˆo EDUmouse ´e um kit educacional para utilizadores mais avan¸cados ao Micromouse, desenvolvido pela Lunghwa University of Science and Technology. Tem como unidade principal de controlo o microcontrolador PIC33EP256MU806 cuja linguagem de programa¸c˜ao ´e C. Para se movimentar faz uso de dois motores RA12-6V com 2 rodas cada um, encoders 24pp e 4 sensores infra-vermelhos. O firmware interage com o utilizador atrav´es de LED, bot˜oes, buzzer e pode ser programado atrav´es de uma porta micro-USB ou via UART (Figura 3.1).

Figura 3.1 – Edumouse

3.2

Gr´ıgora

O kit rob´otico foi desenvolvido pela Universidade de Tr´as-os-Montes e Alto Douro. Tem a sua unidade principal de controlo baseado no Arduino Leonardo, ou seja, o microcontrolador ATmega32U4 da ATMEL com 32kb de flash memory e 2.5 kb de SRAM (Valente et al., 2015). A linguagem de programa¸c˜ao ´e a usada no Arduino. Movimenta-se usando uns motores de passo NEMA 8 de 1.8oangulo de passo) com

uma roda cada um e 4 sensores IR. O Gr´ıgoria pode ser programado atrav´es de uma porta micro USB. O firmware do microcontrolador comunica com utilizador atrav´es de bot˜oes, um buzzer e um conector s´erie. Os utilizadores podem criar o seu pr´oprio

(40)

algoritmo para resolver o labirinto fazendo uso das fun¸c˜oes que as bibliotecas do kit (C e C++) oferecem (Figura 3.2(a)).

Tendo por base este kit, a GLOBALTRONIC, desenvolveu tamb´em um gr´ıgora (Figura 3.2(b)).

(a) UTAD (b) Globaltronic

Figura 3.2 – Gr´ıgora

3.3

Project Futura

Este kit micromouse, desenvolvido pelos membros da IEEE micromouse (micromouse USA, 2015) trabalha com o microcontrolador STM32F405RGT6 high-performance ARM Cortex-M4 32-bit RISC core cuja linguagem programa¸c˜ao ´e C. Para se movimentar e guiar pelo labirinto faz uso de dois motores Pololu 1:10 gear motor HP com uma roda cada um, do Encoder AS5304 e de 4 sensores infra-vermelhos. O firmware do microcontrolador comunica com utilizador atrav´es de 2 bot˜oes, 11 LEDs e um display de pontos em matriz (Figura 3.3).

(41)

Figura 3.3 – Project Futura Kit

3.4

µMaRT-INO

O robˆo µMaRT-INO (da Silva) ´e um kit educacional de rob´otica destinado `a aprendizadgem no desenvolvimento de robˆos micromouse e robˆos seguidores de linha (robotracer). Esta vers˜ao espec´ıfica faz uso da plataforma Arduino UNO ou Leonardo que, neste contexto v˜ao ser designadas como ( Add-On), ou seja, plataformas externas para o controlo. Para se movimentar usa os motores micromotor Pololu com caixa de redu¸c˜ao de metal 30:1 HP (1000 rpm) com uma roda cada um, os encoders magn´etico em quadratura (360 pulsos por revolu¸c˜ao) e 4 sensores IR (Figura3.4).

Figura 3.4 – µMart-INO Kit

(42)

3.5

Ton-Bot

O robˆo TON-BOT ´e um kit de rob´otica m´ovel com a Plataforma TON (editor online mbed). O kit ´e destinado `a aprendizagem relativa `a elabora¸c˜ao de robˆos micromouse e robˆos seguidores de linha (robotracer). Tem como unidade central de controlo o ARM Cortex-M4 32bit STM32F405 embebido na plataforma Ton, cuja linguagem de programa¸c˜ao ´e C/C++. Apesar de ter v´arios componentes na PCB, usa um tipo de “Add-On” (plataforma TON) como controlador. Para se movimentar faz uso de motores Pololu com caixa de redu¸c˜ao de metal 30:1 HP (1000 rpm) com uma roda em cada, encoders magn´etico em quadratura (360 pulsos por revolu¸c˜ao) e 4 sensores IR. Oferece a poss´ıbilidade de poder ser controlado atrav´es de Bluetooth ou WiFi (Figura 3.5).

Figura 3.5 – Ton-Bot Kit

3.6

Picaxe Kit

O Picaxe ´e um kit rob´otico aut´onomo desenvolvido pelos campe˜oes nacionais do Reino Unido de 2007, Derek Hall e Jim Chidley. Usa um microcontrolador como unidade principal de controlo, o PIC PICAXE-28X28 cuja linguagem de programa¸c˜ao ´

e BASIC. Para se movimentar pelo labirinto faz uso de 3 sensores IR e encoders ´

opticos. A interface com o utilizador ´e atrav´es de bot˜oes, LED e um conector Jack Socket para programar.

(43)

Figura 3.6 – Picaxe Kit

3.7

Theseus Kit

Theseus ´e um kit rob´otico de micromouse desenvolvido por Miguel Peque e Clara Castedo de Espanha. Usa como unidade central de controlo uma placa com o microcontrolador STM32F103. Tem 4 sensores IR e 2 motores DC Faulhaber 2224U003SR IE2 256 para se movimentar e guiar no labirinto. A interface com o utilizador ´e atrav´es de bot˜oes, um m´odulo bluetooth, LED e buzzer.

Figura 3.7 – Theseus Kit

(44)
(45)

3.8

Tabela Comparativa

Esp ecifica¸ c˜ oes P artes Robˆ o EDUmouse Grigora Pro ject F utura µ MaR T-INO T on-Bot Picaxe Theseus Con trolador: PIC33EP256-MU806 A Tmega32U4 STM32F405-R GT6 A Tmega328p ou A Tmega32U4 STM32F40-5R GT6 PICAXE-28X28 STM32F103 Motor: RA12-6 NEMA8 1.8 o stepp er motors P ololu: c/ redu¸ c˜ao 1:10 gear motor P ololu c/ redu¸ c˜ao 30:1 HP (1000 rpm) P ololu c/ redu¸ c˜ap 30:1 HP (1000 rpm) Motor DC F aulhab er 2224U003SR IE2 256 Enco der: 24ppr HP/AS5304 Magn ´etico/ Quadratura (360 ppr) Magn ´etico/ Quadratura (360 ppr) ´Optico Driv ers: H-Bridge ZXMHC3F-381N8 DR V8834 ZXMHC3F-381N8 + TC4427 TB6612FNG TB6612FNG In terface: LED/Bot˜ oes/ Buzzer LED/Bot˜ oes/ Buzzer/ serial p ort connector 2 Bot˜ oes, 11 LEDs, Displa y de p on tos em matriz Bot˜ oes Blueto oth Smart 4.0: HM-10/ Wi-Fi: ESP8266 Bot˜ oes, LED’s e connector Jac k So ck et Bot˜ oes, m´ odulo blueto oth, LED’s e Buzzer Sensores: SFH-4545/ TSL-262 ESFH4550/ SFH309F A TEFT4300/ SFH4545X4 SFH4545/ TEFT4300 SFH4545/ TEFT4300 5mm IR LED’s/Photo-transistor 20

(46)

3.9

An´

alise cr´ıtica

Fazendo uma observa¸c˜ao de todos os kits acima supramencionados, podemos verificar algumas limita¸c˜oes no contexto educacivo. Em alguns podemos ver a sua complexidade a n´ıvel de software e em outros a sua limita¸c˜ao em termos de hardware. Vamos fazer uma an´alise detalhada de cada kit:

3.9.1

EDUmouse

O EDUmouse ´e um kit que, visivelmente, apresenta um bom desempenho no labirinto, tendo em conta a simplicidade do seu hardware. No entanto, a sua programa¸c˜ao pode ser bastante complicada, principalmente para jovens iniciantes na rob´otica. Um aspeto negativo ´e tamb´em o facto de apenas ser poss´ıvel a programa¸c˜ao numa linguagem.

3.9.2

Gr´ıgora

O gr´ıgora foi um kit desenvolvido, especificamente, para iniciantes de rob´otica. A sua programa¸c˜ao ´e atrav´es do IDE e da linguagem do arduino , para o qual existe bastante informa¸c˜ao dispon´ıvel. No entanto, est´a limitado quanto `as possibilidades de programa¸c˜ao, sendo apenas poss´ıvel o uso da linguagem C. A n´ıvel do hardware podemos ver tamb´em algumas limita¸c˜oes, nomeadamente, no tipo de motores que usa (motores de passo). Apesar de o seu controlo, atrav´es do software, ser mais simples estes s˜ao muito mais lentos que os motores DC.

3.9.3

Project Futura

Analisando as suas caracter´ısticas de hardware e software, este kit americano dependendo do utilizador, pode ter bastantes aspetos positivos. No entanto, para iniciantes pode ser bastante complicado na sua programa¸c˜ao. Semelhante a outros kits, ´e limitado nas poss´ıbilidades de programa¸c˜ao, uma vez que a ´unica que linguagem que suporta ´

e C.

3.9.4

µMaRT-INO e Ton-Bot

Estes dois kits, s˜ao simples de usar com a poss´ıbilidade de inserir um Add-On como o arduino UNO, arduino Leonardo ou placa Ton. Apesar de ser poss´ıvel adicionar estas

(47)

plataformas de controlo externas, podem tamb´em tamb´em trazer desvantagens, uma vez que se corre o risco de partir os conectores ou fazer liga¸c˜oes incorretas. A n´ıvel de software, apenas permite o uso da linguagem do arduino, no caso do µMaRT-INO e da linguagem C/C++ no caso do Ton-Bot.

3.9.5

Picaxe Kit

O kit Picaxe apresenta uma programa¸c˜ao de mais alto n´ıvel. A linguagem Basic ´

e bastante pr´atica para jovens e iniciantes de rob´otica. No entanto, apresenta a mesma limita¸c˜ao dos kits anteriores, permitindo apenas um tipo de programa¸c˜ao. No seu hardware tamb´em podemos observar um aspeto negativo no que diz respeito aos sensores IR que, pelo facto de ter apenas 3 (1 para cada lado e 1 para a frente), apenas permite realizar curvas de 90o e n˜ao permite realizar curvas diagonais (45o).

3.9.6

Thesus Kit

Este kit rob´otico apresenta alguns componentes de hardware de melhor qualidade em rela¸c˜ao aos anteriores. Os seus motores de muito boa qualidade que j´a contˆem encoders e facilitam muito no desenvolvimento do software de controlo. Apesar do referido ser um fator pos´ıtivo, estes motores podem ser dispendiosos. O pre¸co de um motor destes pode superar o pre¸co de um kit rob´otico completo. Sabemos que uma das caracter´ısticas de um kit rob´otico ´e ser low-cost. Outro aspeto negativo deste kit ´e o facto de fazer uso de um Add-On que, como vimos anteriormente tˆem riscos no seu manuseamento.

3.10

Desenvolvimento de um novo Kit

Tendo em conta todos os aspetos positivos e negativos dos kits supramencionados, surge a necessidade de elaborar um novo kit rob´otico para o concurso Micromouse, baseado no kit EDUmouse. Portanto, pretende-se efetuar um estudo comparativo em rela¸c˜ao aos kits j´a existentes no mercado, de modo a encontar solu¸c˜oes vantajosas, que permitam que este Kit se destaque. Assim, deseja-se que este cubra todos os aspetos negativos e que mantenha ou melhore os aspetos positivos j´a existentes.

(48)

4

Flash - O novo kit rob´

otico

Micromouse

O novo kit rob´otico desenvolvido, conhecido como Flash, tem o microcontrolador embebido na pr´opria PCB, n˜ao fazendo uso de qualquer tipo de Add-On.

´

E constituido por 2 motores DC que o fazem movimentar-se mais r´apido do que aqueles que fazem uso de motores de Passo.

O seu microcontrolador permite o uso de linguagens de programa¸c˜ao como CyrcuitPhython, Makecode e Arduino. Elimina-se assim a limita¸c˜ao a apenas uma linguagem de programa¸c˜ao e obtˆem-se mais possibilidades de programa¸c˜ao quer seja para utilizadores mais avan¸cados (Arduino e CyrcuitPython) quer para utilizadores iniciantes (MakeCode)

4.1

Unidade central e perif´

ericos

Na figura4.1temos um diagrama de blocos representativo das liga¸c˜oes entre os v´arios componentes do kit rob´otico. Nesta sec¸c˜ao vamos detalhar cada bloco representado indicando a sua fun¸c˜ao, pr´ıcipio de funcionamento e raz˜ao pela qual foram escolhidos.

Microcontrolador

O microcontrolador ´e o respons´avel por realizar todos os c´alculos l´ogicos e executar tarefas. Podemos resumir o seu funcionamento aplicado ao kit rob´otico da seguinte

(49)

Figura 4.1 – Diagrama de blocos representativo dos v´arios m´odulos do robˆo Micromouse

maneira:

1. Fazem-se leituras dos sensores IR, Encoders e girosc´opio.

2. Analiza-se e interpreta-se o seu conte´udo.

3. Tomam-se decis˜oes de controlo para que os motores movimentem o robˆo pelo labirinto.

Sensores refletivos infravermelho

Os sensores IR permitem detetar as paredes do labirinto, bem como a distˆancia a que se encontram, atrav´es do principio da refle¸c˜ao. O robˆo ´e composto por 4 sensores, em que cada um tem um led emissor IR e um fototrans´ıstor recetor de IR. Na figura 4.2, podemos ver como ´e feito o posicionamento dos sensores. O robˆo ´e colocado no meio de uma c´elula e os sensores mais pr´oximos da linha mesial devem estar direcionados para os cantos da c´elula atual. Os sensores mais distantes da linha mesial devem estar direcionados para os cantos finais da c´elula seguinte. Este ´

e um dos modos de colocar os sensores que prmite ao robˆo realizar curvas diagonais (de 45o). Note-se que o alinhamento dos sensores poderia ser ao contr´ario, ou seja,

(50)

os mais pr´oximos da linha mesial estarem orientados para os cantos finais da c´elula seguinte e os sensores mais afastados para os cantos da c´elula atual.

Figura 4.2 – Posicionamento dos sensores com o robˆo no meio de uma c´elula do labirinto

Drivers e Motores

Os drivers permitem controlar a distribui¸c˜ao de potˆencia aos motores. Os motores funcionam com uma tens˜ao de 8.4V, a qual n˜ao pode ser fornecida pelo microcontrolador. Ent˜ao os dr´ıvers s˜ao controlados pelo microcontrolador, para fornecerem a corrente e tens˜ao necess´aria aos motores, bem como inverter o sentido de rota¸c˜ao.

Girosc´opio/Aceler´ometro

Este IMU permite obter valores de acelera¸c˜ao e velocidade ˆangular que podem ser usados para determinados objetivos. No nosso contexto, estes parˆametros, v˜ao permitir determinar posi¸c˜ao do robˆo no labirinto, saber a distˆancia percorrida e determinar a velocidade.

Buzzer, bot˜oes e LED RGB

Neste kit temos um buzzer, 2 bot˜oes e 3 LED RGB. O buzzer faz parte do hardware de intera¸c˜ao com o utilizador e emite som nos momentos em que se pretende. Os

(51)

2 bot˜oes s˜ao o bot˜ao de RESET e o bot˜ao de MENU. O bot˜ao de RESET permite reiniciar o microcontrolador. O bot˜ao de MENU permite ao utilizador selecionar os v´arios modos de programa¸c˜ao do robˆo, como por exemplo, realizar a volta de pesquisa no labirinto ou realizar a volta r´apida. Os LED v˜ao dar combina¸c˜oes de luz diferentes de acordo com o modo que se selecione.

EEPROM e mem´oria flash

A mem´oria EEPROM permite guardar, depois da volta de pesquisa, o trajeto mais curto ou mais r´apido desde a c´elula inicial at´e ao centro do labitrinto. A mem´oria flash permite ao microcontrolador guardar os programas desenvolvidos em CircuitPython, j´a que o microcontrolador por si s´o, n˜ao tem capacidade suficiente para tal.

Encoders

Os encoders s˜ao colocados nas rodas dos motores, com sensores IR, para determinar a distˆancia que o robˆo percorre. Ao contr´ario dos motores de passo, os motores DC sozinhos n˜ao a permitem determinar. Para tal, ´e necess´ario desenvolver um encoder para que, atrav´es dos furos das rodas, permita determinar a posi¸c˜ao do robˆo. Agora ´e preciso fazer uma an´alise dos blocos de controlo do kit, mencionados no cap´ıtulo anterior. Os componentes escolhidos para fazer parte de cada bloco s˜ao determinados tendo em conta certos parˆametros que v˜ao ser referidos.

4.2

Escolha do microcontrolador

A iniciativa de construir um novo kit surge aliada `a possilidade de ter um microcontrolador capaz de ser programado com 3 linguagens diferentes, CyrcuitPython, MakeCode e Arduino. O microcontrolador que permite isto ´e o ATSAMD51J19A-AU da Atmel em que os processadores que s˜ao conhecidos como ARM - CortexM (fam´ılia de n´ucleos de processador RISC de 32-bit, licenciados pela ARM Holdings) pemitem o uso de Bootloaders para o efeito supramencionado.

(52)

Figura 4.3 – ATSAMD51J19A-AU Microcontrolador

4.3

Sensores refletivos e driver de controlo

Os robˆos de micromouse usam sensores refletores IR, para detetar as paredes do labirinto. Estes s˜ao divididos em trˆes componentes, os LED emissores, os fototrans´ıstors recetores e o driver de controlo.

4.3.1

Escolha dos LED emissores

A escolha dos LED ´e baseada em certos crit´erios, que tˆem em conta a gama da radia¸c˜ao IR e o ˆangulo de difus˜ao da luz emitida pelo LED. ´E de todo o interesse que o padr˜ao da luz emitida tenha um feixe pequeno, isto ´e, um ˆangulo de difus˜ao pequeno. Se o ˆangulo de difus˜ao for muito amplo as leituras no recetor podem ser confusas.

Uma experiˆencia levada a cabo por Peter Harrison (Harrison, 2011), consistiu em clocar cada emissor, de um total de 11, a 100mm de um peda¸co de papel, pintado a preto com uma impressora a laser. Atrav´es de uma webcam foi poss´ıvel ver o padr˜ao de ilumina¸c˜ao de cada um e construir a tabela abaixo apresentada.

(53)

Part number 1/2 angle mW/Sr I (A) nm Spot Size SFH4550-DW 3o 400 0.10 850 5 OSI3NA5111A 7.5o 60 0.10 850 13 SFH484-2 8o 80 0.10 880 14 SFH4580 15o 25 0.10 880 26 OPE5594A 10o 80 0.10 940 17 TSAL5100 10o 130 0.10 940 17 TSAL6100 10o 130 0.10 940 17 SFH4511 4o 63 0.10 950 7 SFH4503 4o 63 0.10 950 7 GL514 7o 950 12 SFH409 20o 6.3 0.10 950 34

Pela an´alise da tabela, o LED SFH 4550 ´e o que apresenta o melhor ˆangulo de difus˜ao, 3o, com comprimento de onda de 860 nm. Os diferentes padr˜oes de ilumina¸c˜ao

podem ser vistos na Figura4.4. D´a para ver que os LED SFH 4550 e OSI3NA5111A tˆem um feixe de luz mais fechado em rela¸c˜ao aos outros. (Figuras4.4(a) 4.4(b)). Em outros LED, como o caso do SFH484-2 (Figura 4.4(c)), SFH4511 (Figura 4.4(h)) e SFH4503 (Figura 4.4(i)) d´a para ver um formato de anel no padr˜ao de luz, que pode provocar leituras confusas dos sensores.

4.3.2

Escolha dos fototrans´ıstors recetores

Os fototrans´ıstors recetores s˜ao selecionados tendo em conta o comprimento de onda da radia¸c˜ao IR do LED emissor e as suas caracteristicas de filtragem. Os escolhidos s˜ao os TSL260R-LF 940 nm. Estes fototrans´ıstors s˜ao muito comuns e eficazes na

(54)

(a) SFH 4550 (b) OSI3NA5111A

(c) SFH484-2 (d) SFH4580 (e) OPE5594A

(f) TSAL5100 (g) TSAL6100 (h) SFH4511

(i) SFH4503 (j) GL514 (k) SFH409

Figura 4.4 – Pad˜oes de Luz Infra-Vermelha

(55)

Figura 4.5 – LED Emissor de Infra-Vermelho SFH4550

comunidade micromouse, pois evitam o uso de mais componentes.

Figura 4.6 – Sensor ´Otico Infravermelho luz-tens˜ao TSL260R-LF

4.3.3

Esquem´

atico dos sensores refletivos

A figura abaixo (Figura 4.7) mostra-nos o esquema de montagem dos sensores em Eagle. Os LED emissores est˜ao ligados a 8.4 V com uma resistˆencia de 18 Ω e o ˆanodo ligado ao driver de controlo. Para ter um bom alcance, os emissores s˜ao ligados a uma tens˜ao elevada, com uma resistˆencia pequena. Por esta raz˜ao, o controlo dos LED ter´a de ser PWM para n˜ao danificar o componente. Os recetores consistem de um sensor ´otico IR luz-tens˜ao, ligado a 3.3 V no pino de alimenta¸c˜ao e ligado ao microcontrolador atrav´es pino de sa´ıda.

4.3.4

Escolha do driver dos sensores refletivos

Para escolher o dr´ıver de controlo dos LED emissores ´e necess´ario ter em conta certos crit´erios de sele¸c˜ao. S˜ao estes a corrente m´axima admiss´ıvel, tens˜ao m´axima

(56)

Figura 4.7 – Esquem´atico dos sensores IR

e o tempo de resposta. O ULN2003 (4.8) tˆem tens˜ao m´axima de entrada adimiss´ıvel de 5.5 V, tens˜ao m´axima dos pinos de sa´ıda admiss´ıvel de 20 V, corrente m´axima dos pinos de sa´ıda de 100 mA e tempos de comuta¸c˜ao PHL (logic high propagation delay) de 50 ns e PLH (logic low propagation delay) de 121 ns. Para o circuito de sensores necessitamos de um driver que suporte uma tens˜ao nos pinos de sa´ıda de 8.4 V, tens˜ao de entrada de 3.3 V e corrente de pinos de sa´ıda de 383 mA. Podemos j´a verificar que o ULN2003 cumpre estas carcter´ısticas. Os tempos de comuta¸c˜ao na casa dos ns n˜ao influenciam em nada leituras dos sensores.

Figura 4.8 – Driver LED ULN2003V12

4.3.5

Esquem´

atico do driver sensores refletivos

A figura 4.9 ilustra o esquem´atico do driver para controlo dos sensores bem como para controlo do buzzer. Os pinos de 2 a 5 ligam ao microcontrolador enquanto que os pinos de 12 a 15 ligam ao ˆanodo dos LED emissores. Os pinos 1 e 16 servem para controlar o BUZZER.

(57)

Figura 4.9 – Esquema de Montagem do Driver Sensores IR em Eagle

4.4

Motores

Os crit´erios para a escolha dos motores s˜ao bastante simples no ˆambito deste projeto. Tˆem que ser de baixo custo e motores DC em vez de motores de passo. Os motores usados no kit desenvolvido s˜ao os mesmos presentes no kit EDUmouse (figura 4.10).

Figura 4.10 – Motores DC

(58)

4.4.1

Drivers de motores

Para escolha dos drivers de controlo dos motores devemos ter em conta a Tens˜ao m´axima admissivel e corrente m´axima admiss´ıvel. O bloco Dr´ıvers de Motores ´e composto por duas componentes.

- ZXMHC3A01N8: uma ponte H Mosfet inversora, que permite inverter o sentido de rota¸c˜ao dos motores (figura 4.11);

- TC4427A: um driver Mosfet de potˆencia, que permite controlar a potˆencia (figura 4.12).

Figura 4.11 – ZXMHC3A01N8 Figura 4.12 – TC4427A

O primeiro suporta uma tens˜ao m´axima absoluta de 30 V e corrente m´axima pulsada de 11.7 A. Estes componentes tˆem de suportar a tens˜ao de alimenta¸c˜ao dos motores de 8.4 V e uma corrente de 0.7 A. O esquem´atico de liga¸c˜ao est´a apresentado na figura 4.13.

Figura 4.13 – Esquem´atico dos drivers dos motores

(59)

4.5

Mem´

oria flash e EEPROM

Os componentes de mem´oria flash e mem´oria EEPROM s˜ao escolhidos de acordo com as necessidades de mem´oria. A mem´oria flash tem que ter capacidade suficiente para guardar c´odigos de CircuitPython. O mesmo se aplica para a EEPROM que, no entanto necessita apenas de espa¸co para guardar o percurso que o robˆo tem de percorrer. Os componentes que s˜ao usados no nosso kit s˜ao 26WF016B-104I/SN 16Mbit (figura 5.2(b)) para a mem´oria flash e 24LC64FT-I/OT 64kbit (figura4.15) para a EEPROM

Figura 4.14 – 26WF016B-104I/SN Figura 4.15 – 24LC64FT-I/OT

4.5.1

Esquem´

atico mem´

oria flash e EEPROM

A EEPROM comunica usando o protocolo I2C sendo os pinos 1 e 3 as duas linhas de comunica¸c˜ao SCL e SDA, respetivamente. A memoria Flash comunica com o protocolo SPI sendo os pinos 2, 5, 1 e 6 os principais barramentos de comunica¸c˜ao MISO, MOSI, CS e SCK, respetivamente.

Figura 4.16 – Esquem´atico das mem´orias flash e EEPROM

(60)

4.6

Girosc´

opio/Aceler´

ometro

A IMU escolhida ´e o MPU6050 (Figura 4.17) semelhante ao MPU6000 do kit EDUmouse. Este componente em particular ´e o mais usado em smartphones, tablets e outros dipositivos, por ser bastante fi´avel e de boa qualidade. O MPU6050 ´e o primeiro circuito integrado detetor de movimento com 6 eixos, ou seja, um girosc´opio de 3 eixos, um aceler´ometro de 3 eixos e um processador digital de movimento. Tendo em conta o seu hist´orico de uso, ´e de todo o interesse utiliz´a-lo no nosso kit. O esquema de montagem est´a na Figura4.18e ´e poss´ıvel comunicar com o IMU por I2C.

Figura 4.17 – Girosc´opio MPU6050

4.6.1

Esquem´

atico do MPU6050

Figura 4.18 – Esquem´atico MPU6050

(61)

4.7

Encoders

Como referido anteriormente, os encoders fornecem informa¸c˜ao que permite determinar a posi¸c˜ao em que o robˆo se encontra no labirinto. A sua implementa¸c˜ao nas rodas dos motores, permite determinar a distˆancia que cada roda percorreu. Vamos ver o esquema de constru¸c˜ao dos encoders e a disposi¸c˜ao dos sensores.

4.7.1

Desenho dos Encoders

Podemos ver, na figura4.19 o desenho, feito em eagle, dos encoders. O desenho dos sensores (Sensor 1E, 2E, 1D, 2D) ´e feito de modo a ter um recorte nesse local para que possam ser l´a colocados.

(a) Encoder Esquerda (b) Encoder Direita

Figura 4.19 – Encoders

Para que as leituras dos sensores sejam corretas, ´e fundamental a sua correta disposi¸c˜ao. A figura 4.20 representa os sensores IR dos encoders (a laranja) e o grau de desfasamento entre eles. Os c´ırculos pequenos representam os buracos nas rodas dos motores (Figura4.21). Conv´em salientar que o sensor que est´a a 165o tem

uma rota¸c˜ao e desfasamento de 75o em rela¸c˜ao ao sensor situado a 90o.

Na figura4.21 temos a representa¸c˜ao do encaixe dos encoders no eixo das rodas. O 36

(62)

Figura 4.20 – Posicionamento Angular dos Sensores dos Encoders

furo nos encoders deve ser feito de forma a que os sensores estejam bem alinhados com os buracos das rodas.

Figura 4.21 – Posicionamento dos Encoder nas Rodas

4.7.2

Sensores ITR8307

Estes s˜ao os sensores que dizem respeito aos encoders. Cada um consiste em um d´ıodo emissor de IR e um fototrans´ıstor NPN, colocados lado a lado num eixo de convergˆencia ´optica (figura 4.22). O fototrans´ıstor apenas recebe a radia¸c˜ao do d´ıodo. Sempre que o sensor est´a alinhado com algum furo da roda, o recetor n˜ao recebe a radia¸c˜ao IR, no caso oposto, o recetor recebe a radia¸c˜ao IR do d´ıodo.

(63)

Figura 4.22 – Sensor dos Encoders ITR8307

4.7.3

Dual Schmitt-Trigger Buffer

Este pequeno chip (4.23) faz parte de cada encoder. Permite fazer a convers˜ao de um sinal de pulsos para uma onda quadrada perfeita (figura 4.23). Assim, apenas recebemos sinais digitais dos encoders.

Figura 4.23 – SN74LVC2G17 Dual Schmitt-Trigger Buffer

4.7.4

Esquema de Montagem dos Encoders

A liga¸c˜ao em EAGLE dos encoders est´a apresentada na figura 4.24.

At´e aqui apresentamos os componentes mais relevantes do robˆo, os seus crit´erios de escolha e os esquemas de montagem. Outros componentes como resistˆencias, condensadores, bot˜oes e conectores n˜ao est˜ao aqui apresentados uma vez que os seus crit´erios de sele¸c˜ao n˜ao s˜ao t˜ao relevantes. No entanto o esquem´atico completo do robˆo est´a em anexo.

4.8

Desenho Final

Depois da escolha e liga¸c˜ao de todos os componentes elabora-se o desenho da placa e colocam-se os componentes nos locais certos. Alguns componentes devem ser

(64)

Figura 4.24 – Esquema de Montagem Encoders EAGLE

colocados em locais espec´ıficos, enquanto outros depende de preferˆencias pessoais. Na figura4.25temos o desenho e disposi¸c˜oes finais da placa e componentes. A figura est´a dividida em sec¸c˜oes e cada sec¸c˜ao pode ter uma ou mais ´areas. Vamos agora analizar cada sec¸c˜ao:

• Sec¸c˜ao no 1 - Nesta sec¸c˜ao temos posicionados os sensores IR. Estes devem

ser colocados sempre na frente do robˆo para poderem detetar corretamente as paredes do labirinto.

• Sec¸c˜ao no 2 - Aqui temos a posi¸c˜ao do microcontrolador. A sua posi¸c˜ao ´e

uma preferˆencia pessoal, no entanto ´e de boa pr´atica tentar coloc´a-lo o mais perto poss´ıvel do centro da placa, uma vez que tem liga¸c˜oes para todos os componentes do circuito.

• Sec¸c˜ao no 3 - Aqui temos a coloca¸c˜ao dos drivers dos motores. Mais uma vez a

coloca¸c˜ao destes componentes ´e uma preferˆencia pessoal, no entanto ´e de boa pr´atica coloc´a-los perto dos motores.

• Sec¸c˜ao no 4 - Esta sec¸c˜ao da placa ´e ocupada pelos motores. Estes devem estar 39

(65)

colocados no ponto m´edio do comprimento da placa, de modo a existir uma boa distribui¸c˜ao do peso.

• Sec¸c˜ao no 5 - Em 5 temos o espa¸co ocupado pelo girosc´opio/aceler´ometro. A

sua correta coloca¸c˜ao ´e fundamental para obter boas leituras deste dispositivo. Deve ser colocado exatamente no ponto m´edio entre os motores, ou seja, no centro de massa do robˆo e no ponto m´edio do comprimento da placa.

• Sec¸c˜ao no 6 - Nesta sec¸c˜ao temos a fonte de alimenta¸c˜ao. Est´a situada na parte

inferior da placa pois ´e o local dos conectores como bateria e USB. ´E tamb´em o local mais comum de coloca¸c˜ao do conjunto de componentes que fazem a fonte de alimenta¸c˜ao de todo o robˆo. Esta, em particular fornece tens˜oes de 8.4 V, 4.5 V e 3.3 V.

• Sec¸c˜ao no 7 - Aqui temos colocados na parte detr´as do robˆo os bot˜oes de

RESET, de MENU e o conector µUSB. ´E o melhor local para colocar estes componentes, uma vez que ´e de f´acil acesso para o utilizador.

• Sec¸c˜ao no 8 - Pinos de liga¸c˜ao dos encoders. Situados no local mais pr´oximo

das rodas dos motores que ´e onde os encoders encaixam.

• Sec¸c˜ao no 9 - Os componentes que dizem respeito a esta sec¸c˜ao s˜ao os neopixel

RGB. Servem como luzes de intera¸c˜ao com o utilizador. A sua disposi¸c˜ao na placa ´e de pura preferˆencia pessoal.

(66)

Figura 4.25 – Desenho e disposi¸c˜ao de componentes final da placa PCB

(67)
(68)

5

Resultados

Ap´os finalizado o desenho da placa, esta foi enviada para o centro de frabrico SeedStudio, China. O resultado ´e a placa representada na figura seguinte 5.1(a). Uma vez que os componentes s˜ao bastante pequenos, a solda fez-se com recurso a um microsc´opio (figura 5.1(b)).

(a) Placa PCB (b) Solda dos componentes

Figura 5.1 – In´ıcio da montagem

Na seguinte figura (5.2(b)), podemos ver o resultado final do kit Flash com os motores devidamente montados e as componentes soldadas.

(69)

(a) PCB com componentes

(b) Kit completo

Figura 5.2 – Placa com componentes soldadas e robˆo completo

Ap´os finalizar o desenho da placa e montar os motores, ´e necess´ario desenvolver m´odulos de controlo para facilitar a programa¸c˜ao dos utilizadores. Neste cap´ıtulo vamos analisar os algoritmos que comp˜oem cada m´odulo de controlo. Para ser poss´ıvel desenvolver um algoritmo de resolu¸c˜ao do labirinto ´e necess´ario ter m´odulos de controlo. O que fazem estes m´odulos? Eles lidam com a parte da programa¸c˜ao de mais baixo n´ıvel, como analisar os valores de tens˜ao dos sensores, analisar os sinais dos encoders e controlar a distribui¸c˜ao de potˆencia aos motores. Assim o utilizador apenas executa as fun¸c˜oes que pretende de cada m´odulo, como por exemplo, a fun¸c˜ao que faz automaticamente a leitura dos sensores e disponibiliza os seus valores.

Para que seja poss´ıvel ao utilizador criar um algoritmo de resolu¸c˜ao do labirinto s˜ao necess´arios 3 m´odulos: o m´odulo de controlo dos sensores IR, m´odulo de controlo dos encoders e aceler´ometro e m´odulo de controlo dos motores.

Mas antes de criar estes m´odulos temos que instalar o bootloader no microcontrolador. O que ´e o bootloader? ´E um firmware que ´e instalado no microcontrolador quando ele est´a “vazio” e permite-lhe receber e executar os c´odigos pretendidos, tais como c´odigos em Python, MakeCode e Arduino.

(70)

5.1

Carregamento do Bootloader

Para facilitar o carregamento do bootloader inclu´ımos, no desenho da PCB, um package (pinos de conec¸c˜ao) de pinos SWD (figura5.3(a)) que permite ligar o cabo apresentado na figura 5.3(b).

(a) PCB SWD Pins Package (b) Tag Connect - TC2030-MPC-NL

Figura 5.3 – Connec¸c˜ao SWD

O upload do firmware de bootloader foi poss´ıvel com recurso ao programador da Atmel, o Atmel-ICE (figura 5.4)

Figura 5.4 – Programador Atmel-ICE

Vamos ver agora como fazer o upload do firmware. As etapas a seguir s˜ao:

- Fazer o download do software Atmel Studio; 45

(71)

- Fazer o download do ficheiro de bootloader para o processador M4 emAdafruit

(2018)https://github.com/adafruit/circuitpython/releases/;

- Conectar os pinos SWD do Atmel-ICE ao cabo Tag-Connect;

- Alimentar a placa e conectar o cabo Tag-Connnect

- Conectar o Atmel-ICE ao PC;

- No software Atmel Studio selecionar Tools e de seguida Device Programming;

- Selecionar o dispisitivo ATSAMD51J19A;

- Selecionar o campo Memories

- Procurar o ficheiro de bootloader no campo flash e premir o bot˜ao Program;

E assim temos o bootloader carregado para o microcontrolador que fica pronto para o desenvolvimento dos m´odulos pretendidos

5.2

odulo para controlo dos sensores infra-vermelhos

Para cada sensor temos um LED emissor e um fototrans´ıstor recetor. Sabemos que a luz infravermelha ´e emitida pelo LED, ´e refletida na parede branca do labirinto sendo depois captada pelo fototrans´ıstor correspondente. Dependendo da distˆancia a que se encontra a parede, vamos ler uma tens˜ao maior (parede mais perto) ou menor (parede mais longe) no pino emissor do fototrans´ıstor.

Um teste aos sensores IR foi efetuado de forma determinar a distˆancia dos sensores `

a parede (figura 5.5). Ao LED emissor foi fornecida uma corrente de 125 mA. O procedimento consiste em gradualmente afastar a parede branca dos sensores e de 5 mm em 5 mm fazer leituras da ADC (figura 5.5). Com estes valores foi poss´ıvel constru´ır o gr´afico que nos d´a a rela¸c˜ao entre a distˆancia `a parede e o valor da ADC. O gr´afico est´a apresentado na figura 5.6. A partir do gr´afico d´a para ver que apenas a partir de uma distˆancia de 20 mm ´e que se deve realizar leituras. Numa distˆancia

(72)

Figura 5.5 – Teste aos LED IR para desenho da curva de distˆancia

inferior, o emissor e recetor est˜ao muito pr´oximos, n˜ao est˜ao em convergˆencia ´otica e consequentemente n˜ao se realizam leituras corretas.

Figura 5.6 – Curva de distˆancia da parede

De seguida ´e apresentado o Pseudoc´odigo para controlo dos sensores. Os LED emissores est˜ao sujeitos a uma corrente de aproximadamente 500 mA para terem um longo alcance. Para n˜ao danificar o LED, a sua emiss˜ao n˜ao pode ser continua mas sim pulsada (PWM). O algoritmo da fun¸c˜ao respons´avel pela leitura dos sensores consiste em:

(73)

1: LeituraEscuro ← LeituradaADCantesdoLEDemissorligar 2: LeituraLuz ← LeituradaADCdepoisdoLEDemissorligar 3: LeituraReal ← Leituracorretadovalordossensores 4: Limit ← V alordaADCparaoqualseconsideraproximidadedaparede 5: repeat 6: LeituraEscuro ← LerADC 7: LEDEmissor ← ON 8: LeituraLuz ← LerADC 9: LEDEmissor ← OF F

10: LeituraReal ← LeituraLuz − LeituraEscuro

11: if LeituraReal < Limit then

12: return N aohaparede

13: else

14: return Haparede

15: end if

16: until T odosSensoresLidos

Sempre que a fun¸c˜ao respons´avel pela leitura dos valores dos sensores for executada, todo este procedimento ´e realizado. Assim garante-se a integridade dos LED, ligando-se os emissores apenas para efetuar leituras e atingindo-se um alcance elevado da luz IR.

5.3

odulo de controlo dos encoders e aceler´

ometro

Sabemos que exitem 6 buracos em cada roda dos motores, ent˜ao com 2 sensores em cada encoder temos 12 pulsos por volta (PPV). De acordo com o movimento das rodas, os gr´aficos a esperar da leitura dos encoders s˜ao os apresentados na figura

5.7. Sendo A a leitura do Sensor 1 e B a leitura do Sensor 2 (Vistos no cap´ıtulo anterior).

O ˆangulo de desfasamento entre os sinais ´e igual ao ˆangulo de desfasamento f´ısico entre os sensores (75o). Atrav´es deste gr´afico podemos tamb´em determinar o sentido de rota¸c˜ao dos motores, ou seja, se o sinal A estiver adiantado em rela¸c˜ao a B os

(74)

Figura 5.7 – Pulsos de Ambos sensores do Encoder

motores est˜ao a rodar no sentido positivo (para a frente). No caso oposto, se B estiver adiantado em rela¸c˜ao a A os motores est˜ao a rodar no sentido negativo (para tr´as).

A resolu¸c˜ao de cada encoder ´e dada ela seguinte equa¸c˜ao:

Res = P

P P V (5.1)

• Res - Resolu¸c˜ao

• P - Per´ımetro da Roda (mm)

• PPV - Pulsos por Volta (ppv)

• R - Raio da Roda (mm)

Sabendo que o raio de cada roda ´e 11.5 mm, ent˜ao o per´ımetro pode ser calculado da seguinte maneira:

P = 2 × π × R = 2 × π × 11.5 (5.2)

P = 72.257 mm (5.3)

A equa¸c˜ao que se segue permite relacionar o n´umero de pulsos no encoder com a distˆancia percorrida por aquela roda.

P ulses = Dist × 12

P (5.4)

Usando a equa¸c˜ao 5.1 podemos determinar a resolu¸c˜ao dos nossos encoders, que ´e 6.021 mm.

(75)

5.3.1

Determinar a Velocidade do Robˆ

o

Por si s´o, os encoders podem n˜ao ser suficientes para determinar a velocidade e distˆancia percorrida pelo robˆo, pois caso as rodas derrapem iremos ter uma leitura errada da distˆancia percorrida. Por isso, devem-se usar os encoders em conjunto com o aceler´ometro a fim de controlar os motores e determinar a posi¸c˜ao do robˆo. Quando o robˆo sofre uma altera¸c˜ao na sua velocidade significa que esteve sujeito a uma acelara¸c˜ao, que por sua vez ´e detetada pelo aceler´ometro. No entanto, caso as rodas derrapem, o aceler´ometro n˜ao ir´a fazer qualquer dete¸c˜ao, apesar da leitura dos encoders significar que o robˆo se moveu.

Para resolver estes problemas, tˆem-se usado algumas metodologias. O m´etodo que vamos aqui apresentar para determinar a velocidade do robˆo tem por base o estudo

Su et al. (2016). Ent˜ao a velocidade estimada do robˆo pode ser determinada pela seguinte express˜ao:

V = M ediaEncodersN umIntervalodeT empo+IntegraldaAceleracaonoM esmoIntervalodeT empo (5.5)

Para determinar a velocidade ´e necess´ario analisar a frequˆencia dos pulsos detetados nos encoders. A velocidade das rodas est´a relacionada com a frequˆencia dos pulsos, ent˜ao faz-se a m´edia do n´umero de pulsos durante um determinado intervalo de tempo e obt´em-se a componente da velocidade dada pelos encoders. Ao integrar a acelera¸c˜ao obtida pelo aceler´ometro num intervalo de tempo, tˆem-se a velocidade. Ent˜ao a velocidade estimada ser´a a jun¸c˜ao destas duas componentes, uma dos encoders e outra do aceler´ometro.

5.3.2

Pseudoc´

odigo para leituras dos encoders

1: repeat 2: P ulsos ← LerEncoder 3: until P eriododetempo 4: Distancia ← Equacao5.4 5: V elocidade ← IntegralDaDistancia 50

Imagem

Figura 2.1 – Euromico 1980
Figura 2.4 – Gr´ıgora MPC Figura 2.5 – MPC Labirinto 2018
Figura 3.1 – Edumouse
Figura 3.3 – Project Futura Kit
+7

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Os resultados deste estudo mostram que entre os grupos pesquisados de diferentes faixas etárias não há diferenças nos envoltórios lineares normalizados das três porções do

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

A Lista de Fauna Ameaçada de Extinção e os Entraves para a Inclusão de Espécies – o Exemplo dos Peixes Troglóbios Brasileiros.. The List of Endangered Fauna and Impediments

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for