def values(): global frontright,frontmiddle,frontleft,right,left,back #Digital and analog readings #THESE NEED TO BE UPDATED CONSTANTLY right = RPL.analogRead(5) back = RPL.digitalRead(17) frontright = RPL.digitalRead(20) left = RPL.analogRead(6) #frontmiddle = RPL.digitalRead(19) frontmiddle = RPL.analogRead(7) frontleft = RPL.digitalRead(18) #print(values) to debug readings return "front right = %s\nfront middle = %s\nfront left = %s\nright = %s\nleft = %s\nback = %s" % (frontright,frontmiddle,frontleft,right,left,back)
def sensor(): try: return RPL.analogRead(int(request.vars['pin'])) except Exception as e: return (e) else: return ("OTHER ERROR")
def checkPin(x, y): global multiplier if (y == 0): RPL.servoWrite(x, 2000) print("Moving motor " + str(x) + "... ") time.sleep(1) RPL.servoWrite(x, 1500) RPL.servoWrite(x, 0) print("Done with motor " + str(x) + ".") x += 1 print("Motor testing completed!") if (y == 1): RPL.pinMode(pinArraySensorset1[x], RPL.INPUT) initialTime = float(time.clock() * multiplier) while (float(time.clock() * multiplier) < (initialTime + 4)): displayTextClear() print("Pin " + str(pinArraySensorset1[x]) + " output: " + str(RPL.digitalRead(pinArraySensorset1[x]))) time.sleep(0.2) print("Digital sensor testing complete!") if (y == 2): initialTime = float(time.clock() * multiplier) while (float(time.clock() * multiplier) < (initialTime + 4)): displayTextClear() print("Pin " + str(pinArraySensorset2[x]) + " output: " + str(RPL.analogRead(pinArraySensorset2[x]))) time.sleep(0.2) print("Analog sensor testing complete!")
def navigation(): #Pulls respective values of the hedge for x and y from the position array MobileX = float(hedge.position()[1]) MobileY = float(hedge.position()[2]) while True: MobileX = hedge.position()[1] MobileY = hedge.position()[2] if RPL.analogRead(1) > 500: # front left RPL.pwmWrite(ServoR, 1250, 3000) RPL.pwmWrite(ServoL, 1000, 3000) print "1" elif RPL.analogRead(2) > 500: # front right RPL.pwmWrite(ServoR, 2000, 3000) RPL.pwmWrite(ServoL, 1750, 3000) print "2" elif RPL.analogRead(3) > 500: # left side RPL.pwmWrite(ServoR, 1550, 3000) RPL.pwmWrite(ServoL, 1000, 3000) print "3" elif RPL.analogRead(4) > 500: # right side RPL.pwmWrite(ServoR, 2000, 3000) RPL.pwmWrite(ServoL, 1450, 3000) print "4" elif 0 > MobileX and 0 > MobileY: RPL.pwmWrite(ServoR, 1750, 3000) # drive straight RPL.pwmWrite(ServoL, 1250, 3000) print "a" elif MobileX < 0 and MobileY > 0: RPL.pwmWrite(ServoR, 1550, 3000) # turn right RPL.pwmWrite(ServoL, 1250, 3000) print "b" elif MobileX > 0 and MobileY < 0: RPL.pwmWrite(ServoR, 1750, 3000) # turn left RPL.pwmWrite(ServoR, 1450, 3000) print "c" elif MobileX == 0 and MobileY == 0: RPL.pwmWrite(ServoR, 1500, 3000) # stop RPL.pwmWrite(ServoL, 1500, 3000) print "d" elif MobileX > 0 and MobileY > 0: RPL.pwmWrite(ServoR, 1450, 3000) # backwards RPL.pwmWrite(ServoR, 1550, 3000) print "e" print MobileX print MobileY hedge.print_position()
def init(): print "Initializing co2 sensor" co2readings = [] for x in range(0,20): co2readings.append(RPL.analogRead(4)) time.sleep(0.05) print "Initialized" return co2readings
def receive(): r = str(random.random()) try: if int(request.vars['key']) in keys: log.debug("TRY START" + r + " " + str(random.random())) command_dictionary[int(request.vars['key'])]( request.vars['command']) log.debug("TRY FINISH" + r + " " + str(random.random())) return RPL.analogRead(0) except Exception as e: log.debug("EXCEPT START" + " " + e) forward('stop') return RPL.analogRead(0) else: log.debug("ELSE START" + r + " " + str(random.random())) forward('stop') log.debug("ELSE START" + r + " " + str(random.random())) return RPL.analogRead(0)
def detectHuman(): average = sum(co2Readings) / len(co2Readings) co2 = RPL.analogRead(4) if average - co2 >= 20: print "Human Dectected" else: pass co2Readings.pop(0) co2Readings.append(co2)
def checkPinsAnalog(): x = 0 global multiplier while (x < len(pinArraySensorset2)): initialTime = float(time.clock() * multiplier) while (float(time.clock() * multiplier) < (initialTime + 4)): displayTextClear() print("Pin " + str(pinArraySensorset2[x]) + " output: " + str(RPL.analogRead(pinArraySensorset2[x]))) time.sleep(0.2) x += 1 print("Analog sensor testing complete!")
def values(): global left, right, leftwheel, rightwheel, frontleft, frontright, top left = RPL.analogRead(0) leftwheel = RPL.analogRead(1) frontleft = RPL.analogRead(2) top = RPL.analogRead(3) frontright = RPL.analogRead(4) rightwheel = RPL.analogRead(5) right = RPL.analogRead(6) return "Top: %s\nFront left: %s\nFront right: %s\n\nLeft: %s\nRight: %s\n\nRight wheel: %s\nLeft wheel: %s" % ( top, frontleft, frontright, left, right, rightwheel, leftwheel)
right = 19 front = 16 left = 17 analogL = 1 rgo = 2000 lgo = 1000 # ^ setup RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorL, lgo) # turn on both motors going straight while True: RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorL, lgo) while RPL.analogRead(analogL) >= 400: # middle range, can go straight RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorL, lgo) while RPL.analogRead(analogL) < 400: # no longer middle if RPL.digitalRead(left) == 0: # digital also sense, so close RPL.servoWrite(motorR, 0) # turn away from wall RPL.servoWrite(motorL, lgo) if RPL.digitalRead(left) == 1: # digital doesn't sense, far RPL.servoWrite(motorR, rgo) # turn towards wall RPL.servoWrite(motorL, 0)
# CO2 sensor # comands: # ssh [email protected] # password: Engineering!1 # python co2reading.py # go to GUI: nav > config ip adress > data should be ssh number import RoboPiLib as RPL RPL.RoboPiInit("/dev/ttyAMA0", 115200) import post_to_web as PTW import time co = 1 print RPL.analogRead(co) average = [] base = 0 CO2detect = 0 content = 0 PTW.state['CO2detect'] = 1 # ^ setup # begins by averaging the first 1000 readings in order to get a base reading base = RPL.analogRead(co) while True: content = RPL.analogRead(co) if content <= 250 or base - content >= 30: CO2detect = 2
import setup from setup import RPL import RoboPiLib as RoboPi RoboPi.RoboPiInit(“/dev/ttyAMA0”,115200) RoboPi.pinMode(1,RoboPi.OUTPUT) RoboPi.digitalWrite(16,1) RoboPi.pinMode(17,RoboPi.PWM) RoboPi.analogWrite(17,127) print RoboPi.analogRead(0) #RPL.servoWrite(0,1000) #RPL.servoWrite(1,1000) #x = 1 #while x == 1: # RoboPi.analogRead(1) # AnalogRead = RoboPi.analogRead(1) # AnalogRead = int(AnalogRead) # print AnalogRead # Dist = (500 * AnalogRead)/1024 # print Dist #import RoboPiLib as RoboPi
import RoboPiLib as RPL import setup import post_to_web as PTW import time start = time.time() now = time.time() pin = 6 content = 0 i = 0 average = [ ] base = RPL.analogRead(pin) while len(average) < 50: content = RPL.analogRead(pin) average.append(content) base = sum(average) / len(average) PTW.state['Start Time:'] = time.asctime(time.localtime()) # begins by averaging the first 1000 readings in order to get a base reading while now - start < 1500: content = RPL.analogRead(pin) if base - content >= 3: PTW.state['CO2detect: '] = "Life possible - %i" % content elif base - content >= 15: PTW.state['CO2detect: '] = "Life certain - %i" % content else:
import RoboPiLib as RPL import setup import time running = True while running: print(RPL.analogRead(6)) ## time.sleep(1)
RPL.servoWrite(motorL, motorL_forward) RPL.servoWrite(motorR, motorR_forward) def reverse(): RPL.servoWrite(motorL, motorL_backward) RPL.servoWrite(motorR, motorR_backward) def stop(): RPL.servoWrite(motorL, 0) RPL.servoWrite(motorR, 0) while counter == 0: RPL.analogRead(0) RPL.analogRead(3) Fanalog = RPL.analogRead(0) Banalog = RPL.analogRead(3) straight = Fanalog - Banalog if straight > -2 and straight < 8: reverse() #if the robot is angled away the wall- turn tiwards if straight < -2: RPL.servoWrite(motorL, 1550) RPL.servoWrite(motorR, motorR_backward) #if the robot is towards the wall if straight > 8: RPL.servoWrite(motorL, motorL_backward)
import RoboPiLib as RPL import setup def brake() x = RPL.analogRead(4) speed0 = - 0.000885 * x ** 2 + 0.558286 * x + 1481.5 speed1 = - 0.000885 * x ** 2 + 0.558286 * x + 1481.5 print('this is the speed0', speed0) print('this is the speed1', speed1) if speed0 and speed1 >= 0: RPL.servoWrite(0,int(speed0)) RPL.servoWrite(1,int(speed1)) brake()
RPL.servoWrite(motorR, lgo) def forward(): RPL.servoWrite(motorL, lgo) RPL.servoWrite(motorR, rgo) def stop(): RPL.servoWrite(motorL, 0) RPL.servoWrite(motorR, 0) while True: while True: # forward RPL.analogRead(fana) RPL.analogRead(back) Fanalog = RPL.analogRead(fana) Banalog = RPL.analogRead(bana) frontsensor = RPL.digitalRead(16) straight = Fanalog - Banalog #if there is something in front it will turn left if frontsensor == 0: RPL.servoWrite(motorL, lgo) RPL.servoWrite(motorR, 0) # calibrating the distance off the wall: if Fanalog <= closedist and Banalog <= closedist: RPL.servoWrite(motorL, lslow) RPL.servoWrite(motorR, rgo)
def start_camera(): os.system( '/usr/src/mjpg-streamer/mjpg-streamer-experimental/mjpg_streamer -o "output_http.so -w /usr/src/mjpg-streamer/mjpg-streamer-experimental/www -p 8080" -i "input_raspicam.so -x 640 -y 480 -fps 10 -rot 180"' ) return RPL.analogRead(0)
import setup import RoboPiLib as RPL ((500 * RPL.analogRead(0)) / 1024) print RPL.analogRead(1)
import RoboPiLib as RPL import time RPL.RoboPiInit("/dev/ttyAMA0",115200) sensor_2 = RPL.analogRead(1) def forward(): RPL.servoWrite(6, 1400) RPL.servoWrite(7, 1600) print "Forward" while True: if sensor_2 > 300: forward()
RPL.servoWrite(motorR,back) def forward(): RPL.servoWrite(motorL,lgo) RPL.servoWrite(motorR,rgo) def stop(): RPL.servoWrite(motorL, 1500) RPL.servoWrite(motorR, 1500) while x != "no": # big loop while True: # forward Fanalog = RPL.analogRead(fana) Banalog = RPL.analogRead(bana) Lanalog = RPL.analogRead(lana) fsensor = RPL.digitalRead(fdig) bsensor = RPL.digitalRead(bdig) straight = Banalog - Fanalog PTW.state['Fanalog'] = Fanalog PTW.state['Banalog'] = Banalog PTW.state['Lanalog'] = Lanalog PTW.state['fsensor'] = fsensor PTW.state['bsensor'] = bsensor PTW.state['straight'] = straight forward()
rgo = 2000 rslow = 1500 lgo = 100 lslow = 600 RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorL, lgo) RPL.servoWrite(motorL, lgo) while True: RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorL, lgo) while RPL.analogRead(analogR) >= 300: # middle range, can go straight print "we good" RPL.servoWrite(motorR, rgo) RPL.servoWrite(motorL, lgo) while RPL.analogRead(analogR) < 300: # no longer middle while RPL.digitalRead(19) == 0: # digital also sense, so close print "close" print RPL.analogRead(analogR) RPL.servoWrite(motorR, rslow) RPL.servoWrite(motorL, lgo) while RPL.digitalRead(19) == 1: # digital doesn't sense, far print "far" print RPL.analogRead(analogR) RPL.servoWrite(motorR, rgo)
import setup import RoboPiLib as RPL while True: print RPL.analogRead(1) # elif content - base <= -3: # x = 0 # y = y + 1 # if y >= 3: # average = [ ] # while len(average) < 1000: # content = RPL.analogRead(co) # average.append(content) # if len(average) == 1000: # base = sum(average) / len(average) # print "NEW BASE" # print base
def small_correct(): RPL.servoWrite(7, 1550) RPL.servoWrite(6, 1420) print "RIGHT correction" def large_correct(): RPL.servoWrite(6, 1460) RPL.servoWrite(7, 1570) print "LEFT correction" while True: sensor_1 = RPL.analogRead(0) sensor_2 = RPL.analogRead(1) move_forward = False move_left = False move_right = False stop = False right = False left = False if sensor_1 > 400: move_right = True elif sensor_1 > 50: move_forward = True elif sensor_1 - sensor_2 > 80: right = True elif sensor_2 - sensor_1 > 80:
import RoboPiLib as RPL import setup import time from time import sleep sensor_pinF = 5 sensor_pinL = 6 sensor_pinR = 7 RPL.pinMode(sensor_pinF, RPL.INPUT) RPL.pinMode(sensor_pinL, RPL.INPUT) RPL.pinMode(sensor_pinR, RPL.INPUT) R = 1 L = 0 startDistanceLeft = RPL.analogRead(sensor_pinL) startDistanceRight = RPL.analogRead(sensor_pinR) startDistanceForward = RPL.analogRead(sensor_pinF) while True: currentDistanceForward = RPL.analogRead(sensor_pinF) currentDistanceLeft = RPL.analogRead(sensor_pinL) currentDistanceRight = RPL.analogRead(sensor_pinR) if currentDistanceLeft <= 15: sleep(1.0) if currentDistanceLeft <= 15: RPL.servoWrite(L, 1500) RPL.servoWrite(R, 1600) sleep(1.30) if currentDistanceForward >= 315: if currentDistanceRight < currentDistanceLeft: RPL.servoWrite(L, 1400)
import RoboPiLib as RPL import setup import post_to_web as PTW sensor_pin = 16 mSpeed = 1400 mSpeed2 = 1600 Asensor_pin = 6 Fdistance = 100 running = True while running: distance = RPL.analogRead(Asensor_pin) RPL.servoWrite(1, mSpeed2) RPL.servoWrite(0, mSpeed) if distance > Fdistance: mSpeed = 1600 mSpeed2 = 1600 print("Left Turn") elif distance < Fdistance: mSpeed = 1400 mSpeed2 = 1400 print("right turn") else: mSpeed = 1400 mSpeed2 = 1600 print("straight")
def wall_left(): motors.wall_left() print "wall_left" def wall_right(): motors.wall_right() print "wall_right" ##Analog while 1: left_sensor = RoboPi.analogRead(LEFT_GO) L_VOLTS = 1000 / (RoboPi.analogRead(LEFT_GO) + 0.0000000001) L_CM = RoboPi.analogRead(LEFT_GO) go_forward = False go_clockwise = False go_counterclockwise = False go_stop = False go_wall_left = False go_wall_right = False print RoboPi.analogRead(LEFT_GO) if L_CM > 400: go_wall_left = True
import direction import time import RoboPiLib as RPL pause = TIME HERE speed = SPEED HERE apin = 7 while True: analog = RPL.analogRead(apin) if analog <= 650: #EDIT THIS direction.touch(analog) else: direction.frontraw(speed) time.sleep(pause) direction.stop() break
import RoboPiLib as RPL import setup import time from time import sleep sensor_pinF = 0 sensor_pinL = 2 sensor_pinR = 3 RPL.pinMode(sensor_pinF, RPL.INPUT) RPL.pinMode(sensor_pinL, RPL.INPUT) RPL.pinMode(sensor_pinR, RPL.INPUT) R = 1 L = 0 values = [] for i in range(0,100): values.append(RPL.analogRead(sensor_pinF)) print(sum(values) / 100)
import RoboPiLib as RPL import setup import time L = 1 R = 0 x = 1 while x == 1: reading = RPL.analogRead(7) if reading < 500: RPL.servoWrite(0, 1590) RPL.servoWrite(1, 1410) else: RPL.servoWrite(0, 1500) time.sleep(1.5) RPL.servoWrite(0, 1590)