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)
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
- 0 kommenttia
- Tunnisteet: ESC
← Vanhempi julkaisu Uudempi julkaisu →