ESP32 LoRa удирдлагатай дрон хөдөлгүүр: 10 алхам
ESP32 LoRa удирдлагатай дрон хөдөлгүүр: 10 алхам
Anonim
Image
Image
Жагсаал
Жагсаал

Өнөөдөр бид ихэвчлэн "сойзгүй" гэж нэрлэдэг дрон хөдөлгүүрүүдийн талаар ярилцаж байна. Тэд хүч чадал, эргэлт ихтэй тул нисэх онгоц үйлдвэрлэхэд ихэвчлэн ашигладаг. Бид сойзгүй моторыг ESC ба ESP32 ашиглан удирдах, LED_PWM дотоод хянагч ашиглан ESC дээр аналог ажиллуулах, моторын хурдыг өөрчлөх потенциометрийг ашиглах талаар суралцах болно.

Алхам 1: Жагсаал

Алхам 2: Ашигласан нөөц

Ашигласан нөөц
Ашигласан нөөц
  • Холбох зориулалттай үсрэгч
  • Wifi LoRa 32
  • ESC-30A
  • Сойзгүй A2212 / 13t хөдөлгүүр
  • USB кабель
  • Хяналтын потенциометр
  • Protoboard
  • Цахилгаан хангамж

Алхам 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

Алхам 4: ESC (Цахим хурдны хяналт)

ESC (Цахим хурдны хяналт)
ESC (Цахим хурдны хяналт)
ESC (Цахим хурдны хяналт)
ESC (Цахим хурдны хяналт)
  • Цахим хурд хянагч
  • Цахилгаан хөдөлгүүрийн хурдыг хянах электрон хэлхээ.
  • Стандарт 50 Гц ХБХ -ны servo удирдлагаас удирддаг.
  • Энэ нь талбайн эффект транзисторын сүлжээний шилжих хурдыг өөрчилдөг. Транзисторын шилжих давтамжийг тохируулснаар хөдөлгүүрийн хурд өөрчлөгддөг. Хөдөлгүүрийн янз бүрийн ороомог дээр нийлүүлсэн гүйдлийн импульсийн хугацааг тохируулах замаар хөдөлгүүрийн хурдыг өөрчилдөг.
  • Үзүүлэлтүүд:

Гаралтын гүйдэл: 30А тасралтгүй, 40А 10 секундын турш

Алхам 5: ESC электрон хурдны хяналт (ESC)

ESC электрон хурдны хяналт (ESC)
ESC электрон хурдны хяналт (ESC)

Алхам 6: ХОУХ -ны servo моторын хяналт

PWM Servo моторын хяналт
PWM Servo моторын хяналт

Бид GPIO13 -ийн LED_PWM -ийн 0 сувгийг чиглүүлэх замаар ESC өгөгдөл оролт дээр ажиллах ХОУХ -ны servo үүсгэж, модуляцийг хянахын тулд потенциометрийг ашиглана.

Барихын тулд бид хүчдэл хуваагч болгон 10k потенциометрийг ашиглах болно. Зургийг GPIO12 -ээр нэвтрэх боломжтой ADC2_5 суваг дээр хийх болно.

Алхам 7: Аналог зураг авах

Аналог зураг авах
Аналог зураг авах
Аналог зураг авах
Аналог зураг авах

Дижитал хөрвүүлэх аналог

Бид AD -ийн утгыг PWM болгон хөрвүүлэх болно.

Servo -ийн ХОУХ нь 50 Гц тул импульсийн хугацаа 1/50 = 0.02 секунд буюу 20 миллисекунд байна.

Бид дор хаяж 1 миллисекундээс 2 миллисекунд хүртэл ажиллах ёстой.

ХБХ 4095 байх үед импульсийн өргөн нь 20 миллисекунд байдаг бөгөөд энэ нь бид 2 миллисекунд хүрэхийн тулд хамгийн ихдээ 4095/10 байх ёстой бөгөөд ингэснээр ХБХ 410 *хүлээн авах ёстой.

Хамгийн багадаа 1 миллисекундын дараа 409/2 (эсвэл 4095/20) дараа ХОУХ нь 205 *хүлээн авах ёстой.

* Утга нь бүхэл тоо байх ёстой

Алхам 8: Хэлхээ - холболтууд

Хэлхээ - холболтууд
Хэлхээ - холболтууд

Алхам 9: Эх код

Толгой

#include // Necesário apenas para o Arduino 1.6.5 e posterior #include "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 to 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 (channel_A, давтамж, шийдэл); ledcAttachPin (pin_Atuacao_A, channel_A); ledcWrite (channel_A, ciclo_A); display.init (); display.flipScreenVertically (); // Виртуал дэлгэцийн дэлгэц.clear (); // дэлгэцийг харуулах.setTextAlignment (TEXT_ALIGN_LEFT); // Arial 16 display.setFont (ArialMT_Plain_16); }

Гогцоо

void loop () {leitura = analogRead (Leitura_A); ciclo_A = газрын зураг (leitura, 0, 4095, 205, 410); ledcWrite (channel_A, ciclo_A); потенци = газрын зураг (leitura, 0, 4095, 0, 100); display.clear (); // limpa o buffer do display 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 дэлгэцгүй}

Алхам 10: Файлууд

Файлуудыг татаж авах

INO

PDF

Зөвлөмж болгож буй: