Mục lục:

Động cơ máy bay không người lái có điều khiển ESP32 LoRa: 10 bước
Động cơ máy bay không người lái có điều khiển ESP32 LoRa: 10 bước

Video: Động cơ máy bay không người lái có điều khiển ESP32 LoRa: 10 bước

Video: Động cơ máy bay không người lái có điều khiển ESP32 LoRa: 10 bước
Video: LẬP TRÌNH ĐIỀU KHIỂN MÁY BAY DRONE VỚI NODEJS 2024, Tháng mười một
Anonim
Image
Image
Trình diễn
Trình diễn

Hôm nay chúng ta sẽ thảo luận về động cơ bay không người lái, thường được gọi là động cơ "không chổi than". Chúng được sử dụng rộng rãi trong aeromodelling, chủ yếu trong máy bay không người lái, do sức mạnh và khả năng quay cao của chúng. Chúng ta sẽ tìm hiểu về cách điều khiển động cơ không chổi than bằng ESC và ESP32, thực hiện hành động tương tự trên ESC bằng bộ điều khiển LED_PWM bên trong và sử dụng chiết áp để thay đổi tốc độ động cơ.

Bước 1: Trình diễn

Bước 2: Tài nguyên được sử dụng

Tài nguyên được sử dụng
Tài nguyên được sử dụng
  • Jumper để kết nối
  • Wifi LoRa 32
  • ESC-30A
  • Động cơ A2212 / 13t không chổi than
  • cáp USB
  • Chiết áp để kiểm soát
  • Protoboard
  • Nguồn cấp

Bước 3: Wifi LoRa 32- Sơ đồ chân

Wifi LoRa 32- Sơ đồ chân
Wifi LoRa 32- Sơ đồ chân

Bước 4: ESC (Kiểm soát tốc độ điện tử)

ESC (Kiểm soát tốc độ điện tử)
ESC (Kiểm soát tốc độ điện tử)
ESC (Kiểm soát tốc độ điện tử)
ESC (Kiểm soát tốc độ điện tử)
  • Bộ điều khiển tốc độ điện tử
  • Mạch điện tử để điều khiển tốc độ của động cơ điện.
  • Được điều khiển từ bộ điều khiển servo PWM 50Hz tiêu chuẩn.
  • Nó thay đổi tốc độ chuyển mạch của một mạng bóng bán dẫn hiệu ứng trường (FET). Bằng cách điều chỉnh tần số chuyển đổi của các bóng bán dẫn, tốc độ động cơ được thay đổi. Tốc độ động cơ thay đổi bằng cách điều chỉnh thời gian của các xung dòng điện được cung cấp cho các cuộn dây khác nhau của động cơ.
  • Thông số kỹ thuật:

Dòng điện đầu ra: 30A liên tục, 40A trong 10 giây

Bước 5: Kiểm soát tốc độ điện tử ESC (ESC)

Kiểm soát tốc độ điện tử ESC (ESC)
Kiểm soát tốc độ điện tử ESC (ESC)

Bước 6: Điều khiển động cơ Servo PWM

Điều khiển động cơ Servo PWM
Điều khiển động cơ Servo PWM

Chúng tôi sẽ tạo một servo PWM để hoạt động trên đầu vào dữ liệu ESC bằng cách chuyển hướng kênh 0 của LED_PWM cho GPIO13 và sử dụng một chiết áp để điều khiển điều chế.

Để chụp, chúng tôi sẽ sử dụng một chiết áp 10k làm bộ chia điện áp. Quá trình chụp sẽ được thực hiện trên kênh ADC2_5, có thể truy cập bằng GPIO12.

Bước 7: Chụp tương tự

Chụp tương tự
Chụp tương tự
Chụp tương tự
Chụp tương tự

Chuyển đổi tương tự sang kỹ thuật số

Chúng tôi sẽ chuyển đổi các giá trị của AD thành PWM.

PWM của servo là 50Hz, do đó, chu kỳ xung là 1/50 = 0,02 giây hoặc 20 mili giây.

Chúng ta cần hành động trong ít nhất 1 phần nghìn giây đến 2 phần nghìn giây.

Khi PWM ở 4095, độ rộng xung là 20 mili giây, nghĩa là chúng ta nên đạt mức tối đa ở 4095/10 để đạt 2 mili giây, do đó PWM sẽ nhận được 410 *.

Và sau ít nhất 1 mili giây, do đó 409/2 (hoặc 4095/20), PWM sẽ nhận được 205 *.

* Giá trị phải là số nguyên

Bước 8: Mạch - Kết nối

Mạch - Kết nối
Mạch - Kết nối

Bước 9: Mã nguồn

Tiêu đề

#include // Các vượn người ở Arduino 1.6.5 e sau # bao gồm "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 Màn hình SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"

Biến

const int freq = 50; const int kênh_A = 0; const int Resolutionucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potencia = 0; int leitura = 0; int ciclo_A = 0;

Cài đặt

void setup () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (channel_A, freq, Resolutionucao); ledcAttachPin (pin_Atuacao_A, kênh_A); ledcWrite (kênh_A, ciclo_A); display.init (); display.flipScreenVerently (); // Vira một 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); }

Vòng

void loop () {leitura = analogRead (Leitura_A); ciclo_A = map (leitura, 0, 4095, 205, 410); ledcWrite (kênh_A, ciclo_A); potencia = bản đồ (leitura, 0, 4095, 0, 100); display.clear (); // limpa o vùng đệm 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, Chuỗi (potencia)); display.drawString (98, 36, String ("%")); display.display (); // mostra no display}

Bước 10: Tập tin

Tải xuống các tệp

NS

PDF

Đề xuất: