Mündəricat:

ESP32 LoRa İdarə Edilən Drone Mühərriki: 10 addım
ESP32 LoRa İdarə Edilən Drone Mühərriki: 10 addım

Video: ESP32 LoRa İdarə Edilən Drone Mühərriki: 10 addım

Video: ESP32 LoRa İdarə Edilən Drone Mühərriki: 10 addım
Video: Using two Heltec CubeCell LoRa ESP32 Boards HTCC-AB01 as remote switch as TX and RX 2024, Noyabr
Anonim
Image
Image
Nümayiş
Nümayiş

Bu gün tez -tez "fırçasız" mühərriklər adlanan dron mühərriklərindən bəhs edirik. Gücləri və yüksək fırlanma qabiliyyətinə görə, əsasən dronlarda, aerododelləşdirmədə geniş istifadə olunur. ESC və ESP32 istifadə edərək fırçasız bir motoru idarə etməyi, daxili LED_PWM nəzarətçisini istifadə edərək ESC -də oxşar bir hərəkət etməyi və motor sürətini dəyişdirmək üçün potensiometrdən istifadə etməyi öyrənəcəyik.

Addım 1: nümayiş

Addım 2: İstifadə olunan mənbələr

İstifadə olunan mənbələr
İstifadə olunan mənbələr
  • Bağlantı üçün tullananlar
  • Wifi LoRa 32
  • ESC-30A
  • Fırçasız A2212 / 13t mühərriki
  • USB kabeli
  • Nəzarət üçün potensiometr
  • Protoboard
  • Enerji təchizatı

Addım 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

Addım 4: ESC (Elektron Sürət Nəzarəti)

Elektron Sürət Nəzarəti (ESC)
Elektron Sürət Nəzarəti (ESC)
Elektron Sürət Nəzarəti (ESC)
Elektron Sürət Nəzarəti (ESC)
  • Elektron Sürət Nəzarətçisi
  • Elektrik mühərrikinin sürətini idarə etmək üçün elektron dövrə.
  • Standart 50Hz PWM servo idarəetmə sistemindən idarə olunur.
  • Sahə effektli tranzistorlar (FETs) şəbəkəsinin keçid sürətini dəyişir. Transistorların keçid tezliyini tənzimləyərək, motor sürəti dəyişdirilir. Mühərrikin sürəti, təchiz edilmiş cərəyan impulslarının vaxtını motorun müxtəlif sarımlarına uyğunlaşdırmaqla dəyişir.
  • Xüsusiyyətlər:

Çıxış cərəyanı: 30A davamlı, 40A 10 saniyə

Addım 5: ESC Elektron Sürət Nəzarəti (ESC)

ESC Elektron Sürət Nəzarəti (ESC)
ESC Elektron Sürət Nəzarəti (ESC)

Addım 6: PWM Servo Motor Nəzarəti

PWM Servo Motor Nəzarəti
PWM Servo Motor Nəzarəti

GPIO13 üçün LED_PWM kanalını 0 yönləndirərək ESC məlumat girişində hərəkət etmək üçün PWM servo yaradacağıq və modulyasiyanı idarə etmək üçün potensiometrdən istifadə edəcəyik.

Tutmaq üçün bir gərginlik bölücü olaraq 10k potansiyometrdən istifadə edəcəyik. Çəkmə GPIO12 tərəfindən əldə edilə bilən ADC2_5 kanalında aparılacaq.

Addım 7: Analog Capture

Analoq çəkmə
Analoq çəkmə
Analoq çəkmə
Analoq çəkmə

Rəqəmsal dönüşümün analoqu

AD dəyərlərini PWM -ə çevirəcəyik.

Servo PWM 50Hz -dir, buna görə də nəbz dövrü 1/50 = 0.02 saniyə və ya 20 millisaniyədir.

Ən azı 1 milisaniyədən 2 milisaniyəyə qədər hərəkət etməliyik.

PWM 4095 -də olduqda, nəbz genişliyi 20 millisaniyədir, yəni 2 milisaniyəyə çatmaq üçün 4095/10 maksimuma çatmalıyıq, buna görə PWM 410 *almalıdır.

Və ən azı 1 milisaniyədən sonra, buna görə 409/2 (və ya 4095/20), PWM 205 *almalıdır.

* Dəyərlər tam ədədlər olmalıdır

Addım 8: Dövrə - Bağlantılar

Dövrə - Əlaqələr
Dövrə - Əlaqələr

Addım 9: Mənbə Kodu

Başlıq

#include // Arduino 1.6.5 e posterior #üçün "SSD1306.h" daxil olmaq // "SSD1306Wire.h" daxil etmək // OLED_SDA -GPIO4 // OLED_SCL -GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #deffine RST 16 SSD1306 display (0x3c, SDA, SCL, RST); // "göstər" düyməsini basın

Dəyişənlər

const int freq = 50; const int kanal_A = 0; const int qətnamə = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potencia = 0; int leitura = 0; int ciclo_A = 0;

Qurmaq

boş quraşdırma () {pinMode (pin_Atuacao_A, ÇIXIŞ); ledcSetup (kanal_A, tezlik, həll); ledcAttachPin (pin_Atuacao_A, kanal_A); ledcWrite (kanal_A, ciclo_A); display.init (); display.flipScreenVertically (); // Vertikal vertikal ekran. Təmiz (); // ekran görüntüsünü təyin etmək üçün. setTextAlignment (TEXT_ALIGN_LEFT); // Arial 16 display.setFont (ArialMT_Plain_16) üçün yazı tipləri; }

Döngə

void loop () {leitura = analogRead (Leitura_A); ciclo_A = xəritə (leitura, 0, 4095, 205, 410); ledcWrite (kanal_A, ciclo_A); potencia = xəritə (leitura, 0, 4095, 0, 100); display.clear (); // buferdə display.drawString (0, 0, String ("AD:")) göstərin; display.drawString (32, 0, String (leitura)); display.drawString (0, 18, String ("PWM:")); display.drawString (48, 18, String (ciclo_A)); display.drawString (0, 36, String ("Potência:")); display.drawString (72, 36, String (potensiya)); display.drawString (98, 36, String ("%")); display.display (); // mostra ekran yoxdur}

Addım 10: Fayllar

Faylları yükləyin

MƏN YOX

PDF

Tövsiyə: