Exemplo n.º 1
0
    def stop_update_loop(self):
        if self._dof_t is not None:
            self._dof_t.stop()

        if self.auto_enable_servos:
            with Hardware.lock:
                Hardware.servo_disable()
Exemplo n.º 2
0
def startcap(electrodes):
    global running
    global numelectrodes

    Hardware.cap_init(electrodes=electrodes, gpios=0, autoconfig=True)
    numelectrodes = electrodes

    running = True
Exemplo n.º 3
0
    def s_setservopos(conn, data):
        pin_number = int(data.pop('pin_number', 0))
        value = int(data.pop('value', 1500))

        value = constrain(value, 500, 2500)

        with Hardware.lock:
            Hardware.servo_set(pin_number, value)
Exemplo n.º 4
0
    def stop(self):
        print_info('Stop Robot loop')

        with Hardware.lock:
            Hardware.servo_disable()

        self.stop_alive_loop()
        self.stop_update_loop()
Exemplo n.º 5
0
    def start_update_loop(self):
        if self._dof_t is not None:
            self._dof_t.stop()

        with Hardware.lock:
            Hardware.servo_enable()

        self._dof_t = StoppableThread(target=self.dof_update_loop)
Exemplo n.º 6
0
    def start(self):
        print_info('Start Robot loop')
        with Hardware.lock:
            Hardware.servo_init()
        self.start_update_loop()

        if Preferences.get('alive', 'enabled', False):
            self.start_alive_loop()
Exemplo n.º 7
0
def robot_servo():
    servo_pin = request.form.get('pin_number', type=int, default=0)
    servo_value = request.form.get('value', type=int, default=1500)

    servo_pin = constrain(servo_pin, 0, 32)
    servo_value = constrain(servo_value, 500, 2500)

    # print_info('pin: ' + str(servo_pin) + ', value: ' + str(servo_value))

    with Hardware.lock:
        Hardware.servo_enable()
        Hardware.servo_set(servo_pin, servo_value)

    return json.dumps({'success': True})
Exemplo n.º 8
0
def robot_servos():
    servo_data = request.form.get('servo_data', type=int, default=None)

    values = []

    for value in servo_data:
        if value < 0:
            values.append(None)
        else:
            values.append(constrain(value, 500, 2500))

    with Hardware.lock:
        Hardware.servo_enable()
        Hardware.servo_set_all(values)

    return json.dumps({'success': True})
Exemplo n.º 9
0
    def update(self):
        """
        Updates the servo with the setted dof value.

        :return:         True if dof value is updated, False if dof value did not change
        :rtype:          bool
        """
        dof_animation_changed = super(Servo, self).update()

        # Only update if position is changed
        if self.position == self.to_us():
            return False

        # print_info('Servo: pin: %i, pos: %f' % (self.pin, self.position))

        if self.pin is not None:
            with Hardware.lock:
                Hardware.servo_set(self.pin, self.position)
                # return True
        return dof_animation_changed
Exemplo n.º 10
0
def TouchLoop():
    time.sleep(0.05)  # delay

    global running
    global clientconn

    while not touch_t.stopped():
        if running:
            data = {}

            with Hardware.lock:
                ret = Hardware.cap_get_filtered_data()

            for i in range(numelectrodes):
                data[i] = ret[i]

            if clientconn:
                clientconn.send_data('updateelectrodes',
                                     {'electrodedata': data})

        touch_t.sleep(0.1)
Exemplo n.º 11
0
 def servo_set_all(self, pos_list):
     pos_list = list(pos_list.values())
     Hardware.servo_set_all(post_list)
Exemplo n.º 12
0
 def spi_command(self, cmd, params=None, returned=0, delay=0):
     if params is not None:
         params = list(params.values())
     return self.runtime.table_from(
         Hardware.spi_command(cmd, params, returned, delay))
Exemplo n.º 13
0
 def ana_read_all_channels(self):
     return self.runtime.table_from(Hardware.cap_get_baseline_data())
Exemplo n.º 14
0
 def cap_get_baseline_data(self):
     return self.runtime.table_from(Hardware.cap_get_baseline_data())
Exemplo n.º 15
0
 def cap_get_filtered_data(self):
     return self.runtime.table_from(Hardware.cap_get_filtered_data())