dissertacao mestrado ufes - implementacao de um quadrotor como ma

Upload: marcio-camelo-camelo

Post on 17-Jul-2015

139 views

Category:

Documents


0 download

TRANSCRIPT

Alexandre Secchin de Melo

Implementao de um Quadrotor como Plataforma de Desenvolvimento para Algoritmos de Controle

Vitria - ES, Brasil 30 de junho de 2010

Alexandre Secchin de Melo

Implementao de um Quadrotor como Plataforma de Desenvolvimento para Algoritmos de ControleDissertao apresentada ao Programa de PsGraduao em Engenharia Eltrica do Centro Tecnolgico da Universidade Federal do Esprito Santo, como requisito parcial para obteno do Grau de Mestre em Engenharia Eltrica.

Orientador:

Evandro Ottoni Teatini Salles

P ROGRAMA DE P S -G RADUAO EM E NGENHARIA E LTRICA C ENTRO T ECNOLGICO U NIVERSIDADE F EDERAL DO E SPRITO S ANTO

Vitria - ES, Brasil 30 de junho de 2010

Dados Internacionais de Catalogao-na-publicao (CIP) (Biblioteca Central da Universidade Federal do Esprito Santo, ES, Brasil)

M528i

Melo, Alexandre Secchin de, 1981Implementao de um quadrotor como plataforma de desenvolvimento para algoritmos de controle / Alexandre Secchin de Melo. 2010. 113 f. : il. Orientador: Evandro Ottoni Teatini Salles. Dissertao (mestrado) Universidade Federal do Esprito Santo, Centro Tecnolgico. 1. Helicpteros. 2. Acelermetros. 3. Giroscpios. 4. Microcontroladores. 5. Rotores. I. Salles, Evandro Ottoni Teatini. II. Universidade Federal do Esprito Santo. Centro Tecnolgico. III. Ttulo. CDU: 621.3

Dissertao de Mestrado sob o ttulo Implementao de um Quadrotor como Plataforma de Desenvolvimento para Algoritmos de Controle, a ser defendida por Alexandre Secchin de Melo em 30 de junho de 2010, em Vitria, Estado do Esprito Santo, pela banca examinadora constituda pelos professores:

Prof. Dr. Evandro Ottoni Teatini Salles Orientador

Prof. Dr. Jos Geraldo das Neves Orlandi Instituto Federal do Esprito Santo - Campus Serra

Prof. Dr. Luis Eduardo Martins de Lima Instituto Federal do Esprito Santo - Campus Vitria

Prof. Dr. Klaus Fabian Cco Universidade Federal do Esprito Santo

ResumoEste trabalho visa a implementao de um objeto voador no-tripulado, em formato miniatura, com quatro rotores como plataforma de desenvolvimento, como parte de uma pesquisa mais abrangente. O objetivo nal, ainda por ser alcanado, chegar a um veculo voador miniatura com o mximo grau de autonomia de decises baseadas no sensoreamento a bordo e poder computacional embarcados, estratgia do controle inteligente, e tarefa a cumprir. Tal implemetao, at o momento, consiste em uma mquina eletro-mecnica de baixo custo, cuja parte eletrnica a bordo, um microcontrolador de 8 bits, acelermetros e giroscpios do tipo MEMS, permite a implementao de um controlador de voo genrico para automatizar a sua estabilizao em torno dos eixos X, Y e Z. Tem vasta gama de aplicaes como: inspees areas em diversos ambientes, como linhas de transmisso eltrica, deteco de foragidos da polcia, monitoramento de plantaes e rebanhos, bem como tomadas de lmagens para as indstrias cinematogrca e imobiliria. Testes realizados com o prottipo at agora sugerem a implementao bem sucedida de um controlador de estabilizao de voo.

AbstractThis work aims the implementation of a unmanned, four-rotor miniature ying machine as a development platform, part of a long term research. The nal goal, yet to be achieved, is the realization of a ying object with maximum practicable degree of autonomous decisions based on the on-board sensory and computational power, control strategy and assigned task. Up to this work, it consists of a low cost electro-mechanical hardware, whose electronic part allows the implementation of an 8-bit microcontroller-based, MEMS accelerometer and gyroscopes, allows the implementation of a generic y control for attitude stabilization. The broad spectrum of applications includes: the inspection of various kinds of environments such as electric power transmission lines, police surveillance of woods and hard-to-reach places with sky sight for fugitive detection, crops and herd monitoring, as well as lm takings for the cinematographic and real estate industries. Tests undertaking so far with the prototype suggest the successful implementation of a y attitude controller.

DedicatriaDedico este trabalho ao professor Ailson.

AgradecimentosAgradeo a Deus por ter chegado at aqui. Aos meus pais pelo incentivo. Agradeo ao professor Ailson Rosetti de Almeida, que j vem pesquisando nesse assunto a 10 anos, sempre conante neste trabalho e pelo incalculvel conhecimento transmitido com todo o prazer ao longo desse perodo de tempo. Agradeo ao professor Evandro Ottoni Teatini Salles por vrias sugestes de grande valia que ajudaram a nortear o trabalho e por sua disposio. Agradeo ao Dr. Antnio de Pdua, que nos doou o Helicptero a combusto Baron Alpha II utilizado no incio do trabalho. Agradeo CAPES por dois anos ininterruptos de bolsa. Agradeo aos meu amigos contemporneos no PPGEE Christiano Couto Gava e Rodrigo Rosenfeld por me ajudarem em diversas tarefas. Agradeo os amigos do laboratrio CISNE, LAI e Labtel, por suas contribuies e/ou pelo companherismo. Agradeo ao Klaus Fabian Cco e ao rico Piredda por me receberem bem e pelo companheirismo quando entrei no laborotrio CISNE, pois estes j eram membros. Agradeo tambm ao Eduardo Barcellos por me ajudar a soldar alguns componentes com encapsulamento SMD com seus equipamentos prossionais. Ao Claudiney e ao seu irmo, vulgo Guta, pelo seus servios prestados no almoxarifado dos laboratrios da UFES. Agradeo ao professor Teodiano Freire Bastos Filho por nos ter emprestado por muito tempo o seu mdulo de ultrassom para testes. Ao professor Hans-Jrg Schneebeli por me doar o livro do Boanerges sobre aerodinmica para helicpteros. Agradeo professora Raquel Frizera Vassalo pelo livro de Redes Neurais. Agradeo ainda aos professores Moiss Renato Nunes Ribeiro, Marcelo Eduardo Vieira Segatto e Mrcio de Alemida C, que acreditaram na termino deste trabalho. Por m, agradeo a todos os outros que direta ou indiretamente contribuiram neste trabalho e ao PPGEE (Programa de Ps-Graduao em Engenharia Eltrica) por permitir o meu reingresso ao programa.

Sumrio

Lista de Figuras Lista de Tabelas 1 Introduo 1.1 1.2 1.3 1.4 Contextualizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estudos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura da Dissertao . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14 p. 14 p. 17 p. 18 p. 19 p. 20 p. 21 p. 25 p. 28 p. 30 p. 33 p. 34 p. 35 p. 37 p. 38 p. 43 p. 46

2 Referencial Terico 2.1 2.2 2.3 2.4 Princpio de Funcionamento do Quadrotor . . . . . . . . . . . . . . . . . . . Modulao por Posio de Pulso . . . . . . . . . . . . . . . . . . . . . . . . Instrumentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Princpios Sobre ESCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Implementao 3.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 3.1.2 3.1.3 3.1.4 3.2 Motor brushless e ESC utilizados . . . . . . . . . . . . . . . . . . . Rdio Receptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Placa Microcontroladora . . . . . . . . . . . . . . . . . . . . . . . . Placa de Sensoriamento . . . . . . . . . . . . . . . . . . . . . . . .

Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6

Captura dos Sinais Analgicos . . . . . . . . . . . . . . . . . . . . . Captura dos Canais do Rdio Receptor . . . . . . . . . . . . . . . . Filtragem Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . . . Temporizao dos Sinais de PWM . . . . . . . . . . . . . . . . . . . Coleta de Dados - Log . . . . . . . . . . . . . . . . . . . . . . . . .

p. 49 p. 51 p. 54 p. 55 p. 59 p. 61 p. 63 p. 64 p. 66 p. 67 p. 70 p. 73 p. 75 p. 94 p. 101 p. 105

4 Testes e Resultados 4.1 4.2 4.3 Log dos Sinais Analgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . Log dos Canais do Rdio Receptor . . . . . . . . . . . . . . . . . . . . . . . Teste dos Sinais de PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Concluso Referncias Bibliogrcas Anexo A -- Cdigo Fonte para a Validao do Hardware Anexo B -- Cdigo Fonte para o Software do Computador Anexo C -- Layout das PCIs Apndice A -- Princpios Sobre Motores Brushless

A.1 Motor DC sem Escovas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 111

Lista de Figuras1.1 1.2 1.3 1.4 1.5 2.1 2.2 Dispositivo mecnico embreagem do tipo MEMS [Paul Mc Whorter 2008]. p. 14 Avio eltrico monomotor. . . . . . . . . . . . . . . . . . . . . . . . . . . . Dirigivel eltrico voando indoor. . . . . . . . . . . . . . . . . . . . . . . . . Quadrotor de De Bothezat em 1923 [Wikipedia 2010]. . . . . . . . . . . . . Foto do quadrotor do presente trabalho [Alexandre Secchin de Melo 2010]. . Diagrama de blocos eltrico-eletrnico do quadrotor. . . . . . . . . . . . . . Vista superior de um quadrotor. Onde o motor 1 corresponde a sua frente e o motor 3 a sua direita. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 2.4 Propulsor tri-p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . movimento horizontal a frente, onde o rotor mais escuro (2) possui maior rotao e o rotor (1) menor rotao, enquanto os rotores 3 e 4 mantm suas rotaes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 movimento em torno do eixo Z no sentido horrio. Motores 1 e 2 rodando mais rpido que os motores 3 e 4. . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Rdio transmissor com dois sticks (crculos na gura) visto de cima utilizado em aeromodelismo. Ambos sticks com movimento horizontal e vertical. . . . 2.7 Posio do pulso detro da janela de 2ms (PPM) em funo da posio da manete (stick) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8 2.9 Carrilho para um rdio de seis canais e sinal de sincronsmo. . . . . . . . . . Rdio receptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27 p. 27 p. 27 p. 26 p. 24 p. 23 p. 21 p. 22 p. 16 p. 16 p. 17 p. 18 p. 20

2.10 Sinal de PWM gerado pelo rdio receptor para alimentar a entrada de sinal de um servo-motor ou ESC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11 Giroscpio mecnico de massa girante desencapsulado. . . . . . . . . . . . . 2.12 a) Acelermetro sem acelerao; b) Acelermetro submetido acelerao. . . p. 28 p. 29 p. 29

2.13 ESC genrico, onde R, S e T so os terminais que devem ser conectados s trs fases de um motor brushless. . . . . . . . . . . . . . . . . . . . . . . . . 2.14 Forma de onda de corrente gerada para cada fase (enrolamento). . . . . . . . 2.15 Diagrama de blocos simplicado de um ESC. . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 Diagrama de blocos da implementao. . . . . . . . . . . . . . . . . . . . . Motor brushless empregado do fabricante E-max, modelo 2822. . . . . . . . ESC E-max empregado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bateria Lipo do fabricante Thunder Power. . . . . . . . . . . . . . . . . . . . Esquema eltrico de uma bateria Lipo conectada a uma carga. . . . . . . . . Rdio Futaba NER-226X empregado. . . . . . . . . . . . . . . . . . . . . . Placa dupla face confeccionada para o microcontrolador Atmega168. . . . . . Esquema da placa microcontrolada. . . . . . . . . . . . . . . . . . . . . . . Placa dupla face confeccionada para os sensores. . . . . . . . . . . . . . . . p. 30 p. 31 p. 32 p. 33 p. 35 p. 36 p. 37 p. 37 p. 38 p. 40 p. 41 p. 44

3.10 Esquema da placa de sensoreamento. U1 e U2 so os giroscpios LPR510AL e LY510LH, respectivamente U3 o acelermtro triaxial MMA7260Q. . . . . 3.11 Fluxograma para o rotina de captura dos sinais analgicos. . . . . . . . . . . 3.12 Projeo de g sobre o eixo X quando o quadroto inclina. . . . . . . . . . . . 3.13 Fluxograma para a rotina de captura dos sinais de PPM do rdio receptor por interrupo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14 Fluxograma para a rotina referente ao ltro digital de mdia. . . . . . . . . . 3.15 Malha fechada para um controle automtico no eixo X. . . . . . . . . . . . . 3.16 Projeo da acelerao da gravidade sobre o eixo X para o quadrotor inclinado para frente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.17 Fluxograma para o programa principal. . . . . . . . . . . . . . . . . . . . . . 3.18 Temporizao do perodo de 20ms com o timer1. . . . . . . . . . . . . . . . 3.19 Temporizao com um timer de 8 bits. . . . . . . . . . . . . . . . . . . . . . 3.20 Fluxograma para as rotinas de interrupo do timer0. . . . . . . . . . . . . . p. 57 p. 58 p. 59 p. 60 p. 60 p. 53 p. 55 p. 57 p. 45 p. 50 p. 51

3.21 Fluxograma para a rotina de interrupo do timer1. . . . . . . . . . . . . . . 3.22 Fluxograma para as rotinas de interrupo do timer2. . . . . . . . . . . . . . 3.23 Fluxograma para a rotina de log. . . . . . . . . . . . . . . . . . . . . . . . . 4.1 4.2 4.3 4.4 Malha aberta parte realada da gura. . . . . . . . . . . . . . . . . . . . . Log do acelermetro X e sua respectiva ltragem (no microcontrolador). . . . Log do acelermetro Y e sua respectiva ltragem (no microcontrolador). . . . Movimento oscilatrio equivalente a empurar as estremidades do quadrotor para cima e para baixo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 4.6 4.7 4.8 Log do acelermetro Z e sua respectiva ltragem (no microcontrolador). . . . Log dos giroscpios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Log do acelermetro Z e sua respectiva ltragem (no microcontrolador). . . . Log dos sinais de PWM para os ESCs 1, 2, 3 e 4. . . . . . . . . . . . . . . .

p. 61 p. 61 p. 62 p. 63 p. 64 p. 65

p. 65 p. 66 p. 67 p. 68 p. 69

C.1 Camada superior da placa microcontroladora. . . . . . . . . . . . . . . . . . p. 101 C.2 Camada superior da placa de sensoriamento. . . . . . . . . . . . . . . . . . . p. 103 A.1 a) Plo norte abaixo; b) Plo norte acima. . . . . . . . . . . . . . . . . . . . p. 106 A.2 a) Bobina desligada nas proximidades do m; b) Bobina energizada com plos magnticos ariciais alinhado com o m devido a interao de fora magnticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 106 A.3 a) Rotor sem corrente e desalinhado; b) Alinhamento do rotor quando percorrido por corrente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 107 A.4 Motor de 2 plos: a) Comutadores e Escovas adicionados; b) Comutadores fazendo contato com as escovas; c) Circuito eltrico do motor. . . . . . . . . p. 108 A.5 giro no rotor de 180 no sentido anti-horrio. . . . . . . . . . . . . . . . . . p. 108 A.6 Motor com rotor de trs plos. . . . . . . . . . . . . . . . . . . . . . . . . . p. 109 A.7 Corrente nas bobinas de um motor DC de trs plos, onde a, b e c correspondem s bobinas do motor. Obs: o intervalo T corresponde comutao. . . . p. 110

Lista de Tabelas2.1 Movimentos elementares do quadrotor e a correspondente variao de velocidade em cada um de seus motores. Onde, vi a velocidade de um rotor i, com i igual a 1, 2, 3 ou 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 Possveis aceleraes mximas dos dispositivo MMA7260Q. . . . . . . . . . Congurao dos ltros passa-baixas dos sensores. . . . . . . . . . . . . . . Rotinas que compe o rmware. . . . . . . . . . . . . . . . . . . . . . . . . Relao entre o ngulo de inclinao e tenso de sada do acelermetro. . . . Comandos e respectivos set points. . . . . . . . . . . . . . . . . . . . . . . . p. 24 p. 43 p. 46 p. 48 p. 49 p. 56

C.1 Componentes da placa microcontrolada. . . . . . . . . . . . . . . . . . . . . p. 102 C.2 Componentes da placa de sensoreamento. . . . . . . . . . . . . . . . . . . . p. 104

14

1

Introduo

1.1

Contextualizao

Com o advento da tecnologia MEMS1 (Micro-Electro-Mechanical Systems), muitos dispositivos mecnicos Figura 1.1 e instrumentos de medio tais como acelermetros, giroscpios, barmetros, passaram a ter dimenses milimtricas (aps encapsulados) e massa da ordem de miligramas nos ltimos anos. Isto facilitou o instanciamento destes em pequenas placas de circuito impresso, consequentemente, a miniaturizao de muitos equipamentos. Alm do mais, o crescente uso de tais dispositivos em bens de consumo, contribuiu para sua produo em larga escala tornando-os acessveis no mercado.

Figura 1.1: Dispositivo mecnico embreagem do tipo MEMS [Paul Mc Whorter 2008].tecnologia emergente que encapsula um sistema formado por sensores e/ou atuadores, elementos micro-mecnicos (pndulos, engrenagens etc.) alm de circuitos eletrnicos em um nico chip atravs de tcnicas e ferramentas desenvolvidas pela indstria de circuitos integrados.1 MEMS:

1.1 Contextualizao

15

Em virtude disto e de outros avanos tecnolgicos, como o melhoramento na relao cargamassa2 das baterias, o controle de voo automtico de pequenas aeronaves, principalmente as no-tripuladas conhecidas como UAVs3 (Unmanned Aerial Vehicles) no mbito militar , veio a suceder em vista da versatilidade destas em diversas aplicaes. Em especial, as eltricas, por possurem simplicidade mecnica (o que lhes confere um grande potencial de miniaturizao e reduo de peso) e por no levarem combustvel inamvel a bordo, experimentam forte desenvolvimento. Quando equipada de uma cmera fotogrca/lmadora que transmita a imagem ao vivo atravs de um link de RF (rdio frequncia), uma aeronave no-tripulada do tipo VTOL4 de pequeno porte pode ser til nas seguintes ocasies: fotos e lmagens panormicas de baixo custo para a indstria cinematogrca, mercado imobilirio (vista superior de casas, terrenos, chcaras e stios), reportagens de telejornais, eventos esportivos etc. [Perspectives Aerials 2010]; localizao de um bandido em recintos onde no h visada direta; assim, evita-se que um policial seja surpreendido pelo bandido durante a sua procura [Draganyer 2010]; inspeo de linhas de transmisso e distribuio eltrica; monitoramento de plantaes e grandes rebanhos; Entre as principais UAVs eltricas de pequeno porte avies, helicpteros e dirigveis (blimps) [Bouabdallah, S. Murrieri, P. 2004] destaca-se o helicptero, em virtude de: possuir seis graus de liberdade (DOF5 ), que lhe conferem manobrabilidade, alm de o classicar como uma aeronave do tipo VTOL; possui um bom payload6 ; possui capacidade de miniaturizao [Prinz, F. B. 1999] e uso indoor (dentro de recintos) ou outdoor (em campo aberto); apesar de ter uma autonomia menor em relao s demais UAVs citadas. Porm, com o crescente avano da tecnologia das baterias eltricas, possvel que tal desvantagem se torne menos expressiva no futuro. O avio, Figura 1.2, apesar de ter um bom payload e ser mais estvel (uma vez que tenha atingido uma velocidade mnima para obter sustentao aerodinmica), no pode decolar erelao entre a carga em [mAh] e a sua massa em [g]. aeronaves no-tripuladas de tamanho e formas variadas inicialmente utilizada em ns militares e controladas remotamente ou de forma autnoma com voos pr-programados. 4 VTOL: Vertical Take Off and Landing. Aeronave com capacidade de decolar e aterrissar verticalmente. 5 Degrees of Freedom graus de liberdade. Um helicptero possui os 6 possvies graus de liberdade: translao ao longo nos trs eixos X, Y e Z e rotao em torno destes mesmos eixos: pitch, roll e yaw, respectivamente. 6 Carga transporatada por uma aeronave, inclusive o que necessrio para a sua operao.3 UAVs: 2 Carga-massa:

1.1 Contextualizao

16

aterrissar verticalemente (alm precisar de um pista de pouso e decolagem), nem se aproximar de outros objetos como um helicptero ou dirgel, sendo utilizado na maioria das vezes em voo outdoor.

Figura 1.2: Avio eltrico monomotor.

O dirigvel, Figura 1.3, por ser classicado com uma aeronave mais leve que o ar [Bouabdallah, S. Murri no precisa de propulsores para gerar sustentao aerodinmica, limitando o uso destes dispositivos apenas para se locomover. Embora tem uma estabilidade maior, seja silencioso e mais fcil de se controlar, so mais volumosos e possuem um payload inferior ao dos helicpteros e avies do mesmo porte. Portanto, limita-se o seu uso a publicidade em eventos, estampado alguma propaganda no seu balo (normalmente preenchido com gs hlio, por ser mais leve que o ar), principalmente em eventos realizados dentro de recintos.

Figura 1.3: Dirigivel eltrico voando indoor. Nos helicpteros convencionais, as susteno aerodinmica provida por um nico rotor, o principal, cujo torque de reao anulado pelo rotor de calda, ou secundrio. No entanto, existe

1.2 Objetivo

17

outra topologia de helicptero, em forma de plataforma, onde a sua fora de susteno divida em quatro ou mais rotores de mesma potncia e de forma que o torque de reao de um cancele o de outro. Isto permite que tal paradigma de helicptero realize todas as manobras (ainda com seis graus de liberdade) que um convencial controlando apenas a velocidade de cada rotor de forma independente. Assim, dispensa-se o uso de mecanismos complexos de ajuste de ngulo de incidncia das ps de um rotor, como o passo coletivo7 e passo cclico8 usados no helicptero convencional. Apesar do helicptero quadrotor (plataforma voadora com quatro rotores) ter surgido por volta de 1920 Figura 1.4 , este cou esquecido por dcadas por conta da sua diculdade de estabilizao por parte do piloto.

Figura 1.4: Quadrotor de De Bothezat em 1923 [Wikipedia 2010]. No entanto, nos ltimos anos, com os avanos tecnolgicos j citados (tecnologia MEMs e baterias leves), estudos a cerca da estabilizao de voo do quadrotor, agora automtica, foram retomados para utiliz-lo no mbito das UAVs, visto que mecanicamente este mais simples que um helicptero convencional de mesmo porte, o que diminui custos de construo e manuteno; alm de permitir uma maior proximidade e interao com ambiente, pois durante o voo armazena menos energia cintica em um rotor por este ser menor (susteno divida em quatro rotores), e em caso de um rotor colidir com outro corpo, os estragos so menores.

1.2

Objetivo

O objetivo desse trabalho construir uma UAV eltrica do tipo VTOL, especicamente um quadrotor com seus rotores posicionados nos extremos de uma estrutura com forma semelhantecoletivo: ajuste do ngulo de incidncia das ps de um rotor de forma homognea ao longo de um giro completo deste rotor. 8 Passo cclico: ajuste do ngulo de incidncia de forma heterognea de ps de um rotor ao logo de um giro completo deste rotor.7 Passo

1.3 Estudos Relacionados

18

a de um "x", segundo a Figura 1.5 com massa e dimenses reduzidas9 como uma plataforma de desenvolvimento de baixo custo. A presente abordagem permite a elaborao e teste de tcnicas de controle para a estabilizao de voo. Os principais componentes do quadrotor so: quatro motores eltricos, quatro ESCs10 , uma placa microcontrolada, uma placa de sensoreamento, um rdio receptor e uma bateria.

Figura 1.5: Foto do quadrotor do presente trabalho [Alexandre Secchin de Melo 2010].

1.3

Estudos Relacionados

Como pode ser visto em diversos trabalhos acadmicos, [Quemel, P. H. R. 2009], [Bouabdallah, S. 2004], [Hoffmann, G. et all 2004], e [Bresciani, T. 2008], vrios estudos j foram feitos a respeito da estabilidade de voo usando tcnicas de controle clssico, principalmente utilizando um controlador PID (Proporcional, Integral e Derivativo) sintonizado a partir de um complexo modelo matemtico de um quadrotor genrico linearizado sobre um ponto de operao (voo pairado). Segundo [Waslander, S. L. Hoffmann, G. M. 2005], tcnicas de controle clssico, ainda que funcionais, so insucientes em prover estabilidade a um quadrotor devido ao complexo uxo de ar induzido pelos seus 4 rotores. Por outro lado, existem outras tcnicas de controleem torno de 1kg (sem carga) e dimenses entre 50 e 60cm (para o quadrotor deste trabalho estas dimenses podem variar dentro desta faixa conforme o posicionamento dos rotores na estrutura e o tamanho destes), permitindo uma aeronave como tal voar indoor (ambientes interiores). 10 ESC controlador eletrnico de velocidade para motores do tipo brushless, normalmente controlado a partir de um sinal de PWM (pulse width modulation).9 Massa

1.4 Estrutura da Dissertao

19

que ainda foram pouco exploradas no mbito dos quadrotores eltricos, principalmente aquelas que se baseam em tcnicas inteligentes [Hartman, E. Keeler, J. D. 1989], [Hornik, M. 1989], [Sontag, E. D. 1993] de controle como o neural e nebuloso (fuzzy) que so por natureza nolineares e aproximadores universais de funo (modelamento) [Newman 2003]. Um trabalho nessa linha de pesquisa j vem sendo realizado no Brasil. No entanto, at a ltima publicao [Quemel, P. H. R. 2009] este se limitou a simulaes sobre modelagem matemtica de um quadrotor utilizando tcnica de controle clssico, neste caso, PID. Das referncias citadas, pouco divulgado a respeito do hardware (esquemas) e rmware utilizados, principalmente detalhes de implementao. Assim sendo, o escopo do presente trabalho se limita ao projeto e construo de um hardware e rmware que d subsdio para a implementao de alguma tcnica de controle (bloco 5 da Figura 3.1), isto , um quadrotor como plataforma de desenvolvimento.

1.4

Estrutura da Dissertao

Inicialmente, no captulo 2, informaes preliminares a respeito do princpio de funcionamento do quadrotor implementado e da eletrnica a bordo deste, so apresentadas a m de facilitar a compreenso deste trabalho. Onde a eletrnica a bordo compreende uma placa microcontroladora, uma placa de sensoreamento, controladores eletrnicos de velocidade para motores brushless e um rdio receptor conforme a Figura 2.1. A implementao do quadrotor, tanto a parte de hardware (parte eltrica e eletrnica) quanto a de rmware11 , encontram-se ao longo do captulo 3. Este rmware tem como objetivo no s validar o hardware, mas como tambm servir de driver, isto , um programa que interfaceie a eletrnica do quadrotor com o controlador a ser implementado. O rmware descrito por partes nas sees 3.2.1, 3.2.2, 3.2.3, 3.2.4, e 3.2.6, onde as principais rotinas implementadas so acompanhadas pelos seus respectivos uxogramas, estando no anexo A o cdigo-fonte escrito na linguagem C pertinente ao rmware como um todo. Para a validao do hardware, no captulo 4 apresenta-se os resultados de testes, coletandose informaes sobre todos os sinais de interesse com todos os sinais analgicos e todos os canais do rdio receptor. No ltimo captulo (5), encontra-se a concluso a respeito do trabalho alm de sugestesgravado na memria de programa (no voltil) de um microcontrolador (neste caso memria ash) evitando a recarga do programa toda vez tal dispositivo for ligado.11 Aplicativo

1.4 Estrutura da Dissertao

20

para melhorias e implementaes futuras.

21

2

Referencial Terico

Neste captulo, so apresentados alguns conceitos que elucidam o princpio de funcionamento do quadrotor, cujo diagrama de blocos encontra-se na Figura 2.1, bem como informaes fundamentais a respeito da eletrnica utilizada.

ESC1

Rdio Receptor

ESC2

ESC3

ESC4

XY

Z

Placa Sensores

Legenda: PWM Acel. Giro

Sinal +5V GND

11,1V

Figura 2.1: Diagrama de blocos eltrico-eletrnico do quadrotor.

2.1 Princpio de Funcionamento do Quadrotor

22

2.1

Princpio de Funcionamento do Quadrotor

Um helicptero pode assumir vrias conguraes no que diz respeito disposio e complexidade dos seus rotores. Contudo, dentre vrias, a congurao que conjuga simplicidade mecnica de rotores e versatilidade em manobras a congurao em forma de plataforma. Dentre elas, a mais conhecida a do quadrotor Figura 1.5 devido a sua simplicidade de construo e funcionamento. Na congurao quadrotor, quatro rotores de mesmas dimenses esto acoplados, cada um, a um motor; e, cada um destes est xado em uma das extremidades de uma estrutura em forma de "x". Conforme a Figura 2.2, dois rotores, 1 e 2 de extremidades opostas em relao ao centro da estrutura giram no sentido anti-horrio e os outros dois, 3 e 4, no sentido horrio a m de anular o torque de reao1 que cada um cria. Assim, as ps dos rotores 1 e 2 devem ter ngulo de incidncia2 invertido em relao s ps dos rotores 3 e 4 para que se crie sustentao aerodinmica positiva [Boanerges, A. V.].

Figura 2.2: Vista superior de um quadrotor. Onde o motor 1 corresponde a sua frente e o motor 3 a sua direita. Na Figura 2.2, R1, R2, R3 e R4 representam as reaes criadas pelos torques de cada rotor. R1 e R2 se somam e tendem a girar o quadrotor em torno do seu eixo vertical no sentido horrio. R3 e R4 tambm se somam, entretanto, tendem a girar o quadrotor no sentido anti-horrio. Se todos os rotores permanecerem na mesma velocidade, a soma de R1 e R2 se cancela com a soma de R3 e R4, portanto, o torque de reao resultante torna-se nulo neste caso.que faz a aeronave girar em torno do seu eixo imaginrio vertival eixo Z. formado entre o plano de rotao plano ortogonal ao eixo do rotor e uma p de um rotor [Boanerges, A. V.].2 ngulo 1 torque

2.1 Princpio de Funcionamento do Quadrotor

23

Atravs do controle individual de velocidade de cada rotor, possvel realizar todas as manobras que um helicptero convencional capaz, sem qualquer mecanismo extra para ajustar o ngulo de incidncia das ps dos rotores ao longo do seu giro, tais como os mecanismos de passo coletivo e passo cclico dos helicpteros convencionais3 [Boanerges, A. V.]. Isto resulta em um rotor simples, isto , um propulsor rgido4 como o da Figura 2.3 acoplado diretamente no eixo do motor (no caso de uma aeroname de dimenses reduzidas, geralmente um motor de corrente contnua motor DC, cujo princpio de funcionamento se encontra no apndice A).

Figura 2.3: Propulsor tri-p. Normalmente, em rdio controle (aeromodelismo), o movimento vertical se d atravs do comando throttle (acelerao5 ). O movimento na horizontal pode ser realizado por dois outros comandos: pitch (arfagem) e roll (rolagem). Com o comando pitch, a aeronave inclinada para frente ou para trs. J com o comando roll a aeronave inclida para um lado ou para o outro. Por ltimo, o movimento em torno do seu eixo vertical (Z), isto , uma guinada, feito pelo comando yaw (guinada). Para movimentar-se verticalmente, a velocidade dos rotores do quadrotor devem aumentar ou diminuir simultaneamente e com mesma intensidade para que o quadrotor respectivamente suba ou desa, isto , acelerando ou desacelerando de forma simultnea os quatro motores throttle.com um rotor principal para gerar sustentao aerodinmica e um rotor de calda para a estabilizao do torque de reao. 4 Conjunto de ps aerodinmicas xadas em um ponto comum (centro do rotor) sem qualquer grau de liberdade, a no ser a exibilidade conferida pelo material que as constituem. 5 No contexto dos helicpteros a combusto, o comando throttle equivale a aumentar a injeo de combustvel (acelerador), isto , acelerar motor. J no contexto dos quadrotores, consiste em aumentar a velocidade do quatro motores simultaneamente3 Helicpteros

2.1 Princpio de Funcionamento do Quadrotor

24

J para um movimento na horizontal, ou seja, ao longo do eixo X ou Y, as velocidades dos rotores devem ser controladas da seguinte forma: diminui-se a velocidade de um rotor e aumenta-se no mesmo tanto a velocidade do motor que gira no mesmo sentido (motor oposto) para que no haja desequilbrio nos torques de reao. Os outros dois motores devem permanecer na mesma velocidade. Isto faz com que o quadrotor se encline, dando origem a um movimento horizontal, sem perder sustentao. Por exemplo, para um movimento horizontal a frente, a velocidade do rotor 1 deve diminuir no mesmo tanto que se aumenta a velocidade do rotor 2, conforme a Figura 2.4, o que corresponde ao comando pitch. Isto faz com que a fora de sustentao resultante tenha uma projeo tambm sobre o eixo X, resultando no movimento. Analogamente, diminuindo a velocidade do rotor 3 (que est do lado direito do quadrotor) e aumentando no mesmo tanto a do rotor 4, o quadrotor se movimenta para direita (ao longo do eixo Y), correspondendo ao comando roll.

Figura 2.4: movimento horizontal a frente, onde o rotor mais escuro (2) possui maior rotao e o rotor (1) menor rotao, enquanto os rotores 3 e 4 mantm suas rotaes. E, para fazer um giro guinada (comando yaw) em torno do eixo vertical (eixo Z), seja no sentido horrio ou anti-horrio, basta que se aumente igualmente a velocidade de dois rotores que giram no mesmo sentido no mesmo tanto que se diminui a velocidade dos outros dois motores, e vice-versa, conforme a Figura 2.5. Estes movimentos elementares, reunidos na Tabela 2.1, podem ser mesclados possibili-

2.1 Princpio de Funcionamento do Quadrotor

25

Figura 2.5: movimento em torno do eixo Z no sentido horrio. Motores 1 e 2 rodando mais rpido que os motores 3 e 4. tando o quadrotor se movimentar/orientar em qualquer direo no espao, o que lhe confere versatilidade em manobras, prescindindo o uso de mecanismos complexos em seus rotores. Movimento para cima (throttle+) para baixo (throttle) para frente (pitch+) para trs (pitch) para direita (roll+) para esquerda (roll) horrio (yaw+) anti-horrio (yaw) Motor 1 Motor 2 Motor 3 Motor 4 v1 + v v2 + v v3 + v v4 + v v1 v v2 v v3 v v4 v v1 v v2 + v v3 v4 v1 + v v2 v v3 v4 v1 v2 v3 + v v4 v v1 v2 v3 v v4 + v v1 + v v2 + v v3 v v4 v v1 v v2 v v3 + v v4 + v

Tabela 2.1: Movimentos elementares do quadrotor e a correspondente variao de velocidade em cada um de seus motores. Onde, vi a velocidade de um rotor i, com i igual a 1, 2, 3 ou 4. A Tabela 2.1, pode ainda ser resumida atravs das relaes 2.1, 2.2, 2.3 e 2.4:

v1 (throttle pitch yaw),

(2.1)

v2 (throttle + pitch yaw),

(2.2)

2.2 Modulao por Posio de Pulso

26

v3 (throttle roll + yaw),

(2.3)

v4 (throttle + roll + yaw),

(2.4)

isto , a velocidade de cada motor proporcional ao comando de voo throttle e a outros dois comandos conforme a sua posio na estrutura: pitch e yaw (para os motores 1 e 2) ou roll e yaw (para os motores 3 e 4).

2.2

Modulao por Posio de Pulso

Em aeromodelismo, para se controlar uma aeronave ou embarcao remotamente, utilizase um link de RF (Rdio Frequncia) do tipo FM (Frequence Modulation) composto por um rdio transmissor e um rdio receptor, cuja portadora pode ser de 72MHz ou 2,4GHz, onde tais frequncias so liberadas pelo orgo competente (ANATEL no Brasil) para este m. A Figura 2.66 ilustra um transmissor tpico usado em RC (Rdio Controle) para controlar manualmente aeronaves remotamente, cujos comandos so dados atravs de dois sticks (alavancas) um controlado pela mo esquerda e o outro pela mo direita, que neste trabalho, so chamados de stick A e B, respectivamente. Cada um deles pode ser inclinado para frente ou para trs, e para um lado ou para o outro. Tratando-se de um helicptero, o stick A responsvel pelos comandos de voo throttle e yaw. Quando empurado para frete ou para trs, aumenta ou diminui a velocidade dos rotores. Este mesmo stick, quando empurrado para direita ou esquerda, faz com que o helicptero gire no sentido horrio ou anti-horrio yaw (guinada). J o stick B responsvel pelos comandos de voo pitch e roll. Quando empurrado para frente ou para trs, a aeronave deve se inclinar para frente ou para trs. E, quando empurrado para um lado ou para o outro, a aeronave deve se inclinar (rolar) para um lado ou para o outro. Tratando-se ainda de um tpico transmissor usado em RC, os comandos de voo so enviados serialmente, de 20ms em 20ms, e modulados por posio de pulso, isto , no formato PPM (Pulse Position Modulation) [Ryan, M. 2002]. Neste formato, a posio que cada stick do transmissor assume logitudinalmente ou transversalmente representada por um pulsotransmissores utilizados em aeromodelismo possuem mais funcionalidades botes e chaves agregadas. Todavia, na Figura 2.6 apenas os sticks esto representados por serem os nicos recursos do transmissor utilizados no quadrotor deste trabalho.6 Os

2.2 Modulao por Posio de Pulso

27

throttle

Ayaw

pitch

Broll

Figura 2.6: Rdio transmissor com dois sticks (crculos na gura) visto de cima utilizado em aeromodelismo. Ambos sticks com movimento horizontal e vertical. invertido com largura de 0,3ms (normalmente), cujo trmino pode assumir qualquer instante entre 1 e 2ms. As Figuras 2.7 a) e c) ilustram um stick assumindo as posies extremas e a Figura 2.7 b) o mesmo stick na posio central. Logo, cada canal ocupa uma janela de tempo que pode variar de 1ms a 2ms. Segundo a Figura 2.8, para um rdio transmissor de 6 canais, estes so enviados em forma de carrilho, ou seja, um atrs do outro: canal 1, canal 2, canal 3, canal 4, canal 5 e canal 6. Aps serem enviados, o sinal mantido em nvel lgico alto e, 0,3ms antes de terminar o quadro de 20ms, o sinal retorna para o nvel lgico baixo com propsito de sincronismo incio de um novo carrilho. O receptor Figura 2.9 (o mesmo da Figura 2.1) dividido basicamente em dois blocos: o bloco de RF7 e o bloco de demultiplexao. O primeiro bloco simplesmente remove7O

circuito de RF do rdio receptor tem a frequncia do seu oscilador dada pelo cristal (acessvel por fora do

2.2 Modulao por Posio de Pulso

28

a) stick em um extremo

b) stick liberado

c) stick no outro extremo 0,0 1,0 1,5 2,0 t(ms)

Figura 2.7: Posio do pulso detro da janela de 2ms (PPM) em funo da posio da manete (stick)

1 P

2 P

3 P

4 P

5 P

6 P sincronismo P

Canais 20ms

P: pulso invertido de 0,3ms.

Figura 2.8: Carrilho para um rdio de seis canais e sinal de sincronsmo. a portadora usada no sinal de RF com objetivo de reconstituir o carrilho de canais. O segundo bloco responsvel por demultiplexar o carrilho de canais em seis sinais de PWM que podem ser usados como sinais de entrada em servo-motores ou controladores eletrnicos de velocidade (ESC Electronic Speed Control) para motores.Rdio Receptor PWMs PPM

RF

DEMUX

2ms

x Carrilho PPM

20ms

Figura 2.9: Rdio receptor. Um sinal de PWM gerado pelo rdio receptor possui um perodo de 20ms, pois est atrelado ao perodo de envio do carrilho pelo rdio transmissor. O tempo mnimo que um sinal de PWMrdio) idententicado pela letra X na Figura 2.9. Este cristal pode ser substitudo caso algum outro link de rdio j esteja operando na mesma frequncia, o que comum acontecer em aeromodelismo. Se for o caso, o cristal do correspondente rdio transmissor, tambm removvel, deve ser trocado.

2.3 Instrumentao

29

permanece em nvel lgico alto (normalmente 5V) de 1ms, e o tempo mximo, 2ms. O restante do tempo, o sinal permanece em nvel lgico baixo at que se complete os 20ms.

1ms 2ms 20ms

Figura 2.10: Sinal de PWM gerado pelo rdio receptor para alimentar a entrada de sinal de um servo-motor ou ESC. Conforme a Figura 2.10, para um servo-motor que possui posicionamento entre 0 e 180 , quando o sinal transita de nvel lgico alto para baixo em 1ms o servo se posiciona em um extremo e quando o sinal transita de nvel lgico alto para baixo em 2ms o servo se posiciona no outro extremo. Uma transio de nvel lgico alto para baixo em qualquer instante entre 1ms e 2ms, corresponde a um posicionamento entre 0 e 180 . J em um ESC circuito que ser apresentado na seo 3.1.1 , uma transio nos instantes de 1 e 2 ms correspondem respectivamente ao motor parado e ao motor girando em sua velocidade mxima (em RPM); enquanto uma transio em qualquer instante entre 1ms e 2ms corresponde a uma velocidade intermediria.

2.3

Instrumentao

Normalmente, a instrumentao necessria para realizar um controlador que estabilize o giro em torno dos eixos X, Y e Z de um quadrotor, isto , que o mantenha alinhado com o horizonte (eixo Z do quadrotor paralelo ao vetor acelerao da gravidade), constituda por dipositivos como acelermetros, funcionando como sensores de inclinao, e giroscpios para detectar velocidade angular em torno de um eixo [Stingu, E]. Os dispositivos utilizados neste trabalho so do tipo MEMS, portanto, de dimenses e peso reduzidos quando comparado aos mecnicos Figura 2.11: exemplo de um giroscpio mecnico o que favorece a implementao de pequenas aeronaves microcontroladas. O princpio de funcionamento no qual baseado o acelermetro triaxial (XYZ) deste trabalho, o MMA7260Q do fabricante Freescale, consiste em um circuito com trs microplacas capacitivas por eixo , onde uma delas est situada entre as outras duas, formando um circuito equivalente a dois capacitores em srie. Na ausncia de acelerao Figura 2.12 a)

2.3 Instrumentao

30

Figura 2.11: Giroscpio mecnico de massa girante desencapsulado. a placa do meio encontra-se equidistante das outras duas placas. Portanto, a diferena de potencial V1 da Figura 2.12 a) igual a V2 , na mesma gura.v1 v2 Vs offset

a)v1 v2 Vs offsett

b)t

Figura 2.12: a) Acelermetro sem acelerao; b) Acelermetro submetido acelerao. Por outro lado, perante a uma variao de velocidade a e/ou da ao da gravidade8 ag , a placa central se desloca alterando a capacitncia dos dois capacitores; consequentemente, a diferena de potencial cresce em um e diminui no outro. Logo, o a diferena entre V1 e V2 proporcional soma das aceleraes a e ag correspondendo a um desvio em torno do offset ilustrado na Figura 2.12 b). J os giroscpios utilizados, LPR510AL (biaxial XY) e LYS510LH (Z), ambos do fabricande ST Microelectronics, tm o princpio de funcionamento baseado na fora de Coriolis [Santos, I. F. 2001] e em material piezoeltrico. Tais dispositivos possuem uma massa, que quando submetida a uma diferena de potencial senoidal gerada internamente nesse dispositivo vibra em uma determinada direo, por ser de natureza piezoeltrica.8 Gravidade:

propriedade atrativa que a terra exerce sobre os corpos.

2.4 Princpios Sobre ESCs

31

Quando o giroscpio rotaciona, ou seja, adquire uma velocidade angular, a massa interna ao dispositivo passa a vibrar tanto na direo original quanto na direo ortogonal. Onde o segundo movimento vibratrio resultado da fora de Coriolis. Esta nova vibrao cria uma diferena de potencial, que estrategicamente coletada na estrutura piezoeltrica, corresponde presente velocidade angular do dispositivo.

2.4

Princpios Sobre ESCs

Diferentemente dos motores de corrente contnua (DC), os motores do tipo brushless, cujo princpio de funcionamento se encontra no apndice A, no so alimentados atravs de escovas, mas sim atravs de um circuito eletrnico. Este circuito, alm de prover energia aos enrolamentos de um motor brushless a partir de uma fonte DC, tambm realiza um controle de velocidade em malha fechada. Por isto, tal circuito chamado de ESC (Electronic Speed Control) e a sua ilustrao em funo das suas entradas e sadas se encontra na Figura 2.13.

Figura 2.13: ESC genrico, onde R, S e T so os terminais que devem ser conectados s trs fases de um motor brushless. Segundo a Figura 2.15, um ESC basicamente dividido em duas partes: uma de controle e outra de potncia. A primeira, normalmente constituda por um microcontrolador, que a partir de um sinal de PWM (setpoint) com perodo de 20ms (o mesmo descrito na seo 2.2), gera trs outros, normalmente trapezoidais e defasados entre si de 120 conforme a gura 2.14. O perodo destes pode variar de fabricante para fabricante, sendo que valores tpicos so 8KHz e 16kHz. Para fazer o controle de velocidade em malha fechada, alguns modelos de ESCs lem os sinais gerados por sensores de efeito hall bloco "sensores"na Figura 2.15 estrategicamente instalados no motor brushless. J outros, so capazes de ler a fora contra-eletromotriz (FCEM) induzida nos enrolamentos dos motores para fazer o controle de velocidade e so conhecidos

2.4 Princpios Sobre ESCs

32

Figura 2.14: Forma de onda de corrente gerada para cada fase (enrolamento). como ESCs sensorless, apesar de usarem uma rede resistiva no bloco "sensores"da Figura 2.15 para coletar a informao de FCEM e fazer a retroalimentao. Existem ainda implementaes de ESCs que ao invs de ter um sinal de entrada no formato PWM, tal sinal entregue ao seu microcontrolador via barramento I2 C 9 . Assim, pode-se comandar at 127 ESCs com apenas dois os (SDA e SCL) por um mesmo microcontrolador, devido o esquema de endereamento presente neste protocolo de comunicao. No entanto, para ESCs com entrada no formato PWM, precisa-se de um pino (sinal de PWM) para cada ESC a ser comandado. A segunda parte (estgio) do ESC tem como entradas os sinais gerados pela primeira (estgio microcontrolado) A1, A2, B1, B2, C1 e C2 onde amplica-se a corrente das trs ondas (fases) atravs de transistores do tipo MOSFET (dois por enrolamento), que alm de possurem capacidade de corrente suciente para alimentar os enrolamentos do motor brushless, tambm funcionam como chave para ligar ou desligar o enrolamento segundo o sinal de PWM gerado pelo microcontrolador.

(Inter-Integrated Circuit): padro (protocolo) de comunicao serial a dois os (linhas), cujo dado (informao) trafega por uma linha bidirecional, normalmente chamada de SDA (Serial Data), a uma taxa de transmisso binria imposta por um sinal de clock na outra linha, normalmente chamada de SCL (Serial Clock); onde cada dispositivo presente neste barramento, mestre ou escravo, tem um endereo na faixa de 0 a 127.

9 I2 C

2.4 Princpios Sobre ESCs

33

20ms A1 A2 B1 B2 C1 C2

Driver e Enrolamentos do motor (R, S e T) Vcc-pwr A1 A A2 B2 R B1 B C2 Vcc-pwr C1 C Vcc-pwr T

Vcc gnd Microcont.

S

Sensores

Figura 2.15: Diagrama de blocos simplicado de um ESC.

34

3

Implementao

A implementao deste trabalho se dividi nas seguintes etapas: hardware, representado pelo bloco 3 da Figura 3.1; rmware, compreendido pelo bloco 4 da Figura 3.1; e software, correspondendo ao bloco 8 da Figura 3.1.Quadrotor Controlador (rmware) Aplicativo (Log softw.)

5

8

variveis (registradores) Driver (rmware) 4 sinais eletrnicos Rdio Receptor PPM 3 M Eletrnica (hardware) RX/TX 6 M Conversor USB/Serial Computador 7

2

ESC1 ESC2

M

ESC3 ESC4

M Adquirido

1

Rdio Trans.

A implementar Implementado

Figura 3.1: Diagrama de blocos da implementao. O quadrotor como um todo consistem na estrutura mecnica, parte eltrica e eletrnica (hardware, bloco 3 da Figura 3.1). Exceto os motores brushless com seus respectivos ESCs

3.1 Hardware

35

e o rdio receptor, que foram adquiridos por se encontrarem prontos e a preo acessvel, as demais partes eltricas e eletrnicas foram projetadas e construdas a partir de componentes elementares1 para atender as exigncias do projeto, conforme descrito na seo 3.1. O rmware do bloco 4 na Figura 3.1 foi desenvolvido como um driver, isto , de forma a interfacear o hardware com a rotina de controle (controlador) que venha ser implementada, bloco 5 da Figura 3.1. Assim, o usurio que implementa um controlador pode abstrair-se dos detalhes de implementao das blocos abaixo do bloco 5, acessando (leitura/escrita) apenas variveis (parmetros como valores de acelerao e giro, j em forma numrica) comuns entre os blocos 4 e 5. Tal rmware (driver) est divido em rotinas, onde a explicao das principais delas encontram-se na seo 3.2. Foi implementado um software para um computador (estao de trabalho, bloco 7 da Figura 3.1), que atravs de comunicao serial (por o), permite conect-lo ao quadrotor para realizar log de dados, tais como coleta dos sinais dos acelermetros, giroscpios e canais do rdio receptor. O circuito eletrnico utilizado para realizar tal comunicao serial, representado pelo bloco 6 da Figura 3.1, consiste um um conversor de nvel TTL/RS232 conectado a um segundo conversor, RS232/USB, que por sua vez, est conectado ao computador via porta USB (Universal Serial Bus). O sofware foi escrito na linguagem Python e a sua listagem encontra-se no anexo B, bem como instrues de uso.

3.1

Hardware

A parte eltrica do quadrotor contm os seguintes componentes: quatro motores eltricos do tipo brushless; uma bateria do tipo Lipo2 (fonte de tenso em corrente contnua para o quadrotor); e barramentos eltricos um positivo e outro negativo, onde as cargas (ESCs e a placa microcontrolada) so conectadas conforme a Figura 2.1. J a parte eletrnica, que tambm pode ser vista na Figura 2.1, divide-se em: uma placa microcontrolada; uma placa de sensoriamento; quatro controladores eletrnicos de velocidade e um rdio receptor.neste contexto, trata-se de resistores, capacitores, circuitos integrados (reguladores de tenso, microcontrolador, sensores), placa de circuito impresso, bateria, propulsores etc. 2 Lipo: ltio-polmero. Material usado na construo de baterias com boa relao peso-carga se comparada com as demais disponveis no mercado.1 Elementares:

3.1 Hardware

36

3.1.1 Motor brushless e ESC utilizadosForam empregados 4 unidades do motor brushless E-max 2822 Figura 3.2 junto com seus respectivos ESCs E-max, onde as principais caractersticas deste motor so listadas a seguir: funciona com uma tenso de 11,1V; possui potncia de 170W; possui 12 polos (4 por fase); atinge a velocidade mxima de 12000RPM; possui um rotor outrunner (por fora); capaz de erguer uma massa de at 700g quando encontra-se acoplado em seu eixo um propulsor de 9 polegadas; possui uma massa de apenas 39g.

Figura 3.2: Motor brushless empregado do fabricante E-max, modelo 2822. Devido ao princpio de funcionamento deste motor descrito no apndice A , isto , sem escovas, este elimina comutaes mecnicas entre um enrolamento e a fonte de tenso (como em um motor de corrente contnua comum), o que diminui o rudo eltrico gerado pelo motor, alm da extino do centelhamento. Tais caractersticas so interessantes em um quadrotor, pois: pelo fato de o circuito eletrnico de controle estar prximo aos motores (no caso do quadrotor), importante que estes gerem o mnimo de rudo possvel. Ademais, por no haver centelhamento durante a comutao (visto que esta feita eletronicamente por um ESC, ao invs de mecnica, como nos motores de corrente contnua), o rendimento do motor aumenta, poupando a bateria do quadrotor, conferindo-lhe assim maior autonomia de voo.

3.1 Hardware

37

J o controlador eletrnico de velocidade Figura 3.3 , possui as seguintes caractersticas: do tipo sensorless; capaz de drenar uma corrente de at 18A a 11,1V; tem como entrada um sinal de PWM com perodo de 20ms e amplitude de 5V igual ao sinal de sada para o rdio receptor descrito na seo 2.2 (padro em RC).

Figura 3.3: ESC E-max empregado. Estes dois tipos de componentes, motores e ESCs, foram alimentados a partir de uma bateria apropriada de Lipo igual a da Figura 3.4 com as seguintes caractersticas: possui tenso nominal de 11,1V, isto , trs clulas de 3,7V ligadas em srie, conforme o esquema da Figura 3.5; possui capacidade de carga igual 2250mAh; pode fornecer 68A de forma contnua; tem dimenses igual a 10,5cm x 3,4cm x 2,4cm; possui massa de 170g. Esta bateria possui um terminal diferenciado, conector B segundo o esquema eltrico da Figura 3.5, que permite monitorar a tenso de cada clula durante a sua carga/descarga feita atravs dos terminais indicados por C1 e C2 na Figura 3.5 com a nalidade de faz-la de forma balanceada, o que prolonga a sua vida til.

3.1 Hardware

38

Figura 3.4: Bateria Lipo do fabricante Thunder Power.B Bateria Lipo 11.1V C1

carga

C2

Figura 3.5: Esquema eltrico de uma bateria Lipo conectada a uma carga.

3.1.2 Rdio ReceptorPara que uma manobra seja executada por interveno de um piloto, um (ou mais) comandos de voo devem ser enviados para o quadrotor um novo set point para o controlador em operao, conforme ser explicado na seo 3.2.4. Ento, um rdio receptor deve estar a bordo para receber tal comando. Por isso, foi empregado um tpico rdio receptor utilizado em RC do fabricante Futaba modelo NER-226X operando com uma portadora de 72,150MHz Figura 3.6 , cujo princpio de funcionamento j foi descrito na seo 2.2 de forma genrica. Este rdio possui cinco canais de sada, sendo que apenas quatro deles throttle, pitch, roll e yaw so utilizados no quadrotor (capturados pela placa microcontrolada conforme ser explicado na seo 3.1.3), alm de um canal de entrada que tambm no utilizado nesta aplicao. Cada canal de sada, alm do sinal no formato PWM, acompanhado de um pino com Vcc (+5V) e outro com GND para que se possa alimentar um servo-motor ou um ESC diretamente com 5V. Como o carrilho no est disponvel originalmente por meio de um conector no rdio Fu-

3.1 Hardware

39

Figura 3.6: Rdio Futaba NER-226X empregado. taba, o mesmo foi desmontado, e com auxlio de um osciloscpio foi identicado e extrado atravs da soldagem de um o tal carrilho. O ponto de onde foi extrado o carrilho o ponto entre as duas principais etapas do circuito de um rdio receptor, a de RF e de demultiplexao, de acordo com a Figura 2.9. Esta adaptao foi realizada com o objetivo de ter duas opes de coleta dos canais: serialmente ou paralelamente; onde estas sero explicadas na seo a seguir (3.1.3).

3.1.3 Placa MicrocontroladoraA placa principal, ou microncotrolada, deve ser responsvel por: capturar os sinais oriundos do sensores: acelermetros (X, Y e Z) e giroscpios (X, Y e Z); capturar os canais (comandos de voo throttle, pitch, roll e yaw) do rdio receptor; rodar algum algoritmo de controle para estabilizao de voo (controlador do bloco 5 na Figura 3.1); gerar 4 sinais de PWM para os ESCs baseados na ao de controle tomada por um mais controladores do bloco 5 na Figura 3.1; transferir/receber informaes para/de um computador em terra via porta de comunicao serial, isto , realizar log de dados e congurao de parmetros do quadrotor e/ou de um controlador que venha ser implementado. A partir destas necessidades, como componente principal da placa, foi especicado o dispositivo Atmega168-20PU (microcontrolador) [Atmel 2007] por possuir alm de uma CPU para rodar o algoritmo de um controlador, os seguintes mdulos no mesmo encapsulamento:

3.1 Hardware

40

um conversor A/D de 10 bits, utilizado para coletar os sinais analgicos provenientes dos sensores; um temporizador de 16 bits (timer1) usado na gerao do perodo de 20ms para o sinais de PWM utilizados como entrada para os ESCs; dois temporizadores de 8 bits (timer0 e timer2). Cada um deles, junto com seus respectivos registradores de comparao, A e B, so responsveis por determinar por quanto tempo dois dos quatro sinais de PWM3 permanecero em nvel lgico alto; pino de I/O sensvel transio (borda de subida ou descida) quando congurado como entrada digital para capturar o carrilho de canais, via interrupo de hardware; uma USART para fazer o log de dados, alm de outros dois mdulos de comunicao serial, um no padro I2C e outro no padro SPI (Serial Periferal Interface), que podem ser utilizados para conectar mais dispositivos placa principal. Alm das caracterstica listadas, este microcontrolador possui uma CPU RISC de 8 bits e arquitetura Harvard4 ; 16kB de memria de programa (ash5 ), 1kB de memria SRAM6 ; 512B de memria EEPROM7 e pode operar com uma frequncia de clock de at 20MHz. Ento, para este microcontrolador, foi confeccionada uma placa de circuito impresso (PCI), cuja fotograa encontra-se na Figura 3.7, segundo o esquema8 ilustrado na Figura 3.8 com o seu respectivo layout no anexo C. O projeto da PCI microcontroladora placa principal foi feito de forma que outra placa, neste caso a de sensoreamento, possa ser conectada por cima. Assim, se for necessrio substituir o sensoreamento do quadrotor por algum outro ou trocar algum sensor, a placa principal permanece sem qualquer alterao e/ou adaptao. Para isto, dois conectores pinheaders com 10 pinos do tipo fmea (vide layout da PCI na Figura C.1 do anexo C) , CN9 e CN10, alm da tenso da bateira (11,1V, desprezando a quedaforma como os temporizadores trabalham em conjunto para gerar um dado sinal de PWM ser explicada na seo 3.2.5. 4 Possui barramentos de dados e instrues diferenciados, diferentemente da arquitetura de Von Neumann que possui somente um barramento para as duas nalidades. 5 Flash: memria que no perde os seus dados quando desligada e normalmente utilizada para armazenar cdigo de instrues de um programa podendo ser apagada em blocos. 6 SRAM: memria RAM do tipo esttica (static), ou seja, no precisa de refresh para manter os seus dados assim como as dinmicas baseadas em capacitores que podem ser descarragados ao longo do tempo. Normalmente este tipo de memria utilizada para armazenar variveis de um programa em plena execuo. 7 EEPROM: memria utilizada para salvar permanentemente parmetros de congurao de um programa/dispositivo, isto , se esta for desligada, os dados contidos nesta no sero perdidos. 8 Os valores dos componentes contidos no esquema da placa principal encontram-se na Tabela C.1 do anexo C.3A

3.1 Hardware

41

Figura 3.7: Placa dupla face confeccionada para o microcontrolador Atmega168. do diodo de proteo D19 ), disponibilizam 6 canais analgicos e dois barramentos para comunicao serial, um I2C e outro SPI, visto que j existem sensores que possuem internamente um conversor A/D e entregam a o resultado da converso em um destes padres de comunicao serial. No caso de utilizar o barramento I2C, dois dos canais analgicos AD4 e AD5 na Figura 3.8 no podero ser utilizados, pois os pinos do microcontrolador onde estes so conectados, so compartilhados, respectivamente, com os sinais SDA (serial data bidirecional) e SCL (serial clock) do barramento I2C. No entanto, uma vez optado pelo barramento I2C atravs dos conectores CN3 e CN4 (colocando um jumper nos pinos 1-2 destes conectores), at 128 dispositivos (entre eles acelermetros, giroscpios, altmetro, bssola e GPS) podero estar conectados ao microcontrolador, visto que neste padro de comunicao serial cada dispositivo conectado no barramento possui um endereo dentro da faixa de 0 a 127. Quanto captura dos canais do rdio receptor, atravs do conector CN12 da Figura 3.8, quatro pinos de I/O do microcontrolador esto disponveis, por onde pode ser feita a captura de cada canal do rdio receptor throttle, pitch, roll e yaw separadamente por polling10 , tambm possvel faz-lo serialmente, atravs do pino INT0 (PD2) ou INT1 (PD3). Estes doisdiodo usado para proteger o circuito da placa principal caso a bateria do quadrotor for conectada com polaridade invertida. 10 Tcnica utilizada para monitorar uma pino de entrada de sinal digital ou um bit de um registrador onde a CPU de tempo em tempo verica o estado (nvel) deste pino.9 D1:

3.1 Hardware5V Vcc CH1 D1 U2 5V Rp!RST 1

42

U1: ATMEGA168-20PUPC6 (!RST) PC0 PC1 PC2 PC3 PC4 PC5 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 PB0 PB1 PB2 PB3 PB4 PB5 24 23 25 26 27 28 2 3 4 5 6 11 12 13 14 15 16 17 18 19 AD0 AD1 AD2 AD3 AD4/SDA AD5/SCL RX TX C1/INT0 C2/INT1 C3/XCK C4/IO PWM1 PWM2 PWM3 PWM4 SS MOSI MISO SCK

VregC1 CN1

C2

C3

5V L1 Vcc U3 3,3V C67 8 VDD GND

VregC4 C5

5V RpSDA 2 AD4 3

5V

CN21 2

5V20 21 22 AVDD AREF GND

CN31 AD4/SDA

3

H1

3,3V C79 PB6

H2

5V X1 RpSCL 2 AD5 3

CN41 AD5/SCL

H310 PB7

C8

H4

CN5PWM1

5VPWM2

CN6

5VPWM3

CN7

5VPWM4

CN8

5V

Rp

Rp

Rp

Rp

CN9 Vcc 5VSDA SCL 1

CN101 !RST SCK MISO MOSI SS

CN111 C1/INT0 C2/INT1 C3/XCK C4/IO

CN121

5V

SS SCK MISO MOSI

AD5 AD4 AD3 AD2 AD1 AD0

CN13RX TX

Figura 3.8: Esquema da placa microcontrolada. pinos so sensveis transio de estado (borda de subida ou descida), permitindo que os canais sejam capturados serialmente se em um deles for injetado o sinal oriundo da sada da etapa de RF do rdio receptor da seo 3.1.2, isto , o carrilho.

3.1 Hardware

43

Para o microcontrolador funcionar na maior frequncia de clock denida pelo fabricante (20MHz frequncia utilizada neste trabalho), ele deve ser alimentado com uma tenso entre 4,5 e 5,5V. Por isto, e por conta dos ESCs11 , foi utilizado um regulador de tenso 7805 como fonte de tenso na placa microcontrolada. Todavia, antes da tenso de 5V chegar no pino do microcontrolador, esta passa por um ltro LC componentes L1 e C6 no esquema da Figura 3.8 com a nalidade de ltrar eventuais rudos que possam chegar pela linha de alimentao do microcontrolador. Atravs dos conectores CN5, CN6, CN7 e CN8 da Figura 3.8, os quatro sinais de PWM so entregue aos ESCs junto com a alimentao de 5V para a etapa microcontrolada destes ltimos. Cada um destes conectores possui um resistor de pull-down para evitar que a entrada de ESC utue e dispare o seu respectivo motor. Isto pode ocorrer caso o pino do microcontrolador utilizado para esta nalidade seja congurado como entrada equivocadamente durante o desenvolvimento de um rmware ou durante a gravao12 do microcontrolador. Como as sadas analgicas dos sensores utilizados neste trabalho excursionam dentro da faixa 0 e 3.3V, a tenso de referncia do conversor A/D do microcontrolador pode ser ligada a um regulador de tenso de 3.3V (U3) atravs do conector CN2 da Figura 3.8, quando um jumper colocado na posio 2-3 deste conector. Atravs do conector CN2 da Figura 3.8, possvel escolher 3,3V ou 5V como tenso de referncia para o conversor A/D do microcontrolador. Para os sensores da seo 3.1.4 (com faixa dinmica menor que 3,3V), interessante que o jumper permanea na posio 2-3, assim, o passo de converso do conversor A/D diminui (se comparado com a segunda opo), aumentando a preciso da converso (seja ela feita em 8 ou 10 bits). Para a realizao de logs de dados, foram empregados os pinos RX, TX da USART0 do microcontrolador atravs do conector CN13 da Figura 3.8 a m de realizar comunicao serial assncrona. Assim, os dados podem ser transferidos para uma estao de trabalho para anlise em tempo real ou posteriormente. Atravs da USART0, tambm possvel congurar parmetros do quadrotor (constantes gravadas na memria EEPROM), tais como os utilizados na sintonia de um controlador automtico, sem ter que regravar todo rmware na memria de programa do microcontrolador.ESCs precisam ter duas fontes de alimentao: uma de 5V para alimentar sua etapa microcontrolada e outra para etapa de potncia (para acionar os motores), que conectada diretamente bateria. 12 Durante a gravao do microcontrolador, todos os pinos deste que no so utilizados na comunicao com o computador que o grava, por precauo so congurados como entrada para evitar curto-circuito.11 Os

3.1 Hardware

44

Visto que a UART0 pode operar no modo SPI (usando os pinos RX como MISO, TX como MOSI e XCK13 como SCK), existe ainda a possibilidade de conectar um mdulo conversor SPI/USB14 junto com um pendriver para fazer log de dados sem utilizar os entre o quadrotor e a estao de trabalho, contudo, sem a possibilidade de analis-lo em tempo real. Por m, um conector CN11 da Figura 3.8 diponibiliza os pinos da porta serial SPI para que o microcontrolador possa ser programado sem precisar ser removido da placa princiapal.

3.1.4 Placa de SensoriamentoA PCI de sensoriamento, Figura 3.9, com esquema ilustrado15 na Figura 3.10, constituda basicamente por: um dispositivo acelermetro triaxial X, Y e Z do tipo MEMS analgicos, com sensibilidade16 de at 800mV/g, todos contidos em um nico enacapsulamento dispositivo MEMS MMA7260Q (X-Y-Z) para deteco de inclinao. trs giroscpios MEMS com sensibilidade de 100 /s. Dois deles, X e Y, contidos em um encapsulamento dispositivo biaxial LPR510AL (X-Y) , para deteco de arfagem (giro em torno do eixo X) e rolagem (giro em torno do eixo Y); e outro, dispositivo LY510LH (Z), para deteco de guinada (giro em torno do eixo Z). Os acelermetros U3 na Figura 3.10 podem trabalhar com aceleraes mximas (dinmica mais esttica) segundo a congurao feita atravs dos pinos de entrada digital g-sel1 (g-select 1) e g-sel2 (g-select 2), onde as suas possveis combinaes com suas respectivas sensibilidades esto reunidas na Tabela 3.1. g-sel1 0 0 1 1 g-sel2 0 1 0 1 Possveis aceleras mximas 1,5g 2,0g 4,0g 6,0g Sensibilidade 800mV/g 600mV/g 300mV/g 200mV/g

Tabela 3.1: Possveis aceleraes mximas dos dispositivo MMA7260Q.pino C3/XCK s pode ser usado como XCK USART0 operando no modo SPI caso este pino no esteja sendo usado para monitorar um canal do rdio. 14 Mdulo normalmente baseado no chip FTDI2232 que permite a criao de diretrios e arquivos em um pendriver, podendo neste escrever ou ler atravs de comando enviados pela interface SPI. 15 Os valores dos componentes encontram-se na Tabela C.2 do anexo C. 16 A sensibilidade do dispositivo MMA7260Q pode ser escolhida conforme a Tabela 3.1.13 O

3.1 Hardware

45

Figura 3.9: Placa dupla face confeccionada para os sensores. A seleo da acelerao mxima (fundo de escala) pode ser feita atravs dos conectores CN1 e CN2 na placa de sensoriamento conectando (1 3,3V) ou no (0 GND, via resistor de pull-down) um jumper. Como o intuito, neste trabalho, detectar a projeo da gravidade sobre os eixos X e Y, nunca haver aceleraes maiores que 1g (despresando a acelerao dinmica), portanto a congurao correspondente primeira linha da Tabela 3.1 o suciente. Em especial, os dispositivos LPR510AL e LY510LH identicados por U1 e U2 na Figura 3.10 , possuem um amplicador embutido para cada eixo com um ganho de 4 vezes, cuja entrada pode ter como sinal a sada ltrada (rotulada por 1Gn, onde n pode ser X, Y ou Z na Figura 3.10) do seu respectivo giroscpio. Conforme a aplicao, resoluo da converso A/D (nmero de bits) e controlador utilizado para estabilizar o quadrotor, tal amplicacao pode ser conveniente. Cada acelermetro e giroscpio possuem conectados em suas sadas um ltro RC passabaixas, recomentado pelo fabricante, para atenuar rudos, implementado com os componentes da Tabela 3.2, junto com sua respectiva frequncia de corte. No caso dos acelermetros, ltrase no s rudos como tambm variaes bruscas de acelerao dinmica, o que desejvel na presente aplicao, pois o uso de tal dispositivo tem a nalidade de detectar inclinao (tilt), isto , acelerao esttica (acelerao da gravidade). Como normalmente o acelermetro Z no utilizado na estabalizao de um quadrotor, sendo a estabilizao no eixo Z realizada a partir de um altmetro (que pode ser implementado

3.1 Hardware3,3V U1Vdd FiltVdd

463,3V U2Vdd FiltVdd

C1

C2

C3 C4

C7

C8

C9 C10

3,3VRes1 Res2 SP Vcont 4xXout 4xXin Xout PD

R4

3,3VRes1 4GX Res2 SP 1GX Vcont 4xZout 4xZin Zout PD

R10

4GZ

R1

R7

1GZ

R5 C5 R8

R11 C11

R2HD

HD 4xYout 4xYin 4GY

R3

R9

Res1 Res2

NC NC NC

NC

Vref GND

Yout

1GY

NC

Vref GND

Res3

R6 C6

3,3V U3 R17 3,3V sleep g-sel1 CN1 R18 3,3V

3,3VVdd

Vcc R12 Zout C122 3

CN31 B/AZ 1GX

CN4 R154GX 2 3 1 GX

R16 R13 Yout C13AY 1GY 4GY

CN51 2 3 GY

CN64GZ 1 2 AX 1GZ 3 GZ

R14 g-sel2 CN2 R19 Vss Xout C14

CN8 VccSDA SCL 1 B/AZ AY AZ GZ GY GX

CN91 SS SCK MISO MOSI

CN101

Vcc U4

3,3V

VregC15 CN111

C16

SS SCK MISO MOSI

Vcc

SDA SCL

Figura 3.10: Esquema da placa de sensoreamento. U1 e U2 so os giroscpios LPR510AL e LY510LH, respectivamente U3 o acelermtro triaxial MMA7260Q. com um medidor de presso atmosfrica), a entrada analgica do microcontrolador disponibilizada para tal acelermetro pode ser comutada no conector CN3 da Figura 3.10 por meio de um

3.2 Firmware

47

Sensor Acel. X Acel. Y Acele Z Giro. X Giro. Y Giro. Z

R [k] 1 1 1 33 33 33

C [ F] 0.1 0.1 0.1 2.2 2.2 2.2

fc [Hz] 16 16 16 140 140 140

Tabela 3.2: Congurao dos ltros passa-baixas dos sensores. jumper colocado na posio 2-3, a m de monitorar a tenso da bateria atravs de um divisor de tenso. Assim, se a tenso da bateria se aproximar de um limite de segurana (que depende do nmero de clulas da bateria, ESC e motor utilizado), uma rotina especca pode ser implementada no microcontrolador para sinalizar tal condio atravs de um sinal luminoso (por meio de LED conectado a um pino de I/O do conector CN12 da placa principal Figura 3.8 , caso no esteja sendo usado para ler os canais do rdio por polling), sonoro (por meio de buzzer) ou at mesmo realizar um pouso imediato automtico como medida de segurana. Ademais, esta placa possui um regulador de tenso para 3,3V (tenso utilizada para alimentao dos sensores), U4 na Figura 3.10, e dois conectores: CN11 na Figura 3.10, que d acesso ao barramento I2C, Vcc (tenso da bateria) e GND; e CN10 na Figura 3.10, com o barramento SPI. Isto permite que uma terceira placa possa ser conectada por cima da placa de sensoriamento adicionando funcionalidades atravs destes barramentos.

3.2

Firmware

Para implementar o bloco 4 da Figura 3.1, foi desenvolvido um rmware onde as suas principais rotinas so responsveis por: gerenciar a converso A/D dos sinais dos sensores, via interrupo de hardware; capturar os canais de rdio receptor via interrupo de hardware; gerar os sinais de PWM para os ESCs baseado na resposta de um ou mais controladores e nos temporizadores timer0, timer1 e timer2, que tambm geram interrupo de hardware; e, realizar log via comunicao serial caso seja requisitada;

3.2 Firmware

48

onde o nome de cada rotina (funo) que compe o rmware esto reunidas na Tabela 3.3, bem com os seu parmetros de entrada e o que retorna.

3.2 Firmware

Nome da funo Cong GetTime

Parmetros

Sinopse congura o microcontrolador (perifricos) concatena os dois registradores de 8 bits do timer1 para gerar um valor de 16 bits

CalcT ISR StartADConversions EndOfTransmission ISR(USART_TX_vect) StartOfTransmission Filter

instante t1 , instante t2

main

calcula a diferena de tempo entre dois instantes t1 e t2 vetor de interrupo rotina de servio de int. de hardware inicia uma nova converso A/D para transmisso da caracteres no mdulo UART vetor de interrupo rotina de servio de int. para o evento de m de transmisso de um caractere incia a transmisso de caracteres via UART ponteiro para o somatrio, ltro de mdia ponteiro para o buffer do amostras, amostra atual rotina principal Tabela 3.3: Rotinas que compe o rmware.

Retorna valor do Timer1 em 16 bits para um dado instante T = t2 t1 valor ltrado

49

3.2 Firmware

50

3.2.1 Captura dos Sinais AnalgicosPara realizar a captura dos sinais analgicos sinais dos acelermetros e giroscpios foram implementadas duas funes: uma que inicia o conversor A/D congurando-o para gerar interrupes de hardware no m de cada converso e selecionar o primeiro canal (AD0), sendo esta executada de forma sncrona na rotina principal; e outra, que por se tratar de uma rotina de interrupo de hardware (depende do tempo de converso utilizado), acontece de forma assncrona em relao ao programa principal. Esta rotina responsvel por salvar o valor da ltima converso na devida varivel e recongurar/reiniciar o conversor para uma nova converso em um novo canal analgico, conforme o uxograma da Figura 3.11, que corresponde funo ISR(ADC_vect) da Tabela 3.3. Considerando o acelermetro da seo 3.1.4 com uma sensibilidade de 800mV/g, ao inclinar o quadrotor com um ngulo , Figura 3.12, a acelerao da gravidade ser projetada sobre o eixo X conforme a equao 3.1, portanto a sada, em tenso, do acelermetro ter um valor correspondente equao 3.2. A Tabela 3.4 ilustra os valores de sada do acelermetro para diversos valores de , desconsiderando o deslocamento (offset17 ) de 1,65V pertinente a este dispositivo.

gx = g.sen( );

(3.1)

v( ) = 0, 8.sen( );

(3.2)

1 5 10 15 30 45

sen( ) v( ) [V] 0,0174 0,0139 0,0871 0,0697 0,1736 0,1398 0,2588 0,2070 0,5000 0,4000 0,7071 0,5656

Tabela 3.4: Relao entre o ngulo de inclinao e tenso de sada do acelermetro. Uma vez que o passo P do conversor A/D dado pela equao 3.3 [Ailson Rosetti de Almeida 2004]: Vre f ; 2n 1

P=17 Mediante

(3.3)

variaes de acelerao positiva e negativa, este offset permite que o sinal excursione dentro de uma faixa positiva de valores.

3.2 Firmware

51

ISR-ADC

Salva converso em "Var"

Salva ltimo canal e "C"

Seleciona prox. canal analog

Inicia nova converso comando case

C?

ADC0

ADC1

ADC2

ADC3

ADC4

ADC5

Acel. Z = Var

Acel. Y = Var

Acel. X = Var

Giro Z = Var

Giro Y = Var

Giro X = Var

FIM

Figura 3.11: Fluxograma para o rotina de captura dos sinais analgicos. Onde Vre f igual a 3,3V, este conversor ter uma resoluo de 0,0129V (12,9mV), que menor que a tenso correspondente a 1 para o conversor trabalhando com tal sensibilidade (800mV/g). Caso o conversor opere com converso em 10 bits, este passo ser fracionado por 4, aumentando a resoluo. Quanto converso A/D de um sinal procedente de um giroscpio da seo 3.1.4, se esta for feita em 8 bits (com um passo de 12,9mV), possvel detectar uma velocidade angular de 5,6 /s18 , dado que tal dispositivo analgico fornece uma tenso de 2,5mV/ /s com um offset18 A

ttulo de ilustrao, essa velocidade um pouco menor que a de um ponteiro (360 /60s = 6 /s) de um

3.2 Firmware

52

gx

horizonte

gz

x

g

z

Figura 3.12: Projeo de g sobre o eixo X quando o quadroto inclina. de 1,23V. Ou ento, se a sada amplicada do giroscpio (x4) for utilizada, uma velocidade de at 1,4 /s poder ser detectada. E se ainda for necessrio realizar uma converso com maior preciso, isto , em 10 bits o presente conversor, poder ser detectada uma velocidade de at 0,35 /s.

3.2.2 Captura dos Canais do Rdio ReceptorCom o hardware apresentado na seo 3.1.3, possvel implementar a rotinas para capturar os canais do rdio receptor de duas formas: fazendo a leitura dos canais paralelamente, isto , atravs de 4 pinos de I/O (um para cada canal do rdio) fazendo polling19 , ou ento, serialmente atravs do pino INT0 gerando interrupo (como elucidado na seo 3.1.3). Por levar menos tempo de processamento, tal rotina foi implementada a partir desta segunda opo. Para capturar os canais serialmente atravs do pino INT0, este foi conectado sada serial criada no rdio Futaba (seo 3.1.2) e congurado para gerar interrupo de hardware quando um transio positiva (borda de subida) do sinal digital (carrilho) acontecer. A cada borda de subida, Figura 2.8, que corresponde ao termino de um canal e incio do seguinte, o valor de timer1 capturado dentro da rotina de interrupo. A diferena de tempo entre o instante de uma borda de subida e a anterior corresponde ao tempo de durao de um canal, isto , o tempo que este deve permanecer em nvel lgico alto na sada do rdio. Se este tempo for menor que o tempo mnimo (1ms) de durao de um canal, este considerado como rudo, portanto, no atribudo a nenhum canal. E se for maior que o tempo mximo de durao de canal (2ms), este considereado como m do carrilho (sincronismo). O uxograma da Figura 3.13 ilustra a implementao do rotina para a coleta dos canais serialmente, querelgio com movimento contnuo. 19 Polling: tcnica de leitura de um sinal digital de entrada onde se checa de tempo em tempo o nvel lgico em que este se encontra.

3.2 Firmware

53

corresponde funo ISR(INT0_vect) da Tabela 3.3. Como o rdio transmissor utilizado envia 6 canais, dois deles so ignorados, onde estes correspondem aos canais 5 e 6 identicado respectivamente por res.(5) e res.(6) no uxograma da Figura 3.13.

3.2 Firmware

54

ISR-INT0

Legenda: k1 - largura mnima de um canal PPM k2 - largura mxima de um canal PPM P - tempo de durao de um canal

Captura TMR1 (t2)

CalcT: (t1 - t2) comando if

N

T > k1? S

comando if-else

T < k2? S

N

Canal PPM = Throttle

comando switch-case

CanalPPM?

Throttle (1)

Roll (2)

Pitch (3)

Yaw (4)

Res. (5)

Res. (6)

P Throt. = T

P Roll = T

P Pitch = T

P Yaw = T

Incrementa CanalPPM

t1 = t2

FIM

Figura 3.13: Fluxograma para a rotina de captura dos sinais de PPM do rdio receptor por interrupo.

3.2 Firmware

55

3.2.3 Filtragem DigitalNem todos os paradigmas de controle lidam bem com sinais de entrada ruidosos, sendo uma exceo os controladores baseados no paradigma nebuloso [Mendel, J. M. 1995]. Portanto, para o rmware dar suporte implementao de controladores baseado em diversos paradigmas, um ltro digital de mdia (ltro FIR [Antoniou, A. 2006]) foi elaborado para atenuar rudos de alta frequncia oriundos dos prprios sensores ou externos a estes, quando necessrio . Um ltro de mdia de ordem m (com m = n + 1), consiste em calcular a mdia vm (t) de m valores amostrados conforme a equao 3.4: v(t) + v(t 1) + v(t 2) + ... + v(t n) , n+1

vm (t) =

(3.4)

onde, v(t) o ltimo valor amostrado (mais recente) acrescentado ao buffer e v(t n) o mais antigo. Logo, para a implementao via programa, deve-se reservar um array (buffer circular de memria) para armazenar as m amostras de um dado sinal a ser ltrado. Conforme o uxograma da Figura 3.14 (correspondente funo Filter da Tabela 3.3), ao invs de realizar a soma de todos os valores contidos no buffer, isto , computar o somatrio de m termos (um loop de m iteraes) toda vez que uma nova amostra sobrescrever a mais antiga no buffer, optou-se por subtrair a amostra mais antiga e adicionar o mais nova a m de computar o numerador da equao 3.4, que tem o mesmo efeito.

3.2 Firmware

56

IN CIO Novo Valor Buffer V(t-2) V(t-1) 0 1 V(t) 2 V(t-n) 3 V(t-3) n Soma = Soma + Novo Valor Soma = Soma Buffer[ndice]

ndice

Buffer[ndice] = Novo Valor comando if-else

S

ndice = n?

N inc. ndice

ndice = 0

Mdia = Soma/(n+1)

