raspberrypi:servo
This is an old revision of the document!
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.1491408571.txt.gz · Last modified: by aistis
