예제 #1
0
 def __init__(self, in1=13, in2=12, ena=6, in3=21, in4=20, enb=26):
     self.motorL = motor.Motor(in1, in2, ena)  #motor LEFT
     self.motorR = motor.Motor(in3, in4, enb)  #motor RIGHT
     self.servoLR = servos.Servo()  #servo LEFT RIGHT
     self.servoUD = servos.Servo(chan=1, centerVal=1800)
     self.servoUD.stop()
     self.stop()  #servo UP DOWN
예제 #2
0
파일: test.py 프로젝트: Oktober13/olinoboat
import servos

s = servos.Servo('rudder', 1)

s.set_position(77)
예제 #3
0
from threading import Thread

import logging
import cv2
import vision
import gestures
import servos
import os

app = Flask(__name__)
ask = Ask(app, '/')

logging.getLogger("flask_ask").setLevel(logging.DEBUG)
threads = []
feed = cv2.VideoCapture(0)
servo0 = servos.Servo(250, 600, 0)
servo1 = servos.Servo(527, 225, 1)
servo2 = servos.Servo(154, 382, 2)
servo3 = servos.Servo(105, 620, 3)
light_flag = False 

gestures.home([servo0, servo1, servo2, servo3])

gestures.wake_up([servo1, servo2, servo3])

@ask.intent('LightOnOff', mapping={'OnOff': 'state'})
def turn_on_off(state):
    global light_flag
    if state == 'on': 
        if light_flag:
            return statement('Are you blind?')
예제 #4
0
    # unserialized graph_def
    with tf.gfile.GFile(frozen_graph_filename, "rb") as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())

    with tf.Graph().as_default() as graph:
        # The name var will prefix every op/nodes in your graph
        # Since we load everything in a new graph, this is not needed
        tf.import_graph_def(graph_def)

    return graph


graph = load_graph('./Imitation_better.pb')
pwm = Adafruit_PCA9685.PCA9685()
servo0 = servos.Servo(250, 600, 0)
servo1 = servos.Servo(120, 538, 1)
servo2 = servos.Servo(154, 382, 2)
servo3 = servos.Servo(105, 620, 3)
pwm.set_pwm_freq(60)
servo0.set_pos(0)
servo1.set_pos(0)
servo2.set_pos(0)
servo3.set_pos(0)


def set_servos(positions, coords):

    # Set default variables to load
    x = graph.get_tensor_by_name('import/vector_observation:0')
    y = graph.get_tensor_by_name('import/action:0')
예제 #5
0
def main():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter)
    parser.add_argument('--device-model-id', '--device_model_id', type=str,
                        metavar='DEVICE_MODEL_ID', required=False,
                        help='the device model ID registered with Google')
    parser.add_argument('--project-id', '--project_id', type=str,
                        metavar='PROJECT_ID', required=False,
                        help='the project ID used to register this device')
    parser.add_argument('--device-config', type=str,
                        metavar='DEVICE_CONFIG_FILE',
                        default=os.path.join(
                            os.path.expanduser('~/.config'),
                            'googlesamples-assistant',
                            'device_config_library.json'
                        ),
                        help='path to store and read device configuration')
    parser.add_argument('--credentials', type=existing_file,
                        metavar='OAUTH2_CREDENTIALS_FILE',
                        default=os.path.join(
                            os.path.expanduser('/home/pi/.config'),
                            'google-oauthlib-tool',
                            'credentials.json'
                        ),
                        help='path to store and read OAuth2 credentials')
    parser.add_argument('-v', '--version', action='version',
                        version='%(prog)s ' + Assistant.__version_str__())

    args = parser.parse_args()
    with open(args.credentials, 'r') as f:
        credentials = google.oauth2.credentials.Credentials(token=None,
                                                            **json.load(f))

    device_model_id = None
    last_device_id = None
    try:
        with open(args.device_config) as f:
            device_config = json.load(f)
            device_model_id = device_config['model_id']
            last_device_id = device_config.get('last_device_id', None)
    except FileNotFoundError:
        pass

    if not args.device_model_id and not device_model_id:
        raise Exception('Missing --device-model-id option')

    # Re-register if "device_model_id" is given by the user and it differs
    # from what we previously registered with.
    should_register = (
        args.device_model_id and args.device_model_id != device_model_id)

    device_model_id = args.device_model_id or device_model_id

    servo0 = servos.Servo(250, 600, 0)
    servo1 = servos.Servo(120, 538, 1)
    servo2 = servos.Servo(154, 382, 2)
    servo3 = servos.Servo(105, 620, 3)

    servo0.set_pos(0)
    servo1.set_pos(0)
    servo2.set_pos(0)
    servo3.set_pos(0)

    servo3.set_pos(0.5)
    time.sleep(0.1)
    servo3.set_pos(-0.5)
    time.sleep(0.1)
    servo3.set_pos(0.25)
    time.sleep(0.1)
    servo3.set_pos(-0.25)
    time.sleep(0.1)
    servo3.set_pos(0)


    with Assistant(credentials, device_model_id) as assistant:
        events = assistant.start()

        device_id = assistant.device_id
        print('device_model_id:', device_model_id)
        print('device_id:', device_id + '\n')

        # Re-register if "device_id" is different from the last "device_id":
        if should_register or (device_id != last_device_id):
            if args.project_id:
                register_device(args.project_id, credentials,
                                device_model_id, device_id)
                pathlib.Path(os.path.dirname(args.device_config)).mkdir(
                    exist_ok=True)
                with open(args.device_config, 'w') as f:
                    json.dump({
                        'last_device_id': device_id,
                        'model_id': device_model_id,
                    }, f)
            else:
                print(WARNING_NOT_REGISTERED)

        for event in events:
            process_event(event)