Beispiel #1
0
    def test_device():
        """
        Initial arming and testing of Maestro servo Device.

        :return: <Int> 0 on success
        """
        servo = maestro.Device()
        print('[SERVO] SERVO CONNECTION ESTABLISHED....')

        # 3 ESC, 5 STEERING

        servo.set_acceleration(cfg.STEERING, 50)
        servo.set_acceleration(cfg.ESC, 100)

        print('[SERVO] SENT SIGNAL....')
        servo.set_target(cfg.STEERING, cfg.MAX_RIGHT)
        time.sleep(1)
        servo.set_target(cfg.STEERING, cfg.MAX_LEFT)
        time.sleep(1)
        servo.set_target(cfg.STEERING, cfg.MAX_RIGHT)
        time.sleep(1)
        servo.set_target(cfg.STEERING, cfg.CENTER)
        print('[SERVO] STEERING ARMED....')
        time.sleep(1)

        servo.set_target(cfg.ESC, cfg.MAX_SPEED)
        servo.set_target(cfg.ESC, cfg.NEUTRAL)
        print('[SERVO] MOTOR ARMED....')
        time.sleep(1)

        print('[DEBUG] Exiting test_Device function')

        return 0
Beispiel #2
0
 def auto_connect(self):
     port_list = ports.serial_ports()
     for port in port_list:
         if self.verbose: print('+ Trying port', port, end='')
         self.device = maestro.Device(con_port=False, ser_port=port)
         success = self.test_connection()
         if success: break
         if self.verbose: print('\t--> Rejected')
     if success and self.verbose: print('\t--> OK')
Beispiel #3
0
 def __init__(self, debug, servo_attached, gps_attached):
     self.gps_attached = gps_attached
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.sock.settimeout(0.1)
     self.connect_to_server()
     print("Connected on port ", cfg.HOST_PORTS, ". Ready to receive data.")
     self.servo = maestro.Device()
     self.debug = debug
     self.servo_attached = servo_attached
Beispiel #4
0
    def servo_ctl(servo_num, val):
        """
        Function to send signal to Maestro servo Device for execution

        :param servo_num: <Int> 3 for speed, 5 for steering
        :param val: <Int> qms pulse value for the servo to execute
        :return: <Int> 0 on success
        """
        servo = maestro.Device()

        servo.set_acceleration(cfg.STEERING, 50)
        servo.set_acceleration(cfg.ESC, 100)

        servo.set_target(servo_num, val)
        print('[DEBUG] Exiting servo_ctl function')

        return 0
Beispiel #5
0
 def manual_connect(self, ser_port):
     self.device = maestro.Device(con_port=False, ser_port=ser_port)