Leon C. 2023-06-06 16:50 采纳率: 0%
浏览 11

什么可穿戴设备开放了获取传感器原数据的API?

希望在Android手机程序中无线获取可穿戴设备搭载的加速度传感器原数据(raw data)。什么可穿戴设备有API可以读取这样的数据?
比如类似MBIENTLAB的可穿戴传感器的设备。

  • 写回答

1条回答 默认 最新

  • 辞轩. 2023-06-07 14:36
    关注

    以下内容来自chat gpt:
    很多可穿戴设备都有可以读取加速度传感器原数据的API,其中MBIENTLAB也提供有这样的API。MBIENTLAB有多种可穿戴设备,包括MetaMotionR、MetaWearC等,以下是在Android手机程序中使用MBIENTLAB MetaWearC设备读取加速度传感器原数据的示例代码:

    1. 首先,您需要在您的项目中导入MBIENTLAB MetaWearC的Java API库。可以下载官方提供的开发包(www.mbientlab.com/developers)并将其导入到您的项目中。

    2. 然后,在您的Android代码中设置并连接MBIENTLAB MetaWearC设备,即:

      import com.mbientlab.metawear.MetaWearBoard;
      import com.mbientlab.metawear.android.BtleService;
      
      // ...
      
      String mw_mac_address = "";  // MBIENTLAB MetaWearC设备的MAC地址
      
      // 初始化BLE服务并连接到MetaWearC设备
      Intent gattServiceIntent = new Intent(this, BtleService.class);
      bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE);
      
      private ServiceConnection mServiceConnection = new ServiceConnection() {
          @Override
          public void onServiceConnected(ComponentName componentName, IBinder service) {
              BtleService.LocalBinder binder = (BtleService.LocalBinder) service;
              btleService = binder.getService();
              // 停止扫描BLE设备
              btleService.stopBleScan();
              // 连接到MBIENTLAB MetaWearC设备
              btleService.connect(mw_mac_address);
          }
      
          @Override
          public void onServiceDisconnected(ComponentName componentName) {
              // ...
          }
      };
      
    3. 一旦成功连接到设备后,您可以使用Android API随时获取它的加速度传感器数据,例如:

      import com.mbientlab.metawear.Accelerometer;
      import com.mbientlab.metawear.module.Accelerometer.*;
      
      // ...
      
      final Accelerometer accelerometer = board.getModule(Accelerometer.class);
      accelerometer.configure()
          .odr(OutputDataRate.ODR_100_HZ)
          .range(Range.FSR_2G)
          .commit();
      accelerometer.acceleration().addRouteAsync(new RouteBuilder() {
          @Override
          public void configure(RouteComponent source) {
              source.stream(new Subscriber() {
                  @Override
                  public void apply(Data data, Object... env) {
                      Acceleration value = data.value(Acceleration.class);
                      Log.i(LOG_TAG, "x = " + value.x() + ", y = " + value.y() + ", z = " + value.z());
                  }
              });
          }
      }).continueWith(new Continuation<Route, Void>() {
           @Override
           public Void then(Task<Route> task) throws Exception {
               accelerometer.acceleration().start();
               return null;
           }
      });
      

    以上代码将获取MBIENTLAB MetaWearC设备的加速度传感器传输速率设置为100 Hz,范围设置为2G(指2倍的标准重力加速度),并从传感器中读取原始数据并在日志中显示。想要保存成文件,也可以设置一个写入操作来进行处理。

    有关其他可穿戴设备的API和示例,请查看其相关开发文档。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月6日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)