Exemple #1
0
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)
Exemple #2
0
    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)
Exemple #3
0
 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)
Exemple #4
0
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)
Exemple #5
0
    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
Exemple #6
0
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)
Exemple #7
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)
Exemple #8
0
# Collecting GPIO and Switch Data
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):
    libmetawear.mbl_mw_datasignal_subscribe(
        dataSignal, None, s.callback
    )  #subscribes to a data stream, processing messages with the given handler

    libmetawear.mbl_mw_acc_enable_acceleration_sampling(
        s.device.board)  #enables acceleration sampling
    libmetawear.mbl_mw_acc_start(
        s.device.board)  #switches the accelerometer to active mode
    print('Device ready')

print('\nConfiguring the software...')

#Turn on the LED during the measures
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(d.board, byref(pattern), LedColor.RED)
libmetawear.mbl_mw_led_play(d.board)

#___________________________________________
''' infinite loop used to run the application '''

root.mainloop()

#___________________________________________
''' Stop the device '''

#Turn of the LED at the end of the measures
libmetawear.mbl_mw_led_stop_and_clear(d.board)

#Stops the measures
for s in states: