Exemplo n.º 1
0
 def _scan_for_metawears(self):
     metawears = []
     metawear_stream_names = []
     while len(metawears) < self._max_devices:
         logging.info('Scanning metawear devices nearby...')
         try:
             addr = select_device(timeout=3)
             stream_name = input('enter stream name: ')
             metawears.append(addr)
             metawear_stream_names.append(stream_name)
         except ValueError as e:
             continue
         # metawears = list(filter(lambda d: d[1] == 'MetaWear', devices))
         time.sleep(1)
     return metawears, metawear_stream_names
Exemplo n.º 2
0
def run():
    """Example of how to run the Complimentary filter."""
    address = select_device()
    c = MetaWearClient(str(address), 'pygatt', timeout=10, debug=False)
    print("New client created: {0}".format(c))
    f = ComplimentaryFilter(0.075, 50.0)

    print("Write accelerometer settings...")
    c.accelerometer.set_settings(data_rate=50.0, data_range=4.0)
    c.gyroscope.set_settings(data_rate=50.0, data_range=250.0)
    print("Subscribing to accelerometer signal notifications...")
    c.accelerometer.high_frequency_stream = False
    c.accelerometer.notifications(f.add_accelerometer_data)
    c.gyroscope.notifications(f.add_gyroscope_data)
    time.sleep(10.0)

    print("Unsubscribe to notification...")
    c.accelerometer.notifications(None)
    c.gyroscope.notifications(None)

    c.disconnect()

    return f
Exemplo n.º 3
0
Created by hbldh <*****@*****.**>
Created on 2016-04-10

"""

from __future__ import division
from __future__ import print_function
from __future__ import absolute_import

import time

from pymetawear.discover import select_device
from pymetawear.client import MetaWearClient

address = select_device()
c = MetaWearClient(str(address), 'pygatt', debug=True)
print("New client created: {0}".format(c))


def acc_callback(data):
    """Handle a (epoch, (x,y,z)) accelerometer tuple."""
    print("Epoch time: [{0}] - X: {1}, Y: {2}, Z: {3}".format(
        data[0], *data[1]))


print("Write accelerometer settings...")
c.accelerometer.set_settings(data_rate=100.0, data_range=4.0)
print("Subscribing to accelerometer signal notifications...")
c.accelerometer.high_frequency_stream = False
c.accelerometer.notifications(acc_callback)
Exemplo n.º 4
0
Updated by lkasso <*****@*****.**>
Created by hbldh <*****@*****.**>
Created on 2016-04-26

"""

from __future__ import division
from __future__ import print_function
from __future__ import absolute_import

import time

from pymetawear.discover import select_device
from pymetawear.client import MetaWearClient

address = select_device()
c = MetaWearClient(str(address), debug=True)
print("New client created: {0}".format(c))

if c.ambient_light.is_present:
    print("Get ambient light settings...")
    settings = c.ambient_light.get_possible_settings()
    print(settings)

    time.sleep(1.0)

    print("Write ambient light settings...")
    c.ambient_light.set_settings(gain=4, integration_time=200, measurement_rate=200)

    time.sleep(1.0)
    
Exemplo n.º 5
0
        values = re.split('[:,}]', line)  # split the string to get the values

        x_data = float(values[4])
        y_data = float(values[6])
        z_data = float(values[8])

        self.current2 = np.hstack((x_data, y_data, z_data))
        self.buffer2[self.jj] = self.current2
        self.df2 = pd.DataFrame(self.buffer2)
        self.df2.columns = ['X-data', 'Y-data', 'Z-data']
        self.jj += 1


if __name__ == '__main__':
    # Set a LE Bluetooth device1 with given MAC address as client
    address1 = select_device()
    device1 = MetaWearClient(str(address1), debug=True)
    ''' Set accelerometer settings to preset values
    Possible settings are:
    rate in Hz:   0.78125, 1.5625, 3.125, 6.25, 12.5, 25.0, 50.0,
                  100.0, 200.0, 400.0, 800.0, 1600.0
    range in Gs:  2, 4, 8, 16
    For streaming data the rate is only possible up to 100 Hz.
    '''
    device1.accelerometer.set_settings(data_rate=12.5)
    device1.accelerometer.set_settings(data_range=4.0)
    ''' Set gyroscope settings to preset values
    Possible settings are:
    rate in Hz:  25, 50, 100, 200, 400, 800, 1600, 3200
    range in Gs: 125, 250, 500, 1000, 2000
    '''
def run() -> None:
    """kjsk
    Starts the program
    :return None:
    """
    # Create a MetaWear device
    address = select_device()
    # d = MetaWearClient('EE:50:E7:BF:21:83')
    d = MetaWearClient(str(address))

    proceed = True

    prompt = """
    \nChoose a number for an exercise below
    1. Walking
    2. Sitting
    3. Lying down
    4. Standing
    """

    while proceed:
        exercise = int(input(prompt))

        while exercise not in [1, 2, 3, 4]:
            exercise = int(input(prompt))

        if exercise == 1:
            action = 'walking'
        elif exercise == 2:
            action = 'sitting'
        elif exercise == 3:
            action = 'laying'
        else:
            action = 'standing'

        time_ = int(input(f"\nEnter Seconds You'll do {action}:\n"))
        # time_ = 60

        # Start to stream and record data
        try:
            acc_fname, gyro_fname = write_data_csv(title=action,
                                                   device=d,
                                                   time_=time_)

            upload_choice = input("\nUpload data?\n1. Yes\n2. No\n")
            if upload_choice == '1':
                upload_csv(acc_fname)
                upload_csv(gyro_fname)

            choice = input('Continue or exit\n1. Continue\n2. Exit\n')
            if choice != '1':
                print("Exiting...")
                proceed = False

        except Exception as message:
            print("Commit to database failed terribly due to\n", message)
            choice = input('Repeat or exit\n1. Repeat\n2. Exit\n')
            if choice != '1':
                print("Exiting...")
                proceed = False

        # Disconnect device
    reset(d)