Obsah:

Motor dronu riadeného ESP32 LoRa: 10 krokov
Motor dronu riadeného ESP32 LoRa: 10 krokov

Video: Motor dronu riadeného ESP32 LoRa: 10 krokov

Video: Motor dronu riadeného ESP32 LoRa: 10 krokov
Video: drone #shorts 2024, November
Anonim
Image
Image
Ukážka
Ukážka

Dnes diskutujeme o dronových motoroch, často nazývaných „bezkartáčové“motory. Vďaka svojej sile a vysokej rotácii sa široko používajú v leteckom modelingu, hlavne v dronoch. Naučíme sa ovládať bezuhlíkový motor pomocou ESC a ESP32, vykonávať analogické ovládanie na ESC pomocou interného ovládača LED_PWM a pomocou potenciometra meniť otáčky motora.

Krok 1: Ukážka

Krok 2: Použité zdroje

Použité zdroje
Použité zdroje
  • Spojky pre pripojenie
  • Wifi LoRa 32
  • ESC-30A
  • Bezkartáčový motor A2212 / 13t
  • USB kábel
  • Potenciometer na ovládanie
  • Protoboard
  • Zdroj

Krok 3: Wifi LoRa 32- vývod

Wifi LoRa 32- vývod
Wifi LoRa 32- vývod

Krok 4: ESC (elektronické ovládanie rýchlosti)

ESC (elektronické ovládanie rýchlosti)
ESC (elektronické ovládanie rýchlosti)
ESC (elektronické ovládanie rýchlosti)
ESC (elektronické ovládanie rýchlosti)
  • Elektronický regulátor otáčok
  • Elektronický obvod na ovládanie otáčok elektromotora.
  • Ovládané zo štandardného 50Hz PWM servopohonu.
  • Mení rýchlosť prepínania siete tranzistorov s efektom poľa (FET). Nastavením frekvencie spínania tranzistorov sa zmenia otáčky motora. Otáčky motora sa menia nastavením časovania dodávaných prúdových impulzov na rôzne vinutia motora.
  • Technické údaje:

Výstupný prúd: 30A nepretržite, 40A po dobu 10 sekúnd

Krok 5: Elektronická regulácia rýchlosti ESC (ESC)

Elektronická regulácia rýchlosti ESC (ESC)
Elektronická regulácia rýchlosti ESC (ESC)

Krok 6: Ovládanie servomotora PWM

Ovládanie servomotora PWM
Ovládanie servomotora PWM

Vytvoríme servo PWM, ktoré bude pôsobiť na vstup údajov ESC, nasmerovaním kanála 0 LED_PWM pre GPIO13 a na ovládanie modulácie použijeme potenciometer.

Na zachytenie použijeme ako delič napätia potenciometer 10k. Zachytenie sa vykoná na kanáli ADC2_5, prístupnom z GPIO12.

Krok 7: Analógové snímanie

Analógové snímanie
Analógové snímanie
Analógové snímanie
Analógové snímanie

Analógovo -digitálna konverzia

Hodnoty AD prevedieme na PWM.

PWM serva je 50 Hz, takže doba impulzu je 1/50 = 0,02 sekundy alebo 20 milisekúnd.

Musíme konať najmenej 1 milisekundu až 2 milisekundy.

Keď je PWM na 4095, šírka impulzu je 20 milisekúnd, čo znamená, že by sme mali dosiahnuť maximum pri 4095/10, aby sme dosiahli 2 milisekundy, takže PWM by malo dostať 410 *.

A najmenej po 1 milisekunde, teda 409/2 (alebo 4095/20), by mal PWM dostať 205 *.

* Hodnoty musia byť celé čísla

Krok 8: Okruh - pripojenia

Obvod - pripojenia
Obvod - pripojenia

Krok 9: Zdrojový kód

Hlavička

#include // Potrebné doplnky pre Arduino 1.6.5 a novšie #zahrnúť „SSD1306.h“// o mesmo que #include „SSD1306Wire.h“// OLED_SDA -GPIO4 // OLED_SCL -GPIO15 // OLED_RST - Displej GPIO16 #define SDA 4 #define SCL 15 #define RST 16 SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"

Premenné

const int freq = 50; const int canal_A = 0; const int resolucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potencia = 0; int leitura = 0; int ciclo_A = 0;

Nastaviť

neplatné nastavenie () {pinMode (pin_Atuacao_A, VÝSTUP); ledcSetup (canal_A, freq, resolucao); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (canal_A, ciclo_A); display.init (); display.flipScreenVertically (); // Vira a tela verticalmente display.clear (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte pre Arial 16 display.setFont (ArialMT_Plain_16); }

Slučka

prázdna slučka () {leitura = analogRead (Leitura_A); ciclo_A = mapa (leitura, 0, 4095, 205, 410); ledcWrite (canal_A, ciclo_A); potencia = mapa (leitura, 0, 4095, 0, 100); display.clear (); // limpa alebo buffer do display display.drawString (0, 0, String ("AD:")); display.drawString (32, 0, String (leitura)); display.drawString (0, 18, reťazec ("PWM:")); display.drawString (48, 18, String (ciclo_A)); display.drawString (0, 36, String ("Potência:")); display.drawString (72, 36, String (potencia)); display.drawString (98, 36, reťazec ("%")); display.display (); // väčšinou žiadny displej}

Krok 10: Súbory

Stiahnite si súbory

INO

PDF

Odporúča: