do arquivo - Programa de Pós

Transcrição

do arquivo - Programa de Pós
Universidade Federal Da Bahia
Escola Politécnica
Programa de Pós-Graduação em Engenharia Elétrica
Jovelino Torres dos Santos
Dissertação de Mestrado
PROJETO E DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE
EMBARCADO APLICADO A ROBÓTICA MÓVEL
Salvador
2014
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
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
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
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.
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
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
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
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
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:
IGBT:
Metal Oxide Semiconductor Field Effect Transistor
Insulated Gate Bipolar Transistor
TBJ:
CI:
AMPOP:
dB:
Transistor Bipolar de Junção
Circuito Integrado
Amplificador Operacional
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
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
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
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á
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, encontrase 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
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
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
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.
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
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:
23

Três drivers de corrente para acionamento dos motores (S17-3ALV-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.
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.
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.
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.
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]
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
29
Figura 5.
Figura 5: Estrutura de controle do Khepera (Fonte: Manual Robô Khepera III).
30
O robô Koala, ilustrado na Figura 6, é outra plataforma desenvolvida pela KTeam 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.
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].
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,
monitoramento,
com
aplicação
áreas
visão computacional,
como
teleoperação,
localização,
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;
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.
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.
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.
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.
37
Alimentação
3,3 V, 6 V,
-3,3 V
Alimentação
3,3 V
Módulo de sensores de
aceleração e posição
Acelerômetro
Giroscópio
Bússola
digital
Módulo base
Zigbee
UART
Controle
em malha
aberta ou
fechada
com PID
Módulo do
Microcontrolador
Sinal de
corrente
Alimentação
3,3 V, 6 V,
-3,3 V
ADC
Entradas
de
Interrupção
ou Capture
Filtragem
digital
Protocolo de comunicação
Sinais do
Encoder
(Velocidade)
Timers /
PWM
PWM + Sinal
de Controle
de Direção
Alimentação
5 V a 18 V
Barramento de Energia /
reguladores
Alimentação
3,3 V
Entradas
de
Interrupção
ou I2C
ADC
Módulo de acionamento
dos Motores
Alimentação
5 V a 18 V para
a ponte H
Condicionamento do
sinal do
encoder
Circuito de
Leitura de
Corrente
Sinais do
Encoder
Gate Driver
e Ponte H
PWM + 6 V
de alimentação
do encoder
Motor DC
E
Encoder
Figura 9: - Diagrama do Hardware da Plataforma de Controle.
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.
𝐼𝑑
R
𝑉𝑑
a) Modelo mecânico do motor DC. [43]
L
E=KΦω
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
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.”
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
Período do Timer
Comparador
Sinal de referência
Tempo
Sinal de saída PWM
Duty Cycle 40 %
Duty Cycle 20 %
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.
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
D1
D2
S1
S2
D1
VGS1
A
M
CC
S3
D3
D4
S4
S3
D3
VGS3
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.
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.
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.
44
a) Capacitâncias do Gate [30]
b) Tempos de Acionamento
c) Comportamento da Tensão VDS e
d) Circuito equivalente do gate driver e
Corrente Ids com Tensão de Gate
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.
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;
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.
Conector B Alimentação 6 V - 18 V
Energia
PWM
Direção
Adequação dos sinais
PWM e Direção
Sinal de
Corrente
PWM_1/ PWM_2
Dir_1/Dir_2
Circuito B
Gate Driver
Circuito D Leitura de corrente
Energia
Sinais
de
controle de gate
Circuito C Encoder_A
Encoder_B
Adequação dos sinais
do Encoder
Circuito E Ponte H
Acionamento
do motor
Conector A - Comunicação com o microcontrolador
Circuito A -
Conector C Sinais do Encoder
Motor + Encoder
Figura 15: Diagrama do circuito de acionamento dos motores.
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
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)
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:
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.
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.
1
Gate de S1
0
1
PWM_1
Gate de S2
0
1
t1
t2
Gate de S3
0
1
PWM_2
Gate de S4
0
tempo
Figura 17 - Sinais de controle da ponte H
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.
PWM
Tensão
Corrente
𝐼1
𝑉1
𝐼0
𝑉0
t0
t1 t2
t3 t4
T
t
t
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
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)
2𝑇 1 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
𝑉 𝐼 (𝑡3 − 𝑡2)
𝑇 01
(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 coletoremissor, 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
𝑅
𝐼 2 (𝑡3 − 𝑡2)
𝑇 𝐷𝑆𝑜𝑛 1
( 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
𝑉 𝐼 (𝑡4 − 𝑡3)
2𝑇 0 1
( 11 )
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 localizase 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.
𝑅𝐷𝑆𝑜𝑛 (Ω)
𝑃1 (W)
𝑃2 (W)
𝑃3 (W)
𝑃𝑡 (W)
S1 (canal P)
0,08
0
0,98
0
0,98
S2 (canal P)
0,08
0
0
0
0
S3 (canal N)
0,04
0,009
0,49
0,009
0,508
S4 (canal N)
0,04
0
0
0
0
Tabela 2: Perda de potência nos MOSFETs da ponte H com operação em 18 V e 3,5
A de carga.
𝑅𝐷𝑆𝑜𝑛 Ω
𝑃1 (W)
𝑃2 (W)
𝑃3 (W)
𝑃𝑡 (W)
S1 (canal P)
0,052
0
0,64
0
0,64
S2 (canal P)
0,052
0
0
0
0
S3 (canal N)
0,028
0,019
0,343
0,026
0,39
S4 (canal N)
0,028
0
0
0
0
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.
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 )
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
1
𝑆 2 + 𝑅𝐶 𝑆 + 2
𝑅 𝐶1 𝐶2
1
( 15 )
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
1
𝐶1 𝐶2
𝐻 𝑠 =
2
1
𝑆2 + 𝐶 𝑆 + 𝐶 𝐶
1
1 2
( 16 )
( 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,
𝐶1 𝐶2
𝐶1 = 1,418
( 15 )
𝐶2 = 0,707
( 16 )
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.
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
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
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.
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 + 𝑠 + 𝑘
𝑚
𝑚
𝑤0 =
𝑘
𝑚
( 24 )
( 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
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.
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 )
65
Vx
Ω
x
Vy
r
p
y
Figura 29: Efeito Coriolis.
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.
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.
𝐹𝐶𝑜𝑟𝑖𝑜𝑙𝑖𝑠 = 𝐹𝐸𝑙𝑎𝑠𝑡𝑖𝑐𝑎
Δ𝑦 =
−2𝑚Ω𝑣
𝑘
( 27 )
( 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.
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
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 )
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
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.
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.
72
Tabela 3: Interfaces de comunicação com os módulos.
Módulos
Nº por base
Driver de acionamento
3
Interfaces
Controle do motor
Periférico
1 - PWM
1 - Saída Digital
Sensor de velocidade
1 - Entrada de Interrupção
1 - Entrada Digital
Módulo de sensores
Sensor de corrente
1 - Entrada analógica (ADC)
Acelerômetro (x,y)
2 - Entradas analógicas (ADC)
Giroscópio (y)
1 - Entrada analógica (ADC)
Compasso digital
1 - Entrada de Interrupção
1
Nível da bateria
1 - Entrada analógica (ADC)
1
Comunicação serial
1 – UART
1
Distribuidora de energia
e interconexões
Comunicação sem fio
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
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
While(1)?
Há pacotes
recepcionados?
S
Trata pacotes
Atua sobre os motores
S
N
50 ms?
S
Controlador
Acionado?
Envia Leituras dos
sensores
N
10 ms?
S
Realiza leitura de:
Corrente;
Aceleração;
Posição angular;
Filtra os sinais
amostrados dos
diversos sensores
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.
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
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.
a)
b)
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
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
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.
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
Interrupção
de
estouro do timer
Loop Principal
Interrupção
por
borda de descida

