Skip to content

Latest commit

 

History

History
317 lines (181 loc) · 21.9 KB

README-pt.md

File metadata and controls

317 lines (181 loc) · 21.9 KB

Direção Elétrica para Embarcação Solar

Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus Florianópolis

Departamento Acadêmico de Eletrônica

Curso de Engenharia Eletrônica

Unidade Curricular: Projeto Integrador III

Professores:

  • Robinson Pizzio e Daniel Lohmann

Aluno:

  • Gabriel Ayres Rodrigues

Sumário

  1. Introdução
  2. Concepção
  3. Design
  4. Implementação
  5. Operação
  6. Considerações Finais
  7. Referências

Introdução

Esse módulo tem como objetivo controlar a direção da rabeta da embarcação Guarapuvu II, da equipe Zênite Solar do IFSC.

É inspirado no sistema atualmente implantado, desenvolvido por Cesar Dias Parente. Os arquivos do projeto podem ser encontrados aqui.

A embarcação da equipe Zênite é operada em competições de barcos solares, onde são exigidas alta performance e robustez. A equipe obteve êxito em diversos anos de competição, a direção elétrica contribuindo para isso especialmente em provas de manobras como o Slalom (Ziguezague).

O sistema eletrônico atual foi danificado após a competição em março de 2022, o que é um motivador para sua atualização.

Concepção

Pensando em um sistema de direção, a escolha de utilizar uma direção elétrica pode trazer maior responsividade mesmo tendo uma fração do peso de um sistema mecânico. Além disso, sistemas mecânicos podem pedir esforço físico do motorista e uma necessidade maior de manutenção. Por essas razões a direção elétrica é vantajosa no sistema da embarcação.

Abaixo está o diagrama representando um sistema de direção elétrica e suas partes. Diagrama concepção

Levando em contas os elementos acima, os seguintes problemas devem ser confrontados:

  • Sistemas eletrônicos em veículos devem possuir alta robustez devido às vibrações ao qual são expostos. No caso da embarcação em alta velocidade, especialmente para operações marítimas, os impactos são um grande problema (além da oxidação dos circuitos).
  • Como o veículo alvo é utilizado em competições cujo foco está na geração e consumo de energia, a solução deve ser tão eficiente quanto possível para garantir o sucesso da equipe.
  • Um ambiente competitivo entre veículos requer alta performance dessa direção, não apenas para alcançar a vitória mas garantir a segurança de todos. Portanto, a funcionalidade deve ser atendida tão bem quanto os outros parâmetros.

Para implementar o todo é preciso definir os requisitos das partes, e as possíveis propostas para satisfazê-los.

  • Sensores

Existem algumas opções para os sensores de rotação como: indutivo, óptico, sensor de efeito Hall, potênciometro de rotação, encoder. A alternativa mais econômica e de simples implementação é um potênciometro linear comum, atualmente utilizado no sistema da equipe Zênite.

Os tipos mais utilizados para sensores de direção (no sentido steering) no mercado são os seguintes: resistivos, encoders, e os de tecnologia GMR (Giant magnetoresistance). (veja as empresas consideradas em Referências)

Sensores desse nível são tecnologia de ponta e portanto estão fora de questão, de qualquer forma vale observar que o sensor resistivo permanece sendo utilizado (até mesmo em veículos comuns, como o sensor de posição borboleta).

Para um contraste entre os líderes: sensores resistivos têm desvantagem pelo desgaste e possível mal contato, os GMR podem sofrer interferência em ambientes com forte campo magnético, e os encoders (por serem digitais) apresentam um desafio na troca Precisão X Complexidade (preço).

Buscando o equilíbrio entre robustez, facilidade de implementação e preço, o sensor resistivo se destaca.

  • Controlador

A rede CAN implementada elimina a necessidade de cabeamento, com o próprio sinal, entre popa e proa. Isso garante redução de ruído na leitura dos sensores e aproveitar o cabeamento CAN já existente, compactando o sistema.

Além disso, a comunicação pela rede possibilita o envio de dados pelo módulo e o controle da direção utilizando mensagens de outros módulos. Dessa forma, fica aberto o leque para futuras implementações que podem incluir:

Mensagens e/ou sensores de redundância
Modo de baixo consumo - Ativado pelo módulo de processamento de dados
Direção remota

Um microcontrolador de linha comercial será o suficiente para garantir a execução das tarefas e tempo de resposta desejados. Além de portas PWM e entradas do ADC, seria interessante um microcontrolador com interface CAN como o STM32F103xx ou equivalentes. No entanto, essa alternativa supera o preço de CI's transceiver e interface CAN, além disso sua programação é mais trabalhosa.

Pela facilidade de programação e preço, é proposto o ATmega328P. Para a conexão com a rede can, os CI's mais comum e de preço acessível são o transceiver MCP2551 e o circuito de interface CAN/SPI MCP2515.

O controlador que não está em foco é necessário. A função de leitura do potenciômetro do volante será desempenhada por outro módulo já presente na proa: MIC19

  • Circuito de Potência

O motor DC brushed é acionado por uma ponte H, atualmente alimentada por uma bateria de 12V. O circuito atual é implementado por dois integrados meia-ponte BTS7960.

Esse componente foi descontinuado, e a melhor alternativa encontrada foi o FAN7093. Como o atual já está em mãos e esse projeto tem como foco integração e telemetria, foi utilizado o mesmo circuito integrado.

  • Medidas e Feedback

É essencial fornecer à rede CAN dados sobre o consumo do sistema, por ser um sistema de potência alimentado por bateria. Portanto é proposto um sensor de corrente para cada braço da ponte H.

Convenientemente, o circuito integrado meia-ponte BTS7960 possui um pino de saída para sensoriamento de corrente — uma fonte de corrente é conectada à saída, e a corrente IS é proporcional à corrente na carga IL de acordo com o resistor de medida RIS.

Alternativamente, poderia ser usado um circuito como o INA240, sensor de corrente bidirecional ultrapreciso com rejeição de PWM. Da mesma família de CI's, o INA826 será utilizado para medida de tensão da bateria (tensão na ponte H).

Essas medidas devem contribuir para o feedback, que também terá o dado de posição da rabeta. Levar esses dados à um display garante que o piloto tenha conhecimento sobre o estado do sistema e sobre o consumo que sua pilotagem está provocando.

Design

O módulo foi desenvolvido com o software Kicad, o projeto está na pasta hardware desse git e seu esquemático completo pode ser visualizado aqui. Abaixo está o esquemático geral:

Esquemático geral

Os componentes escolhidos a partir da análise na concepção são os seguintes: Potenciômetros Lineares, Atmega328P, BTS7960, MCP2515, MCP2551 (ou MCP2561), e INA826.

Para estar de acordo com os módulos do sistema da embarcação, também serão necessários os seguintes componentes:

2 conectores fêmea RJ45,
2 borne fêmea 2EDGRC 2 vias (robusto e prático, alternativa é usar terminal block),
soquete estampado 28 pinos para o atmega328p,
diodos zener para proteção dos ADC do microcontrolador,
2 cristais osciladores

O software Kicad possui uma função para exportação de lista completa de materiais (BOM - Bill Of Materials). Pode ser encontrada na pasta hardware, neste link.

Abaixo está a previsão em 3D do resultado final. Como será explicado na etapa de implementação, a PCB foi confeccionada com a ajuda de uma fresadora da instituição.

Frente Trás

Vale notar que este repositório possui uma branch exclusiva para uma placa encomendada, cujo layout foi aprimorado e a silkscreen foi propriamente desenhada para auxiliar na etapa de Implementação e possíveis reparos. Essa placa não foi utilizada durante o projeto pela data de entrega da mesma.

Encomendada Frente Encomendada Trás

Implementação

Confecção da PCB

A PCB foi confeccionada pela fresadora CNC do DAELN, operada pelos técnicos do departamento, o resultado é mostrado abaixo. Como a placa confeccionada não apresentou o espaçamento mínimo desejado para a malha de potência, uma retificadeira foi usada para excluir as trilhas indesejadas — é importante lembrar que esse tipo de ferramenta pede o uso de EPI.

Ajustes com a dremel EPI

A placa foi estanhada para proteger o circuito contra oxidação, e as vias foram feitas com fios de cabo de rede, cortados no tamanho adequado e então soldados.

