Daftar Isi:

Mesin Drone Terkendali LoRa ESP32: 10 Langkah
Mesin Drone Terkendali LoRa ESP32: 10 Langkah

Video: Mesin Drone Terkendali LoRa ESP32: 10 Langkah

Video: Mesin Drone Terkendali LoRa ESP32: 10 Langkah
Video: Aplikasi Teknik Kendali dan Teknologi IoT dalam Kehidupan Sehari-hari 2024, November
Anonim
Image
Image
Demonstrasi
Demonstrasi

Hari ini kita membahas mesin drone, yang sering disebut motor "tanpa sikat". Mereka banyak digunakan dalam aeromodelling, terutama di drone, karena kekuatan dan rotasinya yang tinggi. Kita akan belajar tentang mengendalikan motor brushless menggunakan ESC dan ESP32, melakukan aktuasi analog pada ESC menggunakan kontroler LED_PWM internal, dan menggunakan potensiometer untuk mengubah kecepatan motor.

Langkah 1: Demonstrasi

Langkah 2: Sumber Daya yang Digunakan

Sumber Daya yang Digunakan
Sumber Daya yang Digunakan
  • Jumper untuk koneksi
  • Wifi LoRa 32
  • ESC-30A
  • Mesin Brushless A2212 / 13t
  • kabel USB
  • Potensiometer untuk kontrol
  • Protoboard
  • Sumber Daya listrik

Langkah 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

Langkah 4: ESC (Kontrol Kecepatan Elektronik)

ESC (Kontrol Kecepatan Elektronik)
ESC (Kontrol Kecepatan Elektronik)
ESC (Kontrol Kecepatan Elektronik)
ESC (Kontrol Kecepatan Elektronik)
  • Pengontrol Kecepatan Elektronik
  • Rangkaian elektronik untuk mengontrol kecepatan motor listrik.
  • Dikendalikan dari kontrol servo PWM 50Hz standar.
  • Ini memvariasikan tingkat switching jaringan transistor efek medan (FET). Dengan menyesuaikan frekuensi switching transistor, kecepatan motor diubah. Kecepatan motor divariasikan dengan menyesuaikan waktu pulsa arus yang disuplai ke berbagai belitan motor.
  • Spesifikasi:

Arus keluaran: 30A terus menerus, 40A selama 10 detik

Langkah 5: Kontrol Kecepatan Elektronik ESC (ESC)

Kontrol Kecepatan Elektronik (ESC) ESC
Kontrol Kecepatan Elektronik (ESC) ESC

Langkah 6: Kontrol Motor Servo PWM

Kontrol Motor Servo PWM
Kontrol Motor Servo PWM

Kami akan membuat servo PWM untuk bertindak pada input data ESC dengan mengarahkan saluran 0 dari LED_PWM untuk GPIO13, dan menggunakan potensiometer untuk mengontrol modulasi.

Untuk penangkapannya, kita akan menggunakan potensiometer 10k sebagai pembagi tegangan. Pengambilan akan dilakukan pada saluran ADC2_5, dapat diakses oleh GPIO12.

Langkah 7: Tangkapan Analog

Tangkapan Analog
Tangkapan Analog
Tangkapan Analog
Tangkapan Analog

Konversi analog ke digital

Kami akan mengonversi nilai AD ke PWM.

PWM servo adalah 50Hz, sehingga periode pulsa adalah 1/50 = 0,02 detik atau 20 milidetik.

Kita perlu bertindak setidaknya dalam 1 milidetik hingga 2 milidetik.

Ketika PWM berada di 4095, lebar pulsa adalah 20 milidetik, artinya kita harus mencapai maksimum di 4095/10 untuk mencapai 2 milidetik, jadi PWM harus menerima 410 *.

Dan setelah setidaknya 1 milidetik, oleh karena itu 409/2 (atau 4095/20), PWM harus menerima 205 *.

* Nilai harus bilangan bulat

Langkah 8: Sirkuit - Koneksi

Sirkuit - Koneksi
Sirkuit - Koneksi

Langkah 9: Kode Sumber

Tajuk

#include // Diperlukan apenas untuk Arduino 1.6.5 dan posterior#include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" //OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #menentukan SDA 4 #menentukan SCL 15 #menentukan tampilan RST 16 SSD1306 (0x3c, SDA, SCL, RST); //Instanciando dan ajustando os pinos lakukan objeto "tampilan"

Variabel

const int freq = 50;const int kanal_A = 0; const int resolucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potensi = 0; int leitur = 0; int ciclo_A = 0;

Mempersiapkan

void setup(){ pinMode(pin_Atuacao_A, OUTPUT); ledcSetup(canal_A, frekuensi, resolusi); ledcAttachPin(pin_Atuacao_A, kanal_A); ledcWrite(canal_A, ciclo_A); tampilan.init(); display.flipScreenVertikal(); //Vira a tela verticalmente display.clear(); //ajusta o alinhamento untuk esquerda display.setTextAlignment(TEXT_ALIGN_LEFT); //ajusta a fonte untuk Arial 16 display.setFont(ArialMT_Plain_16); }

Lingkaran

void loop() { leiura = analogRead(Leikura_A); ciclo_A = peta(leitura, 0, 4095, 205, 410); ledcWrite(canal_A, ciclo_A); potensi = peta(leiura, 0, 4095, 0, 100); display.clear();//limpa o buffer lakukan tampilan display.drawString(0, 0, String("AD:")); display.drawString(32, 0, String(leiura)); display.drawString(0, 18, String("PWM:")); display.drawString(48, 18, String(ciclo_A)); display.drawString(0, 36, String("Potncia:")); display.drawString(72, 36, String(potensi)); display.drawString(98, 36, String("%")); tampilan.tampilan(); //paling tidak ada tampilan }

Langkah 10: File

Unduh file

SAYA TIDAK

PDF

Direkomendasikan: