محرك الطائرة بدون طيار ESP32 LoRa: 10 خطوات
محرك الطائرة بدون طيار ESP32 LoRa: 10 خطوات
Anonim
Image
Image
برهنة
برهنة

نناقش اليوم محركات الطائرات بدون طيار ، والتي يطلق عليها غالبًا المحركات "بدون فرش". تُستخدم على نطاق واسع في تصميم الطائرات ، وخاصة في الطائرات بدون طيار ، نظرًا لقوتها ودورانها العالي. سنتعرف على كيفية التحكم في محرك بدون فرش باستخدام ESC و ESP32 ، وإجراء تشغيل تناظري على ESC باستخدام وحدة التحكم LED_PWM الداخلية ، واستخدام مقياس الجهد لتغيير سرعة المحرك.

الخطوة 1: العرض التوضيحي

الخطوة 2: الموارد المستخدمة

الموارد المستخدمة
الموارد المستخدمة
  • صداري للاتصال
  • واي فاي لورا 32
  • ESC-30A
  • محرك بدون فرش A2212 / 13t
  • كابل USB
  • مقياس الجهد للتحكم
  • بروتوبورد
  • مزود الطاقة

الخطوة 3: Wifi LoRa 32- Pinout

واي فاي لورا 32- Pinout
واي فاي لورا 32- Pinout

الخطوة 4: ESC (التحكم الإلكتروني في السرعة)

ESC (التحكم الإلكتروني في السرعة)
ESC (التحكم الإلكتروني في السرعة)
ESC (التحكم الإلكتروني في السرعة)
ESC (التحكم الإلكتروني في السرعة)
  • متحكم السرعة الإلكتروني
  • دائرة إلكترونية للتحكم في سرعة محرك كهربائي.
  • يتم التحكم فيها من جهاز تحكم مؤازر قياسي 50 هرتز PWM.
  • يغير معدل تبديل شبكة الترانزستورات ذات التأثير الميداني (FETs). من خلال ضبط تردد تبديل الترانزستورات ، يتم تغيير سرعة المحرك. تتنوع سرعة المحرك عن طريق ضبط توقيت نبضات التيار الموفر لملفات المحرك المختلفة.
  • تحديد:

تيار الإخراج: 30 أمبير مستمر ، 40 أمبير لمدة 10 ثوانٍ

الخطوة 5: التحكم الإلكتروني في السرعة (ESC)

نظام التحكم الإلكتروني في السرعة ESC (ESC)
نظام التحكم الإلكتروني في السرعة ESC (ESC)

الخطوة 6: التحكم في محرك سيرفو PWM

التحكم في محرك سيرفو PWM
التحكم في محرك سيرفو PWM

سننشئ مؤازرة PWM للعمل على إدخال بيانات ESC عن طريق توجيه القناة 0 من LED_PWM لـ GPIO13 ، واستخدام مقياس الجهد للتحكم في التعديل.

من أجل الالتقاط ، سنستخدم مقياس جهد يبلغ 10 كيلو بايت كمقسم جهد. سيتم الالتقاط على القناة ADC2_5 ، التي يمكن الوصول إليها بواسطة GPIO12.

الخطوة 7: الالتقاط التناظري

الالتقاط التناظري
الالتقاط التناظري
الالتقاط التناظري
الالتقاط التناظري

التناظرية إلى التحويل الرقمي

سنقوم بتحويل قيم AD إلى PWM.

إن PWM للمؤازرة هو 50 هرتز ، وبالتالي فإن فترة النبض هي 1/50 = 0.02 ثانية أو 20 مللي ثانية.

نحن بحاجة للعمل خلال 1 مللي ثانية على الأقل إلى 2 مللي ثانية.

عندما يكون PWM عند 4095 ، يكون عرض النبضة 20 مللي ثانية ، مما يعني أننا يجب أن نصل إلى الحد الأقصى عند 4095/10 لنصل إلى 2 مللي ثانية ، لذلك يجب أن يتلقى PWM 410 *.

وبعد 1 مللي ثانية على الأقل ، وبالتالي 409/2 (أو 4095/20) ، يجب أن يتلقى PWM 205 *.

* يجب أن تكون القيم أعدادًا صحيحة

الخطوة 8: الدائرة - التوصيلات

الدائرة - التوصيلات
الدائرة - التوصيلات

الخطوة 9: كود المصدر

رأس

# تضمين // Necessário apenas para o Arduino 1.6.5 e posterior # تتضمن "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 # تعريف SDA 4 # تعريف SCL 15 # تعريف عرض RST 16 SSD1306 (0x3c ، SDA ، SCL ، RST) ؛ // Instanciando e ajustando os pinos do objeto "display"

المتغيرات

const int التكرار = 50 ؛ const int canal_A = 0 ؛ كونست إنت ريسولوكاو = 12 ؛ const int pin_Atuacao_A = 13 ؛ const int Leitura_A = 12 ؛ int potencia = 0 ؛ int leitura = 0 ؛ int ciclo_A = 0 ؛

اقامة

إعداد باطل () {pinMode (pin_Atuacao_A، OUTPUT) ؛ إعداد ledc (canal_A ، التكرار ، حل حل) ؛ 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 para Arial 16 display.setFont (ArialMT_Plain_16) ؛ }

حلقة

حلقة فارغة () {leitura = analogRead (Leitura_A) ؛ ciclo_A = خريطة (leitura، 0، 4095، 205، 410) ؛ ledcWrite (canal_A ، ciclo_A) ؛ بوتنسيا = خريطة (ليتورا ، 0 ، 4095 ، 0 ، 100) ؛ display.clear () ؛ // limpa o buffer تعرض display.drawString (0، 0، String ("AD:"))؛ 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 (potencia)) ؛ display.drawString (98، 36، String ("٪"))؛ display.display () ، // Mostra no display}

الخطوة 10: الملفات

قم بتنزيل الملفات

انا لا

بي دي إف