dissertação de mestrado - ufba · controlando a tensão dos motores através de um sinal pwm. foi...

124
Universidade Federal Da Bahia Escola Politécnica Programa de Pós-Graduação em Engenharia Elétrica PROJETO E DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE EMBARCADO APLICADO A ROBÓTICA MÓVEL Dissertação de Mestrado Jovelino Torres dos Santos Salvador 2014

Upload: hoanghanh

Post on 02-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

Universidade Federal Da Bahia

Escola Politécnica

Programa de Pós-Graduação em Engenharia Elétrica

PROJETO E DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE

EMBARCADO APLICADO A ROBÓTICA MÓVEL

Dissertação de Mestrado

Jovelino Torres dos Santos

Salvador

2014

Page 2: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

Jovelino Torres dos Santos

Orientador: Prof. Dr. André Gustavo Scolari Conceição

PROJETO E DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE

EMBARCADO APLICADO A ROBÓTICA MÓVEL

Dissertação de mestrado apresentada ao Programa de

Pós-Graduação em Engenharia Elétrica da Universidade

Federal da Bahia como requisito para a obtenção do título

de Mestre em Engenharia

Orientador: André Gustavo Scolari Conceição

Universidade Federal da Bahia - UFBA

Escola Politécnica

Programa de Pós-Graduação em Engenharia Elétrica

Page 3: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

S237 Santos, Jovelino Torres

Projeto e desenvolvimento de um sistema de controle embarcado aplicado a robótica móvel. / Jovelino Torres dos Santos. – Salvador, 2014.

121 f. : il. color.

Orientador : Prof. Dr. André Gustavo Scolari Conceição.

Dissertação (mestrado) – Universidade Federal da Bahia. Escola Politécnica, 2014.

1. Robótica móvel. 2. Sistemas embarcados. 3. Controle de processos. I. Conceição, André Gustavo Scolari. II. Universidade Federal da Bahia. III. Título.

CDD.: 629.892

Page 4: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

Jovelino Torres dos Santos

Projeto e Desenvolvimento de um Sistema de Controle Embarcado

Aplicado a Robótica Móvel

Esta Dissertação de Pós-Graduação foi julgada adequada para obtenção do

Titulo de Mestre em Engenharia Elétrica e aprovado em sua forma final pela

Comissão Examinadora e pelo Colegiado do Curso de Pós-Graduação em

Engenharia Elétrica da Universidade Federal da Bahia.

______________________________________

Prof. Dr. Fernando Augusto Moreira

Coordenador do Colegiado do

Curso de Pós-Graduação em Engenharia Elétrica

Comissão Examinadora:

____________________________________

Prof. Dr. André Gustavo Scolari Conceição

Orientador - DEE/UFBA

____________________________________

Prof. Dr. Amauri Oriveira

Examinador Interno - DEE/UFBA

____________________________________

Prof. Dr. Eudemario Souza de Santana

Examinador Externo - SENAI/CIMATEC

____________________________________

Prof. Dr. Paulo César Machado de Abreu Farias

Examinador Interno -DEE/UFBA

Page 5: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

RESUMO

O objetivo deste trabalho é o desenvolvimento de uma plataforma de

hardware e firmware para controle de robôs móveis terrestres com rodas. A

plataforma proposta é composta por módulos de acionamento e controle de

atuadores, aquisição e tratamento de dados sensoriais e um sistema de

comunicação sem fio. Os módulos sensoriais utilizam sensores inerciais como

bussola digital e acelerômetros para obter informações de acelerações lineares,

velocidade e posição angular da plataforma, além disso, as informações sensoriais

de velocidade e corrente da motorização da base também são aferidas. O firmware

possui controladores PID embarcados cujos ganhos são parâmetros ajustáveis. O

sistema comunica-se com um supervisório através de um protocolo que viabiliza o

acesso as leituras de todos os sensores e permite realizar o acionamento dos

motores de duas maneiras distintas: utilizando os controladores PID embarcados, ou

controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um

protótipo da plataforma e testado em uma base de um robô omnidirecional de três

rodas. Resultados experimentais com a base e do desempenho dos sensores e

atuadores são apresentados.

Palavras-chave: Robótica móvel, Instrumentação robótica, Sistemas Embarcados,

Controle de Processos.

Page 6: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

ABSTRACT

This paper is aimed to develop hardware and firmware platforms to control wheeled

ground mobile robots. The proposed platform is composed by actuation modules,

control of actuators, acquisition and treatment of sensory data as well as a wi-fi

communication. The sensory modules use inercial sensors as a digital compass and

accelerometer to obtain information from linear accelerators, speed and pose of the

platform, besides the sensory information of speed and current of motor are also

measured. The firmware owns PID controls embedded whose gain are adjustable

parameters. The system interacts through a protocol that makes feasible, the reading

of all sensors and allows the motors starting in two different ways: using embedded

PID controlers or controlling the engine’s voltage through PWM signal. It’s been

developed a platform prototype and teste in a the three wheel omnidirectional robot.

Experimental results with the base and actuator and sensor performances are

presented.

Keywords: Mobile robotics, instrumentation robotics, Embedded Systems, Process

Control

Page 7: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

LISTA DE FIGURAS

Figura 1: Panorama da venda de robôs para diversas aplicações. Fonte: World Robotics 2013. .............................................................................................. 16

Figura 2: Robô AxeBot. Fonte [9]. ........................................................................................ 18

Figura 3: Base omnidirecional desenvolvida em [16]. .......................................................... 19

Figura 4: Robô Khepera. [2] ................................................................................................. 27

Figura 5: Estrutura de controle do Khepera (Fonte: Manual Robô Khepera III). ................... 29

Figura 6 - Robô Koala .......................................................................................................... 30

Figura 7 - Robô Pioneer [3]. ................................................................................................. 32

Figura 8 - Turtletbot 2. ......................................................................................................... 33

Figura 9: - Diagrama do Hardware da Plataforma de Controle. ............................................ 36

Figura 10: Modelo mecânico, elétrico e circuito de diagrama de controle de um motor DC....................................................................................................... 37

Figura 11: Sinal de PWM e circuito com timer. ..................................................................... 39

Figura 12: Diagrama de Bloco de Uma Ponte H e suas Tensões de Acionamento. ............. 40

Figura 13: Circuito típico utilizado no acionamento de MOSFETs e IGBTs de uma Ponte H. [30] ................................................................................................. 41

Figura 14: Acionamento do MOSFET com sinal chaveado. ................................................. 43

Figura 15: Diagrama do circuito de acionamento dos motores. ............................................ 45

Figura 16 - Circuito da Ponte H e Condicionamento dos Sinais de Acionamento ................. 49

Figura 17 - Sinais de controle da ponte H ............................................................................ 49

Figura 18: Sinais de corrente e tensão para o cálculo da potência dissipada nas chaves de uma ponte H. ............................................................................... 50

Figura 19 - Diagrama interno do amplificador de instrumentação INA826 ............................ 54

Figura 20 - Diagrama de Bode de um filtro passa baixas, com aproximação por Butterworth, Chebyshev e Cauer. ................................................................. 55

Figura 21 - Filtro passa-baixas de segunda ordem não inversor. ......................................... 56

Figura 22: Amplificador de instrumentação e filtro antialiasing. ............................................ 57

Figura 23: Módulo de acionamento final. ............................................................................. 58

Figura 24: Sistema massa mola. [33] ................................................................................... 59

Figura 25: Estrutura interna de um acelerômetro que utiliza a variação de capacitores para mensurar a aceleração. [33] ............................................... 60

Figura 26: Influência da gravidade nas saídas do acelerômetro de acordo com a inclinação [34] ............................................................................................... 61

Figura 27: Resposta em frequência do acelerômetro. [36] ................................................... 62

Figura 28: Acelerômetro MMA7361L.................................................................................... 63

Figura 29: Efeito Coriolis. ..................................................................................................... 64

Figura 30: Sistema de massa vibrante [38] .......................................................................... 65

Page 8: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

Figura 31: Giroscópio IDG500 ............................................................................................. 66

Figura 32: Composição das linha de campo terrestre [41] ................................................... 68

Figura 33: Módulo CMP03 [41] ............................................................................................ 69

Figura 34: Módulo de sensores. ........................................................................................... 69

Figura 35: Diagrama geral do firmware. ............................................................................... 72

Figura 36: Sinais de um encoder com saída em quadratura (Fonte

http://www.qsl.net – Acessado, 20 de junho de 2014). .................................. 73

Figura 37: Métodos de medição da velocidade utilizando o sinal do encoder. ..................... 74

Figura 38: Diagrama do algoritmo de leitura do ângulo ........................................................ 77

Figura 39: Topologias de rede zigbee. ................................................................................. 79

Figura 40: Topologias de Rede Zigbee. ............................................................................... 79

Figura 41: Estrutura do frame de comunicação com o Zigbee.[44] ...................................... 83

Figura 42 - Diagrama de recepção dos dados na porta serial. ............................................. 84

Figura 43: Placas com microcontrolador e zigbee. ............................................................... 85

Figura 44: Peças utilizadas para testar a plataforma desenvolvida. ..................................... 87

Figura 45: Plataforma desenvolvida junto com a base. ........................................................ 88

Figura 46: IHM de testes. ..................................................................................................... 89

Figura 47: Sinais gerados no módulo. .................................................................................. 90

Figura 48: Saída da Ponte H. ............................................................................................... 91

Figura 49: Sinais com atraso e após o gate driver. .............................................................. 91

Figura 50: Corrente sobre o resistor serie com a ponte H. ................................................... 92

Figura 51: Curva de velocidade medida pelo osciloscópio e pela base ................................ 94

Figura 52: Comunicação com o software em diferente taxas de comunicação. ................... 95

Figura 53: Frames transmitidos e recebidos pelo módulo Zigbee conectado ao

computador. .................................................................................................. 96

Figura 54: Diagrama de velocidades da base. [10] .............................................................. 98

Figura 55: Velocidade angular do centro da base ................................................................ 99

Figura 56: Análise da aceleração da base. ........................................................................ 101

Figura 57: Curva de resposta ao degrau de 3,9 V de cada motor. ..................................... 105

Figura 58: Controle da roda com PI, Kp = 0,1 e Ki =0,01 ................................................... 106

Figura 59: Erro valor do PWM gerado pelo controlador PI. ................................................ 107

Figura 60: Curva de corrente do motor com o controlador PI. ............................................ 107

Page 9: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

LISTA DE TABELAS

Tabela 1: Perda de potência nos MOSFETs da ponte H com operação em 6 V e 3,5 A de carga. .................................................................................................... 52

Tabela 2: Perda de potência nos MOSFETs da ponte H com operação em 18 V e 3,5 A de carga. .............................................................................................. 52

Tabela 3: Interfaces de comunicação com os módulos. ....................................................... 71

Tabela 4: Comparação entre modo transparente e API. ...................................................... 82

Tabela 5: Análise da leitura de velocidade ........................................................................... 94

Tabela 6: Comparação entre a orientação obtida pela base e o valor fornecido pelo sensor. .......................................................................................................... 97

Tabela 7: Variação da aceleração com a posição da base em ralação a terra ................... 102

Tabela 8: Parâmetros dos modelos de primeira ordem das rodas ..................................... 103

Tabela 9: Parâmetros elétricos do FDS8958...................................................................... 116

Tabela 10: Configurações da rede zigbee. ......................................................................... 117

Tabela 11: Comando API suportatos. ................................................................................ 118

Tabela 12: Frame de envios de dados e configurações. .................................................... 119

Tabela 13: Frame de recepção de dados e configurações. ................................................ 120

Tabela 14: Parâmetros enviados pelo robô. ....................................................................... 121

Tabela 15: Formato do comando 0x02............................................................................... 122

Tabela 16: Formato do comando 0x03............................................................................... 123

Tabela 17: Formato do comando que configura o PID. ...................................................... 124

Page 10: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

LISTA DE SIGLAS

Os seguintes símbolos têm este significado no texto, a menos outro significado

seja devidamente informado.

DC: Direct current

AC: Alternate current

PIC: Programmable Interface Controllers - Microcontrolador da Microchip

PWM: Robot Operational System

PID: Proportional Integral Derivative

GPS: Global Positioning System

TTL: Transistor-Transistor Logic

CMOS: Complementary metal–oxide–semiconductor

V: Volts

A: Àmpere

W: Watt

Ω: OHMs

Hz: Hertz

KHz: Kilo Hertz

MHz: Mega Hertz

I2C: Inter-Integrated Circuit

UART Universal Asynchronous Receiver/Transmitter

USB: Universal Serial Bus

DSP: Digital Signal Processor

ARM: Advanced RISC Machine

RAM: Random Access Memory

I/O: Input - Output

m/s: Metros por segundo

mm: Milímetros

cm: Centímetros

bps: Bytes por segundo

º/s: Graus por segundo

LCD: Liquid Crystal Display

ROS: Robot Operational System

MOSFET: Metal Oxide Semiconductor Field Effect Transistor

IGBT: Insulated Gate Bipolar Transistor

Page 11: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

TBJ: Transistor Bipolar de Junção

CI: Circuito Integrado

AMPOP: Amplificador Operacional

dB: deciBel

g: Aceleração da gravidade

ns: Nanosegundos

mA: Miliampères

T: Período

R: Resistor

C: Capacitor

F: Força

a: Aceleração

Rad/s: Radianos por segundos

ADC: Analog to Digital Converter

ACK: Acknowledgement

RTS: Request to Send

CTS: Clear to Send

Tx: Transmission

Rx: Receiver

API: Application Programming Interface

Page 12: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

14

1. INTRODUÇÃO .................................................................................................... 16

1.1 OBJETIVOS ........................................................................................................ 20

1.1.1 Objetivos específicos ...................................................................................... 21

1.2 JUSTIFICATIVA .................................................................................................. 22

1.3 ESTRUTURA DA DISSERTAÇÃO...................................................................... 25

2. ESTADO DA ARTE DAS PLATAFORMAS COMERCIAIS ............................... 26

2.1 K-TEAM .............................................................................................................. 27

2.2 ADEPT MOBILEROBOTS .................................................................................. 31

2.3 TURTLETBOT .................................................................................................... 32

2.4 CONCLUSÃO ..................................................................................................... 34

3. DESENVOLVIMENTO ........................................................................................ 35

3.1 DRIVER DE ACIONAMENTO DE MOTORES .................................................... 37

3.1.1 Módulo de Acionamento Projetado ................................................................. 44

3.1.2 Leitura da Corrente no Driver. ........................................................................ 53

3.2 MÓDULO DE SENSORES DE ACELERAÇÃO E ORIENTAÇÃO ...................... 58

3.2.1 Acelerômetro .................................................................................................. 58

3.2.2 Velocidade de Rotação ................................................................................... 63

3.2.3 Sensor de orientação ...................................................................................... 66

3.3 MICROCONTROLADOR E FIRMWARE ............................................................ 70

3.3.1 Leitura da Velocidade dos Motores ................................................................ 73

3.3.2 Orientação da Plataforma ............................................................................... 75

3.4 COMUNICAÇÃO COM O SUPERVISÓRIO ....................................................... 78

3.4.1 Módulo Xbee ................................................................................................... 80

3.4.2 Comunicação com o Microcontrolador............................................................ 83

4. RESULTADOS ................................................................................................... 86

4.1 DRIVER .............................................................................................................. 90

4.2 COMUNICAÇÃO COM O SOFTWARE .............................................................. 95

Page 13: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

15

4.3 SENSORES DE ACELERAÇÃO, VELOCIDADE ANGULAR E ORIENTAÇÃO ........................................................................................... 97

4.4 CONTROLADORES EMBARCADOS ............................................................... 102

5. CONCLUSÃO ................................................................................................... 108

4.5 TRABALHOS FACILITADOS PELO PROJETO. .............................................. 109

6. REFERÊNCIAS ................................................................................................ 111

ANEXO I 116

ANEXO II ................................................................................................................. 117

ANEXO III ................................................................................................................ 118

ANEXO IV ............................................................................................................... 119

ANEXO V ................................................................................................................ 120

ANEXO VI ............................................................................................................... 121

ANEXO VII .............................................................................................................. 122

ANEXO VIII ............................................................................................................. 123

ANEXO IX ............................................................................................................... 124

ANEXO X ................................................................................................................ 125

Page 14: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

16

1. INTRODUÇÃO

Atualmente os robôs são utilizados em diversos segmentos da sociedade.

Dentre os setores que investem na utilização de robôs está a indústria,

principalmente a automobilística, onde robôs desenvolvem trabalhos de extrema

precisão e com eficiência superior a de um trabalhador humano. Nas lavouras, os

sistemas automatizados são usados na irrigação e dispersão de adubos e inseticidas.

Já nas atividades domésticas, robôs realizam atividades como cortar grama e aspirar

pó.

Em ambientes hospitalares podemos citar o HELPMATE [1], utilizado para

transporte. Na área do entretenimento, os robôs brinquedos interagem com o

usuário, replicando comportamentos de humanos ou de outros animais frente a um

estímulo, como um carinho ou uma palmada.

Para termos uma idéia da importância dos robôs de serviço na sociedade

atual, a Figura 1 apresenta uma visão atual do mercado mundial de robôs de serviço.

Figura 1: Panorama da venda de robôs para diversas aplicações.

Fonte: World Robotics 2013.

No âmbito educacional, as plataformas robóticas são muito empregadas na

aprendizagem. Legos (Lego Mindstorms) interativos, dotados de sensores e

atuadores são largamente usados nas escolas de ensino fundamental e médio. Já

Page 15: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

17

nas escolas técnicas e de ensino superior, as plataformas robóticas como Khepera,

Koala [2] e Pioneer [3] auxiliam no desenvolvimento e validação de algoritmos de

controle, navegação, técnicas de inteligência computacional, sistemas multiagentes,

dentre outras.

Dentre os tipos de robôs com rodas existentes, os robôs móveis

omnidirecionais têm chamado bastante atenção, devido à mobilidade no plano, já

que podem se mover em qualquer direção, sem necessidade de reorientação, como

citado em [4]:

“Ao contrário de robôs não holonômicos, como os robôs nas configurações

Ackerman e diferencial, que têm que executar primeiro o movimento de

rotação, para depois desempenhar uma velocidade de translação, robôs

omni têm um maior poder de manobra e são muito utilizados em aplicações

em ambientes dinâmicos.”

Este tipo de configuração é muito útil em ambientes fabris, sendo utilizados

para transporte de cargas, além de aplicações acadêmicas, como a competição de

futebol de robôs [5].

Nas aplicações acadêmicas, trabalhos como [6], [7] e [8] utilizam uma base

omnidirecional de três rodas para desenvolver e validar: Técnicas de controle

Multivariável, Controle Preditivo e levantamento de modelos de atrito. Todos estes

trabalhos necessitaram de informações de velocidades das rodas, correntes dos

motores e aceleração da base, para a estimação do estado do robô e dos

parâmetros relativos ao modelo dinâmico.

Se existem muitos trabalhos que se dedicam ao desenvolvimento das técnicas

de controle e modelagem, têm outros que se propõem ao desenvolvimento da base

robótica em si, incluído a mecânica e hardware de sensoriamento e controle. Estes

trabalhos dedicam-se tanto ao desenvolvimento de robôs comerciais, como em [12]

que desenvolve uma plataforma aplicada a serviços domésticos, bem como

plataforma para aplicações acadêmicas como em [9], [13], [14], [15] e [16]. Os

trabalhos [9] e [16] serão apresentados com um pouco mais de detalhe por serem os

precursores deste trabalho.

Dentre vários modelos de autônomos utilizados pelo grupo de robótica do

departamento de Engenharia Elétrica da Universidade Federal da Bahia, encontra-

se o robô omnidirecional de três rodas, o mesmo utilizado nas competições de

futebol de robô. Este modelo de robô foi utilizado em [9] intitulado: “CONTROLE DE

Page 16: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

18

TRAJETÓRIA DE ROBÔS MÓVEIS OMNI-DIRECIONAIS: UMA ABORDAGEM

MULTIVARIAVEL”, onde foi montado o robô AxeBot apresentado na Figura 2. O

objetivo do trabalho era a aplicação da técnica de controle e não o hardware do robô,

desta forma foram usados módulos comerciais em sua montagem.

O Hardware do AxeBot era constituído por um driver para acionamento dos

motores DC, um módulo com um PIC, denominado BrainStem da Acroname -

Automation Engineering, para controle das velocidade dos motores e um

processador Stargate da Crossbow Technology, onde foi embarcado o controlador

Multivariável proposto.

Figura 2: Robô AxeBot. Fonte [9].

Devido às limitações impostas pelos módulos comerciais, mais

especificamente o módulo de acionamento dos drivers dos motores BrainStem, foi

desenvolvido o projeto de final de graduação [16], que valeu-se da mesma base

mecânica de três rodas utilizado no AxeBot, tendo como objetivo desenvolver uma

plataforma microcontrolada baseada no PIC32 para substituir os módulos BrainStem,

mas ainda aproveitando os drivers de acionamento dos motores.

O projeto tinha o intuito de projetar um hardware aplicado à pesquisa

onde o principal diferencial era a flexibilidade na forma de controle dos motores, que

seria realizado por meio da atuação sobre tensão dos motores modificando

diretamente o duty cycle do PWM. Outra maneira era o controle de velocidade

através da utilização de controladores PID embarcados. O segundo diferencial era a

possibilidade de modificar o firmware de acordo com a necessidade da pesquisa

Page 17: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

19

realizada, uma vez que o código era aberto e licença livre. O robô concebido está

apresentado na Figura 3.

Figura 3: Base omnidirecional desenvolvida em [16].

Atualmente existe no mercado uma diversidade de plataformas móveis

prontas para uso. De maneira geral, todas possuem hardware voltado à navegação

de alto nível, contendo câmeras, GPS e sensores de distância. Todavia, poucas

permitem o levantamento de parâmetros, pois não fornecem informação de baixo

nível, como corrente dos motores, dentre outras informações sensoriais necessárias

para controle e estimação de parâmetros de robôs terrestres. Além disso, podemos

apontar – “o custo” como o ponto importante para a aquisição destes módulos

robóticos. Plataformas como Khepera e Koala custam valores acima de

R$ 10.000,00.

A alternativa adotada é montar uma plataforma usando Kits e módulos

comerciais. No entanto, os módulos vêm com limitações de hardware que restringem

a aplicação, como os módulos de acionamento de motores utilizados em [9] e [16],

por exemplo, que possuem controladores de corrente internos que limitam

inadequadamente a corrente de partida dos motores, fazendo com que o robô não

tenha uma resposta satisfatória na partida - ou mesmo os módulos BrainStem, que

Page 18: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

20

têm controladores PID embarcados, porém não permitem que o usuário realize

modificações em seu firmware para adaptar a sua necessidade.

Diante dos entraves apresentados nas plataformas existentes, idealizou-se a

criação de uma plataforma embarcada de baixo custo, empregando um módulo com

um microcontrolador de fácil acesso, incorporando em um único módulo todas as

funcionalidades necessárias para obter as informações sensoriais para controle e

estimação de modelos e parâmetros de robôs.

Este trabalho de mestrado visa o desenvolvimento de uma plataforma que

seja de uso geral, podendo ser aplicada a diferentes arquiteturas de locomoção e

que permita obter informações dos sensores e realizar o controle dos atuadores.

Sobretudo, a plataforma também permitirá acrescentar sensores, comunicar-se com

um software supervisório através de um protocolo aberto para obter as leituras dos

sensores e controlar os atuadores do robô.

1.1 Objetivos

O objetivo deste trabalho é o desenvolvimento de um sistema de controle

embarcado de baixo custo para ser utilizado em robôs móveis terrestres com rodas.

Esta plataforma deve reunir todas as funcionalidades necessárias para a modelagem

e estimação de parâmetros do modelo do robô, assim como possibilitar o controle de

seus atuadores.

O sistema embarcado proposto é construído de forma modular, permitindo a

expansão do hardware, independente do número de sensores e atuadores. Os

módulos de sensoriamento, bem como os drivers de potência devem ter interface de

comunicação em níveis de tensão e corrente compatíveis com níveis TTL e CMOS.

Dessa maneira, será possível utilizá-los com quaisquer microcontroladores. Esta

liberdade possibilita que o usuário realize atualização para a plataforma

microcontrolada que satisfaz as necessidades da pesquisa.

Como produto final foi concebido um protótipo funcional de baixo custo, com

toda a documentação necessária, o que inclui esquemáticos, layouts e arquivos

gerber para fabricação das placas. O firmware também deve ser disponibilizado de

forma integral e comentado.

Page 19: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

21

1.1.1 Objetivos específicos

Os objetivos específicos são:

Realizar o acionamento de três motores DC de 5 V a 18 V usando

método de modulação por largura de Pulso (PWM);

Fazer a leitura das velocidades e direção de cada motor;

Desenvolver um circuito para leitura das correntes de cada motor;

Obter leitura de sensores de aceleração linear;

Obter a velocidade angular da base através de um acelerômetro;

Realizar a leitura de um sensor para obtenção do ângulo da base

em relação ao eixo magnético terrestre;

Comunicação serial com e sem o Zigbee;

Desenvolvimento de um firmware, que embarcado no

microcontrolador, permita a comunicação com um software

supervisório, fornecendo a este as informações dos sensores e

realize o controle dos motores.

O sistema embarcado tem dois modos de controle. O primeiro modo é a

atuação direto sobre a tensão dos motores. Este método de controle é feito através

da atuação sobre a largura de pulso do PWM em malha aberta. O segundo modo é

em malha fechada através de controladores PID. Cada motor tem o seu controlador,

cujos parâmetros são ajustados de forma independente.

Para atingir o objetivo final deste trabalho o projeto do hardware é divido em

módulos com funcionalidades especificas, sendo:

Driver de corrente: Este módulo tem a função de realizar o

acionamento adequando dos motores utilizando técnica PWM. O

hardware terá capacidade de controlar até três (3) módulos, sendo

que cada módulo é dedicado a um motor. Além do acionamento,

este módulo fornece a alimentação necessária aos encoders que

proporcionam informações de velocidade dos motores, realiza o

Page 20: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

22

condicionamento dos sinais do encoder e a leitura da corrente do

motor;

Placa de sensoriamento: Este módulo é responsável pelo

levantamento das acelerações lineares da base, velocidade e

posição angulares através do uso de sensores como o

acelerômetro, giroscópio e bússola digital, respectivamente;

Microcontrolador: Responsável pelo gerenciado dos demais

módulos, deve possuir entradas digitais e de interrupções para

leitura das velocidades dos sensores, entradas analógicas para

aferição dos sensores de corrente, dos sensores de aceleração e

velocidade angular. Também é necessário portas de comunicação

serial tanto síncronas como I2C, quanto assíncronas. Estas portas

servem de interface com alguns sensores e com o sistema

supervisório. Para o acionamento dos motores são necessárias três

saídas de PWM e três saídas digitais;

Placa de comunicação Zigbee: A placa é acoplada à placa do

microcontrolador podendo ser retirada de acordo com a

necessidade do usuário;

Placa distribuidora de energia: É responsável por fornecer os níveis

de tensão adequados ao funcionamento dos módulos citados

anteriormente, além disso, realiza as interconexões entres os

módulos.

Juntamente com o hardware foi desenvolvido um firmware para fazer o

gerenciamento da plataforma e comunicação com um sistema supervisório.

1.2 Justificativa

Este projeto de dissertação vem com o intuito de suprir uma lacuna na área de

instrumentação aplicada à robótica móvel terrestre. No trabalho de mestrado

abordado em [9], foram utilizados módulos comerciais na montagem do robô, uma

vez que a preocupação do autor era com a técnica de controle em si. Detalhando um

pouco mais a interface com os motores, o AxeBot era formado por:

Page 21: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

23

Três drivers de corrente para acionamento dos motores (S17-3A-

LV-HBRIDGE). O circuito destes drivers impõe uma limitação

indevida da corrente e impede que o robô tenha um bom

desempenho em situações de arranque ou aceleração,

principalmente em terrenos que exigem uma corrente maior de

partida, como gramado. Este driver possui um sensor de corrente

interno que é disponibilizado para a leitura. Contudo, este sensor

não é sensível às baixas correntes. Além disso, este sinal de

corrente é entregue para a leitura pelo conversor analógico digital

sem nenhum tratamento de filtragem;

Duas placas microcontroladas (BrainStem) com capacidade de

controlar até dois drivers S17-3A-LV-HBRIDGE. Este módulo

possui um microcontrolador PIC da família 18E, não regravável,

sendo assim, não é possível realizar mudanças no seu firmware.

O fato do módulo BrainStem não permitir regravação do seu firmware

restringe as possibilidades do sistema, pois ele impede que o usuário adapte

variáveis de acordo com a sua necessidade, como por exemplo, o tempo de

amostragem ou valores dos ganhos dos controladores.

Tendo em vista a busca de um hardware que reunisse as funcionalidades

indispensáveis para serem empregadas por pesquisadores em áreas como:

modelagem; estimação de parâmetros; e técnicas de controle avançado, foi proposto

o desenvolvimento de uma base própria com o microcontrolador de 32 bits, mas

ainda utilizando o driver de corrente do Axebot. O projeto foi desenvolvido no

trabalho final de graduação [16], onde se criou uma placa microcontrolada usando

um microcontrolador da família 32 bits. Esta placa permitia a aquisição das

velocidades dos encoders dos três motores, o acionamento dos motores, tanto em

malha aberta quanto em malha fechada utilizando controladores PID, cujos ganhos

podiam ser configurados pelo usuário.

Quanto à corrente, deixou-se de utilizar o sensor interno do driver, por este

não responder as correntes baixas do motor. Foi desenvolvido um circuito para

aferição de corrente utilizando-se um resistor em série com o barramento da

alimentação do driver. A tensão sobre o resistor de medição da corrente era

amplificado por um circuito amplificador não inversor e um filtro anti recobrimento.

Page 22: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

24

O trabalho desenvolvido por [16] foi utilizado em [10], que se utilizou das

velocidades das rodas para calcular as velocidades lineares e angulares da base

através da cinemática direta. O projeto mostrou que as velocidades das rodas

necessitavam de um filtro digital, para redução do ruído inerente as características

do sistema.

Dentre as velocidades obtidas pela cinemática direta, a velocidade de rotação

é a mais afetada, portanto seria interessante realizar sua medida de forma mais

direta por meio de um sensor próprio. [10] e [4] igualmente demonstram que a

velocidade máxima de navegação da base estava sendo restringida a valores

inferior a 2 m/s e tal limite era imposto pelo módulo de acionamento dos motores

através de seu circuito de proteção, uma vez que os valores de corrente velocidades

maiores ultrapassam os limites do módulo.

No trabalho desenvolvido em [8] calculava-se os coeficientes de atrito do

modelo dinâmico da base, de acordo com o modelo proposto em [6], que utiliza a

informação das correntes dos motores e das velocidades do centro de massa da

base em regime permanente.

Outra forma de se obter os coeficientes de atrito é empregando as

informações de aceleração do centro de massa da base, no entanto o único modo

de obtenção na base é derivando os valores de velocidades da base, que por sua

vez foram obtidas pela velocidade das rodas. Sendo assim, o uso de sensores

acelerômetros é uma opção para obter uma aceleração mais exata, uma vez que

não herdaria o ruído e erros das velocidades das rodas.

Diante dos trabalhos de [4], [8], [10] e [16] verificou-se a importância de se

desenvolver um driver próprio, bem como um circuito de medida de corrente com um

resistor de sensoriamente o menor possível, para não limitar a corrente fornecida ao

motor, com um circuito de condicionamento com um amplificador de instrumentação

diferencial. Além de sensores de aceleração e de velocidade angular fornecendo

uma informação mais exata e de forma mais direta, bem como filtros digitais

provendo a redução do ruído dos sensores.

Page 23: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

25

1.3 Estrutura da dissertação

A dissertação está estruturada da seguinte maneira:

O capítulo 2 apresenta um benchmarking dos robôs comerciais com

foco em pesquisa;

O capítulo 3 aborda o desenvolvimento do projeto proposto detalhando

o hardware, o firmware e o protocolo de comunicação adotado;

O capítulo 4 apresenta os resultados, as curvas experimentais e a

estrutura física concebida;

A conclusão e considerações finais são realizadas no capítulo 5.

Page 24: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

26

2. ESTADO DA ARTE DAS PLATAFORMAS COMERCIAIS

Atualmente no mercado encontram-se diversas plataformas robóticas que

atendem bem as necessidades de muitas pesquisas. Estas plataformas oferecem

muitas opções de configurações, deste o sistema de locomoção, isto é, configuração

diferencial, triciclos, holonômicos, não holonômicos, terrestres e aquáticos, até

configurações de sensores e capacidade de processamento. Alguns modelos

disponibilizam sistemas operacionais embarcados que permite comunicação com

elementos como: câmeras e aplicação de técnicas mais avançadas como sistemas

multiagentes.

De forma geral, as plataformas possuem pelo menos duas camadas bem

definidas. Uma camada de baixo nível que incorpora os drivers de acionamento dos

motores e de sensoriamento de velocidade. A segunda camada de grau superior

dispõe de um processador ou microcontrolador mais robusto, geralmente com um

sistema operacional embarcado, usualmente o Linux.

Este processador da camada superior permite que o usuário embarque

aplicações diretamente no robô, além disso, admite o uso de câmeras que precisam

de drivers, dos quais não são fornecidos para microcontroladores. Já a camada mais

baixa possui um microcontrolador dedicado, geralmente um DSP.

Dentre as companhias que criam robôs voltados para pesquisa em

universidades estão a K-Team, a Adept Mobilerobots e a Turtlebot. As duas

primeiras são empresas que desenvolvem a plataforma completa, já a segunda usa

parte de outros produtos para montar sua plataforma. Apesar de termos

conhecimento de outros módulos, nos atentaremos a aplicação para os robôs de

rodas terrestres.

Page 25: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

27

2.1 K-Team

A companhia suíça K-TEAM é uma grande desenvolvedora de robôs, para fins

de pesquisa acadêmica e ensino, dentre seus modelos estão o Khepera III e Koala,

que são plataformas voltadas à pesquisa de alto nível. Também são desenvolvidas

plataformas educacionais como o K-Junior.

Os robôs da K-TEAM possibilitam o desenvolvimento de pesquisas em áreas

como controle, programação, visão, inteligência artificial, entre outros, uma vez que

estas plataformas já vêm dotadas de sensores, atuadores, comunicação com

programas como Matlab, Labview. Existe ainda a possibilidade de expansão

conectando-se câmeras e outros módulos de acordo com a necessidade do

pesquisado.

A Figura 4 apresenta o robô Khepera em sua primeira versão (4.a) e sua

versão mais atual (4.b). Esta é a principal plataforma da K-Team, sendo muito

utilizado em pesquisas nas áreas de navegação, inteligência artificial, sistemas

multiagentes, controle, comportamento coletivo e programação em tempo real, como

apresentado em [1], [2] e [17]. A viabilidade do uso deste tipo de robô nas áreas de

controle e navegação é demonstrada em [18] e [19], no qual o primeiro desenvolve

um trabalho de estudo de navegação e o segundo faz o uso do Khepera, para

levantar o modelo cinético de um robô.

a) Khepera

b) Khepera III

Figura 4: Robô Khepera. [2]

Page 26: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

28

O sucesso desta plataforma baseia-se na facilidade de uso e comunicação.

Com um protocolo simples, o usuário envia comandos de acionamento dos motores,

leitura dos sensores, dentre outras configurações. Isto tudo através de qualquer

software que permita acesso a porta serial, como o Matlab, por exemplo. Esta

pequena plataforma disponibiliza os seguintes recursos e configurações:

Processador DsPIC 30F5011 60 MHz;

4 KB de RAM;

Memória flash 66 KB;

Dois motores DC com encoder acoplado com resolução 22 pulsos

a cada mm;

Velocidade máxima 0,5 m/s;

Sensores:

o Oito sensores infravermelhos que permitem verificar proximidade

de até 30 cm e luminosidade;

o Dois sensores infravermelhos na parte inferior o que permite que

o robô possa funcionar como um seguidor de linha;

o Cinco sensores ultrassom que medem distâncias de 20 cm a 4m;

I/O para acoplar outros módulos;

Comunicação por porta serial RS232 em até 115200 bps.

Além dos periféricos básicos que acompanham o robô, é possível acoplar uma

placa de expansão, a Korebot 2. Este módulo é composto por um processador ARM

XSCALE PXA-270 em 600 MHz. A adição deste processador dá um upgrade de 128

MB de RAM, 32 MB de flash, comunicação por USB, bluethooth, conexão com

câmera e ainda é possibilita que o usuário embarque códigos próprios, uma vez que,

têm o Linux 2.6 embarcado. Contudo, todo este poder de processamento custa nada

menos que $ 2.600,00 Francos Suíços ou aproximadamente R$ 11.000,00 - incluso

os impostos, [2].

Quanto ao controle dos motores e navegação, a plataforma é bem versátil,

sendo possível realizar o controle dos motores por velocidade, posição ou controle ta

tensão sobre os motores em malha aberta, como ilustrado na

Page 27: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

29

Figura 5.

Figura 5: Estrutura de controle do Khepera (Fonte: Manual Robô Khepera III).

Page 28: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

30

O robô Koala, ilustrado na Figura 6, é outra plataforma desenvolvida pela K-

Team para fins de pesquisa. Sua estrutura é uma plataforma de seis rodas, que

contém apenas dois motores. Demonstra um poder computacional superior ao

Khepera, com uma RAM de 4 GB e uma série de sensores como acelerômetros,

GPS, giroscópio e uma bateria mais duradora com autonomia de até 4 horas [2].

Suas principais especificações são:

Processador Dual core Intel Atom N2800 1.86 GHz;

Memória RAM 4 GB;

Dois motores DC 6 W, um para cada conjunto de três rodas.

Encoder acoplado ao eixo do motor com resolução de 100 pulsos

por volta;

Velocidade máxima em malha aberta até 0,6 m/s;

Sensores:

o 9 sensores ultrassom;

o Acelerômetro de 3 eixos;

o Giroscópio;

o GPS.

Possui ainda um barramento I/O que permite conectar outros módulos usando

canais de comunicação tais como: I2C; entrada de áudio; ADCs; PWM e etc.

Figura 6 - Robô Koala

Assim como o Khepera, o Koala têm um DsPic, neste caso, o

dsPIC33FJ64GS608 [21], dedicado exclusivamente ao acionamento dos motores e

leitura dos sensores.

Page 29: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

31

O Koala contém um processador dedicado à programação de alto nível com

Linux embarcado, permitindo assim que o usuário embarque uma aplicação no

dispositivo ou até mesmo realize processamento de imagem, rode algoritmos de

navegação, sistemas multiagentes, dentre outros.

A comunicação com o Koala é compatível com o Khepera, podendo ser

realizado através de programas como Matlab, Labview ou qualquer outro programa

que permita acesso a portas seriais. Sendo assim, o usuário tem acesso ao controle

e leitura de todos os sensores e atuadores, acesso a configurações como controle

dos parâmetros do controlador PID embarcado.

O Koala pode ser adquirido por $ 9.480,00 ou aproximadamente R$ 35.796,00

inclusos todos os impostos [22].

Page 30: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

32

2.2 Adept Mobilerobots

Assim como a empresa K-Team, a Adept MobileRobots é uma companhia que

desenvolve robôs voltados para pesquisadores. Funda em 1995, têm em seu

portfólio uma série de robôs de auto desempenho, fornecendo soluções para

organizações como a Universidade de Carnegie Mellon, Hitachi, Microsoft, MIT,

Siemens, exército dos Estados Unidos e NASA [3]. Dentro de sua linha de robôs

podemos citar as famílias: Seekur, PowerBot, Pionner, Research PatrolBot,

PeopleBot e AmigoBot. Todas essas plataformas são utilizadas em pesquisa e

desenvolvimento, com aplicação áreas como teleoperação, localização,

monitoramento, visão computacional, manipulação, navegação autônoma e

cooperação e comportamento de multi-indivíduos.

