クランクの回転数(ケイデンス)とホイールの回転数との両方を、Simulinkに入力できるようにしました。PCとの接続は、Raspberry pi を使っています。Raspberry piをスタンドアロンで動かすのではなく、監視および調整で動かしています。
センサーは先日購入したリードスイッチ式のものを使っています。黒色棒状の先端付近を磁石が横切ると、リードスイッチが、OFF→ON→OFFになります。
GPIOを2つ使って、2つのセンサーのON,OFFを検出しています。
上がホイールの回転数から計算した速度(km/h)、下がケイデンス(rpm)になります。
固定ローラーで負荷をかけた状態で、自転車を漕ぎました。
真ん中で急激に速度とケイデンスとが上昇していますが、タイヤがスリップした影響です。
ケイデンスは、ホイールの回転数から速度を出すのとは違って、クランクの回転を止めると急にゼロになります。今回は、5秒間センサーの入力が無かったらケイデンスをゼロにしています。一方速度は、ペダルを止めてもホイールが惰性で回り続けるので急にゼロになることはありません(まだ上手くできていません)。
市販のメーターがどのように計算しているか気になります。フィルターで調整しているのでしょうか。
今後ですが、ペダリング時のトルクを取得するセンサーを付けたり、Simulink上に自転車や人間のモデルを組み込むことを考えています。Simulinkにしたのは、各種モデルを組み込みたかったからです。
Simulinkのモデルも参考にダウンロードできるようにしました。
モデルは、急いで作ったもので完成していません。これからブラッシュアップします。
raspberrypi_I2C_LCD_V_C_20***.***のファイルです。