예제 #1
0
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 !")
예제 #2
0
    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)
예제 #3
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)
예제 #4
0
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
예제 #5
0
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
예제 #6
0
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)
            
예제 #7
0
	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
예제 #8
0
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)
예제 #9
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()