예제 #1
0
def compute(threadname):
    """ Compute the force """
    dev = Device()
    dev.baudrate = 230400
    lastupdate = pg.ptime.time()
    i = 0
    while True:
        taille = HAPTICDEV.incommingsize() #FIFO.qsize()
        if taille >= 3:
            rec = HAPTICDEV.readarray(3)#bytearray(extract(FIFO, 3))
            taille = taille - 3
            if rec[0] != 5:
                while rec[0] != 5:
                    rec = HAPTICDEV.readarray(1)#bytearray(extract(FIFO, 1))
                    taille = taille - 1
                rec[1:2] = HAPTICDEV.readarray(2)#bytearray(extract(FIFO, 2))
                taille = taille - 2
            if rec[0] == 5:
                i += 1
                angle = rec[1] + rec[2] * 256
                if angle > 32767:
                    angle -= 65536
                degre = angle*360/20000
                data = SHARED['data']
                data[:-1] = data[1:]
                data[-1] = degre
                SHARED['data'] = data
                indexf = max(min(int((ANGLEMAX+degre)*RESANG), ANGLEMAX*RESANG*2-1), 0)
                forcenow = FORCE[indexf]
                forcenow = max(min(forcenow, 130), -130)
                HAPTICDEV.write(forcenow)
                SHARED['degre'] = degre
                SHARED['forcenow'] = forcenow

                if i >= COUNT:
                    i = 0
                    now = pg.ptime.time()
                    SHARED['fps'] = COUNT / (now - lastupdate)
                    SHARED['taille'] = taille
                    lastupdate = now
예제 #2
0
import paho.mqtt.client as mqtt
import json
from pylibftdi import Device, USB_PID_LIST, USB_VID_LIST

from config import MQTT_HOST

USB_VID_LIST.append(0x1321)
USB_PID_LIST.append(0x1001)

dev = Device(mode='t')
dev.baudrate = 57600
dev.open()


def run_command(cmd):
    if cmd != '':
        dev.flush()
        print('TX: ' + cmd)
        dev.writelines(cmd + '\r')
        out = ''
        while out == '':
            out = dev.readline()
        print('RX: ' + out)


def to_command(obj):
    cmds = []
    for input in obj:
        cmd = 'xpgn(' + input + ',*)='
        # print('Input: ' + input)
        # print(obj[input])
예제 #3
0
#!/usr/bin/env python
import pygame
from math import floor
from pylibftdi import Device  # I2C over USB
import time

# import servo
dev = Device(mode="b")
dev.baudrate = 9600

# allow multiple joysticks
joy = []


def fix(bits):
    if bits & 0b00100000:
        return 63 - bits
    else:
        return bits


# handle joystick event
def handleJoyEvent(e):
    if e.type == pygame.JOYAXISMOTION:
        axis = "unknown"
        if e.dict["axis"] == 0:
            axis = "X"
            bits = 0b10000000  # Throw away; don't change anything

        if e.dict["axis"] == 1:
            axis = "Y"
예제 #4
0
def midi_ftdi_dev():
    from pylibftdi import Device
    d = Device()
    d.baudrate = 31250
    return d