Incrementa contador de estouro;
Muda
a
interrupção
para
detectar borda de subida;

Amazena valor do contador
do timer
Não
Contador
Final> Inicial
Sim
(Periodo do timer) *(Contador de
(Periodo do timer) *(Contador de
estouros - 1) + Inicial - Final
estouros ) + Final - Inicial
Loop Principal
Figura 38: Diagrama do algoritmo de leitura do ângulo
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.
80
Estrela
Coordenador
Árvore
Router
Mesh
End Device
Figura40:
39:Topologias
Topologiasde
deRede
rede zigbee.
Figura
Zigbee.
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;
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
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.
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
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.
para múltiplos
destinos
Recebimento de
dados com
Os dados recebidos têm campo de identificação do tipo de dado e
quem é o remetente
identificação do
destinatário
Diagnóstico da rede
avançado
Configuração remota
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.
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.
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.
85
Recepção de um
byte
Estado da
recepção
Estado = 0
Estado = 1
Estado = 2
Estado = 3
Lê o byte
recepcionado
Lê o byte
recepcionado
Lê o byte
recepcionado
Lê o byte
recepcionado
Byte= 0x7E
Armazena byte
recepcionado.
Estado := 2
Armazena byte.
Pega o tamanho
do Frame.
Estado := 3
Liga timer out
Estado := 1
Fim
N
Armazena byte.
Numero de
bytes recebidos
= tamanho do
frame?
S
Desliga timer out
Abre secção critica
Desliga timer out.
Estado := 0
Fecha secção critica
Armazena frame na pilha.
Seta pacote recebido
completo
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.
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.
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.
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.
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;
90

Configurar os ganhos Kp, Ki e Kd dos controladores;

