Stap 6: Controle van de servo met behulp van Pyduino
Zorg ervoor dat uw apparaat Arduino is aangesloten op uw computer. Voordat we onze sprong bewegingscontroller instellen die wij willen ervoor zorgen dat we met succes kunt één servo met onze Pyduino-bibliotheek. We gonna een voorbeeld dat vergelijkbaar is aan het vegen voorbeeld volgen op de site van de Arduino echter gewoon met verschillende pin binnenshuis. Onze python code is vrij eenvoudig, we gonna de pyduino-bibliotheek importeren zodat we een seriële verbinding met onze apparaat Arduino maken kan en vervolgens zijn zo eenvoudig zoals gebruikend 2 coderegels verplaatsen onze servo.
Het stuk van onderstaande code opslaan in een bestand met de naam one_servo_test.py en zorg ervoor dat het in dezelfde map als uw pyduino.py bestand.
En dan kunt u het via de terminal door te typen $ python one_servo_test.py
Maak je geen zorgen het programma zal een beetje lag in het begin dat zorgt voor een verbinding met uw apparaat Arduino en vervolgens moet u uw servo beginnen te bewegen! De code moet worden gedocumenteerd genoeg voor je om erachter te komen wat gaande is er. Als u geen verbinding maken met uw apparaat arduino ontvangt u een fout die iets als zegt: [serial.serialutil.SerialException: poort /dev/ttyACM0 kon niet worden geopend: [Errno 2] niet zulke vijl of woninggids: '/ dev/ttyACM0'] dan u zult moeten verklaren uw apparaat arduino in de code met behulp van een andere seriële poort. De seriële poort voor uw apparaat Arduino vindt u in de rechterbenedenhoek van de Arduino software nadat u een schets geüpload naar uw bord. Een andere complicatie die u tegenkomen is dat als uw servo is niet bedraad tot PIN #2 op uw bord, dan moet u ofwel uw bedrading of wijzigen in de Arduino schets we geüpload op ons bord, raadpleegt de documentatie van de code voor hoe en waar om dat te doen.
from pyduino import *import timeif __name__ == '__main__': # if your arduino was running on a serial port other than '/dev/ttyACM0/' # declare: a = Arduino(serial_port='/dev/tty') a = Arduino() # sleep to ensure ample time for computer to make serial connection time.sleep(3) # declare the pin our servo is attached to # make sure this matches line 26 of one_servo.ino # the line that says: int SERVO2_PIN = 2; PIN = 2 try: for i in range(0,1000): if i%2 == 0: print '180' # move servo on pin to an angle of 170 deg a.servo_write(PIN,170) else: print '10' # move servo on pin to an angle of 10 deg a.servo_write(PIN,10) time.sleep(1) except KeyboardInterrupt: # reset position of servo to 90 deg and close connection a.servo_write(PIN,90) a.close()