Orodha ya maudhui:

Injini ya Drone iliyodhibitiwa ya ESP32: Hatua 10
Injini ya Drone iliyodhibitiwa ya ESP32: Hatua 10

Video: Injini ya Drone iliyodhibitiwa ya ESP32: Hatua 10

Video: Injini ya Drone iliyodhibitiwa ya ESP32: Hatua 10
Video: Когда Контрнаступление Украины? (10 июня 2023) 2024, Novemba
Anonim
Image
Image
Maandamano
Maandamano

Leo tunazungumzia injini za ndege zisizo na rubani, zinazoitwa mara kwa mara motors "zisizo na brashi". Zinatumika sana katika uundaji wa ndege, haswa kwenye drones, kwa sababu ya nguvu zao na mzunguko mkubwa. Tutajifunza juu ya kudhibiti gari lisilo na mswaki kwa kutumia ESC na ESP32, kufanya onyesho la kufanana kwa ESC kwa kutumia mtawala wa ndani wa LED_PWM, na kutumia potentiometer kubadilisha kasi ya gari.

Hatua ya 1: Maonyesho

Hatua ya 2: Rasilimali Zilizotumiwa

Rasilimali Zilizotumiwa
Rasilimali Zilizotumiwa
  • Kuruka kwa unganisho
  • Wifi LoRa 32
  • ESC-30A
  • Injini ya Brushless A2212 / 13t
  • Kebo ya USB
  • Potentiometer kwa udhibiti
  • Kitabu cha ulinzi
  • Ugavi wa umeme

Hatua ya 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Kuandika
Wifi LoRa 32- Kuandika

Hatua ya 4: ESC (Udhibiti wa Kasi ya Elektroniki)

ESC (Udhibiti wa Kasi ya Elektroniki)
ESC (Udhibiti wa Kasi ya Elektroniki)
ESC (Udhibiti wa Kasi ya Elektroniki)
ESC (Udhibiti wa Kasi ya Elektroniki)
  • Mdhibiti wa Kasi ya Elektroniki
  • Mzunguko wa elektroniki kudhibiti kasi ya gari ya umeme.
  • Kudhibitiwa kutoka kwa kiwango cha wastani cha 50Hz PWM servo.
  • Inatofautiana kiwango cha ubadilishaji wa mtandao wa transistors ya athari za shamba (FETs). Kwa kurekebisha mzunguko wa ubadilishaji wa transistors, kasi ya gari hubadilishwa. Kasi ya gari ni tofauti kwa kurekebisha muda wa kunde zilizotolewa kwa sasa kwa vilima anuwai vya gari.
  • Maelezo:

Pato la sasa: 30A endelevu, 40A kwa sekunde 10

Hatua ya 5: ESC Udhibiti wa Kasi ya Elektroniki (ESC)

Udhibiti wa Kasi ya Elektroniki (ESC)
Udhibiti wa Kasi ya Elektroniki (ESC)

Hatua ya 6: PWM Servo Motor Control

Udhibiti wa PWM Servo
Udhibiti wa PWM Servo

Tutaunda servo ya PWM kuchukua hatua kwa uingizaji wa data ya ESC kwa kuelekeza kituo 0 cha LED_PWM kwa GPIO13, na tutumie potentiometer kudhibiti moduli.

Kwa kukamata, tutatumia potentiometer ya 10k kama mgawanyiko wa voltage. Kukamata utafanywa kwenye kituo cha ADC2_5, kinachoweza kupatikana na GPIO12.

Hatua ya 7: Kukamata Analog

Kukamata Analog
Kukamata Analog
Kukamata Analog
Kukamata Analog

Analog kwa ubadilishaji wa dijiti

Tutabadilisha maadili ya AD kuwa PWM.

PWM ya servo ni 50Hz, kwa hivyo kipindi cha kunde ni 1/50 = sekunde 0.02 au millisecond 20.

Tunahitaji kutenda angalau millisecond 1 hadi 2 milliseconds.

Wakati PWM iko 4095, upana wa kunde ni milliseconds 20, ikimaanisha tunapaswa kufikia kiwango cha juu kwa 4095/10 kufikia millisecond 2, kwa hivyo PWM inapaswa kupokea 410 *.

Na baada ya angalau millisecond 1, kwa hivyo 409/2 (au 4095/20), PWM inapaswa kupokea 205 *.

* Thamani lazima ziwe nambari kamili

Hatua ya 8: Mzunguko - Uunganisho

Mzunguko - Uunganisho
Mzunguko - Uunganisho

Hatua ya 9: Nambari ya Chanzo

Kichwa

# ingiza // Inahitajika á apenas para o Arduino 1.6.5 na nyuma # ni pamoja na "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #fafanua SDA 4 #fafanua SCL 15 #fafanua RST 16 SSD1306 onyesho (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "onyesha"

Vigezo

const int freq = 50; const int canal_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;

Sanidi

kuanzisha batili () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (mfereji_A, freq, resolutionucoo); ledcAttachPin (pin_Atuacao_A, mfereji_A); andika Kuandika (mfereji_A, ciclo_A); onyesha.init (); onyesha.flipScreenVertically (); // Vira onyesho la wima la kuonyesha. Wazi (); // ajusta o alinhamento kwa onyesho la esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta font kwa kuonyesha Arial 16.setFont (ArialMT_Plain_16); }

Kitanzi

kitanzi batili () {leitura = analogRead (Leitura_A); ciclo_A = ramani (leitura, 0, 4095, 205, 410); andika Kuandika (mfereji_A, ciclo_A); potencia = ramani (leitura, 0, 4095, 0, 100); kuonyesha.clear (); onyesha.drawString (32, 0, Kamba (leitura)); onyesha.drawString (0, 18, String ("PWM:")); onyesha DrawString (48, 18, String (ciclo_A)); onyesha.drawString (0, 36, String ("Potência:")); onyesha DrawString (72, 36, String (potencia)); onyesha.drawString (98, 36, String ("%")); onyesha.display (); // mostra hakuna onyesho}

Hatua ya 10: Faili

Pakua faili

INO

PDF

Ilipendekeza: