সুচিপত্র:

ESP32 LoRa নিয়ন্ত্রিত ড্রোন ইঞ্জিন: 10 টি ধাপ
ESP32 LoRa নিয়ন্ত্রিত ড্রোন ইঞ্জিন: 10 টি ধাপ

ভিডিও: ESP32 LoRa নিয়ন্ত্রিত ড্রোন ইঞ্জিন: 10 টি ধাপ

ভিডিও: ESP32 LoRa নিয়ন্ত্রিত ড্রোন ইঞ্জিন: 10 টি ধাপ
ভিডিও: Using Heltec ESP32 OLED Wifi Kit 2024, নভেম্বর
Anonim
Image
Image
প্রদর্শন
প্রদর্শন

আজ আমরা ড্রোন ইঞ্জিন নিয়ে আলোচনা করছি, যাকে প্রায়ই "ব্রাশহীন" মোটর বলা হয়। এয়ারমোডেলিংয়ে এগুলি ব্যাপকভাবে ব্যবহৃত হয়, মূলত ড্রোনগুলিতে, তাদের শক্তি এবং উচ্চ ঘূর্ণনের কারণে। আমরা ESC এবং ESP32 ব্যবহার করে ব্রাশহীন মোটর নিয়ন্ত্রণ করা, অভ্যন্তরীণ LED_PWM কন্ট্রোলার ব্যবহার করে ESC এ একটি এনালগিক অ্যাকচুয়েশন করা এবং মোটরের গতি পরিবর্তন করার জন্য একটি পোটেন্টিওমিটার ব্যবহার সম্পর্কে জানতে পারব।

ধাপ 1: বিক্ষোভ

ধাপ 2: ব্যবহৃত সম্পদ

ব্যবহৃত সম্পদ
ব্যবহৃত সম্পদ
  • সংযোগের জন্য জাম্পার
  • ওয়াইফাই লোরা 32
  • ESC-30A
  • ব্রাশহীন A2212 / 13t ইঞ্জিন
  • USB তারের
  • নিয়ন্ত্রণের জন্য পোটেন্টিওমিটার
  • প্রোটোবোর্ড
  • বিদ্যুৎ সরবরাহ

ধাপ 3: ওয়াইফাই লোরা 32- পিনআউট

ওয়াইফাই লোরা 32- পিনআউট
ওয়াইফাই লোরা 32- পিনআউট

ধাপ 4: ইএসসি (ইলেকট্রনিক গতি নিয়ন্ত্রণ)

ইএসসি (ইলেকট্রনিক গতি নিয়ন্ত্রণ)
ইএসসি (ইলেকট্রনিক গতি নিয়ন্ত্রণ)
ইএসসি (ইলেকট্রনিক গতি নিয়ন্ত্রণ)
ইএসসি (ইলেকট্রনিক গতি নিয়ন্ত্রণ)
  • ইলেকট্রনিক স্পিড কন্ট্রোলার
  • বৈদ্যুতিক মোটরের গতি নিয়ন্ত্রণের জন্য ইলেকট্রনিক সার্কিট।
  • একটি স্ট্যান্ডার্ড 50Hz PWM সার্ভো কন্ট্রোল থেকে নিয়ন্ত্রিত।
  • এটি ফিল্ড ইফেক্ট ট্রানজিস্টর (FETs) এর একটি নেটওয়ার্কের সুইচিং রেটের তারতম্য করে। ট্রানজিস্টরের সুইচিং ফ্রিকোয়েন্সি সামঞ্জস্য করে, মোটর গতি পরিবর্তন করা হয়। মোটরের গতি বিভিন্ন হয়
  • বিশেষ উল্লেখ:

আউটপুট বর্তমান: 30A একটানা, 40A 10 সেকেন্ডের জন্য

ধাপ 5: ইএসসি ইলেকট্রনিক গতি নিয়ন্ত্রণ (ইএসসি)

ইএসসি ইলেকট্রনিক গতি নিয়ন্ত্রণ (ইএসসি)
ইএসসি ইলেকট্রনিক গতি নিয়ন্ত্রণ (ইএসসি)

ধাপ 6: PWM Servo মোটর নিয়ন্ত্রণ

PWM Servo মোটর নিয়ন্ত্রণ
PWM Servo মোটর নিয়ন্ত্রণ

আমরা GPIO13 এর জন্য LED_PWM- এর চ্যানেল 0 নির্দেশ করে ESC ডেটা ইনপুটে কাজ করার জন্য একটি PWM সার্ভো তৈরি করব এবং মডুলেশন নিয়ন্ত্রণের জন্য একটি পোটেন্টিওমিটার ব্যবহার করব।

ক্যাপচারের জন্য, আমরা ভোল্টেজ ডিভাইডার হিসাবে 10k এর একটি potentiometer ব্যবহার করব। GPIO12 দ্বারা অ্যাক্সেসযোগ্য ADC2_5 চ্যানেলে ক্যাপচার করা হবে।

ধাপ 7: এনালগ ক্যাপচার

এনালগ ক্যাপচার
এনালগ ক্যাপচার
এনালগ ক্যাপচার
এনালগ ক্যাপচার

এনালগ টু ডিজিটাল রূপান্তর

আমরা AD এর মানগুলিকে PWM এ রূপান্তর করব।

Servo এর PWM 50Hz, তাই পালস পিরিয়ড 1/50 = 0.02 সেকেন্ড বা 20 মিলিসেকেন্ড।

আমাদের কমপক্ষে 1 মিলিসেকেন্ড থেকে 2 মিলিসেকেন্ডে কাজ করতে হবে।

যখন পিডব্লিউএম 4095 এ থাকে, তখন পালস প্রস্থ 20 মিলিসেকেন্ড হয়, মানে আমাদের সর্বোচ্চ 2 9 মিলিসেকেন্ডে পৌঁছানোর জন্য 4095/10 এ পৌঁছানো উচিত, তাই পিডব্লিউএম 410 *গ্রহণ করা উচিত।

এবং কমপক্ষে 1 মিলিসেকেন্ডের পরে, তাই 409/2 (বা 4095/20), PWM 205 *গ্রহণ করা উচিত।

* মান অবশ্যই পূর্ণসংখ্যা হতে হবে

ধাপ 8: সার্কিট - সংযোগ

সার্কিট - সংযোগ
সার্কিট - সংযোগ

ধাপ 9: সোর্স কোড

হেডার

#অন্তর্ভুক্ত // প্রয়োজনীয়তা Apenas para o Arduino 1.6.5 e postior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // OLED_SDA -GPIO4 // OLED_SCL -GPIO15 // OLED_RST - GPIO16 #ডিফাইন এসডিএ 4 #এসসিএল 15 ডিফাইন করুন RST 16 SSD1306 ডিসপ্লে (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"

পরিবর্তনশীল

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;

সেটআপ

অকার্যকর সেটআপ () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (খাল_এ, freq, resolucao); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (খাল_এ, সিকলো_এ); display.init (); display.flipScreenVertically (); // Vira a tela verticalmente display.clear (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // austa a fonte para Arial 16 display.setFont (ArialMT_Plain_16); }

লুপ

অকার্যকর লুপ () {leitura = analogRead (Leitura_A); ciclo_A = মানচিত্র (leitura, 0, 4095, 205, 410); ledcWrite (খাল_এ, সিকলো_এ); potencia = মানচিত্র (leitura, 0, 4095, 0, 100); display.clear (); // limpa o buffer do display display.drawString (0, 0, String ("AD:")); display.drawString (32, 0, স্ট্রিং (leitura)); display.drawString (0, 18, স্ট্রিং ("PWM:")); display.drawString (48, 18, স্ট্রিং (ciclo_A)); display.drawString (0, 36, String ("Potência:")); display.drawString (72, 36, স্ট্রিং (potencia)); display.drawString (98, 36, স্ট্রিং ("%")); display.display (); // mostra no display}

ধাপ 10: ফাইল

ফাইলগুলি ডাউনলোড করুন

আইএনও

পিডিএফ

প্রস্তাবিত: