def subplot(val1,val2): fig = plt.figure() sb1 = fig.add_subplot(1,2,1) x = np.arange(len(val1)) sb1.plot(x, val1, c='r') sb1.set_title('Encoder Data') sb1.set_xlabel('Time') sb1.set_ylabel('State') sb2 = fig.add_subplot(1,2,2) x = np.arange(len(val2)) sb2.plot(x, val1, c='r') sb2.set_title('Encoder Data') sb2.set_xlabel('Time') sb2.set_ylabel('State') # Display all plots ########### Main Code ######### init() counterBR = np.uint64(0) counterFL = np.uint64(0) buttonBR = int(0) buttonFL = int(0) # Initialize pwm signal to control motor pwm1 = gpio.PWM(31,50) # BackRight pwm2 = gpio.PWM(37,50) # FrontLeft val = 22 pwm1.start(val) pwm2.start(val) time.sleep(0.1) for i in range(0, wheelRev): # from 0 to wheelrevs for 10 meters which is 48.97 print("counterBR = ", counterBR, "counterFL = ", counterFL, "BR state: ", gpio.input(12), "FL state: ", gpio.input(7)) if int(gpio.input(12) != int(buttonBR)): button = int(gpio.input(12)) #holds the state statesRight.append(button) counter += 1 if int(gpio.input(7) != int(buttonFL)): button = int(gpio.input(7)) #holds the state statesLeft.append(button) counter += 1 pwm1.stop() pwm2.stop() gameover() saveToFile("enc03Right.txt", statesRight) saveToFile("enc03Left.txt" statesLeft) subplot(statesRight, statesLeft) print("Thanks for playing !")
def __init__(self, pinDir, pinPWM): self.dirPin = pinDir self.pwmPin = pinPWM GPIO.setup(self.dirPin, GPIO.OUT) GPIO.output(self.dirPin, GPIO.LOW) GPIO.setup(self.pwmPin, GPIO.OUT) self.pwmControl = GPIO.PWM(self.pwmPin, 10000) self.pwmControl.start(0)
#variable to keep track of whether the user entered in Fahrenheit isF = sys.argv[2] #The desired temperature entered by the user destTemp = sys.argv[1] #-------------------------------------------------------------------------------------------------------------------------------- NORM_FONT = ("Helvetica", 10) #p is the pin that uses pwm to control the relay. Currently set to GPIO 18 at 100 Hz p = GPIO.PWM(18, 100) #write the pump relay pin to high to activate the pump GPIO.output(17, GPIO.HIGH) #A variable for the current temperature curTemp = 0 #A variable for the previous temperature prevTemp = 0 #A variable for the current duty cycle. Starts at 100 DC = 100 #starts p with 100% duty cycle p.start(DC)
def setupPi(frequency): GPIO.setmode(GPIO.BOARD) #uses board pins GPIO.setup(12, GPIO.OUT) #sets pin 18 as the output (rudder motor) pinsetup = GPIO.PWM(12, frequency) #rudder is set to straight pin.start(1) #sets initial position of rudder return pinsetup
def setupPi(): GPIO.setmode(GPIO.BOARD) # define use of Board mode. GPIO.setup(11, GPIO.OUT) # Set pin 11(gpio 17) to be an output. pinsetup = GPIO.PWM(11, 50) # Pin and frequency of PWM. return pinsetup
import numpy as np import cv2 import Rpi.GPIO as GPIO from PID import PIDController GPIO.setmode(GPIO.BOARD) GPIO.setup(11,GPIO.OUT) pwm = GPIO.PWM(11,50) pwm.start(5)#change so that it becomes 90 face_cascade = cv2.CascadeClassifier('C:\\Users\\ataata107\\Downloads\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(1) val=90 Center_x=0 #-----------------------------------PID------------------------------------------ pid = PIDController(proportional = 0.015, derivative_time = 0, integral_time=0) pid.vmin, pid.vmax = -10, 10 pid.setpoint = 0.0 #aTargetDifference(m) TDifference = pid.setpoint baseAngle = 90 pidout = 0 while 1: center_x=[] center_y=[] ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) CENTER=img.shape[0]/2 for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
plt.plot(x,data) plt.show() ########### Main Code ######### init() counterBR = np.uint64(0) counterFL = np.uint64(0) buttonBR = int(0) buttonFL = int(0) # Initialize pwm signal to control motor pwm = gpio.PWM(37,50) val = 16 pwm.start(val) # pwm input through pin 14 time.sleep(0.1) for i in range(0, 200000): print("counterBR = ", counterBR, "counterFL = ", counterFL, "BR state: ", gpio.input(12), "FL state: ", gpio.input(7)) if int(gpio.input(12) != int(buttonBR)): button = int(gpio.input(12)) #holds the state statesRight.append(button) counter += 1
m21 = 21 m22 = 20 en1 = 2 en2 = 3 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) GPIO.setup(led, GPIO.OUT) GPIO.setup(m11, GPIO.OUT) GPIO.setup(m12, GPIO.OUT) GPIO.setup(m22, GPIO.OUT) GPIO.setup(en1, GPIO.OUT) GPIO.setup(en2, GPIO.OUT) p1 = GPIO.PWM(en1, 100) p2 = GPIO.PWM(en2, 100) GPIO.output(led, 1) time.sleep(5) p1.start(100) p2.start(100) def stop : print('STOP') GPIO.output(m11, 0) GPIO.output(m12, 0) GPIO.output(m21, 0) GPIO.output(m22, 0)
# return Response(gen(Camera()), return Response(gen(appCam), mimetype='multipart/x-mixed-replace; boundary=frame') if __name__ == '__main__': app.run(host='0.0.0.0', threaded=True) # setup GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) pins = [19, 21, 23, 11] for p in pins: GPIO.setup(p, PIN.OUT) rgb = [GPIO.PWM(19, 50), GPIO.PWM(23, 50), GPIO.PWM(21, 50)] for c in rgb: c.start(0) c.ChangeDutyCycle(100) quitEvent = threading.Event() beepEvent = threading.Event() beepThread = BeepThread([beepEvent, quitEvent, [11], 3]) beepThread.start() color = Queue() ledEvent = threading.Event() ledThread = LedThread([ledEvent, quitEvent, rgb, 3, color]) ledThread.start()