
古いトレッドミルでも、ベルトの印を光センサーで数えれば速度と距離が分かる。それをGarminの時計やZwiftへ、標準の規格で流し込む装置「OpenRUNN」の設計とコードが、MITライセンスでGitHubに公開された。作ったのはlpolasek氏で、ハードウェアはESP32-C3の開発ボードとTCRT5000という光センサーの2点だけになる。
仕組みは単純だ。TCRT5000は赤外線を出して反射を見る素子で、ベルトに付いた印が通るたびに信号が変わる。その回数を数え、1回の通過が何メートルに当たるかを掛ければ距離が出る。距離を時間で割れば速度になる。
配線は3本で済む。GNDとGND、3.3VとVCC、GPIO 4とDOをつなぎ、AOは使わない。電源はESP32-C3のUSB端子から取り、センサーへは基板の3.3Vを回す。5Vを使うとセンサーの出力がESP32-C3の入力に対して高すぎるため、3.3Vで動かすようREADMEが指定している。
送り出しにはBluetooth Low Energyの標準サービスを使う。Running Speed and Cadence(RSC)という規格で、対応する時計やアプリなら追加の設定なしに拾ってくれる。独自のアプリを作る必要がない。
本体はWi-Fiのアクセスポイントも立てる。「OpenRUNN」というSSIDにつないでブラウザーで開くと、そのときの速度、ペース、距離、経過時間が見える。ただし記録はESP32側に残らず、ブラウザーを閉じるとその回の集計は消える。
較正は1カ所だけになる。センサーの信号1回が何メートルに相当するかを実測し、main.cppの数値を書き換えて書き込み直す。センサーモジュールの可変抵抗を回して、印が通るたびに確実に反応する位置に調整する必要もある。
筐体は3Dプリント用のデータがある。本体のケースと、トレッドミルの枠に取り付けるレールの2点で、STLとSTEPの両方が用意されているほか、Onshapeで直接編集できる。

