Hoe servo's niet jitteren zonder extra hardware

To control a servo, I'm using this. To summarize it: you use code like this:

while True:
   GPIO.output(pin, GPIO.HIGH)  
   time.sleep(0.0015)  
   GPIO.output(pin, GPIO.LOW)  
   time.sleep(0.0185)

Merk op dat de 0.0015 en 0.0185 veranderen op basis van de gewenste hoek. Een probleem waar ze over spraken was dat de servo kan trillen als het programma normaal wordt uitgevoerd. Omdat een regulier programma een onnauwkeurige timing heeft.

Mijn vraag is, hoe maak je de timing preciezer zodat de servo niet trilt? (Het zei iets over kernelprioriteiten en dergelijke.)

1
Idem dito. Vraag mensen niet om een ​​hele thread ergens anders te gaan lezen om te proberen u te helpen. Ping me als je dat duidelijk hebt gemaakt en ik zal dit opnieuw openen.
toegevoegd de auteur David Harris, de bron
Wat is dit . Er zijn verschillende mogelijke oplossingen genoemd in die thread. Welke gebruik je?
toegevoegd de auteur joan, de bron
De voorbeeldcode in uw vraag gebruikt softwaretiming om de pulsen te genereren. Dat zal onderhevig zijn aan jitter, afhankelijk van wat er nog meer op het systeem gebeurt. Jitter zorgt ervoor dat de servo's twitchen (en mogelijk de levensduur van de servo verkorten). Er zouden voorbeelden van hardwaretiming in die thread moeten zijn geweest. Kijk eens naar mijn pigpio en servoblaster.
toegevoegd de auteur joan, de bron
Een mogelijke oplossing is om een ​​Servo Controller IC te gebruiken ... zie: adafruit.com/products/815
toegevoegd de auteur Kolban, de bron
@joan Sorry, ik heb zojuist een samenvatting toegevoegd.
toegevoegd de auteur PurpleSky, de bron

Geen antwoorden

0