Da ordem dos componentes, a solda foi feita da seguinte forma: SMD, CI, Through-hole sendo os conectores os últimos (para evitar esforço físico na placa).

Após o trabalho na placa, foi alcançada a conclusão de que os CI da ponte H devem perceber os SMD. Essa troca é interessante pois o modelo precisa ser soldado com calor, no caso com auxílio de soprador térmico. A placa soldada pode ser vista na figura.

Frente Trás

Finalizados os processos de preparação, é dado início à programação do microcontrolador, que é feita na linguagem C. As bibliotecas utilizadas e código fonte podem ser encontradas na pasta firmware desse repositório.

Operação

A etapa de operação fica dividida entre duas partes: Programação e testes de bancada. Dado início na lógica básica, como quais periféricos do microcontrolador são utilizados, estas etapas se desenvolvem em conjunto.

Programação

Durante todo o processo foi utilizado como referência o datasheet da microchip para o atmega328p, que se encontra nas Referências deste trabalho.

Na configuração em si dos periféricos, começando pelo ADC, foi encontrado um dilema sobre qual orientação dos potenciômetros do sistema. Como o sistema está em upgrade foi descartada a configuração atual. Fica então definido que o código desenvolvido pressupõe as seguintes relações:

Potenciômetro Posição da Rabeta
Valor máximo limite de estibordo
Valor médio centrada
Valor mínimo limite de bombordo
  • ADC

O sistema mecânico que acopla o motor DC ao potênciometro de leitura da rotação tem um limite próximo aos 270°. A capacidade de manobrar com mais de 90° para cada lado se provou útil no passado. Com isso em mente, e considerando que não é necessária uma precisão extrema no controle desse ângulo, o ADC de 8 bits é suficiente para os três canais:

  • Sensor de tensão
  • Sensor de corrente
  • Sensor de rotação

A escala das medidas é configurada pelos coeficientes em adc.c, basta operar algumas medidas com coeficiente unitário e então fazer o cálculo.

$$ coeficiente = {ValorDesejado \over ValorObtido} $$

É interessante fazer esse teste com o valor de fundo de escala, pois o "Valor Desejado" é naturalmente conhecido.

  • Rede CAN

Do trabalho com a biblioteca CAN: a rede CAN é implementada a partir de ID's, tendo identificação dos módulos no barramento e de suas mensagens. Para gerar esses ID's a equipe Zênite desenvolveu um script que gera esses valores para o módulo em desenvolvimento.

Esse caminho também trás segurança, garantindo que não haverão ID's iguais e reduzindo possíveis confusões causadas por erro humano e/ou desenvolvimento paralelo. Tudo isso pode ser encontrado no repositório CAN_IDS.

Tendo os ID's gerados para o módulo e suas mensagens, é preciso alterar o can_filter.h para incluir os ID's de quem se deseja escutar (no caso esse projeto precisa escutar o MIC19), e criar as funções de extração e envio de mensagens em can_app.c/h.

  • PWM

Alguns pontos chave para a operação do PWM: Timer escolhido, prescaler (frequência desejada), definição do duty cycle (nesse caso implementado pela função set_pwm em hbridge.c).

Por um erro na etapa de Design, as saídas PWM estão conectadas nos pinos com o timer básico do ATmega328P, o Timer/Counter 0. O Modo de operação do timer deve ser o de phase correct PWM (que garante maior sincronismo em relação ao Fast PWM). Como descrito no datasheet a frequência pode ser calculada da seguinte forma:

$$ fOCnxPWM = {fclkI/O \over {N * 510}} $$

fOCnxPWM é a frequência do PWM nas portas OCnx (no caso OC0A e OC0B, em PD5 e PD6)
fclkI/O é a frequência de clock do cristal oscilador (16MHz)
N é o prescaler configurado

Esse timer possui menos bits e menor funcionalidade em comparação aos outros dois. Para a aplicação o único impacto foi a utilização de uma frequência inferior ao desejado (~3921.5Hz). Isso acontece pela falta de opções de prescaler no Timer/Counter0:

prescaler = 1, fPWM =  31.37kHz (supera os limites do CI half-bridge)
prescaler = 8 --> 3.92kHz  	 (utilizado)

