def turnonLED(mmr): # To identify whether this device is communicated or not, LED works pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.BLINK) libmetawear.mbl_mw_led_write_pattern(mmr.device.board, byref(pattern), LedColor.GREEN) libmetawear.mbl_mw_led_play(mmr.device.board)
def set_led_color(self, mw_mac, led_color, position): device = MetaWear(mw_mac) i = 0 connected = False while i < 3 and not connected: try: device.connect() connected = True self.mw_devices.append(device) self.mw_positions[mw_mac] = position print "Connected to %s" % mw_mac except: i = i + 1 print "Connection to %s failed. Retrying..." % mw_mac if not connected: print "Error connecting to %s" % mw_mac return pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.SOLID) libmetawear.mbl_mw_led_write_pattern(device.board, byref(pattern), led_color) libmetawear.mbl_mw_led_play(device.board)
def led_on(self, color, duration, clear=True): if (self.led): pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.SOLID) libmetawear.mbl_mw_led_write_pattern(self.device.board, byref(pattern), color) libmetawear.mbl_mw_led_play(self.device.board) time.sleep(duration) if clear: libmetawear.mbl_mw_led_stop_and_clear(self.device.board)
def led_red(mac): global states for s in states: if s.device.address == mac: pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.PULSE) libmetawear.mbl_mw_led_write_pattern(s.device.board, byref(pattern), LedColor.RED) libmetawear.mbl_mw_led_play(s.device.board) sleep(2.0) libmetawear.mbl_mw_led_stop_and_clear(s.device.board)
def setup(self): # s represents a device's MAC address for s in self.states: # Device configuration print("Configuring device...") # Not sure what these parameters are for, but they're synchronized with the rest of the settings. libmetawear.mbl_mw_settings_set_connection_parameters( s.device.board, 7.5, 7.5, 0, 6000) # Acceleration libmetawear.mbl_mw_acc_set_odr(s.device.board, 25.0) # 25 Hz data collection rate libmetawear.mbl_mw_acc_set_range(s.device.board, 16.0) # Unsure libmetawear.mbl_mw_acc_write_acceleration_config( s.device.board) # Save to the board's configuration signal_acceleration = libmetawear.mbl_mw_acc_get_acceleration_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_subscribe(signal_acceleration, s.callback_accel) libmetawear.mbl_mw_acc_enable_acceleration_sampling(s.device.board) # Gyrometer libmetawear.mbl_mw_gyro_bmi160_set_odr(s.device.board, 6) # 6 is index for 25 Hz libmetawear.mbl_mw_gyro_bmi160_write_config(s.device.board) signal_gyro = libmetawear.mbl_mw_gyro_bmi160_get_rotation_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_subscribe(signal_gyro, s.callback_gyro) libmetawear.mbl_mw_gyro_bmi160_enable_rotation_sampling( s.device.board) # Magnometer libmetawear.mbl_mw_mag_bmm150_configure(s.device.board, 1, 1, 6) # 6 is index for 25 Hz signal_mag = libmetawear.mbl_mw_mag_bmm150_get_b_field_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_subscribe(signal_mag, s.callback_mag) # Run LED - Stays green until IMUs / system starts with a pulse pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.SOLID) libmetawear.mbl_mw_led_write_pattern(s.device.board, byref(pattern), LedColor.GREEN) libmetawear.mbl_mw_led_play(s.device.board) return
def main(): address = "D9:05:CD:93:E5:FC" #select_device() print("start connecting ", address) device = MetaWear(address) device.connect() print("Connected") pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.SOLID) libmetawear.mbl_mw_led_write_pattern(device.board, byref(pattern), LedColor.GREEN) libmetawear.mbl_mw_led_play(device.board) sleep(5.0) libmetawear.mbl_mw_led_stop_and_clear(device.board) sleep(1.0) device.disconnect() sleep(1.0)
# usage: python led.py [mac] from __future__ import print_function from mbientlab.metawear import MetaWear, libmetawear from mbientlab.metawear.cbindings import * from time import sleep from threading import Event #import sys #sys.argv[1] #device = MetaWear("FB:81:71:31:92:7A") device = MetaWear("C2:9B:59:07:56:C9") device.connect() print("Connected") pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY) libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.SOLID) libmetawear.mbl_mw_led_write_pattern(device.board, byref(pattern), LedColor.GREEN) libmetawear.mbl_mw_led_play(device.board) sleep(5.0) libmetawear.mbl_mw_led_stop_and_clear(device.board) sleep(1.0) device.disconnect() sleep(1.0)
switch = libmetawear.mbl_mw_switch_get_state_data_signal(d.board) GPIO = libmetawear.mbl_mw_gpio_get_analog_input_data_signal(d.board, 1, 0) GPIO_logger = create_voidp(lambda fn: libmetawear.mbl_mw_datasignal_log(GPIO, None, fn), resource = "logger") libmetawear.mbl_mw_datasignal_subscribe(switch, None, switch_callback) timer = create_voidp(lambda fn: libmetawear.mbl_mw_timer_create_indefinite(d.board, 1000, 0, None, fn), resource = "timer", event = e) #sampling (ms) libmetawear.mbl_mw_event_record_commands(timer) libmetawear.mbl_mw_datasignal_read(GPIO) libmetawear.mbl_mw_datasignal_read(switch) create_voidp_int(lambda fn: libmetawear.mbl_mw_event_end_record(timer, None, fn), event = e) # Logging Sensor Data try: libmetawear.mbl_mw_led_write_pattern(d.board, byref(Long), LedColor.GREEN) libmetawear.mbl_mw_led_play(d.board) sleep(1.0) libmetawear.mbl_mw_led_stop_and_clear(d.board) print("Start Logging") libmetawear.mbl_mw_gpio_start_pin_monitoring(d.board, 1) libmetawear.mbl_mw_logging_start(d.board, 0) libmetawear.mbl_mw_timer_start(timer) flag = True # Indefinite Logging while flag == True: libmetawear.mbl_mw_logger_get_signal(GPIO) libmetawear.mbl_mw_datasignal_read(switch) if (len(switch_output) > 0): if ((int(switch_output[len(switch_output)-1].split(', ')[1]) - int(switch_output[len(switch_output)- 2].split(', ')[1])) == 0):