Exemple #1
0
import gpiozero
import numpy as np
import cwiid
steering = gpiozero.AngularServo(18, min_angle=-60, max_angle=60)
drive = gpiozero.Motor(17, 21, enable=None, pwm=True, pin_factory=None)
wii = cwiid.Wiimote()
wii.rpt_mode = cwiid.RPT_BTN | cwiid.RPT_ACC


def steer(angle):
    if np.absolute(angle) < 5:
        angle = 0
    steering.angle = angle


def drive(speed):
    if np.absolute(speed) < 0.15:
        drive.stop()
    elif speed < 0:
        drive.backward(abs(speed))
    else:
        drive.forward(speed)


while True:
    steer(np.clip(np.interp(wii.state["acc"][cwiid.X] - 95), 0, 50, -50, 50),
          -60, 60)
    drive(np.clip(np.interp(wii.state["acc"][cwiid.Y] - 95), 0, 50, -1, 1), -1,
          1)
Exemple #2
0
def move(self, angle=None, speed=0):
    '''Moves the servo to angle [deg] at speed [deg/s].'''
    if self.angle is None or angle is None or speed == 0:
        self.angle = angle
        return
    begin, end = int(self.angle), angle
    for a in range(begin, end + 1, 2 * (begin < end) - 1):
        self.angle = a
        time.sleep(1 / speed)


if not dry_run:
    gpiozero.AngularServo.move = move
    servo = gpiozero.AngularServo(4,
                                  min_angle=0,
                                  max_angle=90,
                                  initial_angle=None,
                                  pin_factory=PiGPIOFactory())
    switch = gpiozero.Button(27)
    breakwire = gpiozero.Button(22)
    switch.when_pressed = lambda: set_position(90)
    switch.when_released = lambda: set_position(0)
    breakwire.when_released = lambda: stop(True)
    LED = gpiozero.RGBLED(24, 23, 18)
position = None
shutdown = False  # whether to shut down after exit. Var will be set by function call
shutdown_hook = None  # hacky global to store the server shutdown function in at the soonest request
project_dir = '/home/pi/Documents/SRP_RI/'


def stop(_shutdown=False):
Exemple #3
0
            while symb != '}' and j < len(resp):
                symb = resp[j]
                score += symb
                j += 1
                symb = resp[j]

            results[keyword] = float(score)
            score = ''
            keyword = ''
            i = j
        i += 1


parse_text(response.text)

servo1 = gpiozero.AngularServo(17, min_angle=-90,
                               max_angle=90)  #right platform servo
servo1.angle = 0
servo2 = gpiozero.AngularServo(18, min_angle=-90,
                               max_angle=90)  #left platform servo
servo2.angle = 0

sensor = gpiozero.MotionSensor(4)
led = gpiozero.LED(14)
"""while True:
    if sensor.motion_detected():            
        led.on()
        #photo
        querystring = {"url":"https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F1.bp.blogspot.com%2F_Od0_3vFBzHY%2FTJechRB6evI%2FAAAAAAAAAAM%2F3PKnboxFuTU%2Fs1600%2FPlasticBottle-PET.jpg&f=1&nofb=1"}        
        response = requests.request("GET", url, headers=headers, params=querystring)
        if "Bottle" in results.keys() and "Plastic" in results.keys():
            servo1.angle = -90
Exemple #4
0
def go_to_angle():
    servo = gz.AngularServo(17, min_angle=-90, max_angle=90)

    while True:
        angle = int(input("Enter an integer for angle: "))
        servo.angle = angle
import VL53L0X

tof = VL53L0X.VL53L0X()
tof.start_ranging(
    1)  # Start ranging, 1 = Short Range, 2 = Medium Range, 3 = Long Range

#right_motor = gpiozero.PhaseEnableMotor(13, 6)
#left_motor = gpiozero.PhaseEnableMotor(26, 19)

right_motor = gpiozero.PhaseEnableMotor(9, 10)
left_motor = gpiozero.PhaseEnableMotor(22, 27)

panangle = 0
tiltangle = 0

pan_servo = gpiozero.AngularServo(21)
tilt_servo = gpiozero.AngularServo(26)

pan_servo.angle = panangle
tilt_servo.angle = tiltangle
#pantilthat.pan(panangle)
#pantilthat.tilt(tiltangle)

running = True
while running:
    try:
        # Get a joystick
        with ControllerResource() as joystick:
            # Loop until we're disconnected
            while joystick.connected:
                # Check joystick
Exemple #6
0
curses.cbreak()
screen.keypad(True)

if __name__=="__main__":

    pinNumber1 = 17
    pinNumber2 = 27
    
    initialAngle = 0
    minAngle = -90
    maxAngle = 90
    min_pulse_width = 500/1e6
    max_pulse_width = 2400/1e6
    servo1 = gpiozero.AngularServo(pinNumber1,
                                  initialAngle,
                                  minAngle,
                                  maxAngle,
                                  min_pulse_width,
                                  max_pulse_width)

    servo2 = gpiozero.AngularServo(pinNumber2,
                                  initialAngle,
                                  minAngle,
                                  maxAngle,
                                  min_pulse_width,
                                  max_pulse_width)
    


    def get_jacobian(q):
        l1 = 1
        l2 = 1
Exemple #7
0
import gpiozero
import time

if __name__=="__main__":

    pinNumber = 17
    initialAngle = 0
    minAngle = -90
    maxAngle = 90
    min_pulse_width = 500/1e6
    max_pulse_width = 2400/1e6
    servo = gpiozero.AngularServo(pinNumber,
                                  initialAngle,
                                  minAngle,
                                  maxAngle,
                                  min_pulse_width,
                                  max_pulse_width)

    servo.angle = -90

    # Show the range
    while servo.angle < 90:
        servo.angle += 1
        time.sleep(.01)

    while servo.angle > -90:
        servo.angle -= 1
        time.sleep(.01)

    while True:
        angle = input("Enter an angle between -90 and 90    ")
Exemple #8
0
import gpiozero as zero
from time import sleep

big = 100
lil = 0
mid = int((big - lil) * (2 / 5))

servo = zero.AngularServo(17, min_angle=lil, max_angle=big)
while True:
    servo.angle = big
    sleep(1)
    print("big")
    servo.angle = mid
    sleep(1)
    print("mid")
    servo.angle = lil
    sleep(1)
    print("lil")
Exemple #9
0
import gpiozero as gpio
from time import sleep
import sys

led = gpio.LED(17)
pir = gpio.MotionSensor(4)
buzzer = gpio.Buzzer(27)
servo = gpio.AngularServo(22,min_angle=-90,max_angle=90)
sensor = gpio.DistanceSensor(echo = 18, trigger = 13)

def turnOn():
    led.on()
    sleep(10)
    print('Light was on, it just turned off')

def turnOff():
    led.off()
    print('Light is now off')

def servoMovement(angle):
    angle = int(angle)
    servo.angle = angle
    sleep(3 )
    print('Servo Moved')

def buzz():
    buzzer.on()
    sleep(10)
    print('buzzzz')

def noBuzz():
Exemple #10
0
import gpiozero as gpio

#max and min
MAXANGLE = 1
MINANGLE = -1

#pin numbers are temporary - change as needed
#angle values are temporary - change as needed

#INIT SERVOS

servos = [gpio.AngularServo(21, initial_angle=-50), gpio.AngularServo(20, initial_angle=-12), gpio.AngularServo(4, initial_angle=90), gpio.AngularServo(5, initial_angle=-27), gpio.AngularServo(6, initial_angle=-19), gpio.AngularServo(12, initial_angle=-10)]

angles = [(-50,-26), (-35,-12), (50,90), (-45,-27), (-35,-19), (-45,-10)]


#returns list of angle values in order servos are defined
def state():
    s = []
    for i in servos:
        s.append(i.angle)
    return s

#param string of type integer is which string is to be picked 
#does gpio wait until completion? - if not, we have to manually add delays
#return angle servo is set to
def pick(string):
    s = state()[string]
    ang = angles[string]
    
    if s == ang[0]:
Exemple #11
0
	def __init__(self):
		#self.pan_servo = gpiozero.AngularServo(21)
		#self.tilt_servo = gpiozero.AngularServo(26)
		#self.right_motor = gpiozero.PhaseEnableMotor(9, 10)
		#self.left_motor = gpiozero.PhaseEnableMotor(22, 27) 
		self.second_servo = gpiozero.AngularServo(22)
		self.first_servo = gpiozero.AngularServo(12,min_angle=-90,max_angle=90)	
		self.fan_servo = gpiozero.AngularServo(20)
		self.fan_servo.angle = 90
		self.servo_off()
		self.first_angle = 0
		self.second_angle = 0
		
		M1DIR = 27
		M1PWM = 13
		M2DIR = 6
		M2PWM = 5
		# self.right_motor = gpiozero.PhaseEnableMotor(M1DIR, M1PWM)
		# self.left_motor = gpiozero.PhaseEnableMotor(M2DIR, M2PWM) 
		# self.right_motor.stop()		
		# self.left_motor.stop()
		self.right_pwm = gpiozero.PWMOutputDevice(M1PWM)
		self.right_dir = gpiozero.OutputDevice(M1DIR)
		self.left_pwm = gpiozero.PWMOutputDevice(M2PWM)
		self.left_dir = gpiozero.OutputDevice(M2DIR)
				
		self.battery()		
		self.temperature()
		
		try:	
			# Create a VL53L0X object
			self.tof = VL53L0X.VL53L0X()
			# Start ranging
			# tof.start_ranging(VL53L0X.Vl53l0xAccuracyMode.BETTER)
			self.tof.start_ranging(VL53L0X.VL53L0X_HIGH_SPEED_MODE)

			self.timing = self.tof.get_timing()
			if self.timing < 20000:
				self.timing = 20000
			print("Timing %d ms" % (self.timing/1000))
			
			self.hasTOF = True
		except:
			print("Problem init TOF")
			self.hasTOF = False

		# Raspberry Pi configuration with serial UART and RST connected to GPIO 18:
		self.bno = BNO055.BNO055(serial_port='/dev/serial0', rst=7)
		while True:
			try:
				self.bno.begin()
				break			
			except KeyboardInterrupt:
				# CTRL+C exit, disable all drives				
				return
			except:
				print("BNO Error")				
				#raise RuntimeError('Failed to initialize BNO055! Is the sensor connected?')
				
		# Print BNO055 software revision and other diagnostic data.
		sw, bl, accel, mag, gyro = self.bno.get_revision()
		print('Software version:   {0}'.format(sw))
		print('Bootloader version: {0}'.format(bl))
		print('Accelerometer ID:   0x{0:02X}'.format(accel))
		print('Magnetometer ID:    0x{0:02X}'.format(mag))
		print('Gyroscope ID:       0x{0:02X}\n'.format(gyro))
Exemple #12
0
import time
import gpiozero as gp

l = gp.Motor(6, 13)
r = gp.Motor(2, 3)
pan = gp.AngularServo(12)
tilt = gp.AngularServo(8)

time.sleep(10)

try:
    l.forward()
    r.forward()
    time.sleep(2)
    l.backward()
    time.sleep(0.5)
    l.forward()
    time.sleep(1)
    r.backward()
    time.sleep(0.5)
    r.forward()
    time.sleep(1)
finally:
    r.stop()
    l.stop()
    pan.angle = 0
    pan.detach()
    tilt.angle = 0
    tilt.detach()
Exemple #13
0
DISTANCE_TO_OBJECT = 5
MIN_AREA = 100
MAX_AREA = 1000
CONFIDENCE = 0.01
BORDER = 8
FRAMES_TO_ENSURE = 1
FRAMES_TO_CANCEL_SHOOTING = 20
CORRECT_THRESHOLD_PROPORTION = 0
CHANGE_THRESHOLD = 0.2
DETECTION_DIFFERENCE_THRESHOLD = 4

# All Pins are BCM
RELAY_PIN = 17
SERVO_PIN = 18
RELAY = gpiozero.OutputDevice(RELAY_PIN)
SERVO = gpiozero.AngularServo(SERVO_PIN, min_angle=-45, max_angle=45)
SERVO.mid()

# TODO: find optimal values
LOWER_SQUIRREL_HSV = np.array([20, 0, 50])
UPPER_SQUIRREL_HSV = np.array([130, 255, 180])
LABELS = open(
    os.path.abspath("yolo-coco/coco.names")).read().strip().split("\n")

np.random.seed(42)
COLORS = np.random.randint(0, 255, size=(len(LABELS), 3), dtype="uint8")

weightsPath = os.path.sep.join(["yolo-coco", "yolov3-tiny.weights"])
configPath = os.path.sep.join(["yolo-coco", "yolov3-tiny.cfg"])

print("Loading YOLO v3 Tiny from disk...")