O robô Pineer P3-DX da Figura 7 é um dos modelos mais utilizados, ele

possui duas rodas com dois motores, porém existe a configuração de quatro rodas

deslizantes. A plataforma vêm acompanhada pelo software de interface ActivMedia

Robotics Interface for Applications (ARIA), que realiza simulação e propicia a

comunicação com o robô.

O primeiro modelo do robô Pinner P3 – DX, fazia uso do microprocessador da

Motorola 68HC11 com sistema operacional próprio, o Pioneer Server Operating

System (PSOS). Já em sua segunda versão, o núcleo utilizado foi substituído pelo

Siemens C166, com o sistema Pioneer 2 Operating System (P2OS), migrou em

seguida para o Hitachi H8S com o ActivMedia Robotics Operating System (AROS).

Hoje em dia o Pioneer utiliza o microcontrolador de 32 bit Renesas SH2

juntamente com o sistema operacional ActivMedia’s Robot Control and Operations

(ARCOS). O preço aproximado da versão mais básica deste robô é $ 30.000,00.

Suas principais configurações são:

Microcontrolador Renesas SH2, de 32-bit e 44 MHz;

4 portas seriais RS232 com baud rate configurável de 9600 bps a

115200 bps;

Interface I2C para comunicação com display LCD;

4 arrays de sonar com 8 sonar cada;

Giroscópio;

Page 31: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

33

Frequência de comunicação entre o software e o robô 10 Hz.

Figura 7 - Robô Pioneer [3].

2.3 Turtletbot

O Turtletbot é um robô desenvolvido para uso em pesquisas, principalmente

na área de navegação doméstica. Esta plataforma apresenta como diferencial o uso

do ROS - Robot Operational System, o qual é um sistema operacional voltado para

robôs que possibilitam o desenvolvimento de aplicações de alto nível, como atuação

dos manipuladores e leituras dos sensores através de drivers, bibliotecas e outros

recursos de programação de alto nível. Este recurso facilita o uso do robô sem se

preocupar com o baixo nível (ROS, 2014).

O primeiro modelo do Turtlebot foi criado utilizando o robô iCreate, que era

utilizado como sistema de locomoção da estrutura. Este robô pertence à empresa

iRobot e foi adaptado do robô Roomba.

A iRobot é fabricante de robôs voltados para serviços domésticos como:

aspirar pó (Roomba); lavar pisos (Scooba); limpar piso (Braava); e limpar piscina

(Mirra) (Irobot, 2014).

O robô Turtletbot é composto pelo robô iCreate e por sistema de visão usando

o Kinect da Microsoft e um sistema de posicionamento utilizando um giroscópio.

A segunda versão do Turtlebot, apresentado na Figura 8, utiliza em sua base

o robô Kobuki. Desenvolvido de forma conjunta pelas empresas Yujin Robotics e

Willow Garage, esta plataforma tem o intuito de ser um robô voltado para pesquisa e

de substituir o iCreate (ROS, 2014). Seu preço é aproximadamente $2.000,00.

Page 32: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

34

Figura 8 - Turtletbot 2.

A versão mais recente do Turtlebot apresenta as seguintes características:

Velocidade máxima 70 cm/s;

Velocidade de rotação 180°/s;

Encoders com resolução de 2.578,33 pulsos/volta;

Giroscópio;

Conexão com PC via UART;

Detecção de sobre corrente (>3 A);

Atualização do sensor em 50 Hz;

Conector de expansão 3,3 V/ 1 A, 5 V / 1,5 V, 4 entradas

analógicas, 4 entradas digitais e 4 saídas digitais.

Page 33: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

35

2.4 Conclusão

Atualmente existem plataformas robóticas que possibilitam o desenvolvimento

de pesquisa, no qual, o pesquisador não precisa se preocupar em desenvolver o

hardware. Algumas plataformas como o Khepera propiciam um nível de controle em

que o usuário pode atuar diretamente sobre os atuadores, além de possuir uma

gama de sensores de aceleração e posição, porém estas plataformas têm custo

elevado. Opções como o turtlebot possuem preços mais acessíveis, mas não

disponibilizam sensoriamento de baixo nível, contudo possui um sistema de

visualização avançada.

Por utilizar o ROS, em vez de um sistema operacional próprio como o Pioneer,

o Turtlebot tem uma aceitação maior pelos pesquisadores, uma vez que o ROS é um

sistema do tipo open source, ou seja, de código aberto. Além disso, existe uma

gama de pesquisadores de áreas de tecnologia, mas que não são engenheiros

eletricistas, portanto não têm tanta afinidade com o hardware. Isto faz com que o uso

de sistemas que possuem interface em alto nível seja visto de forma diferenciada.

Apesar do Turtlebot conter uma interface que segue a tendência do mercado e

possuir um preço mais acessível que os demais, este produto deixa a desejar

quando se faz necessário desenvolver pesquisas aplicadas a modelagem e controle.

Esta plataforma tem como base plataformas comerciais, voltadas para outras

atividades e que foram adaptadas. Portanto não foram projetadas para disponibilizar

informações de debaixo nível, exceto a velocidade da roda e velocidade angular.

Diferentemente, o Khepera e o Pioneer possuem mais sensores, porém voltados à

localização e detecção de distância, contudo propiciam mais opções de controle

sobre seu sistema de locomoção. No entanto, possuem preço bastante elevado,

acima de R$ 10.000,00.

A proposta deste trabalho é de desenvolver o hardware que pode ser utilizado

na plataforma de interesse do pesquisador que possibilite o controle de baixo nível,

bem com o acesso ao sensoriamento como da corrente dos motores, que nenhuma

das plataformas citadas apresenta, acima de tudo, deve possuir um valor acessível

que os modelos comerciais já citados.

Page 34: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

36

3. Desenvolvimento

O diagrama da Figura 9 apresenta a plataforma proposta neste trabalho, bem

como sua divisão em módulos e as interfaces utilizadas para comunicação das

placas. A proposta é ter um “módulo base” onde os demais módulos devem ser

conectados. Este módulo base deve fornecer alimentação aos demais módulos e

realizar a conexão entre os sinais elétricos.

Ainda fazem parte da plataforma:

Um módulo dedicado ao sensoriamento da aceleração e posição;

Um módulo de acionamento de potência que pode acionar um

motor e aferir sua corrente;

Uma placa com um microcontrolador capaz de controlar os demais

módulos e comunicar-se com o sistema supervisório;

E por fim, um módulo de comunicação sem fio que proporciona o

canal de comunicação entre o hardware e o supervisório.

É importante salientar, que o microcontrolador possui embarcado um firmware

com filtros digitais, controladores PID, o protocolo de comunicação com o

supervisório, além do algoritmo de leitura das variáveis analógicas dos sensores,

das velocidades e acionamento dos motores.

Page 35: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

37

Módulo do

Microcontrolador

PW

M +

Sin

al

de

Co

ntr

ole

de

Dire

çã

o

Sin

al d

e

co

rre

nte

Alimentação

5 V a 18 V

Módulo de acionamento

dos Motores

Motor DC

E

Encoder

PWM + 6 V

de alimentação

do encoder

Sinais do

Encoder

Gate Driver

e Ponte H

Circuito de

Leitura de

Corrente

Condicio-

namento do

sinal do

encoder

Alimentação

5 V a 18 V para

a ponte H

Ba

rra

me

nto

de

En

erg

ia /

reg

ula

do

res

Alimentação

3,3 V, 6 V,

-3,3 V

Sin

ais

do

En

co

de

r

(Ve

locid

ad

e)

ADC

Entradas

de

Interrupção

ou Capture

Timers /

PWM

Módulo de sensores de

aceleração e posição

Acelerôme-

troGiroscópio Bússola

digital

ADCEntradas

de

Interrupção

ou I2C

Controle

em malha

aberta ou

fechada

com PID

Filtragem

digital

Protocolo de comunicação

UART

Zigbee

Alimentação

3,3 V, 6 V,

-3,3 V

Alimentação

3,3 V

Alimentação

3,3 V

du

lo b

ase

Figura 9: - Diagrama do Hardware da Plataforma de Controle.

Page 36: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

38

3.1 Driver de Acionamento de Motores

Motores de corrente contínua, também denominados motores DC, são muito

utilizados em equipamentos eletrônicos portáteis, brinquedos, equipamentos

médicos e robôs, uma vez que possuem dimensões reduzidas, baixo custo, podem

ser controlados de forma simples e apresentam um bom desempenho em termos de

torque e velocidade de rotação. [32]

A estrutura mecânica de um motor DC, Figura 10 a), é composta por: um rotor,

também chamado de armadura, um estator, escovas e o comutador. O estator pode

ser constituído por imã permanente ou por uma bobina que gera o campo magnético

para excitação. Esta bobina pode ser acionada de forma simples como apresentado

em [28], no qual apresenta que: a mesma fonte de tensão que aciona o rotor é

utilizada para excitar o estator. Outra forma de excitar o estator é utilizar uma fonte

separada, o que possibilita, por exemplo, o controle da corrente no estator.

LRE=KΦω

a) Modelo mecânico do motor DC. [43] b) Circuito equivalente da armadura

Figura 10: Modelo mecânico, elétrico e circuito de diagrama de controle de um motor

DC.

A velocidade de um motor DC é controlada diretamente pela tensão aplicada

nos terminais do circuito de armadura (Figura 10 b), como apresentado na equação

1 e o torque é controlado pela corrente, o que é visto na equação 2. Já o sentido de

𝑉𝑑

𝐼𝑑

Page 37: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

39

giro é definido pela polarização da tensão 𝑉𝑑 nos terminais do motor. Uma vez

invertida a polaridade nos terminais, o motor tem o giro de seu eixo invertido.

𝜔 =

𝑉𝑑 − 𝑅𝐼𝑑 + 𝐿𝑑𝐼𝑑𝑑𝑡

𝐾𝛷

( 1 )

𝑇 = 𝐾𝛷𝐼𝑑 ( 2 )

As equações 1 e 2 descrevem a velocidade de rotação e torque do motor

mediante seu modelo elétrico. Sendo:

𝑉𝑑 : Tensão da fonte;

R: Resistência da armadura;

𝐼𝑑 : Corrente na armadura;

L: Indutância do enrolamento da armadura;

𝛷: Fluxo de entreferro;

𝐾: Constante da máquina determinada por características construtivas.

Como já citado, o controle da velocidade de motores de DC é realizado

através do controle sobre a tensão de armadura. Mas como controlar a tensão sobre

a armadura de um motor DC?

O controle de tensão sobre uma carga é abordado por diversos trabalhos,

dentre o qual Antenor Pomilio [29] em seu material de aula, onde cita que:

“Caso seja preciso variar a tensão aplicada sobre uma carga, é necessário o

emprego de algum dispositivo que seja capaz de "dosar" a quantidade de

energia transferida. Pode-se ter um atuador linear, sobre o qual se tem uma

queda de tensão proporcional à sua impedância. Este tipo de controle da

tensão tem como inconveniente a perda de energia sobre a resistência série.

A maneira mais eficiente e simples de manobrar valores elevados de

potência é por meio de chaves.”

Page 38: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

40

Como referenciado por [29], o controle através de uma chave é a opção que

acarreta em menor perda de potência. O propósito agora é apresentar um método

de controle da chave.

O PWM (Pulse Width Modulation) é uma técnica de acionamento onde se

controla o tempo ativo de um sinal com frequência fixa. A Figura 11 contém um

esquema básico de um sinal de PWM gerado pelo timer de um microcontrolador.

Neste exemplo um contador é comparado com um sinal de referência. Enquanto o

valor do contador é menor que o sinal de referência, o sinal de saída está em estado

alto, quando o contador ultrapassa o valor de referência, o sinal de saída transita

para nível baixo. Desta forma, controla-se o tempo em que o sinal de saída

permanece em nível alto através do sinal de referência. A razão entre o tempo ativo

e o período total do sinal é chamado de duty cycle do PWM.

A tensão entregue a carga é igual à tensão de entrada multiplicada pelo duty

cycle, ou seja, se o sinal de PWM encontra-se em 50 %, a tensão sobre a carga é

metade da tensão de entrada.

Contador do Timer

ComparadorSinal de referência

Sinal de saída PWM

Duty Cycle 40 % Duty Cycle 20 %

Tempo

Período do Timer

Figura 11: Sinal de PWM e circuito com timer.

O sinal de PWM gerado pelo microcontrolador é capaz de controlar o tempo

ativo de uma chave eletrônica, controlando assim a tensão sobre uma determinada

carga. No entanto, este sinal proveniente do microcontrolador está limitado a valores

baixos de tensões inferiores a sua tensão alimentação, tipicamente entre 1.8 V a 5 V.

Page 39: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

41

Já as correntes chegam a alguns miliampères o que consequentemente limita o

valor de potência que pode ser fornecido a uma carga. Para contornar este problema

o controle de tensão sobre cargas é geralmente realizado por um driver, que por sua

vez, utiliza o PWM como sinal de controle.

Quando a carga é um motor DC, a configuração mais utilizada para o driver é

o circuito em ponte H da Figura 12 a), como pode ser observado no circuito, a ponte

H é formada por 4 chaves eletrônicas, cujo acionamento controla a tensão sobre o

motor, consequentemente a velocidade e o sentido de giro.

Em uma das possibilidades de acionamento, ao acionar somente as chaves

S1 e S4, o motor funcionará em um determinado sentido. Ao inverter as chaves, ou

seja, desligar S1 e S4 e ativar S2 e S3, o motor terá seu sentido de giro invertido.

Conclui-se assim que com a ponte H é possível controlar tanto a velocidade

quanto o sentido de giro do motor. Além das chaves, observa-se a presença de

diodos ligados em paralelo com as chaves. Estes diodos são necessários, visto que,

o motor é uma carga com características indutiva e portanto, a corrente em seu

enrolamento não cessa de forma imediata ao fechar das chaves. Dessa forma, os

diodos proporcionam um caminho para que a corrente do enrolamento circule sem

prejudicar o circuito.

S1 S2

S3 S4

D1 D2

D3 D4

CC M

S1

S3

D1

D3

VGS1

VGS3

A

a) Circuito da ponte H b) Tensões de acionamento nos gates

de MOSFET

Figura 12: Diagrama de Bloco de Uma Ponte H e suas Tensões de Acionamento.

Page 40: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

42

Os dois dispositivos semicondutores mais utilizados como chave em um

circuito de ponte são o MOSFET (Metal Oxide Semiconductor Field Effect Transistor)

e o IGBT (Insulated Gate Bipolar Transistor) [30]. Ambos MOSFET e IGBT são

dispositivos controlados por tensão em seu gate, diferentemente do TBJ (Transistor

Bipolar de Junção) no qual o controle é realizado pela corrente em sua base.

A Figura 12 b) apresenta as tensões VGS1 e VGS3 que controlam as chaves

S1 e S3, respectivamente, a partir do qual se conclui que a tensão que ativa a chave

inferior, S3 é sempre referenciada a um valor de tensão fixa, geralmente o próprio

referencial do circuito. Já a tensão que ativa a chave S1 (VGS1) é referenciada

sobre o ponto A, cuja tensão é um valor que flutua, podendo chegar até ao valor do

barramento DC. Deste modo, é necessário que o referencial do sinal que controla a

chave superiora flutue junto com tensão em A. Esta situação pode ser alcançada

com o auxílio de circuitos como o da Figura 13.

Figura 13: Circuito típico utilizado no acionamento de MOSFETs e IGBTs de uma

Ponte H. [30]

O circuito da Figura 13 é um circuito de Bootstrap que funciona da seguinte

maneira: Quando a chave Q2 da Erro! Fonte de referência não encontrada. está

ativa, o valor da tensão no terminal fonte de Q1 vai para terra fazendo com que o

capacitor de bootstrap (Cboot) carregue gerando um VB positivo em relação à VS.

Quando a chave Q2 é desativada a fonte de Q1 flutua e o referencial VS do circuito

de boostrap flutua junto, mas VB agora é capaz de fornecer a tensão necessária

para acionar Q1.

Page 41: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

43

O uso do circuito de Bootstrap requer um correto dimensionamento dos

elementos que compõem o circuito que são o capacitor Cboot, o diodo D1 e a

resistência de gate (Rgate) presentes na Figura 13. Eventualmente, o circuito pode

conter também um resistor em série com o Diodo D1 para limitar a corrente

proveniente da fonte de tensão, evitando um dano à mesma. O dimensionamento

deste resistor de gate depende diretamente das características do elemento utilizado

como chave na ponte H, da frequência de operação do sistema, além da tensão de

operação do circuito. Trabalhos como [31] descrevem o funcionamento e

dimensionamento de circuitos como este. Outros tipos de configurações estão

detalhados em [30].

No modelo construtivo de um MOSFET e de um IGBT com acionamento

dinâmico surge capacitâncias parasitas entre o terminal do gate para o dreno e do

gate para a fonte ou gate para o coletor e do gate para o emissor no IGBT. A

consequência da presença dessas capacitâncias é que apesar do acionamento do

MOSFET e do IGBT ser realizado por tensão em regime permanente, no regime

transitório existe a necessidade de uma corrente para carregar e descarregar estas

capacitâncias. Esta corrente pode chegar a valores de alguns ampères, dependendo

do valor dessas capacitâncias e do tempo de carga.

A Figura 14 a) ilustra as capacitâncias do ponto de vista do gate do MOSFET.

Já a Figura 14 b) e Figura 14 c) relacionam o tempo de carga destas capacitâncias

com as tensões Vgs e Vds e com a corrente de dreno (Id), através de td(on) e tr,

bem como a descarga por td(off) e tf.

Os tempos de carga e descarga influenciam na perda de potência no

semicondutor, uma vez que como descrito na Figura 14 c): já existe uma corrente de

dreno (Id) durante o acionamento do MOSFET, momento no qual ele ainda não se

encontra na região ativa. O mesmo vale para a desativação do MOSFET.

A Erro! Fonte de referência não encontrada. d) apresenta o circuito

equivalente da resistência de saída do gate driver e capacitância de entrada do gate

do MOSFET ou do IGBT. Diante deste circuito obtêm-se o tempo de carga da

capacitância do gate e corrente de gate, como demonstrado nas Equações 3, 4, 5 e

6. Esses parâmetro devem ser utilizados para dimensionar a resistência utilizada

entre o gate e o gate driver.

Page 42: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

44

a) Capacitâncias do Gate [30] b) Tempos de Acionamento

c) Comportamento da Tensão VDS e

Corrente Ids com Tensão de Gate

d) Circuito equivalente do gate driver e

capacitância do gate [30]

Figura 14: Acionamento do MOSFET com sinal chaveado.

Antes de apresentar as equações algumas definições devem ser feitas, tais

como:

A capacitância equivalente no gate 𝐶𝑡𝑜𝑡𝑎𝑙 é a relação da carga total

do gate 𝑄𝑡𝑜𝑡𝑎𝑙 pela tensão do gate 𝑉𝑔𝑎𝑡𝑒 ;

A carga do gate 𝑉𝑔𝑎𝑡𝑒 relaciona do tempo de carga ( 𝑇𝐶𝑕𝑎𝑟𝑔𝑒 ) com

corrente no gate (𝐼𝐶𝑕𝑎𝑟𝑔𝑒 );

A resistência do gate driver ( 𝑅𝐷𝑟𝑖𝑣𝑒𝑟 ) e de gate ( 𝑅𝐺𝑎𝑡𝑒 )

determinam a constante de tempo de carga do gate.

Page 43: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

45

𝐶𝑡𝑜𝑡𝑎𝑙 =

𝑄𝑡𝑜𝑡𝑎𝑙

𝑉𝑔𝑎𝑡𝑒 ( 3 )

𝑄𝑇𝑜𝑡𝑎𝑙 = 𝐼𝐶𝑕𝑎𝑟𝑔𝑒 𝑡𝐶𝑕𝑎𝑟𝑔𝑒 ( 4 )

𝑇𝐶𝑕𝑎𝑟𝑔𝑒 = (𝑅𝐺𝑎𝑡𝑒 + 𝑅𝐷𝑟𝑖𝑣𝑒𝑟 )𝐶𝑇𝑜𝑡𝑎𝑙 ( 5 )

𝑅𝐺𝑎𝑡𝑒 =

𝑇𝐶𝑕𝑎𝑟𝑔𝑒𝐶𝑇𝑜𝑡𝑎𝑙

− 𝑅𝐷𝑟𝑖𝑣𝑒𝑟 ( 6 )

A seleção dos elementos da ponte H, seja um IGBT ou um MOSFET, deve

levar em consideração características como os tempos de ativação e carga do gate

a fim de minimizar a perda de potência na ponte H .

3.1.1 Módulo de Acionamento Projetado

O módulo de acionamento foi projetado para acionar motores DC que operem

com tensões de 5 V a 18 V. Além do circuito do driver para acionamento de motor,

este módulo viabiliza a conexão de um encoder juntamente com o motor e realiza a

medição da corrente do motor. O digrama de blocos da Figura 15 apresenta uma

visão geral do circuito eletrônico do módulo de acionamento. Como apresentado, a

comunicação do microcontrolador com está placa ocorre através do conector A

mediante os seguintes sinais:

PWM. Sinal de controle de acionamento do motor. Através deste, o

micrcontrolador controla a velocidade do motor. Este sinal é adaptado

através do circuito A onde são gerados os sinais PWM_1 e PWM_2,

sinais defasados entre si que são utilizadas para controle do gate driver

(circuito B). Que por sua vez aciona os MOSFETs da ponte H do

circuito E;

Direção. Sinal digital utilizado para controle do sentido de giro do motor.

Assim como o sinal de PWM, este sinal é devidamente condicionado

antes do gate driver;

Page 44: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

46

Encoder A e Encoder B. São sinais de informações de velocidade e

direção do motor provenientes do encoder acoplado ao seu eixo. É

através destes sinais que é realizado o controle de velocidade e da

plataforma;

Corrente. Este sinal fornece informação da corrente do motor. Sua

mediação é realizada através do circuito D que esta em série com a

ponte H.

A alimentação da ponte H é realizada por um conector dedicado (Conector B)

e a conexão do motor e do encoder é feita no conector C.

Uma vez feita a descrição macro da placa de acionamento e seus sinais, será

realizado a descrição detalhada do projeto do circuito, começando pela ponte H e

Circuito B

Gate Driver

Circuito A -

Adequação dos sinais

PWM e Direção

Circuito D -

Leitura de corrente

PWM Direção

Circuito C -

Adequação dos sinais

do Encoder

Encoder_A Encoder_B

Acio

nam

ento

do m

oto

r

Circuito E -

Ponte H

Sinais de controle de gate

Conector C -

Motor + Encoder Sinais do Encoder

Sinal de Corrente

Conector B -

Alimentação 6 V - 18 V

PW

M_1/ P

WM

_2

Dir_

1/D

ir_2

Energ

ia

E

nerg

ia

C

onecto

r A

- C

om

unic

ação c

om

o m

icro

contr

ola

dor

Figura 15: Diagrama do circuito de acionamento dos motores.

Page 45: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

47

circuito de gate driver. Será abordado do o cálculo necessário para o

dimensionamento e justificativa das escolhas de cada componente.

A ponte H foi desenvolvida utilizando o circuito integrado FDS8958. Este CI

possui em seu encapsulamento dois MOSFETs, um de canal N e outro canal P.

Dessa forma um único CI compõe um lado da ponte, sendo que o MOSFET de canal

N é utilizado na parte inferior da ponte e o canal P é usado na parte superior.

A escolha do FDS8958 deve-se aos seguintes motivos:

Possui dois MOSFETs no mesmo encapsulamento, o que reduz as

dimensões do circuito e minimiza as ligações de trilhas na placa;

Tensões VGS de 4,5 V para o canal N e -4,5 V para o canal P, já

são suficientes para colocar o dispositivo na região triodo, com

resistência de canal 𝑅𝐷𝑆𝑜𝑛 de 0,04 Ω no canal N e 0,08 Ω no canal

P, apresentando assim baixas perdas durante a condução;

Os tempos 𝑡𝑑(𝑜𝑛 ) , 𝑡𝑑(𝑜𝑓𝑓 ) , 𝑡𝑟 e 𝑡𝑓 são da ordem de unidades a

dezenas de nano segundos. Logo, o tempo de transição entre o

estado aberto e fechado é extremamente rápido, o que reduz as

perdas durante o chaveamento do dispositivo;

As correntes de dreno para fonte em regime permanente são de 7

A, no canal N e -5 A no canal P. Suportando picos correntes de até

20 A em ambos os canais.

O cálculo da corrente de gate necessária para ativar o MOSFET depende do

tempo de carga e do valor da carga do gate. Neste caso, o objetivo é calcular o

maior valor de corrente que será solicitado do gate driver. Esta corrente é

diretamente proporcional à carga do gate (𝑄𝑇𝑜𝑡𝑎𝑙 ) e inversamente proporcional ao

tempo de carga ( 𝑡𝐶𝑕𝑎𝑟𝑔𝑒 ), como descrito anteriormente na Equação 4 e

reapresentada com a corrente em função da carga e do tempo de carga na Equação

7.

𝐼𝐶𝑕𝑎𝑛𝑔𝑒 =

𝑄𝑇𝑜𝑡𝑎𝑙

𝑡𝐶𝑕𝑎𝑟𝑔𝑒 ( 7 )

Page 46: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

48

A Tabela 9 do Anexo I utiliza os valores de carga do gate e tempo de carga

informados pelo datasheet do FDS8958 para mensurar a corrente máxima na carga

e descarga do gate dos dois MOSFETs que compõem o CI utilizando a Equação 7.

Estes valores indicam que em ambos os MOSFETs a corrente de carga é maior que

a de descarga, sendo que a corrente no canal N é ligeiramente maior que a do canal

P. Esta diferença ocorre devido à carga do gate do canal N ser maior e o tempo de

descarga ser menor.

Uma vez selecionados os MOSFETs, determinado os níveis de tensão de

trabalho da ponte e dimensionado a corrente de gate é possível determinar o gate

driver a ser usado.

Diante das características do MOSFET selecionado para chave da ponte H, foi

selecionado o CI TC4469 como gate driver do módulo. Este CI é um circuito

integrado da Microchip dedicado ao acionamento de motores DC de baixa tensão e

motores de passo. Ademais, é empregado em aplicações que operem de 4 V a 18 V,

com capacidade de fornecer corrente de pico de 1,2 A e 250 mA de corrente

contínua, apresenta um baixo tempo de subida e descida de 25 ns e um delay de 75

ns.

A saída do CI TC4469 possui uma configuração pushpull, formada por dois

MOSFETs semelhante a um lado da ponte H desenvolvida neste trabalho, onde o

MOSFET superior tem canal P e o inferior tem canal N. Com isto, a resistência de

saída do gate driver é baixa, tendo um valor típico de 10 Ω e máximo de 15 Ω para

uma tensão de operação de 4,5 V a 18 V. É importante que a resistência de saída

do gate driver seja baixa para não limitar de forma inadequada a corrente de carga e

descarga dos gates dos MOSFETs e consequentemente deixando seu acionamento

lento.

Como visto na Figura 15, que apresenta a visão geral do circuito, as entradas

de controle do driver de acionamento do motor são os sinais PWM e Direção

(DIR_1). O módulo utiliza estes sinais de controle para gerar internamente o sinal

DIR_2, que é o sinal DIR_1 negado e os sinais PWM_1 e PWM_2 a partir do sinal de

PWM (Figura 16 b). Estes sinais DIR_1, DIR_2, PWM_1 e PWM_2 são que de fato

controlam o acionamento do motor através do CI TC4469, que por sua vez, gera os

sinais de gate da Figura 17. Dessa forma e de acordo com a Figura 16 a tem-se que:

Page 47: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

49

i. De um lado da ponte H, o MOSFET canal P S1 da parte superior

está sempre ativo e o MOSFET canal N S3 inferior está aberto.

Logo, este lado estará sempre com a tensão do barramento;

ii. O outro lado da ponte, os MOSFETs S2 e S4 estão sempre

alternando entre os estados: triodo e corte entre si. Logo este

lado do motor ora “enxerga” o barramento de tensão, ora o

referencial;

iii. Os sinais PWM_1 e PWM_2 tem uma defasagem, onde o

PWM_1 sempre sobe antes do PWM_2, e sempre desce depois,

ou seja, uma chave é sempre aberta antes de ativar a outra,

evitando que as duas chaves estejam ativas no mesmo instante,

pois isto provocaria um curto do barramento para o referencial, o

que consequentemente queimaria os MOSFETs;

iv. A mudança no sentido de giro é realizada invertendo os sinais

de S1 e S3 para S2 e S4, respectivamente.

a) Ponte H e Driver de Acionamento dos MOSFETs.

Page 48: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

50

b) Sinal de Direção, Sinais PWM_1 e PWM_2 com Atraso.

Figura 16 - Circuito da Ponte H e Condicionamento dos Sinais de Acionamento

O gate driver utilizado não gera internamente a defasagem t1 e t2 (Figura 17)

entre os sinais de saída PWM_1 e PWM_2, portanto foi necessário projetar o circuito

da Figura 16 b) para gerar estes sinais. Este circuito usa a constante de tempo de

carga e descarga de um capacitor para gerar os sinais PWM_1 e PWM_2 com a

defasagem. A ideia deste circuito é usar um diodo em paralelo com o resistor de um

circuito RC fazendo com que o tempo de carga do capacitor seja mais rápido que a

descarga, gerando o sinal PWM_1 e que o tempo de carga seja menor que a

descarga gerando PWM_2.

Gate de S1

Gate de S2

0

1

0

1

0

1

Gate de S3

Gate de S4

0

1

tempo

t1 t2

PWM_1

PWM_2

Figura 17 - Sinais de controle da ponte H

Page 49: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

51

Outro parâmetro que deve ser levado em consideração no projeto de uma

ponte H é a potência que o driver será capaz de fornecer à carga. O

dimensionamento dessa potência leva em consideração a capacidade de dissipação

de calor dos elementos que compõem a ponte H e o dimensionamento dos

dissipadores que podem ser utilizados para auxiliar na dissipação de calor,

aumentando a capacidade do driver em fornecer potência para a carga.

Como já citado anteriormente, os elementos mais utilizados como chaves nos

circuitos chaveados são os IGBT e o MOSFET. No que tange a dissipação de calor,

estes dois dispositivos apresentam características distintas, no MOSFET, por

exemplo, o canal fonte-dreno é tido como um canal resistivo, portanto, a perda de

potência é modela como a potência dissipada sobre um resistor: 𝑃 = 𝑅𝐼2, já no IGBT

a perda ocorre na junção PN, logo segue o modelo de 𝑃 = 𝐼𝑉𝑐𝑒 .

Uma forma prática de calcular a potência dissipada nos elementos de

chaveamento, apresentada em [29] e [37], é dividir o período de acionamento das

chaves em 4 partes de acordo com a Figura 18.

Figura 18: Sinais de corrente e tensão para o cálculo da potência dissipada nas

chaves de uma ponte H.

No primeiro estágio, que vai do tempo t0 a t1, a chave encontra-se aberta,

portanto, a corrente na chave é muito baixa sendo composta por correntes de fuga

𝑉0

t

t T

t0 t1 t2 t3 t4

Tensão

Corrente

𝐼0

𝑉1 PWM 𝐼1

Page 50: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

52

no elemento, logo a potência dissipada também é baixa. De maneira geral a

potência dissipada neste trecho pode ser desprezada.

No segundo estágio, de t1 a t2, a chave transita do estado aberto para o

estado de condução e, portanto, o componente trabalha na região ativa no caso do

IGBT e saturação no MOSFET, a corrente se eleva o que provoca uma grande perda

de potência. Idealmente o tempo de t1 a t2 são os tempos td(on) e tr presentes nos

datasheets, todavia o tempo de carga do gate pode influenciar aumentando-o. A

perda neste intervalo é descrita como:

𝑃1 =

1

2𝑇𝑉1𝐼1(𝑡2 − 𝑡1) ( 8 )

No terceiro estágio o dispositivo está saturado, no caso do IGBT ou na região

Triodo no caso do MOSFET. A perda depende da corrente de carga e da tensão 𝑉0,

de acordo com a Equação 9:

𝑃2 =

1

𝑇𝑉0𝐼1(𝑡3 − 𝑡2) ( 9 )

Onde, o intervalor de tempo entre t2 e t3 é o duty cycle do PWM.

Em elementos como o IGBT a tensão 𝑉0 é a tensão da junção PN coletor-

emissor, já no MOSFET esta tensão depende da resistência do canal dreno-fonte

𝑅𝐷𝑆𝑜𝑛 . Quanto menor a esta resistência menor a perda de potência no dispositivo. A

potência 𝑃2 é reescrita para o MOSFET da seguinte maneira:

𝑃2 =

1

𝑇𝑅𝐷𝑆𝑜𝑛 𝐼1

2(𝑡3 − 𝑡2) ( 10 )

O quarto estágio tem uma característica semelhante ao segundo, neste

estágio o dispositivo está saindo da condução para o corte e, portanto, passando

pela região ativa (IGBT) ou saturação (MOSFET) com uma corrente alta. Neste caso,

o intervalo de tempo de t3 a t4 corresponde idealmente aos tempos td(off) e tf. A

equação de perda é descrita da seguinte maneira.

𝑃3 =

1

2𝑇𝑉0𝐼1(𝑡4 − 𝑡3) ( 11 )

Page 51: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

53

A perda total de potência é descrita então pela soma das perdas em cada

estágio de acordo com:

𝑃𝑡 = 𝑃1 + 𝑃2 + 𝑃3 ( 12 )

Uma vez definido o método de cálculo das perdas de potência nas chaves que

compõem a ponte H, é realizado o cálculo para o driver desenvolvido neste trabalho.

As tabelas 1 e 2 exibem as perdas por trecho e totais em cada MOSFET, para

tensões de operação 6 V e 18 V, respectivamente. A corrente de carga foi

estabelecida como 3,5 A para operação em ambas as tensões.

O cálculo das potências leva em consideração uma situação com o motor

girando apenas para um lado, com duty cycle em 99%, o que representa perda de

potência máxima no sistema.

Observe que durante a operação um dos MOSFETs canal P (S1) que localiza-

se na parte superior da ponte está sempre ativo, portanto possui perda referente

apenas a 𝑃2 que é descrita na Equação 10. O MOSFET canal N S4 possui perda

em todas as parcelas, já S2 e S3 não apresenta perdas.

Os tempos de carga e descarga do canal N operando em 6 V foram definidos

utilizando a Tabela 9 como 43 ns. Já os valores de operação em 18 V foram

retirados do datasheet, sendo estes 30 ns para carga e 41 ns para descarga.

Tabela 1: Perda de potência nos MOSFETs da ponte H com operação em 6 V e 3,5

A de carga.

S1 (canal P) S2 (canal P) S3 (canal N) S4 (canal N)

𝑅𝐷𝑆𝑜𝑛 (Ω) 0,08 0,08 0,04 0,04

𝑃1 (W) 0 0 0,009 0

𝑃2 (W) 0,98 0 0,49 0

𝑃3 (W) 0 0 0,009 0

𝑃𝑡 (W) 0,98 0 0,508 0

Tabela 2: Perda de potência nos MOSFETs da ponte H com operação em 18 V e 3,5

A de carga.

S1 (canal P) S2 (canal P) S3 (canal N) S4 (canal N)

𝑅𝐷𝑆𝑜𝑛 Ω 0,052 0,052 0,028 0,028

𝑃1 (W) 0 0 0,019 0

𝑃2 (W) 0,64 0 0,343 0

𝑃3 (W) 0 0 0,026 0

𝑃𝑡 (W) 0,64 0 0,39 0

Page 52: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

54

Após observar as Tabela 1 e Tabela 2, conclui-se que os valores totais das

perdas em cada MOSFET reduzem um pouco com o aumento da tensão de

operação. Isto é possível pois as perdas referentes à resistência do canal 𝑅𝐷𝑆𝑜𝑛

reduzem, uma vez que este reduz com o aumento da tensão de gate.

3.1.2 Leitura da Corrente no Driver.

Outro circuito que compõem o módulo de acionamento é a leitura de corrente

do motor, que é realizada com resistor em série com a ponte H. Este resistor é

pequeno com valor de 0,1 Ω, a fim de evitar que ele limite a corrente de partida do

motor ou variação de velocidade da roda, fazendo com que o robô não seja capaz

de vencer a força de atrito, prejudicando o seu desempenho.

Uma vez que, a tensão sobre o resistor que mede a corrente é pequena, é

necessário amplificar este sinal para valores que possam ser amostrados por um

ADC. Portanto, é utilizado o amplificador de instrumentação INA826.

A Figura 19, apresenta o diagrama do circuito interno do amplificador INA826.

O ganho deste amplificador é controlador por um resistor externo 𝑅𝑔 , como exibido

na Equação 13.

𝐺 = 1 +

49,4 𝑘Ω

𝑅𝑔 ( 13 )

Ajustando-se o ganho do amplificador para 10, o sinal de saída tem a

resolução de 1 V/ 1 A .

A corrente amostrada na ponte H exibe como componentes de frequência

predominantes à frequência do PWM e suas harmônicas. A leitura de corrente do

motor visa mensurar corrente em regime permanente, ou seja, é importante apenas

a componente DC da corrente. Por isso é indispensável o projeto de um filtro para

eliminar os demais componentes de frequência presente no sinal, principalmente a

frequência de chaveamento e suas harmônicas.

Page 53: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

55

Figura 19 - Diagrama interno do amplificador de instrumentação INA826

O teorema da amostragem de Nyquist diz que a maior frequência que pode

ser observada em um processo de amostragem é a metade da frequência de

amostragem. Se o sinal a ser amostrado conter frequências maiores, estas serão

incluídas incorretamente em uma frequência dentro do espectro de interesse. A

frequência de amostragem utilizada neste projeto é 100 Hz, logo só é possível

observar sinais de até 50 Hz. Portanto foi projetado um filtro para eliminar as

frequências maiores 50 Hz do sinal antes de ser amostrado.

O ADC empregado possui 10 bits, portando a atenuação necessária na

frequência de rejeição, de acordo com a Equação 14, é 60 dB. Para não ocorrer

cortes na faixa de frequência útil, a frequência de corte foi fixada em 50 Hz e a

frequência de rejeição em 2000 Hz, que é dez vezes menor que a frequência do

PWM que se deseja atenuar.

Atenuação = 20 log 1

210 ≅ 60𝑑𝐵 ( 14 )

Page 54: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

56

A Figura 20 apresenta a resposta em frequência do filtro calculado a partir dos

parâmetros de ganho, atenuação e frequência de corte e rejeição. Foram levantados

três modelos com funções de aproximação: Butterworth, Chebshev e Cauer, todos

de 2ª ordem.

Diante das curvas de resposta em frequência levantadas, conclui-se que a

aproximação de Butterworth é a que melhor se aplica ao projeto, uma vez que

oferece a atenuação especificada na frequência de rejeição e possui um

comportamento linear do ganho na faixa de passagem.

Figura 20 - Diagrama de Bode de um filtro passa baixas, com aproximação por

Butterworth, Chebyshev e Cauer.

O filtro sintetizado é de segunda ordem, logo pode-se fazer o uso de uma

arquitetura Biquad, como por exemplo, a do circuito da Figura 21, cuja topologia é de

um filtro passa-baixas não inversor com ganho unitário. Sua função de transferência

é descrita na Equação 15.

𝐻 𝑠 =

1𝑅2𝐶1𝐶2

𝑆2 + 2

𝑅𝐶1𝑆 +

1𝑅2𝐶1𝐶2

( 15 )

Page 55: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

57

Figura 21 - Filtro passa-baixas de segunda ordem não inversor.

Uma vez defina a arquitetura do biquad, é possível utilizar o polinômio de

Butterworth de segunda ordem normalizado (Equação 16) para calcular os valores

dos resistores e capacitores que compõem o circuito. Neste caso é necessário

normalizar a função de transferência da equação 15 para uma frequência de corte

de 1 rad/s e resistor 1Ω, de acordo com a Equação 17.

𝐻 𝑠 =

1

𝑆2 + 2𝑆 + 1 ( 16 )

𝐻 𝑠 =

1𝐶1𝐶2

𝑆2 + 2𝐶1

𝑆 + 1

𝐶1𝐶2

( 17 )

Comparando-se as Equações 16 e 17, obtém-se os valores do capacitores

normalizados (Equações 18 e 19).

2

𝐶1= 2, 𝐶1 = 1,418 ( 15 )

1

𝐶1𝐶2= 1, 𝐶2 = 0,707 ( 16 )

Page 56: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

58

Uma vez levantados os valores normalizados, obtém-se os valores reais dos

capacitores utilizando a frequência de corte (50 Hz) em rad/s e o valor do resistor (22

KΩ) de acordo com as Equações 20 e 21.

𝐶1 =

1,418

𝑅 ∗𝑊𝑛, 𝐶1 = 204 𝑛𝐹 ( 17 )

𝐶2 =

0,707

𝑅 ∗𝑊𝑛, 𝐶2 = 102 𝑛𝐹 ( 18 )

A Figura 22 mostra o circuito desenvolvido para o amplificador de

instrumentação e para o filtro antialiasing.

Figura 22: Amplificador de instrumentação e filtro antialiasing.

A foto da Figura 23 apresenta o módulo de acionamento na placa final.

Page 57: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

59

Figura 23: Módulo de acionamento final.

3.2 Módulo de Sensores de Aceleração e Orientação

3.2.1 Acelerômetro

O principio da inércia afirma que: se a resultante das forças sobre um corpo é

nula, então sua velocidade é constante. A segunda lei ou princípio da dinâmica

afirma que: se a resultante das forças sobre o corpo não é nula, então ela é igual à

taxa de variação do momento linear. Considerando-se o corpo com massa constante,

a resultante da força provocará uma variação da velocidade do corpo, ou seja, uma

aceleração (Equação 22).

𝐹 = 𝑚𝑎 ( 19 )

Um acelerômetro é um dispositivo que tem como objetivo medir a variação da

velocidade de um objeto, logo a aceleração. Uma vez conhecida a aceleração e de

posse da massa do objeto, é possível obter a resultante das forças sobre o corpo em

questão.

Um dos métodos adotados na literatura e apresentado em [33] para construir

um acelerômetro é utilizar o sistema massa mola da Figura 24. Neste sistema um

Page 58: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

60

objeto de massa conhecida é acoplado a uma base através de uma mola com

constate elástica k também conhecida. De acordo com a lei de Hook apresentada na

Equação 23, a resultante das forças atuantes sobre o objeto provoca um

deslocamento ∆𝑥.

𝐹 = 𝑘∆𝑥 ( 20 )

Figura 24: Sistema massa mola. [33]

Igualando as equações de dinâmica (22) e do sistema massa mola (23),

verifica-se que a aceleração pode ser definida medindo-se o deslocamento sofrido

pelo sistema massa mola, de acordo com as Equações 24 e 25.

𝐹 = 𝑚𝑎 = 𝑘∆𝑥 ( 21 )

𝑎 =

𝑘∆𝑥

𝑚 ( 22 )

Essa topologia com sistema massa mola é utilizada em sensores comerciais

como: LIS3DSH da ST Semiconductor, MMA7361LC da Freescale Semiconductor e

ADXL345 da Analog Devices. Todos estes sensores utilizam a tecnologia de

microfabricação para desenvolver seus sensores em pastilhas de silício utilizando a

estrutura de um sistema massa mola.

A Figura 25 apresenta a estrutura interna de um acelerômetro em que é

utilizado o conceito de massa mola para mensurar a aceleração. No caso deste

Page 59: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

61

sensor, a variação ∆𝑥 é medida utilizando a variação da capacitância de dois

capacitores da seguinte forma: Uma estrutura de silício compõe a massa do sistema

massa mola, esta estrutura forma junto com o corpo do sensor um sistema de

capacitores CS1 e CS2, visualizados na Figura 25. O deslocamento ∆𝑥 provocado

pela atuação da força aplicada ao objeto é refletido nas placas dos capacitores CS1

e CS2, consequentemente ocorre a variação da capacitância de ambos os

capacitores. Como estes capacitores estão numa configuração diferencial, o

movimento das placas provoca um aumento da capacitância em um e a redução em

outro.

Figura 25: Estrutura interna de um acelerômetro que utiliza a variação de capacitores

para mensurar a aceleração. [33]

Na robótica móvel, o acelerômetro é utilizado para medir grandezas tais como

a variação da velocidade da base na partida, na mudança de direção ou de

velocidade de navegação. Outra informação importante é a inclinação do robô em

relação ao plano da terra. Isto é possível uma vez que todos os corpos estão o

tempo todo sobre a ação da força gravitacional, dessa forma o sistema massa mola

do sensor também sofre esta ação. O efeito da gravidade pode ser observado de

maneira mais clara quando o objeto encontra-se estático, sendo, portanto a saída do

sensor resultado puramente da gravidade. A Figura 26 ilustra bem o efeito da força

da gravidade em cada eixo do acelerômetro de acordo com sua inclinação.

Page 60: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

62

Figura 26: Influência da gravidade nas saídas do acelerômetro de acordo com a

inclinação [34]

Uma análise importante a ser realizada a respeito da medida da aceleração é

a banda de frequência que o sensor suporta mensurar. A análise realizada até então

levou em consideração um sistema com aceleração estática, mas existem casos

como a vibração, por exemplo, em que a aceleração apresenta uma característica

dinâmica. Neste caso a equação do sistema massa mola é descrito com um sistema

de segundo grau de acordo com a Equação 26.

𝐹 = 𝑚𝑎 = 𝑚𝑥 + 𝑏𝑥 + 𝑘𝑥 ( 23 )

Utilizando Laplace a função de transferência do deslocamento pela

aceleração é descrita pela Equação 27.

𝑋 𝑠

𝑎(𝑠)=

1

𝑠2 + 𝑏𝑚 𝑠 +

𝑘𝑚

( 24 )

𝑤0 = 𝑘

𝑚 ( 25 )

Como apresentado pela função de transferência, o sistema se caracteriza

como um sistema de segunda ordem “passa baixa” cuja frequência natural 𝑤0

(Equação 28) depende dos fatores construtivos do sensor: 𝑘 que é a constante

elástica da mola, b que é a constante de amortecimento e 𝑚 que é a massa. A

Page 61: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

63

Figura 27 mostra o diagrama de bode do sensor, com ele observa-se que o sensor

deve ser utilizado com acelerações cuja frequência seja menor que a frequência

natura do sistema.

Figura 27: Resposta em frequência do acelerômetro. [36]

Neste projeto foi utilizado o sensor MMA7361L, Figura 28. Sua interface

analógica possui sensibilidade selecionável entre 800 mV/g e 206 mV/g, cuja

configuração é feita através de um pino digital. Outros pinos digitais de controle

permitem: colocar o sensor em estado de baixo consumo; verificar o funcionamento

do sensor e realizar detecção de zero. Neste caso o pino fica em estado alto e muda

seu estado para baixo quando os três eixos assumem o valor de 0 g, dessa forma,

este pino pode ser usado na interrupção de um microcontrolador.

Page 62: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

64

Figura 28: Acelerômetro MMA7361L.

3.2.2 Velocidade de Rotação

A tecnologia de microfabricação viabilizou além do desenvolvimento de

sensores de aceleração compactos, a fabricação de sensores que medem a

velocidade angular, também chamados de giroscópio. Estes sensores utilizam o

efeito Coriolis para medir a velocidade de rotação de um corpo em relação a um

referencial fixo.

Imagine um sistema composto por uma circunferência no plano (x,y) com o

eixo z perpendicular ao plano do papel, como ilustrado na Figura 29. Este sistema

apresenta uma rotação no eixo z com uma velocidade angular Ω, portanto um ponto

“p” qualquer perto do centro apresenta uma velocidade Vy tangencial ao raio,

proporcional a velocidade angular e a sua distância do centro da circunferência, logo

Vy = Ωr. Se o mesmo ponto “p” for deslocado para longe do centro e para perto das

bordas, a sua velocidade angular Ω permanecerá a mesma, todavia sua velocidade

tangencial aumentará com o aumento da distância r do centro. A velocidade da

variação de r (Vx) pela velocidade angular é a aceleração de Coriolis e é descrita

pela Equação 29.

𝑎𝑐𝑜𝑟𝑖𝑜𝑙𝑖𝑠 = 2(Ω x Vx) ( 26 )

Page 63: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

65

Boa parte dos sensores de velocidade angular microfabricados de mercado,

como a linha ADXRS da Analog Device e IDG da Inven Sense, utilizam o efeito

Coriolis para mensurar a velocidade de rotação. Estes elementos possuem sua

estrutura interna constituída por um sistema duplo massa mola semelhante ao

apresentado na Figura 30. Neste sistema uma massa é colocada em permanente

oscilação no eixo X com uma velocidade Vx constante, como o movimento do ponto

p descrito na Figura 29. Esta oscilação é geralmente obtida utilizando-se força

eletrostática ou eletromagnética. Devido ao efeito Coriolis, a ação de uma velocidade

de rotação Ω provocará o surgimento de uma força aparente perpendicular ao

movimento de oscilação da massa de prova, cujo valor varia de acordo com a

oscilação da massa de prova, logo surgirá uma segunda oscilação perpendicular ao

eixo X, que por sua vez, provocará a variação das distâncias das placas dos

capacitores da estrutura interna do sensor.

r

Vy

Ω x

y

p

Figura 29: Efeito Coriolis.

Vx

Page 64: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

66

Figura 30: Sistema de massa vibrante [38]

Simplificadamente a relação entre a capacitância medida e a velocidade de

rotação do sistema é descrita de acordo com as Equações 30 e 31, que igualam a

força de Coriolis a Lei de Hook evidenciado o deslocamento provocado pela força de

Coriolis em função da velocidade de rotação.

𝐹𝐶𝑜𝑟𝑖𝑜𝑙𝑖𝑠 = 𝐹𝐸𝑙𝑎𝑠𝑡𝑖𝑐𝑎 ( 27 )

Δ𝑦 =

−2𝑚Ω𝑣

𝑘 ( 28 )

O sensor IDG500 que foi utilizado no projeto é constituído por dois sistemas

de vibração independentes que mensuram portanto a rotação em dois eixos

ortogonais entre si. O sensor disponibiliza para ambos os eixos duas saídas

analógicas com diferentes sensibilidades de medição, 2 mV/º/s e 9,1 mV/º/s.

Portanto, é possível aferir valores máximos de 110 º/s e 500 º/s de acordo com a

sensibilidade de cada saída do sensor.

Page 65: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

67

Figura 31: Giroscópio IDG500

Apesar do sensor disponibilizar dois deixo de medição neste projeto apenas

eixo é um utilizado, visto que a base só apresenta movimento de rotação em um eixo.

3.2.3 Sensor de orientação

A orientação do robô a um determinado referencial é uma informação

importante utilizada na navegação do dispositivo pelo ambiente. Esta orientação

pode ser fornecida utilizando sistemas sofisticados com visão computacional ou

sistemas mais simples como a orientação por bússola através do campo magnético

terrestre. Neste caso, os tipos mais comuns de sensores são: Fluxo de gate, efeito

hall, magneto indutivo e magneto resistivos.

O sensor fluxo de gate é formado por uma estrutura de bobinas compondo um

transformador com um núcleo constituído por uma liga sensível ao campo magnético,

como o permaloy (Ni - Fe). A bobina primaria é excitada com tensão AC, o campo

magnético terrestre atua sobre o núcleo fazendo com que a corrente no secundário

varie de acordo com o ângulo de incidência do campo.

Este tipo de sensor apresenta alta sensibilidade, sendo capaz detectar campo

na ordem de 1 miligauss. Por este motivo, este tipo de sensor é utilizado em

aplicações militares como sistemas de posicionamento geográfico e detecção de

submarinos. Na área comercial este tipo de sensor é utilizado para mapeamento do

solo para localização de minérios e hidrocarbonetos [39]. No entanto, de acordo com

Page 66: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

68

[40], o tempo de resposta leva de 2s a 3s, o que o torna lento para aplicações de

navegação que necessitem de resposta mais imediata, como na robótica móvel.

Uma opção de sensor que apresenta uma resposta mais rápida, podendo

chegar a 1 us é o sensor baseado no princípio magneto resistivo, cuja estrutura é

constituída por uma fina camada de permaloy depositada sobre uma estrutura de

silício. Durante o processo de deposição do permaloy sobre o silício, o dispositivo é

exposto a um forte campo magnético que orienta a estrutura do permaloy, dessa

forma, ao ser exposto a um campo magnético com um ângulo diferente, sua

resistência varia. Este tipo de sensor pode apresentar sensibilidade na ordem de até

0.1 miligauss, podendo detectar campos a uma distância maior que os sensores

baseados em efeito hall, por exemplo.

O princípio magneto resistivo é utilizado por fabricantes como a NXP para

fabricar seus sensores comerciais, neste caso o KMZ51 e KMZ52, onde o primeiro é

composto por um único sensor, já o segundo é composto por dois sensores

dispostos de maneira perpendicular entre si dentro do mesmo encapsulamento. O

uso de dois sensores é condição essencial para mensurar o ângulo azimutal (α)

indicado na Figura 32, que representa o ângulo entre o norte magnético e a

orientação do corpo sobre a superfície terrestre. Esta configuração de dois sensores

dispostos em 90º é utilizado para mensurar as componentes Hey e Hex. A Equação

32 calcula o ângulo azimutal utilizando tais componentes.

𝛼 = arctan

𝐻𝑒𝑦

𝐻𝑒𝑥 ( 29 )

Page 67: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

69

Figura 32: Composição das linha de campo terrestre [41]

O módulo utilizando neste trabalho foi o CMP03, este módulo comercial é

uma bússola digital que utiliza o sensor KMZ51 ou o KMZ52 em sua versão mais

recente. Além do sensor magnético, este dispositivo é constituído por um

microcontrolador da família 18F da microchip. Este por sua vez, tem como propósito

promover o devido condicionamento e leitura do sinal do sensor, realizando a

correção do ângulo lido referente ao norte magnético para o norte geográfico, visto

que ambos não coincidem, apresentando uma diferença de aproximadamente 11,5 º.

Esta diferença entre o norte geográfico e o norte magnético não é fixo, portanto este

sensor necessita ser calibrado de tempos em tempos de acordo com este ângulo.

A Figura 33 apresenta o módulo CMP03 e seus pinos de interface. Este

dispositivo deve ser alimentado com 5 V e disponibiliza duas interfaces de

comunicação, uma através de uma porta de comunicação serial I2C e outra

utilizando a largura de pulso de um sinal de PWM com resolução de 100 us/º. A

Page 68: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

70

largura mínima do pulso que representa 0º é 1 ms, portanto a largura máxima é

36,99 ms.

Figura 33: Módulo CMP03 [41]

A leitura do ângulo fornecido por este módulo está sendo realizado através da

identificação da largura do pulso. O algoritmo utilizado para medi-lo é descrito na

seção 3.3.

A Figura 34 apresenta o módulo de sensores com os três sensores que o

compõem: O acelerômetro, o giroscópio e a bussola digital.

Figura 34: Módulo de sensores.

Page 69: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

71

3.3 Microcontrolador e Firmware

O controle dos módulos de acionamento e leitura dos sensores é realizado

pelo módulo de processamento. Este módulo contém um microcontrolador PIC32 da

Microchip, que pertence a uma família de microcontroladores de 32 bits, cujo poder

de processamento se equipara aos processadores DSPs.

Em termos de processamento, suas principais características são:

1,56 DMIPS/MHZ;

Frequência de operação até 80 MHz;

Latência zero para acesso a flash;

512 K de memória Flash e 128 K de RAM;

Multiplicação de ponto fixo em um ciclo de instrução.

Os requisitos dos periféricos estão mapeados de acordo com as interfaces de

comunicação com os módulos descritos na Tabela 3, sendo, portanto descritos da

seguinte maneira:

Três saídas de PWM para controle de velocidade;

Três saídas digitais para controle de direção;

Quatro entradas de interrupção, sendo três para a leitura de

velocidade dos motores e uma para a leitura de orientação do

compasso digital;

Três entradas digitais para leitura da direção de giro dos motores;

Sete entradas analógicas, sendo: três para leitura de corrente, duas

para aceleração, uma para velocidade angular e uma para nível de

bateria;

Uma porta UART para comunicação com o servidor.

Page 70: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

72

Tabela 3: Interfaces de comunicação com os módulos.

Módulos Nº por base Interfaces Periférico

Driver de acionamento 3 Controle do motor 1 - PWM

1 - Saída Digital

Sensor de velocidade 1 - Entrada de Interrupção

1 - Entrada Digital

Sensor de corrente 1 - Entrada analógica (ADC)

Módulo de sensores 1 Acelerômetro (x,y) 2 - Entradas analógicas (ADC)

Giroscópio (y) 1 - Entrada analógica (ADC)

Compasso digital 1 - Entrada de Interrupção

Distribuidora de energia

e interconexões

1 Nível da bateria 1 - Entrada analógica (ADC)

Comunicação sem fio 1 Comunicação serial 1 – UART

O Firmware embarcado no microcontrolador atende aos seguintes requisitos:

Realiza a leitura dos sensores de corrente, aceleração e velocidade

angular a cada 10 ms;

Envia as leituras para o sistema supervisório a cada 50 ms;

Permitir a seleção da forma de atuação sobre as rodas. Que pode

ser em malha aberta ou em malha fechada;

A malha de controle tem tempo de amostragem de 10 ms;

O firmware monitora a corrente de cada ponte e atua em caso de

“sobre corrente”, servindo como proteção ao circuito;

Controle sobre a tensão dos motores em malha aberta.

A Figura 35 descreve o diagrama macro do firmware desenvolvido. Quando o

sistema é ligado são realizadas as configurações dos periféricos e após a

Page 71: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

73

inicialização, o firmware entra em um loop infinito, onde realiza tarefas cíclicas a

cada 10 ms, como por exemplo: leitura dos sensores; tratamento dos pacotes

recepcionados pela porta de comunicação e controle dos motores.

O envio dos dados para o sistema supervisório deve ser realizado em uma

taxa fixa com uma frequência mínima de 20 Hz.

Inicio

Configura periféricos

Liga interrupções

50 ms?

10 ms?

N

Realiza leitura de: Corrente;Aceleração;Posição angular;

While(1)?

Há pacotes recepcionados?

Trata pacotesS

Envia Leituras dos sensores

S

S

N

Filtra os sinais amostrados dos

diversos sensores

Controlador Acionado?

Atua sobre os motores

S

Figura 35: Diagrama geral do firmware.

No próximo tópico serão detalhados os algoritmos de leitura dos sensores,

onde estão descritas as configurações em hardware necessárias.

Page 72: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

74

3.3.1 Leitura da Velocidade dos Motores

Como apresentado na seção 3.1, o módulo de acionamento do motor

disponibiliza uma interface para conectar um encoder. Este sensor permitir que o

microcontrolador obtenha informações de velocidade e sentido de giro do motor.

Independente do princípio físico do sensor que compõem o encoder, sua

saída é um sinal quadrado cujo período varia de acordo com a velocidade do eixo ao

qual o encoder encontra-se acoplado. É comum que os encoders disponibilizem uma

segunda saída em quadratura com a primeira, permitindo que seja identificado o

sentido de giro do eixo como, por exemplo, os sinais A e B da Figura 36, que são

sinais típicos de saída de um encoder.

Tomando-se o sinal B como referência, nota-se que no diagrama superior no

instante da borda de subida do sinal B o sinal A está em nível alto, já no diagrama

inferior, na mesma borda de subida do sinal B o sinal A está em nível baixo. Portanto,

identifica-se o sentido de giro analisando a polaridade do sinal A em relação ao sinal

B.

Figura 36: Sinais de um encoder com saída em quadratura (Fonte http://www.qsl.net

– Acessado, 20 de junho de 2014).

Como já citado, o período do sinal do encoder varia de acordo com a

velocidade do eixo ao qual ele encontra-se acoplado. Portanto, para medir a

Page 73: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

75

velocidade do motor é preciso medir o intervalo de tempo entre dois pulsos seguidos

ou contar quantos pulsos ocorreu dentro de um determinado período. Ambas as

opções podem ser realizadas utilizando uma entrada de interrupção para detectar os

pulsos do encoder.

Figura 37: Métodos de medição da velocidade utilizando o sinal do encoder.

O método que mede o número de pulsos do encoder é realizado utilizando-se

um timer com referência. O objetivo é contar o número de pulsos do encoder usando

a entrada de interrupção, dentro de um período do timer de referência, como no

diagrama da Figura 37 a). Neste caso, o cálculo da velocidade em rpm é:

𝑉 =

𝑁𝑒 ∗ 𝐹𝑡𝑁

∗ 60 ( 30 )

Sendo,

𝑁𝑒: Número de pulsos do encoder;

𝐹𝑡 : Frequência do timer;

𝑁: Número de pulsos do encoder para uma volta da roda.

Este método faz com que as velocidades maiores tenham melhor resolução,

uma vez que haverá maior número de pulsos num período do timer de referência.

Devido a esta perda de resolução existe um limite para se medir as frequências

menores, visto que para obter-se um erro menor que 10 %, a menor velocidade tem

que gerar pulsos a uma frequência pelo menos 10 vezes maior que a frequência do

a)

b)

Page 74: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

76

período timer. Contudo, este método tem a vantagem de utilizar apenas um timer

para ler a velocidade das três rodas, uma vez que o mesmo apenas marca o período

de referência.

A segunda forma de ler a velocidade é medir o período entre os pulsos do

encoder, isto é, conta-se o número de pulsos de um timer entre dois pulsos do

encoder, de acordo com o diagrama apresentado na Figura 37 b). A velocidade é

calculada de acordo com a equação:

𝑉 =

𝐹𝑡𝑇𝑀𝑅 ∗ 𝑁

∗ 60 ( 31 )

Onde TMR é o contador do timer.

Esta forma de ler a frequência exige que seja disponibilizado um timer por

motor, o que é uma desvantagem em relação ao primeiro método, mas tem uma

resolução melhor quanto menor a velocidade da roda.

Diante das características de cada método, optou-se por medir a velocidade

por “período” do encoder, visto que este método garante uma boa resolução para

as baixas frequências de rotação e permite que a informação da direção seja

realizada a cada pulso do encoder juntamente com a velocidade. Para tanto, três

timers foram configurados para utilizarem o clock em 80 MHz, como um pré-escaler

de 256, assim a frequência dos timers para leitura dos motores é 312500 Hz.

A exatidão da leitura maior que 1 % é garantida para que velocidades que

gerem um sinal de frequência de até 3,125 KHz.

O registrador de contagem do timer TMR foi configurado com o valor 0xFFFF,

isto resulta em um tempo de estouro de 0,2097 s. Dessa maneira, é possível ler

sinais com frequência acima de 4,7 Hz.

3.3.2 Orientação da Plataforma

O Compasso digital fornece a informação de ângulo através de uma saída de

PWM, cuja largura do pulso indica o ângulo. A largura de pulso mínima 1 ms indica

Page 75: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

77

0 °, 36,99 ms indica 359,9°, logo ângulo é aferido medindo-se a largura de pulso do

PWM utilizando-se uma entrada de interrupção.

A leitura de velocidade dos encoders é realizada contando-se as bordas de

subida ou descida, já o compasso é necessário mudar a borda de detecção de

interrupção uma vez que se deseja ler o tempo ativo do sinal e não o período. Como

o sinal possui período fixo de 36,99 ms, a leitura de posição só terá garantia de ter

sido atualizada dentro do loop maior de 50 ms.

A medida da duração do pulso do compasso é realizada usando o timer 1.

Este timer também é utilizado pelo firmware para gerar os tempos de amostragem

para leitura dos sensores de corrente, aceleração e velocidade angular em períodos

de 10 ms. Como o período do pulso da bússola pode chegar a 36,99 ms, pode haver

ocorrência de estouro do timer, então é utilizado uma variável chamada

“ContBussola”, para auxiliar na medição do pulso. O diagrama contido na Figura 38

detalha como é realizado o tratamento da leitura do pulso.

Page 76: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

78

Ocorrência de uma borda

de subida

Muda a interrupção para

detectar borda de descida;

Zera contador de estouro do

timer;

Amazena valor do contador

do timer

Loop Principal

Interrupção de

estouro do timer

Incrementa contador de estouro;

Interrupção por

borda de descida

Muda a interrupção para

detectar borda de subida;

Amazena valor do contador

do timer

Contador

Final> Inicial Sim Não

(Periodo do timer) *(Contador de

estouros - 1) + Inicial - Final

(Periodo do timer) *(Contador de

estouros ) + Final - Inicial

Loop Principal

Figura 38: Diagrama do algoritmo de leitura do ângulo

Page 77: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

79

3.4 Comunicação com o Supervisório

Zigbee é um protocolo aberto baseado no modelo OSI, cujas duas primeiras

camadas, física e de acesso, são especificadas pela norma IEEE 802.15.4. As

demais camadas são definidas pela Zigbee Alliance.

O Zigbee pertence à classe das WPANs (Wireless Personal Area Network),

com operação na faixa de 2.4GHz ou 915 MHz, possuindo de 14 a 16 canais,

dependendo do modelo. Assim como os dispositivos WPANs, um módulo Zigbee

deve permitir a comunicação com outro modulo Zigbee, independente do fabricante.

O protocolo Zigbee define três dispositivos na rede:

Coordenador: Tem a função de montar e gerenciar a rede

Zigbee, realizando ações como seleção do PAN ID e o canal de

operação, além de inserir outros dispositivos atribuindo-lhes um

endereço de rede e roteamento de pacotes;

Router: É um dispositivo secundário na rede, cuja função

principal é rotear pacotes, mas que com exceção da montagem

da rede, pode realizar as tarefas do coordenador, dando

autorização para que um novo dispositivo entre na rede, entre

outras funções;

End Device: Tem funções limitadas, não pode rotear pacotes

nem permitir que novos dispositivos ingressem na rede. Sua

função é ser um dispositivo final, como um sensor ou atuador.

A rede pode assumir três topologias, Figura 39:

i. Estrela, onde todos os dispositivos comunicam-se com o coordenador;

ii. Árvore, que tem uma versatilidade maior que a estrela, sendo ideal

para aplicações que se deseja aumentar o alcance da rede;

iii. Mesh, este tipo de rede é caracterizada por uma capacidade de se

reorganizar de forma automática, onde os dispositivos podem trocar

dados entre si sem a necessidade da participação do coordenador.

Page 78: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

80

Alguns conceitos importantes da configuração da rede são:

PAN ID: É o endereço da rede, seu valor é gerado pelo coordenador da

rede e é configurado pelo campo ID. Se o coordenador tiver seu ID

configurado com valor zero, ele escolherá um PAN ID qualquer, caso

seja configurado com um valor diferente de zero, ele irá utilizar o valor

determinado pelo campo ID. Os demais dispositivos, como routers e

end devices, irão ingressar na rede cujo valor do PAN ID estiver sendo

indicado no campo ID. Se este valor estiver igual à zero, isto significa

que ele pode entrar em qualquer rede;

Canais: O Zigbee opera na faixa de 2.4 GHz no Brasil e Estados

Unidos e 915 MHz na Europa e Japão. Além disso, dentro da

frequência de operação ele pode operar em até 16 canais diferentes,

que assim como o PAN ID pode ser configurado, ou deixado livre para

o coordenador escolher de acordo com as condições do ambiente. Este

parâmetro é configurado pelo campo SC. Se SC for configurado com

FFFF o dispositivo irá utilizar o canal que melhor lhe convier;

Endereço de 64 bits: Todo dispositivo Zigbee vem com um endereço de

64 bits de fábrica. Este valor é imutável e único no mundo;

Coordenador Router End Device

Estrela Árvore Mesh

Figura 40: Topologias de Rede Zigbee. Figura 39: Topologias de rede zigbee.

Page 79: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

81

Endereço de 16 bits: Este é o endereço do dispositivo na rede. Seu

valor vai de 0000 a FFFF, logo pode haver até mais de 65mil

dispositivos na rede. Este endereço é normalmente gerado pelo

coordenador, mas na topologia Mesh, pode ser gerado por um router se

o coordenador estiver ausente;

Segurança: O zigbee permite que seja habilitada a criptografia AES 128,

dessa forma impede-se dispositivos espiões ingressem na rede ou

vejam o que está sendo transmitido na mesma;

Tempo de ingresso: O tempo em que a rede está aberta a entrada de

novos dispositivos também pode ser configurado. Neste caso, o campo

NJ determina este tempo. Ao término teste tempo, nenhum outro

dispositivo novo poderá ingressar na rede. Se desejar reativar o tempo

de ingresso, pode-se enviar um comando a algum dispositivo da rede

via software ou hardware.

3.4.1 Módulo Xbee

O módulo Zigbee da empresa Digi é referência quando se fala de tecnologia

Zigbee. Este módulo se popularizou graças a sua interface acessível, que permite

sua utilização com o mínimo de programação. Possuem comunicação via interface

UART, com conexões mínimas dos pinos de transmissão e recepção. O controle de

fluxo por RTS e CTS podem ser deixando-os em aberto.

O módulo funciona de duas formas:

Modo Transparente: Todo dado disponibilizado em seu pino RX é

transmitido pelo canal sem fio para o destinatário pré-configurado e

todo dado recepcionado pelo canal sem fio é disponibilizado no pino TX

para o Host. Este modo de funcionamento é mais prático, visto que o

Zigbee passa a ser um conversor UART/Wireless. Contudo, o seu uso

não é recomendado para aplicações em que se deseja comunicar com

dispositivos com endereços diferentes, quando deseja-se obter

Page 80: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

82

respostas da rede, como ACKs ou mesmo no envio de configurações.

Para tanto é recomendado o modo API;

Modo API: Toda a comunicação com o Zigbee pela UART está

encapsulada em um frame (Figura 41). Este modo permite realizar um

controle da rede, com indicações de respostas de envio, controle de

endereço e configuração remota. A Tabela 4 apresenta as principais

vantagens dos dois modos.

Numa rede Zigbee o coordenador é responsável por selecionar o canal, o

PAN ID, a política de segurança e o protocolo. O coordenador é o único elemento

que pode iniciar uma rede. Depois de iniciada a rede, outros dispositivos podem ser

ingressos na rede. Quando o coordenador é inicializado, primeiro ele faz uma

varredura em todos os canais, verificando se existe alguma rede ativa em seu PAN

ID. Depois da varredura, o coordenador lista os canais mais favoráveis para que a

rede se estabeleça.

Já o router varre a rede, canal por canal, até que encontre um PAN ID ao qual

esteja habilitado para ele entrar. Caso todos os canais sejam verificados, e o router

não encontre um PAN ID válido, ele volta a varrer todos os canais. Após ingressar

na rede, o router será capaz de dar permissão para outro dispositivo entrar na rede.

As principais configurações que devem ser observadas para que uma rede

seja configurada são listadas na Tabela 10 do Anexo II.

Page 81: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

83

Tabela 4: Comparação entre modo transparente e API.

Modo Transparente

Interface Simples

Todo dado recebido pela porta serial é transmitido

Suporte

Configurações via comando AT de forma direta.

Modo API

Gerenciamento de

dados transmitidos

para múltiplos

destinos

Transmitem dados para múltiplos destinos sem requerer configuração previa do destinatário. Isto se deve ao fato de que o endereço do destinatário já está contido no frame API enviado ao Zigbee.

Recebimento de

dados com

identificação do

destinatário

Os dados recebidos têm campo de identificação do tipo de dado e quem é o remetente

Diagnóstico da rede

avançado

Os frames recebidos podem prover informações das portas de interface do módulo remoto, sem a necessidade de um host junto ao dispositivo remoto. Além disso, possui campo de indicação de respostas ao envio de dados, com indicação se o dado foi enviado, se o zigbee foi encontrado, ACK de resposta, se o dado recepcionado é um broadcast, se está criptografado, entre outros.

Configuração remota

Além das configurações locais do Zigbee, o modo API permite configurar um dispositivo Zigbee remotamente.

A comunicação do host com o zigbee no modo API ocorre através de Frames,

cuja estrutura é apresenta na Figura 41. O frame é formado pelos campos: Star

Delimiter, length, Frame data e por último o checksum.

Os campos Star Delimiter, Length e Checkum são padrões e independem do

dado trafegado. Já o campo Frame data depende do tipo de dado. Este campo é

composto por um campo de identificação do tipo de dado, é este dado que define os

demais campos contidos no campo Frame data.

A Tabela 11 do Anexo III contém os valores validos do campo API

apresentados de acordo com sua funcionalidade.

Page 82: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

84

Figura 41: Estrutura do frame de comunicação com o Zigbee.[44]

3.4.2 Comunicação com o Microcontrolador

A comunicação com o sistema supervisório utiliza o Zigbee como módulo de

comunicação sem fio. Para ter uma garantia de integridade do pacote é importante

que a comunicação com o Zigbee ocorra utilizando o modo de comunicação API,

pois neste modo a comunicação com o dispositivo se dá por meio de um frame, que

além dos campos de cabeçalho têm um campo de verificação de erro através de um

checksum.

A comunicação do microcontrolador com o Zigbee ocorre pela porta UART 3,

com uma taxa de transmissão de 115200 bps e 1 stop bit. A recepção dos dados é

realizada através da interrupção da porta serial, que ocorre byte a byte. Depois da

recepção de todo o pacote, o firmware faz a averiguação do checksum do pacote e

estando correto, armazena o pacote recebido na pilha de tratamento.

O digrama da Figura 42 apresenta de forma detalhada o tratamento do dado

na recepção.

Page 83: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

85

Recepção de um byte

Estado da recepção

Estado = 0

Lê o byte recepcionado

Byte= 0x7E

Liga timer outEstado := 1

Estado = 1

Lê o byte recepcionado

Armazena byte recepcionado.

Estado := 2

Estado = 2

Lê o byte recepcionado

Armazena byte.Pega o tamanho

do Frame.Estado := 3

Estado = 3

Lê o byte recepcionado

Armazena byte.

Numero de bytes recebidos = tamanho do

frame?

Desliga timer outS

Abre secção critica

Armazena frame na pilha.Seta pacote recebido

completoFecha secção critica

Fim

Desliga timer out.Estado := 0

N

Figura 42 - Diagrama de recepção dos dados na porta serial.

A comunicação possui os seguintes comandos:

0x01 – Envio das leituras dos sensores. As leituras são envidadas a

cada 50 ms, sem a necessidade de serem solicitadas;

0x02 – Atuação sobre a tensão dos motores através dos PWM;

0x03 – Configuração dos paramentos do controlador;

0x04 – Envio das referências de velocidades para cada motor;

0x05 - Parar de enviar dados das leituras.

Page 84: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

86

A idéia é manter o padrão do protocolo de comandos AT do Zigbee, isto é,

todo comando tem um campo para dados. Quando o campo de dados for enviado

sem estar preenchido, o dispositivo final entende que é uma solicitação de leitura

daquele dado. Se o campo de dado vier preenchido e for um comando de

configuração, o dispositivo final utiliza o valor do campo para configurar o parâmetro.

O transmissor envia um dado pelo zigbee com o campo API Identifier 0x10, já o

receptor recebe o pacote de dados transmitido com o campo API Identifier 0x90

como indicado na Tabelas 12 e 13 dos Anexos IV e V, respectivamente. Caso o

dado recepcionado for uma solicitação de leitura de configuração, o sensor deve

responder com o dado solicitado.

A resposta é enviada mais especificamente no campo RF Data, que por sua

vez é subdividido nos campos Command e Data. O campo Command é preenchido

com o comando que gerou a requisição no sensor. O campo Data contém os dados

requisitados, seu tamanho depende do dado requisitado.

Os Anexos de VI a IX apresentam de forma detalhada o formato do frames

utilizados na comunicação do robô com o supervisório.

A placa final contendo o microcontrolador e os módulos zigbees são

apresentados na Figura 43.

a) Módulo microcontrolado. b) Módulo zigbee/USB e Zigbee.

Figura 43: Placas com microcontrolador e zigbee.

Page 85: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

87

4. Resultados

Os testes da plataforma foram realizados utilizando a estrutura de um robô

omnidirecional de três rodas utilizado em [15] e [16] e apresentada na Figura 44 a).

Esta estrutura possui um chassi de fibra de vidro composto por duas partes: uma

parte inferior para acomodação dos motores e outra superior que prende os motores

na primeira. Os motores são distribuídos formando um ângulo de 120º entre eles

equilibrando o peso na base e fazendo com que o centro de massa fique localizado

no centro da base.

Os motores utilizados são motores DC AMax-22 da empresa Maxon de

acordo com a Figura 44 c). Suas principais características são: tensão nominal de 6

V, corrente nominal 0,84 A, velocidade angular de até 16000 rpm e torque de 0,0491

kg-cm. Estes motores possuem ainda uma caixa de redução em seu eixo com

relação 19:1, esta redução aumenta seu torque e possibilita trabalho com baixas

rotações. Também faz parte do motor um encoder magnético com duas saídas em

quadratura, que permite aferir a velocidade e direção de rotação do motor. Este

encoder fornece 16 pulsos por rotação do motor, ou 304 pulsos por rotação do eixo

da caixa de redução ao qual será acoplado à roda.

As rodas utilizadas são do tipo omnidirecional, constituídas por anéis

distribuídos por sua área de contato, como demonstrado na Figura 44 b). Estes

anéis reduzem o atrito perpendicular à roda o que a torna omnidirecional. Este

modelo de roda adotado possui um diâmetro de 10,5 cm, que é maior que as rodas

do Axebot, cujo diâmetro é 7 cm. Com isto lhe é conferido maior torque em terrenos

como carpetes e grama.

A Figura 45 apresenta o resultado final da eletrônica montada na base

robótica.

Page 86: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

88

a) Estrutura da plataforma com as rodas e motores.

b) Modelo de roda utilizada.

c) Motor.

Figura 44: Peças utilizadas para testar a plataforma desenvolvida.

Page 87: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

89

Figura 45: Plataforma desenvolvida junto com a base.

Além da plataforma robótica montada foi concebido o software supervisório da

Figura 46 para realizar os testes no hardware, firmware e no protocolo de

comunicação da rede zigbee utilizada. Este software foi desenvolvido em linguagem

pascal utilizando a plataforma Lazarus, que é uma plataforma aberta.

O uso do software permite:

Visualização em tempo real das variáveis aferidas pela base em uma

interface gráfica;

Salvar os dados obtidos em um arquivo de texto CSV para serem

tratados a posteriori em softwares como MATLAB;

Gerar e visualizar os frames utilizados na comunicação com a base;

Controlar os acionadores atuando diretamente sobre a tensão sobre os

motores;

Controlar os motores utilizando os controles PID embarcados;

Page 88: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

90

Configurar os ganhos Kp, Ki e Kd dos controladores;

Gerar trajetórias a serem executadas pelo robô.

Figura 46: IHM de testes.

Page 89: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

91

4.1 Driver

Os testes com o módulo de acionamento dos motores visa avaliar o circuito

em ponte H desenvolvido, a leitura de corrente e o algoritmo de leitura de velocidade

adotado.

Após a montagem da base de teste foram analisados os sinais de

acionamento utilizados para controlar a ponte H. O robô foi colocado sobre uma

estrutura elevando-o de forma a possibilitar que sua roda fica-se livre e seja

acionada sem carga. O barramento de alimentação foi conectado a uma bateria com

tensão 7,8 V e o duty cycle do PWM foi fixado em 16%, o que corresponde a

aproximadamente 1,25 V sobre o motor. Com o auxílio de um osciloscópio foram

analisados os sinais no módulo de acordo com a Figura 47.

Condicionamento

de sinal

Gate

DriverPonte H

PWM

PWM_1

PWM_2Gate P

Gate N SaidaMotor

Figura 47: Sinais gerados no módulo.

Primeiramente foi avaliado o sinal de saída da ponte H sem o circuito que gera

os atrasos entre os sinais PWM_1 e PWM_2 e em seguida com a inclusão deste

circuito. A Figura 48 a) apresenta o sinal sem o circuito de atraso, o dado em

vermelho é o sinal na saída da ponte, o azul é o PWM na entrada do módulo. Já

Figura 48 b) apresenta o sinal na saída da ponte com o circuito de atraso incluso.

Observando os sinais da Figura 48 verifica-se que quando não é gerado o

atraso para acionar os MOSFETs os picos de tensão na transição do sinal são

maiores do que quando utiliza-se o circuito de atraso.

A análise dos sinais PWM_1 e PWM_2 e seu efeito no acionamento dos

MOSFETs é feita utilizando a Figura 49, onde é visto que o sinal PWM_1 sobe antes

que o sinal PWM_2, consequentemente o sinal que desativa o MOSFET canal P

sobe antes no sinal que ativa o canal N. A análise na descida dos sinais apresenta

que o sinal PMW_2 desce antes do PWM_1, portanto o MOSFET canal N é

desativado antes que o MOSFET P seja ativado.

Page 90: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

92

a) Sem atraso. b) Com atraso.

Figura 48: Saída da Ponte H.

Figura 49: Sinais com atraso e após o gate driver.

O benefício adquirido pelo circuito de atraso é visto no sinal de corrente das

Figura 50 a) e b). Observa-se que os picos de corrente na transição do acionamento

das chaves são maiores no circuito sem o condicionamento de atraso. O pico de

corrente no circuito com o atraso é dez vezes menor que o pico de corrente para o

módulo sem o devido condicionamento.

Page 91: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

93

A resistência série, sobre a qual mede-se a corrente, é 0,1 Ω. Os gráficos

mostram que o pico de corrente sem o condicionamento é aproximadamente 20 A, e

com o circuito apropriado, seu valor é 2 A.

a) Circuito sem condicionamento dos sinais PWM_1 e PWM_2

b) Circuito com condicionamento dos sinais PWM_1 e PWM_2

Figura 50: Corrente sobre o resistor serie com a ponte H.

Page 92: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

94

Outro teste realizado com o intuito de avaliar a plataforma é a leitura da

velocidade das rodas. Este experimento também foi realizado com a base erguida,

com as rodas livres, porém devido ao desbalanceamento provocado pela roda, esta

foi retirada do eixo do motor, portanto a velocidade foi mensurada com o motor sem

carga.

Com o auxílio do software supervisório foram aplicadas 5 tensões diferentes

sobre o motor utilizando o controle através do duty cycle do PWM. Após a

estabilização do sistema o sinal do encoder proveniente do motor foi analisado com

um osciloscópio com o intuito de mensurar sua frequência. A frequência mensurada

com o osciloscópio foi utilizada como referência na análise da velocidade medida

pela plataforma.

Os dados coletados estão apresentados na Tabela 5. A primeira coluna trás

os valores do duty clyle utilizados em porcentagem. A segunda descreve os valores

de tensão para cada valor de duty cycle tendo como base que um valor de 100 %

corresponde a tensão da bateria de 7,8 V. A terceira e quarta colunas são os valores

mínimos e máximos mensurados pelo osciloscópio. É necessário utilizar os valores

mínimos e máximos pois mesmo sem a roda o motor ainda apresenta algum

desbalanceamento que gera um oscilação na frequência do sinal observado. A

quinta e sexta colunas são os valores de velocidade mensurados pela plataforma e

transmitidos para o supervisório.

Os pontos coletados foram colocados no gráfico da Figura 51 onde é

apresentado a curva de velocidade pela tensão e o erro entre a velocidade medida

no osciloscópio e a velocidade medida pelo projeto. Como a informação medida no

osciloscópio foi a frequência em KHz, foi necessário converter este valor para rpm

para ser comparado com os valores mensurados pelo sistema. Esta conversão leva

em consideração que devido caixa de redução e ao número de pulsos do encoder

por volta do motor a relação entre a frequência medida no encoder e a velocidade

no eixo do motor é 304 pulsos para cada volta.

O erro encontrado foi menor que 1%, o que mostra que os sistema de

hardware desenvolvido junto com o algoritmo apresenta um bom desempenho.

Page 93: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

95

Tabela 5: Análise da leitura de velocidade

Duty Cycle

(%)

Tensão

(V)

Frequência

Mínima (KHz)

Frequência

Máxima (kHz)

Velocidade

Mínima (rpm)

Velocidade

Máxima (rpm)

16,52 1,29 0,495 0,500 97,5 99,5

33,04 2,58 0,98 1.05 199,6 201,9

49,57 3,87 1,52 1,53 300,8 305,3

66,09 5,16 2,04 2,07 405,7 408,4

82,62 6,44 2,55 2,58 505,5 514

Figura 51: Curva de velocidade medida pelo osciloscópio e pela base

Page 94: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

96

4.2 Comunicação com o software

A comunicação com o software supervisório é realizado diretamente via cabo

utilizando a porta UART ou via RF, através do Zigbee. Os testes realizados nesta

etapa tem o objetivo de validar protocolo e o canal de comunicação, avaliando sua

capacidade e integridade dos dados.

O teste realizado consistiu em enviar um valor de duty cycle para uma roda do

robô e armazenar os pacotes recebidos em um arquivo. O objetivo foi averiguar se o

período de transmissão de 50 ms é suficiente diante da dinâmica do sistema e se a

comunicação ocorre de forma integra.

Para este teste a base foi erguida de forma que suas rodas ficassem livres.

Foi enviado um duty cycle de 16%. A resposta do sistema está apresentado na

Figura 52.

Num primeiro instante foi utilizado um período de 50 ms, cujos dados são

apresentados na Figura 52 a), onde observa-se que com este período só foi possível

observar dois pontos durante o transiente do motor. Logo esta taxa não é apropriada

para uma análise do regime transitório dos motores utilizados. É portanto desejável

que a taxa de comunicação seja reduzida.

Foi realizado um segundo teste seguindo as mesmas condições que o

primeiro, porém com um período de 20 ms, cujo resultado é está na A Figura 52 b.

Mediante os resultados encontrados neste teste pode-se deduzir que uma taxa de

amostragem maior (50 Hz) é mais apropriada para observar o regime transitório dos

motores utilizados.

a) Leitura a 50 ms b) Leitura a 20 ms

Figura 52: Comunicação com o software em diferente taxas de comunicação.

Page 95: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

97

O teste para averiguar se a comunicação seria de fato possível foi realizado

utilizando um osciloscópio para captura os frames transmitidos e recebidos pelo

microcontrolador. Neste caso, o software envia um frame cada vez que um novo

dado é recepcionado, ou seja, o microcontrolador que cadencia a comunicação, uma

vez que o software não teria capacidade para tal função devido as limitações do

sistema operacional.

A Figura 53 apresenta os frames capturados pelo osciloscópio no pino do

conversor USB/Serial que realiza a interface entre o Zigbee e o computador. O dado

do canal 1, em verde, são os frames recepcionados pelo zigbee, portanto

provenientes no módulo presente no robô. Já o canal 2, representado em amarelo,

são os frames transmitido pelo computador em resposta ao dado recepcionado.

O que observa-se neste ponto é que o zigbee tem total condições de

comunica-se a esta taxa de 50 Hz com um baudrate de 115200 bps. Todavia a

resposta do computador fica no limite do tempo de transmissão. Portanto é possível

que o microcontrolador envie a uma taxa de 50 Hz para o computador, no entanto, a

resposta deste fica no limite da capacidade do sistema.

Figura 53: Frames transmitidos e recebidos pelo módulo Zigbee conectado ao

computador.

Page 96: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

98

4.3 Sensores de aceleração, velocidade angular e orientação

Foram realizados testes com os sensores de aceleração, velocidade angular e

orientação. No primeiro teste foi avaliado a resposta da bussola digital obtida pela

base e os resultados comparados com a saída PWM utilizando um osciloscópio para

medir o ângulo. Este teste foi realizado com a base sobre a bancada e o ângulo da

base foi alterado em passos de aproximadamente 90º. Os resultados obtidos estão

apresentados na Tabela 6 e o erro máximo observado tendo o osciloscópio como

referência foi 1º.

Tabela 6: Comparação entre a orientação obtida pela base e o valor fornecido pelo

sensor.

Duração do Pulso Ângulo Osciloscópio Leitura do sistema Erro

1,2 ms 12º 12º 0

9,1 ms 91º 90º 1º

18,2 ms 182º 181º 1º

27,1 ms 271º 270º 1º

Também foram realizados testes com o sensor de giroscópio. Neste caso, a

base foi posta em rotação no solo com os sinais de PWM igualmente configurados

com duty cycle em 33%. Os resultados foram capturados com o software

supervisório e posteriormente analisados no MATLAB.

Os valores de velocidade angular medidos pelo sensor giroscópio foram

comparados com a velocidade angular obtido pela odometria utilizando a cinemática

direta, de acordo com o modelo da Equação 35 desenvolvidos em [9] e [10].

𝑉𝑥

𝑉𝑦

𝜔

=

0

𝑟2 3

3−𝑟3 3

32𝑟1

3

𝑟2

3

𝑟3

3𝑟1

3𝑙

𝑟2

3𝑙

𝑟3

3𝑙

𝜔1

𝜔2

𝜔3

( 32 )

Page 97: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

99

Onde 𝜔 é a velocidade angular do centro da base em rad/s. 𝜔𝑖 é a velocidade

angular da roda i, com i = 1,2 e 3, 𝑟𝑖 é o raio da roda de i, portanto 5,25 cm e 𝑙 é o

radio da base que é 12 cm. A Figura 54 detalha o digrama de velocidades da base.

Figura 54: Diagrama de velocidades da base. [10]

A Figura 55 compara o resultado obtido pela odometria e pelo sensor de

velocidade angular. Observa-se que o resultado da odometria é mais ruidoso que o

sinal obtido a partir do sensor. Isto é compreensível uma vez a velocidade obtida

através da odometria está sujeita a erros provenientes do processo de medição das

velocidades das rodas. Além disso, fatores como desbalanceamento das rodas e

escorregamento também influenciam em seu resultado.

Vy

Vx

Page 98: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

100

Figura 55: Velocidade angular do centro da base

A odometria também foi utilizada para avaliar os resultados obtidos com os

sensores de aceleração. Neste caso, foi aplicado uma rampa de velocidade nas

rodas dois e três, provocando um movimento no eixo x do robô. As velocidades de

cada roda, a velocidade nos eixos x e y calculadas pela odometria e as acelerações

são apresentadas na Figura 56.

A Figura 56 c) mostra que os resultados da aceleração obtido através da

odometria é mais ruidoso que os resultados medidos a partir do sensor. Isto deve-se

ao fato que a aceleração a partir da odometria é resultado de um derivação da

velocidade da base, que por sua vez já é bastante ruidosa, logo o processo de

derivação acentua este ruído

Page 99: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

101

a) Curvas de velocidades e aceleração.

b) Velocidade linear da base e aceleração.

Page 100: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

102

c) Comparação das acelerações obtidas por odometria e pelo sensor

Figura 56: Análise da aceleração da base.

Além da odometria, o sensor de aceleração foi avaliado quando a resposta

diante da mudança dos eixos x e y quanto a orientação à Terra. A base foi

posicionada de forma que os eixos x e y mudassem seu posicionamento em relação

à Terra a seguinte forma: Ambos paralelos ao vetor normal; x normal e y paralelo; e

y normal e x paralelo. Assim a ação da gravidade terrestre provoca mudanças nos

valores de saída de cada eixo.

Os resultados obtidos no sensor medindo-se as saídas com o osciloscópio e

com o software supervisório estão organizados na Tabela 7. Como indicado na folha

de dados do sensor [42], a tensão de referência de 0 g foi assumida como sendo

1,65 V.

Os resultados apresentados possuem uma ligeira variação entre os valores

referenciais da folha de dados e os valores medidos, tanto pelo osciloscópio quanto

pelo software. Este erro pode ser atribuído ao alinhamento incorreto da base com o

eixo normal da Terra. Da mesma forma o erro entre as medidas do osciloscópio e do

Page 101: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

103

software se devem ao próprio erro de medição inerente ao equipamento que não é

calibrado e ao erro de bits do processo de amostragem do ADC do microcontrolador.

Tabela 7: Variação da aceleração com a posição da base em ralação a terra

Eixo Normal ao plano

da Terra

Tensão na saída do

sensor

Aceleração do sensor Aceleração lida no

software

Eixo X Eixo Y Eixo X Eixo Y Eixo X Eixo Y

Eixo Z 1,79 V 1,81 V 0,175 g 0,2 g 0,05 g 0,087 g

Eixo X 2,47 V 1,83 V 1,025 g 0,225 g 1,025 g 0,2 g

Eixo Y (-180º) 1,69 V 1,01 V 0,05 g -0,8 g -0,07 g -0,813 g

Eixo X (-180º) 0,819 V 1,85 V -1,0388 g 0,25 g -1,113 g 0,144 g

Eixo Y 1,70 V 2,62 V 0,063 1,213 g -0,044 1,063 g

4.4 Controladores Embarcados

O trabalho [10] faz um levantamento detalhado do modelo do sistema motor

roda. O modelo levantado é um sistema de segunda ordem, com uma constante de

tempo elétrica e outra mecânica. No entanto, uma vez que a constante de tempo

elétrica é muito maior que a mecânica o modelo do sistema pode ser aproximado por

um sistema de primeira ordem sem perdas de generalidades.

Os parâmetros modelo de primeira ordem proposto (Equação 36) podem ser

levantados utilizando o método gráfico, onde o ganho 𝐾 é obtido pela variação da

variável de saída pela variação do degrau de entrada aplicado, como indicado na

Equação 37. Uma das forma de se obter a constante de tempo 𝜏 é utilizando um

critério do tempo em que o sistema leva para alcançar 63% do valor de regime,

como apresentado na Equação 38.

Page 102: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

104

𝜔(𝑠)

𝑢(𝑠) =

𝐾

𝜏𝑠 − 1 ( 33 )

𝐾 =

Δ𝜔

Δ𝑢 ( 34 )

𝜏 = 0,63𝑡1 ( 35 )

O modelo dos três sistemas motor roda foram adquiridos com o auxílio do

MATLAB utilizando o método gráfico. Para tanto, foi aplicado um degrau de tensão

utilizando 50% PWM o que corresponde a uma tensão de 3,9 V sobre cada motor. A

Figura 57 contém a resposta ao degrau de cada uma das rodas, tanto a resposta

experimental em vermelho, quanto ao do modelo levantado, em azul. Já a Tabela 8

trás os parâmetros levantados para cada motor.

Tabela 8: Parâmetros dos modelos de primeira ordem das rodas

Sistema motor + roda Ganho (𝐾) Constante de tempo 𝜏

1 7,87 0,052

2 8,10 0,056

3 7,81 0,052

Page 103: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

105

a) Resposta ao Degrau do Motor 1.

b) Resposta ao Degrau do motor 2.

Page 104: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

106

c) Resposta ao Degrau do motor 3.

Figura 57: Curva de resposta ao degrau de 3,9 V de cada motor.

Para testar o algoritmo do controlador embarcado os ganhos proporcional e

integral foram configurados em 0,1 e 0,01, com base na técnica do lugar das raízes,

mas sem se preocupar com marge de ganho, margem de fase ou tempo de resposta

em malha fecha. Foi aplicado um degrau de 60 rpm na roda 1 e o resultado do

sistema juntamente com o erro e o esforço de controle é apresentado na Figura 58 e

Figura 59, respectivamente. Como esperado, valor medio do erro é zero.

A curva de corrente do motor com o controlador atuando é apresentada na

Figura 60, onde verifica-se que ocorreu um pico de corrente na partida do motor, na

ordem de 600 mA, mas a corrente em regime é da ordem de 150 mA.

Page 105: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

107

Figura 58: Controle da roda com PI, Kp = 0,1 e Ki =0,01

Page 106: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

108

Figura 59: Erro valor do PWM gerado pelo controlador PI.

Figura 60: Curva de corrente do motor com o controlador PI.

Page 107: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

109

5. Conclusão

Neste trabalho foi desenvolvido um sistema embarcado de baixo custo

aplicado à robótica móvel. Foram realizados testes individuais em cada módulo que

compõem o hardware da plataforma e testes envolvendo toda a estrutura. Dessa

forma foi possível obter curvas de desempenho e avaliar o conjunto.

Os testes com a placa de acionamento dos motores avaliou o desempenho da

ponte H projetada junto com o circuito de gate driver e condicionamento dos sinais

de acionamento da ponte. Foi possível observar que o circuito foi capaz de acionar o

motor com a carga projeta. Além disso, o sensor de corrente elaborado apresentou

respostas coerentes com o modelo conhecido, o que mostra que o sistema é capaz

de fornecer as informações necessárias em estudos como levantamento de modelos

do robô.

As avaliações no sinal de saída da ponte H mostrou que o circuito projetado

para gerar os sinais de PWM defasados teve uma resposta melhor que a resposta

sem o circuito e portanto, foi capaz de evitar os picos de corrente gerados pela

transição de estados dos MOSFETs do mesmo lado da ponte. No entanto, foi

verificado ainda pequenos picos de corrente na transição, o que mostra a

necessidade de ajuste fino nos valores do circuito RC utilizado.

Os testes com o sistema supervisório mostrou que o sistema é capaz de

comunicar-se com uma frequência de atualização dos dados maior que os 20 Hz

propostos. Foi possível alcançar respostas com 50 Hz, isto é, a comunicação com o

sistema supervisório pode ser realizada em até 20 ms, contra os 50 ms propostos

inicialmente.

Foi averiguado também robustez do protocolo de comunicação zigbee e não

foi observado erros de sincronia nem perdas de dados de transmissão. Averiguo-se

apenas uma limitação na recepção no computador, que se deve as limitações do

sistema operacional do computador e não ao módulo zigbee utilizado.

Com o sistema supervisório foram geradas trajetórias para o robô para a

realização dos testes com os sensores de aceleração, velocidade angular e

compasso digital. Com estes testes foi possível levantar curvas de aceleração e

verificar o desempenho da estrutura.

A plataforma mostrou-se ser capaz de controlar uma base robótica

comprovando sua utilidade em pesquisa para levantamento de modelos e projeto de

Page 108: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

110

sistemas de controle avançados. Todavia, como trabalho futuro é recomendado que

sejam embarcados algoritmos de fusão de dados, onde as informações dos

sensores sejam cruzas com as informações da odometria para auxiliar na

interpretação dos dados provenientes dos diferentes sensores utilizados no projeto.

O Anexo X faz uma descrição da organização dos arquivos de esquemático

layout e código gerados pelo projeto.

4.5 Trabalhos facilitados pelo projeto.

Ainda como resultados diretos e indiretos deste projeto foram realizados os

seguintes trabalhos:

Nascimento, Tiago P. ; Moreira, António Paulo ; SCOLARI

CONCEIÇÃO, ANDRÉ G. . Multi-robot nonlinear model predictive

formation control: Moving target and target absence. Robotics and

Autonomous Systems (Print), v. 61, p. 1502-1515, 2013;

BARRETO S., JULIO CESAR LINS ; CONCEICAO, ANDRE GUSTAVO

SCOLARI ; DOREA, CARLOS E. T. ; MARTINEZ, LUCIANA ; DE PIERI,

EDSON ROBERTO . Design and Implementation of Model-Predictive

Control With Friction Compensation on an Omnidirectional Mobile Robot.

IEEE/ASME Transactions on Mechatronics, v. 19, p. 1-10, 2013;

Ribeiro, T.T. ; Santos, J.T. ; COSTA, A. L. ; Conceição, A. G. S. .

Sistema Microprocessado de Tempo Real Aplicado à Robótica Móvel.

Revista Jr de Iniciação Científica em Ciências Exatas e Engenharia, p.

23 - 31, 01 ago. 2011.

Conceição, A. G. S. ; Correia, M. D. ; MARTINEZ, L. . Modelagem de

Robôs Móveis Omnidirecionais incluindo Modelos Estáticos de Atrito. In:

XI Simpósio Brasileiro de Automação Inteligente, 2013, Fortaleza.

SBAI/DINCON 2013, 2013.

Conceição, A. G. S. ; Correia, M. D. . Modeling of a Three Wheeled

Omnidirectional Robot Including Friction Models. In: 10th International

IFAC Symposium on Robot Control, 2012, Dubrovnik-Croatia. SYROCO

2012, 2012. v. 10. p. 7-12;

Page 109: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

111

Ribeiro, T.T. ; Santos, J.T. ; Santos Jr., J. ; COSTA, A. C. P. L. ;

Conceição, A. G. S. . Real-time microprocessed system applied to

mobile robots control. In: Latin American Robotics Symposium, 2011,

Bogota. LARC-LARS 2011, 2011;

Ribeiro, T.T. ; Santos, J.T. ; Santos Jr., J. ; COSTA, A. L. ; Conceição,

A. G. S. . Sistema Microprocessado para Controle em Tempo Real de

Robôs Móveis Omnidirecionais. In: X Simpósio Brasileiro de Automação

Inteligente, 2011, São João Del-Rei. SBAI 2011, 2011;

Correia, M. D. ; Santos, J.T. ; Ribeiro, T.T. ; Conceição, A. G. S. .

Modelagem de um robô móvel omnidirecional de três rodas incluindo

compensação de atrito. In: X Simpósio Brasileiro de Automação

Inteligente, 2011, São João Del-Rei. SBAI 2011, 2011. p. 1031-1036;

Ribeiro, T.T. ; Conceição, A. G. S. . Sistema Embarcado de tempo real

aplicado a robótica móvel. In: VII Seminário Nacional de Controle e

Automação, 2011. VII Seminário Nacional de Controle e Automação;

Santos, J.T. ; Ribeiro, T.T. ; Conceição, A. G. S. . Sistema Embarcado

Microprocessado Aplicado à Robótica Móvel. In: XXIV Congresso

Regional de Iniciação Científica e Tecnológica em Engenharia, 2010,

Rio Grande. XXIV CRICTE - 2010, 2010.

Page 110: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

112

6. Referências

[1] Siegwart, Roland ; Nourbakhsh, Ikkah R., Scaramuzza, Davide. Introduction to

Autonomous Mobile Robots. London, The MIT Press, 2011.

[2] KTeam Mobile robotics. Disponível em http://www.k-team.com, Acessado em 2 de

outubro de 2013.

[3] Adept mobilerobots, Disponível em http://www.mobilerobots.com, Acessado em 2

de outubro de 2013.

[4] Barreto, Júlio C.L.. Controle Preditivo de um Robô Omnidirecional com

Compensação de Atrito. Dissertação – (Mestrado em Engenharia Elétrica) – Escola

Politécnica, Universidade Federal da Bahia. Salvador, 2011.

[5] Ribeiro, F. ; Moutinho, I. ; Silva, P. ; Fraga, C. ; Pereira, N. , THREE OMNI-

DIRECTIONAL WHEELS CONTROL ON A MOBILE ROBOT. Universidade do

Minho, 2002.

[6] Conceição, A. G. S.; Costa, Paulo J.; Moreira, A. P.. Practical Approach of

Modeling and Parameters Estimation for Omnidirectional Mobile Robots. IEEE/ASME

Transactions on Mechatronics , v. 14, p. 377-381, 2009.

[7] Barreto S., Julio Cesar Lins; Conceição, A. G. S; Dorea, Carlos E. T.; MARTINEZ,

LUCIANA ; DE PIERI, E. R.. Design and Implementation of Model-Predictive Control

With Friction Compensation on an Omnidirectional Mobile Robot. IEEE/ASME

Transactions on Mechatronics , v. 19, p. 1-10, 2013.

[8] Conceição, A. G. S.; Correia, M. D. . Modeling of a Three Wheeled

Omnidirectional Robot Including Friction Models. In: 10th International IFAC

Symposium on Robot Control, 2012, Dubrovnik-Croatia. SYROCO 2012, 2012. v. 10.

p. 7-12.

Page 111: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

113

[9] Nascimento, Tiago P.. Controle De Trajetória De Robôs Móveis Omni-Direcionais:

Uma Abordagem Multiváriavel. Dissertação – (Mestrado em Engenharia Elétrica) -

Escola Politécnica, Universidade Federal da Bahia. Salvador, 2009.

[10] Ribeiro, Tiago T., Sistema de Controle em Tempo Real Aplicado a Robótica

Móvel, Trabalho de final de curso, Universidade Federal da Bahia – UFBA, Salvador,

2010

[10] Shroeder, Greyce N., Espístola, Danúbia B., Oliveira, Vinicius M., Modelagem e

controle de robôs móveis Omnidirecionais, Fundação Universidade Federal do Rio

Grande – FURG, Rio Grande/RS.

[12] Rodrigues, J. A. C.; Plataforma Omnidirecional para Robô de Serviço em Casa – (Tese de Mestrado), Universidade do Minho – Escola de Engenharia, 2010.

[13] Costa, J. P. V.; Integração e Controlo de Sensorese Atuadores de um Robô Futebolista – (Tese de Mestrado), Universidade do Minho – Escola de Engenharia, 2012.

[14] Jácobo, J. E. A.. Desenvolvimento de um Robô Autônomo Móvel Versátil

utilizando Arquitetura Subsumption (Dissetação de Mestrado), Universidade Estadual

de Campinas – UNICAMP, 2001.

[15] Gonçalves, José; Costa, Paulo; Moreira, Paulo (2004) - Desenvolvimento de um

robot omnidireccional para fins didácticos usando o Kit Lego Mindstorms. In Encontro

Científico do Robótica (Proceedings of the Scientific Meeting of the Portuguese

Robotics Open). Porto. ISBN 972-752-066-9.

[16] Santos, J. T.. Projeto e Desenvolvimento de um Sistema Microprocessado

Aplicado à Robótica Móvel –(Trabalho Final de Graduação), Universidade Federal da

Bahia –UFBA, Salvador, 2009.

[17] Mondada F., Franzi E., Lenne Paolo. Proceedings of the Third International

Symposium on Experimental Robotics, page 501--513 Mondada, F.; Franzi, E. &

Page 112: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

114

Ienne, P. (1993), Mobile Robot Miniaturization: A Tool for Investigation in Control

Algorithms, in 'Proceedings of the Third International Symposium on Experimental

Robotics' , pp. 501--513. (1993)

[18] A. Prorok, A. Arfire, A. Bahr, J. Farserotu, and A. Martinoli. Indoor Navigation

Research with the Khepera III Mobile Robot: An Experimental Baseline with a Case-

study on Ultra-wideband Positioning. In Proceedings of the IEEE International

Conference on Indoor Positioning and Indoor Navigation, pages 1-9, 2010.

[19] Pereira, Jonas. Avaliação e correção do modelo cinemático de robôs móveis

visando a redução de erros no seguimento de trajetória. Dissertação de mestrado.

Universidade do Estado de Santa Catarina-UDESC, Joinville, 2003.

[20] Lambercy Frédéric, Tharin Julien, Khepera III User Manual, Switzerland, 2013

[21] Tharin, Julien, Lambercy, Frédéric, Carron, Timothée., Koala 2.0 User manual

Switzerland, 2014;

[22] Road Narrows Store, Robotics and Intelligente system, http://www.roadnarrows-

store.com/products/robots/wheeled.html. Acessado em 05 de março de 2014.

[23] Adep Mobilerobots. Disponível em http://www.movilerobots.com, Acesso em 30

de Outubro de 2013.

[24] Bueno, Samuel S., Azevedo, Helio, Mirisola, Luis G., Paiva, Ely C. Ramos,

Josué Jr., Uma Plataforma Para Pesquisa e Desenvolvimento Em Robótica Terrestre

De Exterior, IX Simpósio Brasileiro de Automaçao Inteligente, Brasılia-DF, Brasil

(2009).

[25] Website Lego Mindstorms, http://www.lego.com/en-

us/mindstorms/?domainredir=mindstorms.lego.com, Acessado em 9 de maio de

2014.

Page 113: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

115

[26] Website Acroname, http://www.acroname.com/products/, Acessado em 9 de

maio de 2014.

[27] Crossbow Technology, Stargate Developer’s Guide, February 2004.

[28] On Semiconducor, DC Motor Driver Fundamentals

[29] Pomilio, J.A., Eletronica de Potencia – Pós graduação, Cap2. Disponível em:

http://www.dsce.fee.unicamp.br/~antenor/elpot.html.

[30] Dum Jamie, Determining MOSFET Drivers Needs for Motor Drive Applications,

Microchip technology, 2003

[31] Fairchild Semiconductor, Design and Application Guide of Bootstrap Circuit of

High-Voltage Gate-Driver IC, 2008

[32] ROHM Semiconductor, Controlling DC Brush Motors with H-Bridge Drivers ICs,

San Diego, 2009.

[33] Meehan P., Moloneu K., Basic Principles of Operation and Applications of the

Accelerometer, Limerick Institute of Technology.

[34] Freescale Semiconductor, ± 1.5 g, ± 6 g Tree Axis Low-g Micromachined

Accelerometer, 2011.

[35] Analog Device, Linear Circuit Design Handbook, Newnes, 2008.

[36] Erismis M. Akif, MEMS ACCELEROMETERS AND GYROSCOPES FOR

INERTIAL MEASUREMENT UNITS, Middle East Technical University, 2004.

[37] Millett, P.. Calculating Motor Driver Power Dissipation – Application Report

SLVA504. Texas Instruments, 2012.

Page 114: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

116

[38] Geen, John; Krakauer, David. New iMEMS Angular – Rate –Sensing Gyroscope.

ADI Micromachined Products Division, 2003.

[39] Langley, B. Richard. The Magnetic Compass and GPS. GPS World, Setember

2003.

[40] Caruso, J. Michael. Applications of Magnetoresistive Sensors in Navigation

System. Honeywell Inc.

[41] Philips Semiconductor. Eletronic Compass Desing using KMZ51 and KMZ52,

Application Notes.

[42] Freescale Semiconductor, Eletronic Compass Desing using KMZ51 and KMZ52,

Application Notes.

[43] NXP Semiconductors, Brushed DC motor control using the LPC2101, Application

note, 2007.

[44] Digi International, XBee/XBee-PRO ZigBee RF Modules, User Guide, 2015.

Page 115: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

117

Anexo I

Tabela 9: Parâmetros elétricos do FDS8958.

Canal P Canal N

𝑄𝑇𝑜𝑡𝑎𝑙 (nC) 23 26

td(on) (ns) 6,7 6

tr (ns) 9,7 10

td(off) (ns) 19,8 18

tf (ns) 12,3 5

Tempo de carga (ns) = (td(on)+tr) 16,4 16

Tempo de descarga (ns) = (td(off)+tf) 32,1 23

Corrente de carga (A) 1,4 1,62

Corrente de descarga (A) 0,71 1,13

Page 116: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

118

Anexo II

Tabela 10: Configurações da rede zigbee.

Comando Descrição

ID Determina o PAN ID. Se configurado como 0 (zero), um valor randômico

será selecionado, sendo um coordenador, se não, sendo router ou end

device entra em qualquer PAN ID.

SC Indica quais canais estarão habilitados para serem utilizados

SD Configura o período que o coordenador irá verificar os canais, em busca

do canal de melhor energia e eu esteja livre.

ZS Seleciona o Stack Profile

EE Habilita ou desabilita a segurança da rede

NK Chave de criptografia da rede

KY Chave de criptografia do centro de segurança

EO Seta a política de segurança

NJ Configura o tempo de permissão para permitir que outros dispositivos

entrarem na rede

Page 117: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

119

Anexo III

Tabela 11: Comando API suportatos.

API Frame Names API ID

Comando AT 0x08

Comando AT – Vetor de armazenamento 0x09

Transmissão de um pacote de dados 0x10

Envio de pacote de dados com endereço do

Cluster ID e Profile ID

0x11

Comando AT remote 0x17

Criação de rota 0x21

Resposta a comando AT 0x88

Status do modem 0x8A

Status da transmissão de um pacote 0x8B

Recepção de um pacote de dados 0x90

Recepção de um pacote de dados com indicação

do cluster ID e profile ID

0x91

Recepção de amostragem de um pino IO 0x92

Recepção da leitura de um sensor 0x94

Indicação de dispositivo 0x95

Resposta a comando AT remoto 0x97

Update de firmware over-the-air 0xA0

Resposta a criação de rota no elemento final 0xA1

Resposta ao comando de criação de rota 0xA3

Page 118: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

120

Anexo IV

Tabela 12: Frame de envios de dados e configurações.

Campos do Frame Posição Exemplo Descrição

A P I

F r a m e

Start Delimiter 0 0x7E

Length MSB 1 0x00 Número de bytes entre o

tamanho e o checksum LSB 2 0x16

Frame Data

Tipo de Frame 3 0x10 Indica que está enviando um dado para outro dispositivo

Frame ID 4 0x01 Solicita um ACK. Se configurado zero, nenhuma resposta é enviada.

64-bit Destination Address

MSB 5 0x00

Configura o endereço de 64-bit do destino.

0x0000000000000000 – Reservado para o coordenador

0x000000000000FFFF – Endereço de Broadcast

6 0x13

7 0xA2

8 0x00

9 0x40

10 0x0A

11 0x01

LSB 12 0x27

16-bit Destination Network Address

MSB 13 0xFF Endereço de 16-bit da rede. Se não conhecido, deve ser configurado como 0xFFFE

LSB 14 0xFE

Broadcast Radius 15 0x00

Configura o máximo numero de pulos que um pacote pode dar num broadcast. Se configurado em 0x00, é configurado o valor máximo.

Options 16 0x00

Opção de transmissão:

0x01 – Desabilita ACK;

0x20 – Habilita criptografia APS (se EE = 1)

0x40 – Utiliza o timer out

RF Data

Command

17 0x01 Comando do protocolo para Leitura dos sensores

Data 18 +N Dados dos sensores

Checksum 18 + N+1 0xXX

Page 119: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

121

Anexo V

Tabela 13: Frame de recepção de dados e configurações.

Campos do Frame Posição Exemplo Descrição

A

A P I

F r a m e

Start Delimiter 0 0x7E

Length

MSB 1 0x00 Número de bytes entre o tamanho e o checksum

LSB 2 0x0E

Frame Data

Frame type 3 0x90 Indica que foi recepcionado um pacote de dados de outro dispositivo

64-bit Source Address

MSB 4 0x00

Endereço de 64-bit do dispositivo que enviou o dado. Se igual a 0xFFFFFFFFFFFFFFFF o endereço é desconhecido.

5 0x13

6 0xA2

7 0x00

8 0x40

9 0x52

10 0x2B

LSB 11 0xAA

16-bit Destination Network Address

MSB 12 0x7D Endereço de 16-bit do dispositivo que enviou

LSB 13 0x84

Receive Options 14 0x01

0x01 – Pacote conhecido

0x02 – Pacote broadcast

0x20 – Pacote criptografado com criptografia APS

0x40 – Pacote foi enviado por um dispositivo final

RF Data

Command

15 0x07 Indica o tipo de resposta

Data 15+N Dado solicitado. Pode retornar vazio se for configuração.

Checksum 15+N+1 0xXX

Page 120: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

122

Anexo VI

Tabela 14: Parâmetros enviados pelo robô.

Dado Formato Descrição

VelMotor_1 2 bytes Velocidade do motor 1 em rpm*10.

VelMotor_2 2 bytes Velocidade do motor 2 em rpm*10.

VelMotor_3 2 bytes Velocidade do motor 3 em rpm*10.

CorrMotor_1 2 bytes Corrente do motor 1 em mA

CorrMotor_2 2 bytes Corrente do motor 2 em mA

CorrMotor_3 2 bytes Corrente do motor 3 em mA

Aceleracao_X 2 byte Aceleração no eixo X em m/s²

Aceleracao_Y 2 byte Aceleração no eixo y em m/s²

Giro 2 bytes Velocidade angular em rad/s

Compasso 2 bytes Ângulo em decimos de graus

Dir 1 byte Indica o sentido de giro dos motores.

1º byte setado em 1 motor 1 com giro

horário, setado em 0 giro anti-horário;

2º byte setado em 1 motor 2 com giro

horário, setado em 0 giro anti-horário;

3º byte setado em 1 motor 3 com giro

horário, setado em 0 giro anti-horário;

PWM_1 1 byte Valor configurado no duty cycle do motor 1

PWM_2 1 byte Valor configurado no duty cycle do motor 2

PWM_3 1 byte Valor configurado no duty cycle do motor 3

Page 121: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

123

Anexo VII

Tabela 15: Formato do comando 0x02

Dado Formato Descrição

Duty_1 1 byte Valor do Duty cycle do PWM 1

Duty_2 1 byte Valor do Duty cycle do PWM

Duty_3 1 byte Valor do Duty cycle do PWM

Dir 1 byte Indica o sentido de giro dos motores.

1º byte setado em 1 motor 1 com

giro horário, setado em 0 giro anti-

horário;

2º byte setado em 1 motor 2 com

giro horário, setado em 0 giro anti-

horário;

3º byte setado em 1 motor 3 com

giro horário, setado em 0 giro anti-

horário;

Page 122: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

124

Anexo VIII

Tabela 16: Formato do comando 0x03.

Dado Formato Descrição

Referencia_1 2 bytes Set point de velocidade para o controlador

do motor 1, em rpm*10

Referencia_2 2 bytes Set point de velocidade para o controlador

do motor 2, em rpm*10

Referencia_3 2 bytes Set point de velocidade para o controlador

do motor 3, em rpm*10

Dir 1 byte Indica o sentido de giro dos motores.

1º byte setado em 1 motor 1 com

giro horário, setado em 0 giro anti-

horário;

2º byte setado em 1 motor 2 com

giro horário, setado em 0 giro anti-

horário;

3º byte setado em 1 motor 3 com

giro horário, setado em 0 giro anti-

horário;

Page 123: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

125

Anexo IX

Tabela 17: Formato do comando que configura o PID.

Dado Formato

P_1 1 byte Ganho proporcional*10 do controlador do

motor 1

I_1 1 byte Ganho integrativo*10 do controlador do

motor 1

D_1 1 byte Ganho derivativo*10 do controlador do

motor 1

P_2 1 byte Ganho proporcional*10 do controlador do

motor 2

I_2 1 byte Ganho integrativo*10 do controlador do

motor 2

D_2 1 byte Ganho derivativo*10 do controlador do

motor 2

P_3 1 byte Ganho proporcional*10 do controlador do

motor 3

I_3 1 byte Ganho integrativo l*10 do controlador do

motor 3

D_3 1 byte Ganho derivativo*10 do controlador do

motor 3

Page 124: Dissertação de Mestrado - UFBA · controlando a tensão dos motores através de um sinal PWM. Foi desenvolvido um protótipo da plataforma e testado em uma base de um robô omnidirecional

126

Anexo X

Os arquivos gerados pelo trabalho encontram-se organizados da seguinte

maneira:

Os arquivos de esquemático e layout referentes ao hardware estão

organizados em 6 arquivos com os nomes:

o Base - Refere-se ao modulo de interconexões e alimentação;

o Driver - Módulo contendo a ponte H e circuito de leitura de

corrente;

o Sensores - Sensores de aceleração, velocidade angular e

bússola;

o Microcontrolador - Modulo de processamento com o

microcontrolador PIC32;

o Zigbee - Sistema de comunicação sem fio;

o Conversor USB/Zigbee - Conversor USB/Serial com o módulo

Zigbee para comunicação com o software supervisório.

Os códigos referentes ao firmware encontram-se no arquivo mecateam.

Os códigos foram desenvolvidos utilizando a ferramenta MPLABX, com

o compilador XC32 na versão gratuita.

Os códigos do software supervisório estão no arquivo software. Este

programa foi desenvolvido utilizando o Lazarus. Para compilá-lo é

necessário instalar dois componentes do arquivo programas, o Spd0

que é o componente de acesso a porta serial, e o csvdocument, que

possibilita a interação com arquivos do tipo CSV.

Todos os arquivos podem ser obtidos através do endereço de e-mail:

[email protected]