Tutorial : ARDUINO + ESC + Motor sem escova (Brushless) => DRONE

Depois que comprei um Drone Phantom 2, estou estudando as partes do mesmo. 

http://labdegaragem.com/forum/topics/dji-phantom-2-quadricoptero

O ESC ou controlador eletrônico de velocidade é o circuito que controla o motor sem escovas (BLDC) que é usado em Drones ou aeronaves de aeromodelismo. 

Fiz algumas medições com osciloscópio no ESC do Phantom 2, mas por ser uma aeronave cara, fiquei com receio de danificar algo. E se algum motor falhar em pleno vôo, pode ser o fim do Drone. 

Portanto comprei algumas peças (que poderão servir também de backup) : um conjunto  de 4 motores BLDC, um ESC do Phantom 2 e um ESC comum. 

Nessa plataforma da foto que estou montando, pretendo fazer testes dos ESCs e dos motores. Pretendo medir o RPM, corrente de consumo, temperatura e quem sabe até empuxo da turbina. 

Tá ficando muito legal ! Aos poucos, irei disponibilzar  os avanços no projeto. Pretendo estudar a fundo o funcionamento dos ESCs com esses motores. 

Exibições: 31375

Responder esta

Respostas a este tópico

Esse é o pedaço  da placa de circuito do Hard Disk já cortado e com as conexões soldadas com fio fino de cobre. Com essas conexões, consegui o controle total do Driver L6232 e aproveitei a montagem pronta. ( a parte analógica do circuito) . 

Girando um motor de HD - Driver L6232  - Formas de Ondas

Consta no Datasheet do L6232:  Cada meia ponte H é formada por FETs DMOS . E dois pinos compatíveis com TTL e CMOS são usados para acionar esses FETs . Existem três meias pontes H ( A, B e C) . 

INL - porta lógica de entrada que aciona o FET DMOS na parte baixa ( LOWER) - Ativo nível alto (High) 

INU - porta lógica de entrada que aciona o FET DMOS na parte superior ( UPPER) - Ativo nível baixo  (Low) 

Como no Datasheet, não tinha a carta de tempo dos pinos de entrada ( INL e INU) e nem dos pinos de saída (OUT) conectados no motor, tive que medir com o scope e depois com o analisador lógico a placa em funcionamento. Sem essas informações, provavelmente eu não conseguiria fazer o motor girar. 

Essas formas de onda são CH1 = INL A e CH2 = OUT A 

Veja que no canal 1, o nível é TTL (5V) e no canal 2 a tensão é analógica 12V

Essas formas de onda são CH1 = INU A e CH2 = OUT A 

Veja que no canal 1, o nível é TTL (5V) e no canal 2 a tensão é analógica 12V

As formas de ondas das fases B e C são similares, mas defasadas entre si. Na carta do analisador lógico, isso ficará bem visível . 

Esse forma de onda é sobre o Resistor SENSE que é usado para medir corrente no motor :

Como o resistor era de 0,9 ohms, podemos deduzir que a corrente 

era de aproximadamente 1 A .    V = R x I      I = V / R    I = 1,09 / 0,9 = 1,2 A 

Essa forma de onda é muito importante ! Cada rotação corresponde á quatro ciclos elétricos

Essas formas de onda são CH1 = Sensor òtico de RPM e CH2 = INL B  

Achei esse desenho muito interessante que explica o que são ciclos elétricos, incrementos na Fase e graus mecânicos. Retirado do Datasheet de outro driver L6238. Muito legal !  Dúvidas ? Perguntem...

Essa forma de onda, exemplifica perfeitamente os 6 incrementos de Fases durante 1 ciclo eletrico do Motor sem escovas de Hard Disk ( Motor BLDC) . Essa forma de onda é de uma das saidas do Driver ( OUT A) para o Motor. (modo Linear sem PWM) 

Fase 1 = DMOS upper e DMOS Lower - desligados 

Fase 2 = DMOS upper  ligado 

Fase 3 = DMOS upper  ligado

Fase 4 = DMOS upper e DMOS Lower - desligados 

Fase 5 = DMOS lower  ligado 

Fase 6 = DMOS lower  ligado

Para demonstração, vejam essas cartas de tempo para Motores com 6 Fases :

Essa carta resumida é das portas de controle das meia pontes H:

H = higher (Upper)    L = Lower 

E essa carta é sobre as tensões sobre as bobinas do Motor de 6 Fases elétricas:

( para entender a forma de onda do scope anexada acima) 

Girando um motor de HD - Driver L6232  - Analisador Lógico 

Depois que fiz uma análise completa de todos os pinos do Driver L6232, passei a fazer uma varredura dos pinos com o analisador lógico. Esse foi o pulo do gato. Dessa forma, eu consegui uma carta de tempo precisa de todos os pinos de controle das Meia Pontes H !

Vejam a base de tempo e as defasagens das Fase A, B e C . 

Essa carta de tempo é da placa do Hard disk em funcionamento. 

De posse dessa carta de tempo acima, e após a montagem do circuito de controle com o Arduino, veja a carta de tempo similar que eu consegui com o meu Sketch . Percebam que eu programei uma velocidade rotacional menor do motor. A base de tempo é bem maior. 

Anexei o Sketch para que tenham idéia dos testes iniciais . 

L6232HDMotorA.INO 

Anexos

Girando um motor de HD - Driver L6232  - Conexão com o Arduino 

Como eu ainda não completei o desenho do diagrama de conexão do Arduino com o Driver de Motor L6232, estou anexando somente uma parte do desenho. Essas são as conexões das portas Digitais do Arduino com as portas de entrada do L6232 . 

O Driver L6232 tem também duas portas de entrada analógicas que são usadas para controle de tensões de Referência. Não estão mostradas no diagrama da minha montagem ainda. Dependendo do nível de tensão nesses pinos ( de 0,4 V a 5,5 V) são definidos os modos de uso do driver - linear ou PWM . Não fiz muitos testes, mas com esses pinos dá para controlar a corrente usada no motor. Usei dois potenciômetros para ajustar os níveis de tensão nesses pinos. Dependendo dos ajustes, as formas de ondas ficam bem complexas. 

  L6232 - pino 17 -  PWM VREF 

  L6232 - Pino 18 - LIN VREF

Percebi nos vários testes que fiz, que o motor não girava se usasse uma velocidade rotacional alta ao ligar o motor. 

O motor deve começar com uma rotação baixa, e aos poucos pode-se ir aumentando a velocidade. 

O sketch ficou bem interessante - simples mas funcional . Lembrando que ainda existe o segredo da partida do motor. 

O negócio é tão complexo, que a IBM até criou uma patente para isso. Acompanho um forum de Drones, onde uns malucos estão desenvolvendo ESCs e a grande dificuldade é a partida do motor. 

Esse é o Sketch que inicia o motor com RPM baixo e depois vai aumentando até um limite. Se passar do limite , no meu programa,  o motor perde força e para . Esse negócio de controlar motor BLDC é muito complexo !!

L6232HDMotorB,INO   ( esse é o programa que eu usei no vídeo do teste do motor ) 

Anexos

Girando um motor de HD - Driver L6232  - partida do motor BLDC

Como eu já havia informado, a partida de um motor BLDC para mim ainda é um segredo. 

Por isso resolvi capturar os sinais das portas de entrada do Driver L6232 da placa do HD, quando o motor dá a partida. 

( descobri no datasheet do L6238, que lá tem uma algoritmo de partida - depois estudarei - anexei o arquivo) 

Sabendo-se que :

INL - porta lógica de entrada que aciona o FET DMOS na parte baixa ( LOWER) - Ativo nível alto (High) 

INU - porta lógica de entrada que aciona o FET DMOS na parte superior ( UPPER) - Ativo nível baixo  (Low) 

L393 Pino 1 = é um sensor de rotação muito interessante usado na placa. O quarto fio do motor ( a união das três bobinas) envia um sinal para esse comparador de tensão, que gera uma onda quadrada de 5V. 

Essas são as  minhas conclusões. Assim que eu testar, postarei os resultados.

Posso estar enganado, mas acho que a partida  do motor compreende quatro fases. 

Depois o circuito aguarda um tempo (1 segundo) para o motor estabilizar (ele fica vibrando) e depois inicia a rotação de fato. 

1a Fase ( funciona como freio do motor)  - duração 70 ms 

INU A = High   INL A = High  => aciona o FET DMOS  na parte baixa ( LOWER A)

INU B = High   INL B = High  => aciona o FET DMOS  na parte baixa ( LOWER B)

INU C = High   INL C = High  => aciona o FET DMOS na parte baixa ( LOWER  C)

2a Fase - duração 50 ms 

INU A = Low  INL A = Low    => aciona o FET DMOS na parte superior ( UPPER A)

INU B = High   INL B = High  => aciona o FET DMOS  na parte baixa ( LOWER B)

INU C = High   INL C = Low  => desativa LOWER C e UPPER C 

3a Fase - duração 50 ms 

INU A = Low  INL A = Low    => aciona o FET DMOS na parte superior ( UPPER A)

INU B = High   INL B = Low   =>  desativa LOWER B e UPPER B 

INU C = High   INL C = High  => aciona o FET DMOS  na parte baixa ( LOWER C)

4a Fase - duração 1000 ms (1 segundo) 

INU A = High  INL A = Low    => desativa LOWER A e UPPER A

INU B = Low   INL B = Low   =>  aciona o FET DMOS na parte superior ( UPPER B)

INU C = High   INL C = High  => aciona o FET DMOS  na parte baixa ( LOWER C)

Eureka ! Acho que é isso mesmo !

Vejam esses exemplos de partida :

Anexos

Galera , fiz alguns testes usando essa sequencia acima de Partida, só que com o outro driver que eu tenho - o L6234 . Faz parte desse outro tutorial:

http://labdegaragem.com/forum/topics/tutorial-motor-sem-escova-bldc...

E descobri que a sequência de Partida possui mais fases ! No total 13 fases. 

A fase do freio do motor e mais duas cadências repetidas com 6 fases cada.

( cada cadência corresponde à mesma sequência de rotação do motor, mas com a duração sendo reduzida a cada fase) . Na primeira cadência , uma fase dura 1 segundo - o rotor fica balançando. E depois o motor avança na velocidade gradativamente, no embalo. 

Fiz alguns ajustes de tempo . E funcionou !!! Beleza ! 

Essa é a sequência completa de Partida do Motor BLDC com o driver L6232 :

Zero Fase ( funciona como freio do motor) - duração 250 ms
INU A = High INL A = High => aciona o FET DMOS na parte baixa ( LOWER A)
INU B = High INL B = High => aciona o FET DMOS na parte baixa ( LOWER B)
INU C = High INL C = High => aciona o FET DMOS na parte baixa ( LOWER C)

1a Fase - duração 50 ms
INU A = Low INL A = Low => aciona o FET DMOS na parte superior ( UPPER A)
INU B = High INL B = High => aciona o FET DMOS na parte baixa ( LOWER B)
INU C = High INL C = Low => desativa LOWER C e UPPER C

2a Fase - duração 50 ms
INU A = Low INL A = Low => aciona o FET DMOS na parte superior ( UPPER A)
INU B = High INL B = Low => desativa LOWER B e UPPER B
INU C = High INL C = High => aciona o FET DMOS na parte baixa ( LOWER C)

3a Fase - duração 1000 ms (1 segundo)
INU A = High INL A = Low => desativa LOWER A e UPPER A
INU B = Low INL B = Low => aciona o FET DMOS na parte superior ( UPPER B)
INU C = High INL C = High => aciona o FET DMOS na parte baixa ( LOWER C)

4a Fase - duração 50 ms 

INU A = High INL A = High => aciona LOWER A
INU B = Low INL B = Low => aciona UPPER B
INU C = High INL C = Low => desativa LOWER C e UPPER C

5a Fase - duração 40 ms

INU A = High INL A = High => aciona LOWER A
INU B = High INL B = Low => desativa LOWER B e UPPER B
INU C = Low INL C = Low => aciona UPPER C

6a Fase - duração 30 ms

INU A = High INL A = Low => desativa LOWER A e UPPER A
INU B = High INL B = High => aciona LOWER B
INU C = Low INL C = Low => aciona UPPER C

7a Fase - duração 23 ms
INU A = Low INL A = Low => aciona UPPER A
INU B = High INL B = High => aciona LOWER B
INU C = High INL C = Low => desativa LOWER C e UPPER C

8a Fase - duração 20 ms
INU A = Low INL A = Low => aciona UPPER A
INU B = High INL B = Low => desativa LOWER B e UPPER B
INU C = High INL C = High => aciona LOWER C

9a Fase - duração 17 ms
INU A = High INL A = Low => desativa LOWER A e UPPER A
INU B = Low INL B = Low => aciona UPPER B
INU C = High INL C = High => aciona LOWER C

10a Fase - duração 15 ms
INU A = High INL A = High => aciona LOWER A
INU B = Low INL B = Low => aciona UPPER B
INU C = High INL C = Low => desativa LOWER C e UPPER C

11a Fase - duração 15 ms
INU A = High INL A = High => aciona LOWER A
INU B = High INL B = Low => desativa LOWER B e UPPER B
INU C = Low INL C = Low => aciona UPPER C

12a Fase - duração 15 ms
INU A = High INL A = Low => desativa LOWER A e UPPER A
INU B = High INL B = High => aciona LOWER B
INU C = Low INL C = Low => aciona UPPER C

Bom dia amigo, já chegou a tentar medir o empuxo do conjunto motor+hélice?

Bom dia Fernando, 

Esse motor BLDC dos testes, é similar ao motor do Drone Phantom 2 . 

DJI 2212 / 920kv :

Carga recomendada (decolagem) = 300g / eixo

Empuxo máximo = 600g / eixo 

Temperatura de trabalho = -5 °C ~ 40 °C

Bateria recomendada = 3S LiPo

Tamanho do estator = 22×12 mm

KV = 920 rpm/V

Peso = 50g

Diametro do Rotor = 24×11 cm

Passo da Rosca = 9.4×4.3 polegadas

Galera , boas notícias! 

Muitos tentaram e somente esse espanhol conseguiu! 

Projeto fantástico ! Recomendo que vejam.

http://electronoobs.com/eng_arduino_tut91.php

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço