• Nenhum resultado encontrado

3.2 Projeto da cadeira robotizada

3.2.1 Camada de baixo n´ıvel

Nesta camada est˜ao os sensores, o acionamento e o controle de locomo¸c˜ao da cadeira. Esta ´e a camada que faz interface com o mundo real, sendo respons´avel por extrair informa¸c˜oes do ambiente e atuar no ve´ıculo.

Acionamento

O sistema de acionamento nativo da cadeira consiste de um conversor CC-CC que controla os dois motores de maneira independente. As diferentes dire¸c˜oes de movimento s˜ao controladas por um joystick, e diferentes velocidade m´aximas s˜ao configuradas no con- trole acoplado ao joystick. O sistema ainda possui uma interface de configura¸c˜ao acessada via computador e par^ametros como acelera¸c˜ao m´axima e m´ınima podem ser configurados. O sistema original ainda ´e dotado de um sistema de freios eletromagn´eticos usados como freios de estacionamento e acionados pelo m´odulo pot^encia sempre que o ve´ıculo estiver

Figura 7 – Resumo da arquitetura da cadeira. De baixo para cima est˜ao representadas as camadas 1 (Baixo N´ıvel), 2 (N´ıvel Intermedi´ario) e 3 (Alto N´ıvel), respectiva- mente.

parado. A comunica¸c˜ao com o conversor CC-CC, controle e interface de configura¸c˜ao se d´a por meio do protocolo CAN (Controller Area Network ) amplamente usado na ind´ustria.

Na adapta¸c˜ao da cadeira de rodas essa estrutura original de controle pode ser utilizada ao valer-se do protocolo CAN, como nos trabalhos Simpson et al. (1998), Thomas et al. (2009), Carlson e Millan (2013). Uma outra possibilidade ´e a abordada em Miller e Slack (1995) na cadeira Tin Man I na qual os autores utilizam uma estrutura mec^anica acionada por computadores para posicionar o joystick da cadeira na posi¸c˜ao desejada e assim locomover a cadeira. Por fim, outra possibilidade ´e se desfazer de todo o acionamento original da cadeira e instalar toda a eletr^onica respons´avel pelo acionamento dos motores como descrito nos trabalhos Miller e Slack (1995), Bourhis et al. (2001), Montesano et al. (2010), Bastos-Filho et al. (2014).

Para conceber a camada de mais baixo n´ıvel incialmente tentou-se utilizar o pro- tocolo CAN para enviar comandos para o controlador da cadeira, mas sem sucesso. Desta maneira optou-se por retirar toda a interface de controle e comando original da cadeira e substitu´ı-la por uma nova.

Para modificar a interface de comando e controle deve-se primeiro substituir o conversor CC-CC original da cadeira. Esse conversor CC-CC permite acionar cada um dos motores de maneira independente controlando a tens˜ao aplicada individualmente. Tais conversores geralmente recebem como entrada um sinal de refer^encia e aplicam uma tens˜ao modulada pela largura, PWM (Pulse Width Modulated ), proporcional ao sinal de entrada. Para variar a tens˜ao de sa´ıda, que controlar´a o motor, ´e utilizado um PWM que

ao variar a largura dos pulsos ´e capaz de variar o valor m´edio de tens˜ao.sinal PWM que possui os n´ıveis 0 e 24 V permanece 50% do tempo relativo a um ciclo em n´ıvel alto, seu valor m´edio ser´a de 12 V e quanto maior for este tempo maior ser´a o valor m´edio do sinal at´e o limite de 24 V.

Para substituir o conversor CC-CC, o grupo optou por usar dois m´odulos id^enticos para controlar cada motor separadamente. Os m´odulos EM-243A do fabricante Electromen permitem controlar um motor por m´odulo controlando o valor da velocidade do motor (tens˜ao m´edia aplicada), sentido do movimento e limites de velocidade. Os m´odulos ainda permitem ter par^ametros alterados como rampas de acelera¸c˜ao, desacelera¸c˜ao, dentre outros (ELECTROMEN OY LTDA., 2013).

Para controlar o m´odulo EM-243A optou-se por utilizar um microntrolador. O microcontrolador dever´a selecionar o sentido do movimento usando entradas digitais do conversor CC-CC e selecionar´a a velocidade atrav´es de uma entrada digital (PWM) do m´odulo. Por hora, optou-se por utilizar o EM-243A com todas as rampas de acelera¸c˜ao iguais a zero, ou seja, toda refer^encia de velocidade que o m´odulo receber ser´a seguida imediatamente e sem atrasos (quando comparados com as constantes de tempo do motor). Microncontrolador

