Hand spåra mekanisk Arm - Pyduino + språng Motion (6 / 11 steg)
Steg 6: Kontrollera servo med Pyduino
Kontrollera att enheten Arduino är ansluten till din dator. Innan vi får våra språng rörelsekontroll ställa in vill vi se till att vi framgångsrikt kan kontrollera en servo med vårt Pyduino bibliotek. Vi kommer att följa ett exempel av slag sopa på Arduino webbplatsen dock bara med olika pin wirings. Vår python kod är ganska enkelt, vi ska importera pyduino bibliotek så att vi kan upprätta en seriell anslutning till våra Arduino enhet och sedan dess så enkelt som med 2 rader kod för att flytta våra servo.
Spara del av koden nedan till en fil som heter one_servo_test.py och kontrollera att den är i samma katalog som filen pyduino.py.
Och sedan kan du köra det genom terminalen genom att skriva $ python one_servo_test.py
Oroa dig inte programmet halkar lite i början vilket ger en anslutning till enheten Arduino och då bör du se din servo börja röra! Koden bör vara dokumenterade nog för dig att räkna ut allt som pågår. Om du inte kan upprätta en anslutning till din arduino enhet får du ett felmeddelande som säger något i stil: [serial.serialutil.SerialException: kunde inte öppna port /dev/ttyACM0: [Errno 2] ingen sådan fil eller katalog: "/ dev/ttyACM0"] då du kommer behöver deklarera din arduino enhet i koden med hjälp av en annan serieport. Seriell port för din Arduino enhet finns längst ner till höger av Arduino programvaran när du laddar upp en skiss till din styrelse. En annan komplikation som du kan stöta på är att om din servo inte är kopplad till PIN #2 på brädan sedan måste du ändra ditt ledningar eller ändra den Arduino skiss vi upplagda på vår styrelse, kontrollera i dokumentationen för hur och var man gör det.
från pyduino import *
Importera tid
om __name__ == "__main__":
# om din arduino kördes på en seriell port annat än ' / dev/ttyACM0 / "
# förklara: en = Arduino(serial_port='/dev/tty')
en = Arduino()
# sömn så gott om tid för datorn att göra seriell anslutning
Time.Sleep(3)
# förklara pin våra servo är kopplad till
# se till att detta matchar linje 26 av one_servo.ino
# den rad som säger: int SERVO2_PIN = 2;
PIN = 2
försök:
för i i range(0,1000):
om jag %2 == 0:
skriva ut "180"
# flytta servo på stift till en vinkel på 170 grader
a.servo_write(PIN,170)
annat:
skriva ut "10"
# flytta servo på stift till en vinkel på 10 grader
a.servo_write(PIN,10)
Time.Sleep(1)
Förutom KeyboardInterrupt:
# återställa positionen för servo till 90 grader och nära anslutning
a.servo_write(PIN,90)
a.Close()