Пример #1
0
def main():
    parser = argparse.ArgumentParser(
        description='Example application for displaying a dial indicator for '
        'what object is seen')
    parser.add_argument(
        '--output_overlay',
        default=True,
        type=bool,
        help='Should the visual overlay be generated')
    parser.add_argument(
        '--button_enabled',
        default=True,
        type=bool,
        help='Should the button be monitored')
    parser.add_argument(
        '--button_active',
        default=False,
        type=bool,
        help='Should the button start out active (true) or only be active once '
        'pressed (false)')
    flags = parser.parse_args()
    load_model = time.time()
    category_count = len(category_mapper.get_categories())
    button = AutoButton(flags.button_active, flags.button_enabled)

    for category in category_mapper.get_categories():
        print('Category[%d]: %s' % (category_mapper.get_category_index(category),
                                    category))
    with picamera.PiCamera() as camera:
        camera.resolution = (1640, 1232)
        camera.start_preview()
        overlay = OverlayManager(
            camera) if flags.output_overlay else DummyOverlayManager()
        servo = AngularServo(PIN_A, min_pulse_width=.0005, max_pulse_width=.0019)
        with CameraInference(image_classification.model()) as classifier:
            print('Load Model %f' % (time.time() - load_model))
            for result in classifier.run():
                if not button.on():
                    overlay.clear()
                    servo.angle = -90
                    continue

                classes = image_classification.get_classes(result)

                probs = [0] * (category_count + 1)
                result_categories = []
                for label, score in classes:
                    category = category_mapper.get_category(label) or 'Other'
                    probs[category_mapper.get_category_index(category) + 1] += score
                    result_categories.append(category)
                overlay.update(classes, result_categories)
                max_prob = max(probs)
                best_category = probs.index(max_prob)
                if best_category == 0 and max_prob > .5:
                    servo.angle = -90
                elif best_category != 0:
                    servo.angle = -90 + (180 * best_category) / category_count
                    print('category: %d - %s' %
                          (best_category,
                           category_mapper.get_categories()[best_category - 1]))
Пример #2
0
def main():
    parser = argparse.ArgumentParser(
        description='Example application for displaying a dial indicator for '
        'what object is seen')
    parser.add_argument(
        '--output_overlay',
        default=True,
        type=bool,
        help='Should the visual overlay be generated')
    parser.add_argument(
        '--button_enabled',
        default=True,
        type=bool,
        help='Should the button be monitored')
    parser.add_argument(
        '--button_active',
        default=False,
        type=bool,
        help='Should the button start out active (true) or only be active once '
        'pressed (false)')
    flags = parser.parse_args()
    load_model = time.time()
    category_count = len(category_mapper.get_categories())
    button = AutoButton(flags.button_active, flags.button_enabled)

    for category in category_mapper.get_categories():
        print('Category[%d]: %s' % (category_mapper.get_category_index(category),
                                    category))
    with picamera.PiCamera() as camera:
        camera.resolution = (1640, 1232)
        camera.start_preview()
        overlay = OverlayManager(
            camera) if flags.output_overlay else DummyOverlayManager()
        servo = AngularServo(PIN_A, min_pulse_width=.0005, max_pulse_width=.0019)
        with CameraInference(image_classification.model()) as classifier:
            print('Load Model %f' % (time.time() - load_model))
            for result in classifier.run():
                if not button.on():
                    overlay.clear()
                    servo.angle = -90
                    continue

                classes = image_classification.get_classes(result)

                probs = [0] * (category_count + 1)
                result_categories = []
                for label, score in classes:
                    category = category_mapper.get_category(label) or 'Other'
                    probs[category_mapper.get_category_index(category) + 1] += score
                    result_categories.append(category)
                overlay.update(classes, result_categories)
                max_prob = max(probs)
                best_category = probs.index(max_prob)
                if best_category == 0 and max_prob > .5:
                    servo.angle = -90
                elif best_category != 0:
                    servo.angle = -90 + (180 * best_category) / category_count
                    print('category: %d - %s' %
                          (best_category,
                           category_mapper.get_categories()[best_category - 1]))
Пример #3
0
def camController():
    global txCamData, camAngle, headAngle
    camPin = 4
    headPin = 17
    print('camController Started')
    camServo = AngularServo(camPin,
                            min_angle=0,
                            max_angle=180,
                            min_pulse_width=(0.5 / 1000),
                            max_pulse_width=(2.3 / 1000),
                            frame_width=20 / 1000)
    headServo = AngularServo(headPin,
                             min_angle=-90,
                             max_angle=90,
                             min_pulse_width=(0.5 / 1000),
                             max_pulse_width=(2.3 / 1000),
                             frame_width=20 / 1000)
    camServo.angle = 90
    headServo.angle = 0
    time.sleep(1)

    while True:
        txCamData = 0
        #time.sleep(0.500)
        camAngle = int(rxCamData % 1000)  #end digits  xxxabc  abc is data
        headAngle = int(rxCamData / 1000)  #begin digits abcxxx
        #if rxCamData:
        #print("rxCamData: %d" % rxCamData)
        camServo.angle = camAngle
        headServo.angle = headAngle
Пример #4
0
def main():
    # Now just write the code you would use on a real Raspberry Pi

    from time import sleep
    from gpiozero import AngularServo

    servo1 = AngularServo(17, min_angle=-90, max_angle=90)

    servo1.angle = -90

    while True:
        for x in range(-90, 90):
            servo1.angle = x
            sleep(0.1)
def main():
    from time import sleep
    from gpiozero import AngularServo, Button

    owm = OWM('api_key')
    reg = owm.city_id_registry()
    mgr = owm.weather_manager()

    krakow = reg.ids_for('Kraków', country='PL')[0]
    istanbul = reg.ids_for('Istanbul', country='TR')[0]
    stockholm = reg.ids_for('Stockholm', country='SE')[0]

    global btn_state
    btn_state = 0

    CITIES = [krakow, istanbul, stockholm]
    CITY_COUNT = 3
    WEATHER = {
        'clear': -70,
        'mist': -30,
        'haze': -30,
        'smoke': 10,
        'dust': 10,
        'sand': 10,
        'clouds': 10,
        'ash': 10,
        'squall': 10,
        'drizzle': 50,
        'rain': 50,
        'snow': 50,
        'thunderstorm': 50,
        'tornado': 50
    }
    servo1 = AngularServo(17, min_angle=-90, max_angle=90)
    servo1.angle = -90

    def button1_pressed():
        global btn_state
        btn_state += 1
        print("Change to " + str(CITIES[btn_state % CITY_COUNT]))

    button1 = Button(11)
    button1.when_pressed = button1_pressed

    while True:
        weather = mgr.weather_at_id(CITIES[btn_state % CITY_COUNT][0]).weather
        status = str(weather.status).lower()
        servo1.angle = WEATHER.get(status)
        print(str(CITIES[btn_state % CITY_COUNT]) + " : " + status)
        sleep(3)
Пример #6
0
def main():
    # now just write the code you would use on a real Raspberry Pi

    from time import sleep
    from gpiozero import AngularServo, Button, LED

    servo1 = AngularServo(17, min_angle=-90, max_angle=90)

    # possible_status = ['Rain', 'Clear', 'Clouds', 'Drizzle']

    #LED for showig activ city
    led_Krk = LED(22)
    led_Stk = LED(21)

    active_city = "Krakow"
    led_Krk.on()

    button1 = Button(11)
    button2 = Button(12)
    button1.when_pressed = lambda: button1_pressed(active_city, led_Krk,
                                                   led_Stk)
    button2.when_pressed = lambda: button2_pressed(active_city, led_Krk,
                                                   led_Stk)

    while True:
        print("Active city: ", active_city)
        servo1.angle = status_to_angle(import_weather(active_city))
        sleep(3)
def main():
    # now just write the code you would use on a real Raspberry Pi

    from time import sleep
    from gpiozero import AngularServo, LED, Button
    from weather import Weather
    weather = Weather()

    def button1_pressed():
        city_weather = weather.get_next_weather()
        print(city_weather)
        servo1.angle = convert_deg_temp(city_weather['temp'])

    def button2_pressed():
        print("button 2 pressed!")

    button1 = Button(11)
    button1.when_pressed = button1_pressed

    button2 = Button(12)
    button2.when_pressed = button2_pressed

    servo1 = AngularServo(17, min_angle=-90, max_angle=90)
    servo1.angle = convert_deg_temp(weather.get_next_weather()['temp'])

    while True:
        pass
Пример #8
0
def slider_angle(slider_num):
    n = slider_num
    servo1 = AngularServo(gpio20,
                          min_pulse_width=minPW,
                          max_pulse_width=maxPW,
                          initial_angle=0)
    servo1.angle = int(n)
    print(n)
    sleep(.5)
Пример #9
0
def slider2_angle(slider2_num):
    n2 = slider2_num
    servo2 = AngularServo(gpio21,
                          min_pulse_width=minPW,
                          max_pulse_width=maxPW,
                          initial_angle=0)
    servo2.angle = int(n2)
    print(n2)
    sleep(.5)
Пример #10
0
def Turn_Horizontal(slider_value):
    n = int(slider_value)
    servo_Horizontal = AngularServo(17,
                                    min_angle=-90,
                                    max_angle=90,
                                    min_pulse_width=minPWM,
                                    max_pulse_width=maxPWM)
    servo_Horizontal.angle = n
    sleep(2)
Пример #11
0
def main():
    # 初期化
    factory = PiGPIOFactory()
    # min_pulse_width, max_pulse_width, frame_width =>SG90仕様
    servo = AngularServo(SERVO_PIN, min_angle=MIN_DEGREE, max_angle=MAX_DEGREE, 
                         min_pulse_width=0.5/1000, max_pulse_width=2.4/1000, frame_width=1/50,
                         pin_factory=factory)

    # SG90を -60度 <-> +60度で角度を変える
    try:
        for _ in range(5):
            servo.angle = 60
            sleep(1.0)
            servo.angle = -60
            sleep(1.0)
    except KeyboardInterrupt:
        print("stop")

    return
Пример #12
0
def slider_change2(slider_value):  #slider value for motor 2
    textbox.value = slider_value
    print(slider_value)
    servo2 = AngularServo(Servo2,
                          min_pulse_width=minPulseWidth,
                          max_pulse_width=maxPulseWidth,
                          initial_angle=0,
                          min_angle=-0,
                          max_angle=90)
    servo2.angle = int(slider_value)
Пример #13
0
def cam_action(msg):
    servo = AngularServo(config.CAMSERVO_TILT, 
        min_pulse_width=0.2/1000,
        max_pulse_width=1.8/1000,
        frame_width=20/1000,
    )
    angle = json.loads(msg["data"])["angle"]
    if angle <= 90 and angle >= -90:
        servo.angle = angle
    time.sleep(1)
Пример #14
0
def slider_change1(slider1_value):
    text1.value = slider1_value
    servo1 = AngularServo(Servo1,
                          min_pulse_width=minpw,
                          max_pulse_width=maxpw,
                          initial_angle=0,
                          min_angle=0,
                          max_angle=180)
    servo1.angle = int(slider1_value)
    time.sleep(.25)
Пример #15
0
def slider_change2(slider2_value):
    text2.value = slider2_value
    servo2 = AngularServo(Servo2,
                          min_pulse_width=minpw,
                          max_pulse_width=maxpw,
                          initial_angle=0,
                          min_angle=0,
                          max_angle=180)
    servo2.angle = int(slider2_value)
    time.sleep(.25)
def main():
    from gpiozero import MCP3002, AngularServo
    from time import sleep

    pot1 = MCP3002(1, max_voltage=5, clock_pin=11, mosi_pin=10, miso_pin=9, select_pin=8)
    pot2 = MCP3002(1, max_voltage=5, clock_pin=15, mosi_pin=14, miso_pin=13, select_pin=12)

    servo1 = AngularServo(17, min_angle=0, max_angle=159)
    servo1.angle = 0
    servo2 = AngularServo(18, min_angle=-60, max_angle=240)
    servo2.angle = -60

    while True:
        print(f"pot1: value = {pot1.value:0.2f}\tvoltage = {pot1.voltage:0.2f}\traw value = {pot1.raw_value:0.2f}")
        servo1.angle = 159 * pot1.value

        print(f"pot2: value = {pot2.value:0.2f}\tvoltage = {pot2.voltage:0.2f}\traw value = {pot2.raw_value:0.2f}")
        servo2.angle = -60 + 300 * pot2.value

        sleep(0.1)
Пример #17
0
def slidervalchange2(slider_val):
    textbox.value = slider_val
    print(slider_val)
    servo2 = AngularServo(20,
                          min_pulse_width=minPW,
                          max_pulse_width=maxPW,
                          initial_angle=0,
                          min_angle=-90,
                          max_angle=90)
    servo2.angle = int(slider_val)
    time.sleep(0.4)
Пример #18
0
def main():
    from time import sleep
    from gpiozero import AngularServo, Button

    servo1 = AngularServo(17, min_angle=-90, max_angle=90)
    button1 = Button(12)

    button1.when_activated = change_location

    while True:
        servo1.angle = set_angle(current_location)
        sleep(0.1)
Пример #19
0
def main():
    from time import sleep
    from gpiozero import AngularServo, Button

    servo1 = AngularServo(17, min_angle=-90, max_angle=90)
    button_upper = Button(12)

    change_location()
    button_upper.when_activated = change_location

    while True:
        servo1.angle = get_servo_angle(location)
        sleep(0.1)
Пример #20
0
while True:
    # get track info for the first time
    if nr_iterations == 0:
        print('get track info for the first time')
        track.get_track()
        track.get_song_id()
        track.get_bpm()
        print('bpm is ')
        print(track.bpm)

        nr_iterations += 1

    # check if 5 seconds have elapsed
    if time.time() - time_last_update > 5:
        # update bpm
        track.get_track()
        track.get_song_id()
        track.get_bpm()
        print('updated bpm to ')
        print(track.bpm)

        # reset time last update
        time_last_update = time.time()
        print('reset time last update')

    # rotate servo on the beat of the music
    servo.angle = -20
    sleep(60 / track.bpm)
    servo.angle = 20
    sleep(60 / track.bpm)
Пример #21
0
def worker(conn, increasepos, increaseinc):
    pid = os.getpid()
    conn.send(pid)
    global deltaAngle
    global HdeltaAngle
    global VglobalAngle
    global HglobalAngle
    global minangle
    global s
    global s2

    # move vertical angle by this much
    deltaAngle = -int(increaseinc)

    # move vertical angle by this much
    HdeltaAngle = int(increasepos)

    while True:
        # recv the command fromt the conctroller
        command = conn.recv()
        if command == 'Start':
            print('\ndeltaAngle =' + str(deltaAngle))
            print('HdeltaAngle = ' + str(HdeltaAngle))
            
            try:
                f = open("Position.txt", 'r+')
                coord = f.read().split(",")
                f.close()

                s = AngularServo(17, initial_angle=int(coord[1]), min_angle=-60, max_angle=60)
                sleep(2)
                s2 = AngularServo(21, initial_angle=int(coord[0]), min_angle=-60, max_angle=60)
                sleep(2)
            except FileNotFoundError:
                print("File not found. Setting angles to 0 in 5 seconds...")
                sleep(5)
                s = AngularServo(17, min_angle=-60, max_angle=60)
                sleep(2)
                s2 = AngularServo(21, min_angle=-60, max_angle=60)
                sleep(2)
                write_to(0,0)
                sleep(2)
                
                
            
            print("ANTENNA INITIALIZED")
            print("Waiting 5 seconds before continuing...")
            sleep(5)
            while s.angle != 10:
                s.angle += 10
                sleep(2)
                
            write_to(HglobalAngle, VglobalAngle)
            
            while s2.angle != -60:
                s2.angle -= 10
                sleep(2)
                
            write_to(HglobalAngle, VglobalAngle)
            
           # sends controller that it has finished moving
            conn.send([HglobalAngle,VglobalAngle])# checks to see if the next command is to move
            write_to(HglobalAngle, VglobalAngle)
        elif command == 'Next':
            sleep(1)
            # if the angle is greater than 50 it'll set the angle to 50 instead of going over
            if VglobalAngle == -20:
                if HglobalAngle + HdeltaAngle >= 60:
                    if VglobalAngle == -20 and HglobalAngle == 60:
                        conn.send("done")
                        while True:
                            if conn.recv() == 'movetostrongest':
                                conn.send('ready')
                                strongest = conn.recv()
                                print("moving to strongest signal at: " + str(strongest[0]) +"  " + str(strongest[1]))
                                sleep(3)
                                moveto(strongest[0], strongest[1])
                                write_to(strongest[0], strongest[1])
                                sleep(3)
                                break
                        conn.send("Done")
                    HglobalAngle = 60
                    s2.angle = 60
                    sleep(2)
                    VglobalAngle = minangle
                    moveto(HglobalAngle, VglobalAngle)
                    sleep(2)
                    conn.send([HglobalAngle, VglobalAngle])
                    write_to(HglobalAngle, VglobalAngle)
                    sleep(1)
                else:
                    moveHorizontalServo()  # increases the HglobalAngle
                    VglobalAngle = minangle
                    moveto(HglobalAngle,VglobalAngle)
                    sleep(2)
                    conn.send([HglobalAngle, VglobalAngle])
                    write_to(HglobalAngle, VglobalAngle)
                    sleep(1)
            if VglobalAngle + deltaAngle <= -20:
                VglobalAngle = -20
                s.angle = -20
                sleep(2) # for right now they are set to 1
                conn.send([HglobalAngle, VglobalAngle])
                write_to(HglobalAngle, VglobalAngle)
                sleep(1)
            #  increments the vertical servo if it won't go over 50
            else:
                incrementVerticalServo()
                sleep(3)
                conn.send([HglobalAngle, VglobalAngle])
                write_to(HglobalAngle, VglobalAngle)
                sleep(3)
        elif command == 'moveto':
            print("Moving Antenna vertical angle to:", str(increaseinc))
            print("Moving Antenna horizontal angle to:", str(increasepos))

            try:
                f = open("Position.txt", 'r+')
                coord = f.read().split(",")
                f.close()

                s = AngularServo(17, initial_angle=int(coord[1]), min_angle=-60, max_angle=60)
                sleep(2)
                s2 = AngularServo(21, initial_angle=int(coord[0]), min_angle=-60, max_angle=60)
                sleep(2)
            except FileNotFoundError:
                print("File not found. Setting angles to 0 in 5 seconds...")
                sleep(5)
                s = AngularServo(17, min_angle=-60, max_angle=60)
                sleep(2)
                s2 = AngularServo(21, min_angle=-60, max_angle=60)
                sleep(2)
                write_to(0,0)
                sleep(2)
                
            moveto(increasepos, increaseinc)
            write_to(increasepos, increaseinc)
            sleep(3)
            s.close()
            sleep(3)
            s2.close()
            conn.send("close")
            exit(0)
Пример #22
0
# VARIABLES GLOBALES

velocidad = 0.00	# Ciclo de trabajo para el motor (entre 0 y 1)
angulo = -13		# Angulo para el servo


# INICIALIZACIONES

# Motor
motor = Motor(20,21)
motor.stop()

# Servo
servo = AngularServo(14, min_angle=-40, max_angle=40)
servo.angle = angulo

# Sensor
sensor = DistanceSensor(echo=18 , trigger=15 )

# Luces
frontalDer = PWMLED(2)
frontalIzq = PWMLED(3)
frontalGiroIzq = LED(17)
frontalGiroDer = LED(4)
traseraDer = LED(26)
traseraIzq = LED(16)
traseraGiroIzq = LED(13)
traseraGiroDer = LED(19)

# Conexion TCP_IP
Пример #23
0
from gpiozero import AngularServo
from time import sleep
import Adafruit_DHT

servo_pin = 4 #pin of servo
dht_pin = 16 #pin of dht sensor
delay = 5 # second,must more than 2. 

servo = AngularServo(servo_pin, min_angle=-90, max_angle=90)
servo.angle = 0

while True:
    humi, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11,dht_pin)
    print("humi = %f ,temp = %f"%(humi,temp))
    if humi > 80:
        servo.angle = 90
        print("servo 90")
    elif humi < 75:
        servo angle = 0
        print("servo 0")
    else :
        print("servo err")
    sleep(delay)
Пример #24
0
from gpiozero import AngularServo, LED
from time import sleep

led = LED(2)
servo = AngularServo(21, min_angle=-45, max_angle=45)

led.on()

servo.angle = -45
sleep(10)

for i in range(91):
    servo.angle += 1
    sleep(1)

led.off()
Пример #25
0
from gpiozero import AngularServo
from gpiozero import LED
from time import sleep

#setting up servo and fan.
servo = AngularServo(4, min_angle=-90, max_angle=90)
fan = LED(17)

theDangle = -90

while True:
    theDangle = -90
    servo.angle = theDangle
    sleep(0.5)
    #This for loop is used to slow down the servo, previously it threw the bubble mix all over the place.
    for i in range(19):
        servo.angle = theDangle
        print(theDangle)
        theDangle += 10
        sleep(0.1)
    #starting the fan
    fan.on()
    #giving the fan time to blow some bubbles.
    sleep(2)
    #shuting the fan off.
    fan.off()
    #giving the fan some time to spin down.
    sleep(2)
Пример #26
0
def servo_control2(s2_value):
    angle = float(s2_value)
    s2 = AngularServo(27, min_pulse_width=minPulseW, max_pulse_width=maxPulseW)
    s2.angle = angle
    sleep(0.5)
Пример #27
0
#!/usr/bin/python3

from gpiozero import AngularServo
from time import sleep
from sys import argv

pinservo=22 # bcm pin servo // pin servo bcm

#goes to a angle between 0 and 180, the angle is the parameter of the program // va a un angulo pasado como parametro al programa
#you can change the angles // puede cambiar los angulos
#the pulses must be changed for the pulses you need to get min an max angle in your servo // se deben cambiar los pulsos para su servomotor dependiendo cuales sean los pulsos de apertura maxima y minima del servo
servo = AngularServo(pinservo,min_angle=0, max_angle=180, min_pulse_width=1/2500, max_pulse_width=5/2200)

#go to angle, and wait 1 second for complete the order of change angle // va a el angulo y espera 1 segundo para que se complete la orden de cambio de angulo
servo.angle = float(argv[1])
sleep(1)

#important, wait time is neccesary for doing the order, minimun time is the time of the pulse and the time to change angle // importante, el tiempo de espera es necesario, minimo el tiempo del pulso y el tiempo de recorrido
Пример #28
0
from gpiozero import AngularServo
from time import sleep

servo = AngularServo(18, min_pulse_width=0.0006, max_pulse_width=0.0023)
servo.angle = 0
#while (True):
#   servo.angle = 90
#  sleep(2)
# servo.angle = 0
#sleep(2)
#servo.angle = -90
#sleep(2)
Пример #29
0
from gpiozero import AngularServo
from time import sleep

min_num = 0.45
max_num = 2.15
left_right_servo = AngularServo(17,
                                min_angle=-90,
                                max_angle=90,
                                min_pulse_width=min_num / 1000,
                                max_pulse_width=max_num / 1000)

while True:
    # s.angle = angle

    setting = input("Enter an angle: ")
    left_right_servo.angle = int(setting)
    #if setting == 'max':
    #    s.max()

    #if setting == 'mid':
    #    s.mid()

    #if setting == 'min':
    #    s.min()
Пример #30
0
import gpiozero
from gpiozero.pins.pigpio import PiGPIOFactory

gpiozero.Device.pin_factory = PiGPIOFactory()

from gpiozero import AngularServo
from time import sleep

print(gpiozero.Device.pin_factory)

pan = AngularServo(17, min_angle=-45, max_angle=45)
tilt = AngularServo(27, min_angle=-45, max_angle=45)

#while True:
print('start')
pan.angle = 0.0
tilt.angle = 0.0
sleep(5)
pan.angle = 40
tilt.angle = 40

sleep(5)

pan.detach()
tilt.detach()
Пример #31
0
def servo_control1(s1_value):
    angle = float(s1_value)
    s1 = AngularServo(17, min_pulse_width=minPulseW, max_pulse_width=maxPulseW)
    s1.angle = angle
    sleep(0.5)