Gerar trajetórias a serem executadas pelo robô.
Figura 46: IHM de testes.
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.
PWM
Condicionamento
de sinal
PWM_1
PWM_2
Gate
Driver
Gate P
Gate N
Saida
Ponte H
Motor
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.
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.
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.
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.
95
Tabela 5: Análise da leitura de velocidade
Duty Cycle
Tensão
Frequência
Frequência
Velocidade
Velocidade
(%)
(V)
Mínima (KHz)
Máxima (kHz)
Mínima (rpm)
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
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.
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.
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𝑟1
3
𝑟1
3𝑙
𝑟2 3
3
𝑟2
−
𝑟3 3
3
𝑟3
3
𝑟2
3
𝑟3
3𝑙
3𝑙
𝜔1
𝜔2
𝜔3
( 32 )
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.
Vy
Vx
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.
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
101
a) Curvas de velocidades e aceleração.
b) Velocidade linear da base e aceleração.
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
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
Tensão na saída do
da Terra
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.
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
105
a) Resposta ao Degrau do Motor 1.
b) Resposta ao Degrau do motor 2.
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.
107
Figura 58: Controle da roda com PI, Kp = 0,1 e Ki =0,01
108
Figura 59: Erro valor do PWM gerado pelo controlador PI.
Figura 60: Curva de corrente do motor com o controlador PI.
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
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;
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.
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 OMNIDIRECTIONAL 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.
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. &
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 Casestudy 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.roadnarrowsstore.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.
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.
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.
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
118
Anexo II
Tabela 10: Configurações da rede zigbee.
Comando
ID
Descrição
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
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
0x11
Cluster ID e Profile ID
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
0x91
do cluster ID e profile ID
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
120
Anexo IV
Tabela 12: Frame de envios de dados e configurações.
A
P
I
Campos do Frame
Posição
Exemplo
Start Delimiter
0
0x7E
MSB 1
0x00
LSB 2
0x16
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.
MSB 5
0x00
6
0x13
7
0xA2
8
0x00
9
0x40
10
0x0A
11
0x01
LSB 12
0x27
MSB 13
0xFF
LSB 14
0xFE
Length
F
r
a
m
e
64-bit Destination
Address
Frame Data
16-bit Destination
Network Address
Broadcast Radius
15
0x00
Descrição
Número de bytes entre o
tamanho e o checksum
Configura o endereço de 64bit do destino.
0x0000000000000000
Reservado
para
coordenador
–
o
0x000000000000FFFF
Endereço de Broadcast
–
Endereço de 16-bit da rede.
Se não conhecido, deve ser
configurado como 0xFFFE
Configura o máximo numero
de pulos que um pacote pode
dar num broadcast. Se
configurado em 0x00, é
configurado o valor máximo.
Opção de transmissão:
0x01 – Desabilita ACK;
Options
16
0x00
0x20 – Habilita criptografia
APS (se EE = 1)
0x40 – Utiliza o timer out
RF
Data
Checksum
Comman
d
17
Data
18 +N
18 + N+1
0x01
Comando do protocolo para
Leitura dos sensores
Dados dos sensores
0xXX
121
Anexo V
Tabela 13: Frame de recepção de dados e configurações.
Campos do Frame
Start
A Delimiter
A
P
I
Posição
Exemplo
0
0x7E
MSB 1
0x00
LSB 2
0x0E
3
0x90
MSB 4
0x00
5
0x13
6
0xA2
7
0x00
8
0x40
9
0x52
10
0x2B
LSB 11
0xAA
MSB 12
0x7D
LSB 13
0x84
Length
Frame type
F
r
a
m
e
64-bit
Address
Source
Descrição
Número de bytes entre
tamanho e o checksum
o
Indica que foi recepcionado um
pacote de dados de outro
dispositivo
Endereço
de
64-bit
do
dispositivo que enviou o dado.
Se
igual
a
0xFFFFFFFFFFFFFFFF
o
endereço é desconhecido.
Frame Data
16-bit Destination
Network Address
Endereço
de
16-bit
dispositivo que enviou
do
0x01 – Pacote conhecido
0x02 – Pacote broadcast
Receive Options
14
0x01
0x20 – Pacote criptografado
com criptografia APS
0x40 – Pacote foi enviado por
um dispositivo final
RF
Data
Checksum
Comman
d
15
Data
15+N
15+N+1
0x07
Indica o tipo de resposta
Dado solicitado. Pode retornar
vazio se for configuração.
0xXX
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
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 antihorário;

2º byte setado em 1 motor 2 com
giro horário, setado em 0 giro antihorário;

3º byte setado em 1 motor 3 com
giro horário, setado em 0 giro antihorário;
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 antihorário;

2º byte setado em 1 motor 2 com
giro horário, setado em 0 giro antihorário;

3º byte setado em 1 motor 3 com
giro horário, setado em 0 giro antihorário;
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
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]

Documentos relacionados