Testes no Circuito

Os testes em bancada foram feitos com o auxílio de fontes de tensão variada, nos laboratórios do IFSC câmpus Florianópolis.

Foram efetuados os testes do ADC e da rede CAN, esses resultados foram visualizados no computador pela comunicação serial conectando um arduino ao barramento Usart da placa.

No caso do PWM é necessário o uso de osciloscópio, portanto são deixadas as figuras para alguns dos testes executados com o auxílio de um reostato.

Duty Cycle 40% Sinal Duty Cycle 40% Valores
Duty Cycle 40% signal Duty Cycle 40% values
Duty Cycle 80% Duty Cycle 80% Valores
Duty Cycle 80% signal Duty Cycle 80% values

Para testar o circuito com alta corrente foi reduzida a resistência no reostato e mantido o duty cycle:

Duty Cycle 80% 3A Duty Cycle 80% Valores
Duty 80% Signal (3A) Duty 80% Values (3A)

Esses resultados foram satisfatórios, tendo em vista que o circuito não estava acumulando calor, o PWM estava de acordo com o desejado a partir da configuração, e os valores de acordo com o datasheet.

Testes com Motor

O próximo passo é o teste com o motor. A montagem do teste em bancada é feita na embarcação, com fontes de bancada, placas e conexões necessárias.

Durante o teste com motor foram implementadas lógicas de operação ao PWM da ponte H:

Ponte H ativada pela diferença entre os potenciômetros
Começo centrado                              		 
Centro forçado caso não haja comunicação      		 
Proteção contra lado invertido

A última lógica foi julgada interessante considerando que o próprio sistema é montado/desmontado para viagens e testes na água. É possível que haja um erro de conexão que, sem essa proteção, poderia fazer com que um giro contínuo de 360° danificasse o sistema.

A parte mecânica pode ser vista na figura abaixo. O eixo da transmissão é acoplado na correia pelo disco, e o motor DC da direção controla a correia. No topo desse pode ser visto o potenciômetro utilizado para medida de rotação.

Os testes com motor foram um sucesso utilizando as fontes de bancada, o vídeo do funcionamento está na pasta Imagens. Devido ao tamanho do arquivo o github não pode executá-lo, portanto precisa ser baixado. Uma alternativa é utilizar este link do drive.

Durante o teste alimentado com a bateria de 12V o sistema deixou de funcionar. A falta de capacitância para a tensão de entrada causou falha em um dos CI de meia ponte, após reposição do CI e correção dos valores no esquemático o sistema está seguro e operacional.

Considerações

Todos os periféricos do microcontrolador estão funcionais. Todas as medidas elétricas, que eram um dos principais objetivos, apresentaram precisão satisfatória.

A lógica essencial do funcionamento está completa, existem travas de segurança e por fim o motor pode ser movimentado.

Performance dos componentes: satisfatória.

Confecção da placa: resultado ruim, a fabricação ocasionou mais trabalho e comprometeu a robustez do sistema. Para atender corretamente o objetivo de um sistema mais robusto deve ser utilizada a placa encomendada.

Abaixo podemos ver o sistema montado com um suporte experimental — devido às dimensões da placa, é preciso ser fabricado um suporte dedicado à mesma.

Ao lado é mostrada o módulo fonte principal (MFP19) que converte a tensão no banco de baterias e fornece os 18V da rede CAN. Os futuros suportes do barco devem seguir este modelo feito com impressão 3D.

Sistema Montado Exemplo de suporte

Para efeito de comparação, aqui estão as imagens do sistema anterior.

Sistema Antigo Ponte H

Próximos Passos

Alguns dos próximo passos para esse módulo e futuras atualizações:

  • PWM responsivo aos movimentos do piloto
  • Projeto da Ponte H ou escolha de um CI não descontinuado
  • Mensagens e/ou sensores de redundância
  • Modo de baixo consumo - Ativado pelo módulo de processamento de dados
  • *Direção remota

*O sucesso dessa etapa criaria espaço para ainda outra atualização: O barco autônomo.

Referências

Datasheet ATmega328P: Microchip, Atmel ATmega328P

Pesquisa por sensores de steering no mercado: Bosch, CUI Inc, TT Electronics