Kuinka lähettää PWM-signaaleja ESC:hen Raspberry Pi 4B:n avulla ohjaamaan vedenalaisia ​​potkureita?

Julkaissut Fengyukun

Käytetty ESC: APISQUEEN 24V 100A ESC

100A ESC:n käyttöohje: https://cdn.shopify.com/s/files/1/0621/5493/2452/files/100A.pdf?v=1700410535

1: Avaa ESC

Nollapysäytyssignaali on sen lukituksen avaussignaali

Käytä 50 Hz signaalia, jonka signaalijakso on 20 ms.

Erittelyssä oleva prosenttiosuus viittaa PWM-ohjauspulssin leveyden prosenttiosuuteen, ei PWM-signaalin todelliseen käyttöjaksoon (se on helppo ymmärtää täällä).

Sitten vapaapysäytyssignaali on:
75 % käyttösuhde, 7,5 % todellinen käyttösuhde: 1,5 ms (välillä 1,475 ms ja 1,525 ms);

tuonti pigpio
Tuontiaika

pi = pigpio.pi() #Luo pigpio-objekti
LED_PIN = 18 #Määritä GPIO-portti, johon LED on kytketty
PWM_FREQUENCY = 50 #Määritä PWM-taajuus (yksikkö: Hz)
PWM_alue = 1000
PWM_DUTYCYCLE = 0 #Määritä PWM-käyttösuhde, arvoalue 0 (2) 55,
pi.set_mode(LED_PIN, pigpio.OUTPUT) #Aseta GPIO-portti lähtötilaan
pi.set_PWM_frequency(LED_PIN, PWM_FREQUENCY) #Aseta PWM-taajuus
pi.set_PWM_range(LED_PIN, PWM_range) #Aseta alue 1000

pi.set_PWM_dutycycle(LED_PIN, 75) #Aseta PWM-käyttösuhde 75/1000=7,5 %
time.sleep(3) #Viive 3 sekuntia avataksesi lukituksen

2. Ohjaa ESC

Käyttösuhde 75 %: Todellinen käyttösuhde 7,5–1,5 ms (välillä 1,475–1,525 ms) pysähtyy;
Käyttösuhde 50% -75%: todellinen käyttösuhde 5% -7,5%, 1ms-1,5ms käänteinen suunta;
Käyttösuhde 100 %: todellinen kuormitussuhde 7,5% -10% 1,5 ms-2 ms eteenpäin

pi.set_PWM_dutycycle(LED_PIN, 100)
#Eteenpäin: 7,5% -10% Mitä korkeampi käyttösuhde, sitä nopeampi ajonopeus.
aika.uni (15)

pi.set_PWM_dutycycle(LED_PIN, 60)
#Reverse: Mitä lähempänä käyttösuhde on 5 %, sitä suurempi on peruutusnopeus
aika.uni(5)

pi.set_PWM_dutycycle(LED_PIN, 75)
#Työsuhde
aika.uni(5)

3. Vianetsintä

Vianetsintäprosessin aikana voit käyttää oskilloskooppia tarkistaaksesi, onko aaltomuoto oikea:
Esimerkiksi alla oleva kuva näyttää PWM-pysäytyssignaalin, jonka aloitin lähettää. Jännitteen amplitudi on 3,3 V, jakso on 20 ms ja todellinen toimintajakso on 7,5%, jotka kaikki ovat oikein.
Mutta en silti voinut avata ESC:tä, koska aaltomuodossa oli liikaa kohinaa ja sotkua.

Aluksi käytin RPi.GPIO-kirjastoa, mutta vaihdoin myöhemmin pigpio-kirjastoon lähettääkseni laitteiston pwm-signaaleja, ja ongelma ratkesi.

4. Esimerkkikoodi:

tuonti pigpio
tuontiaika

pi = pigpio.pi() #Luo pigpio-objekti
LED_PIN = 18 # Määritä GPIO-portti, johon LED on kytketty.
PWM_FREQUENCY = 50 #Määritä PWM-taajuus hertseinä
PWM_alue = 1000
PWM_DUTYCYCLE = 0 #Määritä PWM-käyttösuhde, arvoalue 0(2)55,
pi.set_mode(LED_PIN, pigpio.OUTPUT) #Aseta GPIO-portti lähtötilaan
pi.set_PWM_frequency(LED_PIN, PWM_FREQUENCY) #Aseta PWM-taajuus
pi.set_PWM_range(LED_PIN, PWM_range) #Aseta alue 1000

pi.set_PWM_dutycycle(LED_PIN, 75) #Aseta PWM-käyttösuhde 75/1000=7,5 %
time.sleep(3) #Viive 3s avataksesi lukituksen onnistuneesti

pi.set_PWM_dutycycle(LED_PIN, 100)
#Eteenpäin pyörimisnopeus 7,5–10 %, mitä suurempi käyttöjakso, sitä nopeampi pyörimisnopeus eteenpäin
aika.uni (15)
 
pi.set_PWM_dutycycle(LED_PIN, 60)
# Peruutus Mitä lähempänä käyttösuhde on 5 %, sitä suurempi on peruutusnopeus
aika.uni(5)

pi.set_PWM_dutycycle(LED_PIN, 75)
#Työsuhde
aika.uni(5)

Jaa tämä julkaisu



← Vanhempi julkaisu Uudempi julkaisu →


0 kommenttia

Jätä kommentti