Пример #1
0
def connectBT():
    '''
    Order of operations is seriously important here.
    Don't ask me why.
    Data-streaming broke when I moved the vibration
    a few lines down...
    '''
    print('Connecting to Myo armband...')

    # assign the device to a var. get the MAC address first!
    myo_mac_addr = myo.get_myo()
    myo_device = myo.Device()

    # print developer information to console.
    print("MAC: %s" % myo_mac_addr)
    fw = myo_device.services.firmware()
    print("Firmware: %d.%d.%d.%d" % (fw[0], fw[1], fw[2], fw[3]))
    print("Battery: %d" % myo_device.services.battery())

    # never sleep.
    myo_device.services.sleep_mode(1)
    # set logo & bar LED color to purple.
    myo_device.services.set_leds([128, 128, 255], [128, 128, 255]) 
    # short vibration.
    myo_device.services.vibrate(1)

    # define which services we wish to subscribe to.
    myo_device.services.battery_notifications()
    myo_device.services.emg_filt_notifications()
    myo_device.services.set_mode(myo.EmgMode.FILT, myo.ImuMode.OFF, myo.ClassifierMode.OFF)
    myo_device.add_emg_event_handler(processEMG)

    print "Myo armband connected."

    return myo_device
Пример #2
0
def readAndClassify(samplesPerGesture):
  global isReadyToRegisterData
  global samplesPerSeconds
  global dataRecollectedPerIteration
  myo_mac_addr = myo.get_myo()
  myo_device = myo.Device()
  myo_device.services.sleep_mode(1)  # never sleep
  myo_device.services.vibrate(1) #short vibration
  myo_device.services.emg_filt_notifications()
  print("Battery: %d" % myo_device.services.battery())
  myo_device.services.set_mode(myo.EmgMode.FILT, myo.ImuMode.OFF, myo.ClassifierMode.OFF)
  myo_device.add_emg_event_handler(process_emg)
  while(True):
    myo_device.services.vibrate(1) # short vibration to let user know we are recording
    #time.sleep(2) #add some delay to avoid the vibration causing any interference
    isReadyToRegisterData = True
    while(samplesPerSeconds < samplesPerGesture):
      if myo_device.services.waitForNotifications(1):
        continue #return to the beggining of while loop
      else:
        print("no data has been received from the peripheral, waiting...")
    isReadyToRegisterData = False
    print("received Info")
    classifySignal()
    dataRecollectedPerIteration.clear()
    print("total number of samples: ", samplesPerSeconds)
    samplesPerSeconds = 0;
    def power_off(self):

        myo_mac_addr = myo.get_myo()
        print("MAC address: %s" % myo_mac_addr)
        print("Attempting to Power Off")
        myo_device = myo.Device()
        myo_device.services.power_off()
        print("Successfully Powered Off")
Пример #4
0
    def __init__(self):

        self.myo_mac_addr = myo.get_myo()  #获取当前的myo的mac地址
        self.myo_device = myo.Device() 

        self.actionCout = 0  #实现灯闪的效果

        # self.mHandCtrl = myHandCtrl() 

        self.pose = 0  #分类的动作结果
Пример #5
0
 def __init__(self, dataMode=["emg", "imu"]):
     '''data mode'''
     self.dataMode = dataMode  #采集的数据的种类,主要有:emg 和 imu
     self.emgDataMode = "raw"  #肌电数据的类型,主要为原始和滤波后
     self.imuDataMode = "raw"  #姿态数据的类型,主要为原始和滤波后
     '''emg data'''
     self.emgData = []  #用于保存肌电数据
     self.emgDataLenth = 80  #每次采集多少个数据做一次特征提取和动作的识别
     self.emgDataCounter = 0  #对肌电数据个数进行计数
     '''model'''
     self.modelFilePath = ""  #分类模型保存的路径
     self.modelFileName = "emg_data_20180625-022909-model"  #分类模型保存的文件的名字
     self.modelFileExitFlag = False  #分类模型是否存在
     self.numberVoter = 3  #投票成员的个数
     '''init myo'''
     self.myo_mac_addr = myo.get_myo()
     print("MAC address: %s" % self.myo_mac_addr)
     self.myo_device = myo.Device()  #myo硬件对象
     self.myo_device.services.sleep_mode(1)  # never sleep
 def start_MYO(self):
     myo_mac_addr = myo.get_myo()
     print("MAC address: %s" % myo_mac_addr)
  
     self.myo_device = myo.Device()
     self.myo_device.services.sleep_mode( 1 )  # never sleep
     self.myo_device.services.set_leds( [128, 128, 255], [128, 128, 255] )  # purple logo and bar LEDs)
     self.myo_device.services.vibrate( 1 )  # short vibration
     fw = self.myo_device.services.firmware()
     print("Firmware version: %d.%d.%d.%d   \n" % (fw[0], fw[1], fw[2], fw[3]))
  
     batt = self.myo_device.services.battery()
     print("Battery level: %d" % batt)
    
     # myo_device.services.emg_filt_notifications()
     self.myo_device.services.emg_raw_notifications()
     # myo_device.services.imu_notifications()
     # myo_device.services.classifier_notifications()
     # myo_device.services.battery_notifications()
     self.myo_device.services.set_mode( myo.EmgMode.RAW, myo.ImuMode.OFF, myo.ClassifierMode.OFF )
     self.myo_device.add_emg_event_handler( self.process_emg )
Пример #7
0
def process_classifier(pose):
    print(pose)


def process_battery(batt):
    print("Battery level: %d" % batt)


def led_emg(emg):
    if (emg[0] > 80):
        myo_device.services.set_leds([255, 0, 0], [128, 128, 255])
    else:
        myo_device.services.set_leds([128, 128, 255], [128, 128, 255])


myo_mac_addr = myo.get_myo()
print("MAC address: %s" % myo_mac_addr)
myo_device = myo.Device()
myo_device.services.sleep_mode(1)  # never sleep
myo_device.services.set_leds([128, 128, 255],
                             [128, 128, 255])  # purple logo and bar LEDs)
myo_device.services.vibrate(1)  # short vibration
fw = myo_device.services.firmware()
print("Firmware version: %d.%d.%d.%d" % (fw[0], fw[1], fw[2], fw[3]))
batt = myo_device.services.battery()
print("Battery level: %d" % batt)
myo_device.services.emg_filt_notifications()
# myo_device.services.emg_raw_notifications()
myo_device.services.imu_notifications()
myo_device.services.classifier_notifications()
# myo_device.services.battery_notifications()