FIM

Figura 3.14: Fluxograma para a rotina referente ao ltro digital de mdia.

3.2.4 Programa PrincipalPara a estabilizao do quadrotor via controle automtico (desconsiderando um controlador de altitude), pode-se dividir tal controle em trs partes: um controlador para o eixo X, controlando a arfagem; um controlador para o eixo Y, controlando a rolagem; e um controlador para o eixo Z, controlando a guinada. Uma vez capturado os quatro canais do rdio conforme, descrito na seo 3.2.2, os canais referentes ao comando pitch, roll e yaw podem ser utilizados como referncia, isto , set point

3.2 Firmware

57

para cada controlador (X, Y e Z) conforme a Tabela 3.5. Em outras palavras, o valor de um canal corresponde ao ngulo que o quadrotor deve permancer em relao ao horizonte no caso dos eixos X e Y, ou com que velocidade angular deve permanecer em relao ao eixo Z. Comando Set Point para: Pitch Eixo X Roll Eixo Y Yaw Eixo Z Tabela 3.5: Comandos e respectivos set points. Assim, cada controlador deve gerar uma ao de controle, que quando combinadas segundo o princpio de funcionamento do quadrotor, ou seja, conforme as equaes 3.5, 3.6, 3.7 e 3.8, cada uma dessas corresponder ao tempo que o PWM que um determinado ESC dever permanecer em nvel lgico alto, isto , a velocidade de cada motor.

ESC1 = Tthrottle (ACcontroladorX ) (ACcontroladorZ ),

(3.5)

ESC2 = Tthrottle + (ACcontroladorX ) (ACcontroladorZ ),

(3.6)

ESC3 = Tthrottle (ACcontroladorY ) + (ACcontroladorZ ),

(3.7)

ESC4 = Tthrottle + (ACcontroladorY ) + (ACcontroladorZ ),

(3.8)

onde, AC corresponde a uma ao de controle tomada por um dado controlador, sendo que sua magnitude deve ser compatvel com a excurso mxima de um sinal de PWM utilizado em RC, isto , deve estar dentro da faixa de 0 a 1ms. E, Tthrottle corresponde ao tempo de durao do comando throttle. A ttulo de ilustrao, considerando um controlador como o da Figura 3.15 para o eixo X, baseado apenas em um acelermetro como sensor de inclinao, se o stick B for empurado para frente, o set point do controlador X mudar para um valor correspondente ao deslocamento deste stick, isto , kx stick, que deve corresponder ao ngulo no qual a plataforma dever permanecer. Isto resultar em um erro, ex , que corresponde diferena do novo set point e a posio atual do quadrotor x e pode ser expresso pela equao 3.9 ou pela equao 3.10.

3.2 Firmwarer e u y

58

Controlador

Quadrotor

a Acel. X

Figura 3.15: Malha fechada para um controle automtico no eixo X.

ex = set pointx ax ,

(3.9)

ex = (kx stickx ) ax .

(3.10)

Lembrando que neste trabalho, ax um valor de tenso analgica convertida (despresando o offset, 1,65V para os acelermetros) para digital proporcional projeo da acelerao da gravidade sobre o eixo X, gx na Figura 3.16 (ax gx ).

[V]

gx gzg

inc. horiz.

x 1,65 horiz.

ax (tilt)

inc.

xt

z

z

Figura 3.16: Projeo da acelerao da gravidade sobre o eixo X para o quadrotor inclinado para frente. Baseado neste erro, equao 3.10, o controlador X seja qual for o paradigma de controle utilizado na implementao deste deve gerar uma ao de controle tal que aumente a velocidade do motor 2 e diminua a do motor 1 (segundo as equaes 3.5 e 3.6) de forma a arfar o quadrotor conforme ilustra a Figura 3.16 , consequentemente, resultando em um movimento avante. Quando o ngulo de inclinao medido pelo acelermetro corresponder posio (ngulo) do stick B, o erro ser zero e o quadrotor permanecer inclinado para frente (em movimento). Ao soltar o stick, este retorna para sua posio central, automaticamente, restaurando seu set point default (posio original), isto , um set point tal que o controlador ponha o quadrotor nivelado com o horizonte.

3.2 Firmware

59

Caso um controlador para o eixo Y e outro para o eixo Z (estabilizao de giro) tambm esteja funcionando simultaneamente, para que o quadrotor permanea sobrevoando um ponto de forma estvel (hovering), basta o piloto controlar o comando throttle atravs do stick A (movimento vertical deste stick para cima e para baixo). Tarefa esta que poderia ser feita por um quarto controlador controlador de altitude implementado a partir de um medidor de presso atmosfrica, por exemplo. Os demais movimentos dos sticks podem permanecer em suas posies originais. Portanto, um uxograma que descreva o algoritmo para o programa principal ilustrado na Figura 3.17:Programa Principal Processa Controle Atualiza ESCs

INCIO

INCIO

INCIO

Inicializa Microc.

1

Remove offset dos sensores

1

ESC1 = Tthrot. - ACx - ACz

1

Inicia conv. A/D2

Remove offset dos com. de voo 2

ESC2 = Tthrot. + ACx - ACz

2

Filtra sinais3

Chama Controlador X

3

ESC3 = Tthrot. - ACy + ACz

3

Processa Controle X, Y e Z

4

Chama Controlador Y

4

ESC4 = Tthrot. + ACy + ACz

4

Atualiza ESCs5

Chama Controlador Z

FIM5

FIM

Figura 3.17: Fluxograma para o programa principal. Onde os blocos 3, 4 e 5 do uxograma "processa controle"da Figura 3.17 correspondem ao bloco 5 da Figura 3.1.

3.2 Firmware

60

3.2.5 Temporizao dos Sinais de PWMAs equaes 3.5, 3.6, 3.7 e 3.8 armazenam o tempo que o PWM de cada ESC deve permanecer em nvel lgico alto dentro de um perodo tpico de RC (20ms). Para que estes valores se tornem de fato sinais de PWM nos pinos PD7, PD6, PB1 e PB0 do microcontrolador, dois deles devem ser copiados para os registradores de comparao OCR0A e OCR0B, referentes ao timer0 e os outros dois para os registradores de comparao OCR2A e OCR2B, referentes ao timer2. Logo, as variveis ESC1 a ESC4 devem ser de 8 bits. Os timers 0 e 2 iniciam as suas contagens toda vez que uma interrupo de comparao do timer1 acontece, isto , quando a contagem do timer1 se iguala ao contedo de OCR1A: instante t da Figura 3.18 e t1 da Figura 3.19. Neste mesmo instante e dentro da referente rotina interrupo, os quatro sinais de PWM so colocados em nvel lgico alto e permanecem assim at que o valor do timer0 alcance o valor de OCR0A e OCR0B, para os PWMs dos ESCs 1 e 2; e at que o valor do timer2 alcance o valor de OCR2A e OCR2B, para os PWMs dos outros dois ESCs. A Figura 3.19 ilustra a contagem de um timer de 8 bits e dois sinais de PWM, PWMA e PWMB, gerados por meio deste timer com auxlio de seus registradores de comparao OCRnA e OCRnB; onde n pode ser 0 ou 2 (timer0 ou timer2). Quando o valor da contagem deste timer se iguala com um destes registradores, uma interrupo de comparao gerada, onde o referente sinal de PWM colocado em nvel lgico baixo.t OCR1A

TCNT1 20ms 20ms 20ms

Figura 3.18: Temporizao do perodo de 20ms com o timer1. Quando um timer de 8 bits "estoura"sua contagem (overow), instante t2 da Figura 3.19, uma interrupo de hardware gerada, onde o mesmo desligado; e, sua contagem s reinicia quando h uma interrupo de comparao do timer1, isto , incio de um novo perodo de 20ms. Para obter esta temporizao os timers foram congurados para incrementar a partir da frequncia da CPU (20MHz) divida por um fator de 256. Assim, o timer1 precisa fazer 1563

3.2 Firmwaret1 255 OCRnA OCRnB t2

61

TCNTn

PWMA

PWMB 20ms 2ms

Figura 3.19: Temporizao com um timer de 8 bits. incrementos para contar 20ms; e os timers 0 e 2, 160 incrementos para contar 2ms. Qualquer outro fator de diviso menor que 256 para os timers de 8 bits faria com que estes "estourassem"sua contagem antes de 2ms, causando erro na temporizao. Maiores detalhes de congurao destes temporizadores podem ser encontrados na listagem de cdigo do anexo A. As rotinas de interrupes utilizadas com o timer0, interrupo comparao e de overow so ilustradas atravs dos uxogramas da Figuras 3.20; a rotina interrupo de comparao do timer1 na Figura 3.21; e as pertinentes ao timer2, interrupes de comparao e de overow, assim como para o timer0, esto na Figura 3.22.ISR-T0 OVF ISR-T0 CMPA ISR-T0 CMPB

Desabilita T0

PWM1 = 0

PWM2 = 0

FIM

FIM

FIM

Figura 3.20: Fluxograma para as rotinas de interrupo do timer0.

3.2 FirmwareISR-T1 CMPA

62

PWM1 = 1 PWM2 =1 PWM3 = 1 PWM4 = 1

Timer0 = 0 Timer2 = 0

Habilita timer0 Habilita timer2

FIM

Figura 3.21: Fluxograma para a rotina de interrupo do timer1.ISR-T2 OVF ISR-T2 CMPA ISR-T2 CMPB

Desabilita T2

PWM3 = 0

PWM4 = 0

FIM

FIM

FIM

Figura 3.22: Fluxograma para as rotinas de interrupo do timer2.

3.2.6 Coleta de Dados - LogNo caso dos sinais dos sensores precisarem ser visualizados em um computador, uma rotina foi implementada fazendo uso da USART para transfer-los, alm dos canais capturados do rdio receptor ou qualquer outra informao de interesse, como a ao de controle de um dado controlador que venha ser implementado no quadrotor. Para isto, tais informaes devem ser colocadas dentro do buffer de log para que tal rotina, como a ilustrada pelo uxograma na Figura 3.23, possa envi-lo de forma assncrona byte a byte a uma taxa de transmisso de 57600bps. A USART do microcontrolador foi congurada para gerar interrupo toda vez que seu registro de transmisso esvaziar. Assim, para dar incio transmisso, um procedimento a

3.2 FirmwareProc. de inicializao

63

ISR-TX

INCIO

Incrementa ndice comando if-else

Inicializa USART

S

ndice = 0 ndice = n? N

Envia Log[ndice]

Fim da transm. (desab. USART)

Envia byte Log[n] FIM

FIM

Figura 3.23: Fluxograma para a rotina de log. parte realizado proc. de inicializao na Figura 3.23 , onde a USART incializada e o primeiro byte do log movido para o registro de transmisso da USART, e da em diante, o processo de envio torna-se automtico atravs da rotina de interrupo identicada como ISR-TX no uxograma da Figura 3.23. A transmisso byte a byte permanece at que o ndice utilizado para apontar para uma posio do buffer do log se torne igual ao tamanho buffer, isto , igual a n. Um programa rodando no computador (vide anexo A a sua correspondente listagem na liguagem de programao Python), que l a porta serial, aguarda pela chegada de um byte de informao por um tempo de 10s. Caso nenhum byte chegue, o programa abortado, o que corresponde ao microcontrolador no est operando ou que o rmware no est funcionamdo devidademente. Na medida em que os bytes de um log vo chegando, estes vo sendo armazenados em buffers diferenciados segundo a ordem em que os dados no log foram armazenados pelo rmware e enviados por este. A ordem de envio escolhida ao se enviar todos os sinais analgicos e todos os canais do rdio a seguinte: AN0, AN1, ..., AN5, throttle, pitch, roll e yaw.

64

4

Testes e Resultados

Para testar o funcionamento do hardware os seguintes procedimentos foram realizados em malha aberta: inclinando o quadrotor (girando-o em torno de seus eixos) para coletar os sinais (resposta) dos acelermetros e dos giro