raspberrypi:servo
Skaitmeniniu servo varikliu kontrole daroma siunčiant jiems impulsus nuo 0,5ms iki 2,5 ms ir jie pasisuka reikiamu kampu. pabnadem suklijuoti 2 servo ir padaryti lazerine taikymosi sistemą:
Šiaip nieko gero bet užtat nebrangūs - pažaidimui labai gerai.
import time import pigpio import curses import os os.environ.setdefault('ESCDELAY', '25') stdscr = curses.initscr() curses.noecho() curses.cbreak() stdscr.keypad(1) servo_pos = 1400 servo_pos2 = 1000 step = 1 ecounter = 0 try: pi = pigpio.pi() # Connect to local Pi. while 1: stdscr.nodelay(1) key = stdscr.getch() #getkey() ecounter = ecounter + 1 #119 115 97 100 if key == 119: servo_pos = servo_pos + step if key == 115: servo_pos = servo_pos - step if key == 97: servo_pos2 = servo_pos2 + step if key == 100: servo_pos2 = servo_pos2 - step if key == 121: st = 1 for i in range(1,10): pi.set_servo_pulsewidth(21, 1400) pi.set_servo_pulsewidth(20, 1000) time.sleep(st) pi.set_servo_pulsewidth(21, 1500) pi.set_servo_pulsewidth(20, 1000) time.sleep(st) pi.set_servo_pulsewidth(21, 1500) pi.set_servo_pulsewidth(20, 900) time.sleep(st) pi.set_servo_pulsewidth(21, 1400) pi.set_servo_pulsewidth(20, 900) time.sleep(st) if key == 117: for i in range(1,10): pi.set_servo_pulsewidth(21, 1400) time.sleep(0.2) pi.set_servo_pulsewidth(21, 1500) time.sleep(0.2) # exit program if key == 27: curses.endwin() pi.set_servo_pulsewidth(21, 0) pi.set_servo_pulsewidth(20, 0) exit(1) if servo_pos < 500: servo_pos = 500 if servo_pos > 2500: servo_pos = 2500 if servo_pos2 < 500: servo_pos2 = 500 if servo_pos2 > 2500: servo_pos2 = 2500 pi.set_servo_pulsewidth(21, servo_pos) pi.set_servo_pulsewidth(20, servo_pos2) stdscr.clear() stdscr.addstr("Detected key:") stdscr.addstr(str(key)) stdscr.addstr("\nservo1:") stdscr.addstr(str(servo_pos)) stdscr.addstr("\nservo2:") stdscr.addstr(str(servo_pos2)) time.sleep(0.01) except Exception as e: curses.endwin() print str(e) finally: curses.endwin() exit(1) # switch servo off pi.set_servo_pulsewidth(21, 0) pi.stop()
raspberrypi/servo.txt · Last modified: by aistis