Para a escolha do microcontrolador optou-se por utilizar uma solu¸c˜ao amplamente dispon´ıvel no mercado e que seja f´acil de se utilizar. Ao optar-se pela plataforma de de- senvolvimento Arduino evita-se confeccionar placas de circuito impresso para as interfaces com o microcontrolador, tem-se dispon´ıvel grande variedades de bibliotecas, perif´ericos e uma grande comunidade de desenvolvedores.

Dentre as op¸c˜oes de Arduino escolheu-se o modelo Arduino Mega 2560, baseado no microcontrolador ATMega2560 , devido ao grande n´umero de entradas e sa´ıdas digitais e anal´ogicas dispon´ıveis neste (Tabela 2). O n´umero de entradas e sa´ıda foi determinante pois o microcontrolador ser´a o centro da camada de baixo n´ıvel, respons´avel por comandar todos os dispositivos ligados a esta camada.

Tabela 2 – Especifica¸c˜oes da Arduino Mega 2560.

Caracter´ıstica Valor

Alimenta¸c˜ao 6 − 20 V

Pinos Digitais Entrada e Sa´ıda (E/S) 54

PWM 14 (dos 54 Digitais)

Entradas anal´ogicas 16

UART 4

Clock 16 MHz

Protocolos SPI e I2C

Sensores

Ainda na camada de baixo n´ıvel ser˜ao conectados alguns sensores para satisfazer os requisitos de seguran¸ca e tamb´em para que a cadeira seja capaz de complementar habi- lidades de seu usu´ario. Para aumentar a seguran¸ca da cadeira ser˜ao instalados sensores de contato, sensores de dist^ancia, sensores que detectam desn´ıveis no ch˜ao e tamb´em sensores para medir a velocidade, evitando assim grandes acelera¸c˜oes ou velocidades incompat´ıveis com o ambiente. Para que algoritmos sejam capazes de ajudar os usu´arios nas tarefas de locomo¸c˜ao a cadeira deve possuir sensores para medir dist^ancias e que a tornem capaz de se localizar no ambiente.

Exclusivamente para a seguran¸ca s˜ao necess´ario dois tipos de sensor: dist^ancias e contato. Sensores de contato devem ser respons´aveis por parar a cadeira caso uma colis˜ao seja detectada. Esses sensores s˜ao os chamados sensores de fim de curso, Figura 8(a). Eles s˜ao basicamente chaves normalmente abertas conectadas entre um n´ıvel alto de tens˜ao e a uma das entradas digitais do microcontrolador. Quando ocorre o contato a chave fecha e o microcontrolador ´e capaz de detectar o contato. Este sensor, robusto e de baixo custo, funcionar´a como o ´ultimo n´ıvel de prote¸c˜ao da cadeira.

(a) (b) (c)

Figura 8 – Na esquerda sensor de fim de curso usado para detectar contato, no centro sensor infra-vermelho para detectar desn´ıveis no ch˜ao e na direita um encoder.

Para detectar grandes desn´ıveis no solo (e.g., escadas ou degraus) que oferecem perigo para o usu´ario escolheu-se um sensor de dist^ancia infravermelho, Figura 8(b), que a partir da reflex˜ao de uma luz infra-vermelha emitida pelo sensor ´e capaz de medir a dist^ancia. Este sensor aponta para o ch˜ao e quando detectada uma dist^ancia maior do que a previamente configurada ele envia um sinal digital para o microcontrolador.

Para medir a velocidade do ve´ıculo e tamb´em para localizar a cadeira, foram instalados dois enconders nos eixos dos motores. Encoders s˜ao sensores capazes de medir a posi¸c˜ao angular atrav´es da rota¸c˜ao de seu eixo. Eles s˜ao compostos de um emissor e um detector de luz e, entre estes, um disco ranhurado que est´a conectado ao eixo do encoder. Ao girar o disco ranhurado hora interrompe o fluxo luminoso hora n˜ao, gerando pulsos ou ticks que, quando processados, fornecem a medida do deslocamento angular do eixo do encoder. Para processar os pulsos os dois encoders s˜ao ligados no microcontrolador que ir´a

processar o n´umero de pulsos e transformar esta medida em velocidade e em deslocamento linear das rodas.

Os encoders instalados nos eixos dos motores possuem a resolu¸c˜ao de 500 pulsos por rota¸c˜ao (AUTONICS, 2016) e devido a redu¸c˜ao existente entre o eixo do motor e a roda da cadeira, cada pulso do encoder ´e traduzido em um deslocamento de 0, 02 mm da roda. Estes s˜ao lidos utilizando uma biblioteca que utiliza interrup¸c˜oes para fazer a leitura (PJRC, 2014). Por conta disso e da elevada resolu¸c˜ao do sensor se a cadeira se deslocar com velocidade superior a 320 mm s−1 ocasionar´a uma taxa de interrup¸c˜ao no microcontrolador de 16 MHz que ´e igual ao clock de opera¸c˜ao do Arduino Mega 2560. Para evitar que estas interrup¸c˜oes interferissem no desempenho do sistema optou-se por instalar um segundo microcontrolador, do mesmo tipo do primeiro, que ficar´a respons´avel pela leitura dos encoders e c^omputo da odometria (dead reckoning) da cadeira.

No segundo Arduino Mega 2560 al´em das leituras dos enconders ser´a feita a lei- tura de uma IMU e a fus˜ao dos sensores (enconder e IMU). A comunica¸c˜ao entre os microcontroladores ´e serial via UART (Universal Asynchronous receiver/transmitter ).

Com o objetivo de melhorar o desempenho do sistema no que se diz respeito a localiza¸c˜ao, foi instalada uma IMU. Uma IMU ´e um MEMs (Micro-Eletronic-Mechanic System) que atrav´es micro estruturas mec^anicas s˜ao capazes de medir velocidade angular, atrav´es de um girosc´opio e acelera¸c˜oes atrav´es de aceler^ometros. Para o projeto utilizou- se uma IMU que possui aceler^ometro, girosc´opio e b´ussola, por´em utilizou-se apenas o girosc´opio cujas leituras s˜ao fundidas com a dos encoders atrav´es de um filtro de Kalman (LAUSZUS, 2012).

Ainda ´e necess´ario que a cadeira possua um sensor capaz de detectar obst´aculos que estejam no seu trajeto. Para isso foram instalados dois sensores: uma c^amera e um Laser Range Finder. Esses sensores ao contr´ario dos anteriormente citados n˜ao est˜ao conectados diretamente aos microcontroladores e sim na camada intermedi´aria.

Um Laser Range Finder ´e um sensor usado para medir dist^ancias. Tipicamente ele funciona emitindo um feixe de luz infravermelho em uma dire¸c˜ao e medindo a defasagem da luz refletida de volta para o sensor (SICK SENSOR INTELLIGENCE, 2013). A partir desse valor o sensor ´e capaz de medir a dist^ancia que o objeto que refletiu a luz se encontra. Um Laser Range Finder geralmente emite v´arios feixes em um intervalo angular que pode ser de 180 ∘ou 270 ∘, por exemplo. Este sensor ´e capaz de realizar leituras com resolu¸c˜oes que podem variar de 0,5 ∘ a 1∘ e fazem uma leitura completa (todo intervalo angular) em taxas elevadas, de 10 a 20 Hertz (SICK SENSOR INTELLIGENCE, 2012; SICK SENSOR INTELLIGENCE, 2006; SICK SENSOR INTELLIGENCE, 2013).

Sensores como esse s˜ao capazes de fornecer um mapeamento do ambiente com

localiza¸c˜ao e desvios de obst´aculos, como verificados nos trabalhos Roger et al. (2009), Iturrate et al. (2009), Bastos-Filho et al. (2014).

Para equipar a cadeira foi escolhido Laser Range Finder TiM551 do fabricante SICK. Este modelo foi escolhido pela variedades de interfaces que fornece (Tabela 3), pelo seu tamanho compacto e pelo baixo consumo de energia. Seu maior ponto negativo ´

e o elevado custo (em torno de e2200,00 (GENERATION ROBOTS, 2016)).

Tabela 3 – Especifica¸c˜oes do Laser Range Finder TiM551 (SICK SENSOR INTELLI-

GENCE, 2013).

Caracter´ıstica Valor

Alcance 0, 05 a 8 m

Campo de Vis˜ao 270 ∘

Frequ^encia de varredura 15 Hz

Consumo de Energia 3 W

Interfaces USB, Serial e Ethernet

C^amera s˜ao sensores usados tanto para tele-opera¸c˜ao quanto para localizar obst´aculos (CARLSON; MILLAN, 2013), sendo portanto um importante sensor a ser instalado em uma cadeira robotizada. Deu-se prefer^encia para uma c^amera que possu´ısse grande campo de vis˜ao para facilitar a tele-opera¸c˜ao e que possu´ıa uma interface de comunica¸c˜ao sim- ples. Deste modo, escolheu-se a c^amera Axis 215 PTZ, uma c^amera com interface HTTP (Hypertext Transfer Protocol ), conectada atrav´es de rede Ethernet, com campo de vis˜ao de 178 ∘ e pan-tilt digitais.

Com os itens da camada de baixo n´ıvel definidos deve-se agora apresentar como eles se comunicam com as aplica¸c˜oes de alto n´ıvel, para isso apresenta-se a camada inter- medi´aria.

Documentos relacionados