0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnityとNode.jsにてAnt+心拍計の数値を取得、VRMに反映したかったのだが…2024

Last updated at Posted at 2024-10-26

私が以前使用していた
Advanced ANT+はもうなくなってしまったので以下のページを参考に行いました。
心拍を表示するところまではうまくいったのですが、うまくいかず停滞中です。

参考にさせていただいたページ

私の前提知識:node.jsに関して全くの無知。
ode.js(ノードジェイエス)は、JavaScriptというプログラミング言語を使って、サーバーサイド(裏方)で動くアプリケーションを作るための環境。もっと簡単に言うと、普通はウェブページを作るのに使うJavaScriptを、パソコンやサーバーの中で動かして色々な処理を行えるようにするツール
ということだけ理解。もっと勉強します。

インストール 
npm install ant-plus 
※node.jsではなくコマンドプロンプトで実施する。

C:\ant_plus を作成し、
cd C:\ant_plus でフォルダに移動 
npm install ant-plus でインストールした
スクリーンショット 2024-09-15 204840.png

以下の内容のant_plus.jsを作成して実行、

ant_plus.js
var Ant = require('ant-plus');
console.log('ant-plus module loaded successfully');

ant-plus module loaded successfullyとなっており読み込みに成功。

スクリーンショット 2024-09-15 205659.png

次は以下を作成 jsが分からんのでchatGPTに一行づつ何してるのかコメントしてもらった。

one-sticks00.js
'use strict';  // 厳格モードを有効にしてエラーチェックを厳密にする

const Ant = require('ant-plus');  // ant-plusライブラリを読み込み
const stick = new Ant.GarminStick2();  // Garmin ANT+ USBスティック2のインスタンスを作成
const sensor = new Ant.HeartRateSensor(stick);  // 心拍センサーのインスタンスを作成

let deviceID = null;  // デバイスIDを格納する変数

// コマンドライン引数でデバイスIDが指定されているか確認
if (process.argv.length >= 3) {
    deviceID = process.argv[2];  // 指定されていればデバイスIDを設定
}

// 心拍データが受信されたときの処理
sensor.on('hbData', function (data) {
    if (deviceID === null) {
        // デバイスIDが未設定の場合、受信したデバイスIDと心拍数を表示
        deviceID = data.DeviceID;  // 受信したデバイスIDを取得して設定
        console.log(`デバイスIDを取得しました: ${deviceID}`);
        console.log(`心拍数: ${data.ComputedHeartRate}`);
    } else if (deviceID == data.DeviceID) {
        // デバイスIDが設定済みの場合、そのデバイスからの心拍数のみを表示
        console.log(`心拍数: ${data.ComputedHeartRate}`);
    }
});

// USBスティックが接続されたときの処理
stick.on('startup', function () {
    console.log('ANT+ USBスティックが起動しました');
    sensor.attach(0, 0);  // ANT+チャンネルに心拍センサーをアタッチ(接続)
});

// USBスティックが見つからない場合のエラーハンドリング
if (!stick.open()) {
    console.log('ANT+ USBスティックが見つかりません!');
}

※実行するとconsole.logは日本語文字化けしました

ドングル(USB)をPCに刺し、心拍計を電源on。
PS C:\ant_plus> node one-sticks00.js
を実行
スクリーンショット 2024-09-15 214955.png
心拍来ました。

心拍データをJsonで出すことは出来た。

https://tips.hecomi.com/entry/2014/04/21/001606 
しかし、上記の記事を参考にしてみたが、
UniGLFの中のTinyManagedTaskScheduler.cs、 UnityThread.cs 更にSearcherDatabaseとコンフリクトする部分があるみたいでうまくいかなかった。他のやり方調べよう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?