- 公開日:2025年11月27日
- | 更新日:2025年12月17日
科学的に運動能力向上!パターキットを作ってみた ~第2話 ソフトウェア編~
- ライター:sota fujikawa
- マイコン
はじめに
みなさんこんにちは。2025年度新卒FAEの藤川です
第1話では、製作物の仕様書を作成するまでをお話ししました。
今回からは実際に製作物完成に至るまでのお話をさせていただきます。
第2話では、ソフトウェア開発に焦点を当ててお話しします。
どのように設計し、どんな工夫を凝らしたのか、ぜひ楽しみにしてください。
FSPとの闘い
いざ購入した部品がしっかり動くのか?単体テストを行っていきます。
さあやろう!と意気込んだものの、FSPの使い方が予想以上に難しい……。
C言語は新人研修で触れていたので、ソフトウェアは問題ないだろうと過信していましたが、現実は甘くありませんでした。
そこで、まずはFSPに慣れることに集中することにしました。
LEDを光らせる → タクトスイッチを押して光らせる → 少しずつ機能を制御しながらステップアップ。
さらに、AIの力も借りて試行錯誤すること約1週間。ようやくFSPの操作に慣れてきました。
「AIの力は偉大だ」と実感したと同時に、この実習を通じて使い方を学んでいこうと決意した1週間でした。
いざI2C通信へ
先輩たちにずっと言われ続けていました。I2Cでつまずくと、、
その言葉どおり、最初の壁はI2C通信でした。
まずはオシロスコープでスレーブアドレスとAckを見てみよう!
と言ったものの、「スレーブアドレス?Ack?なぜオシロで見えるの?」と疑問だらけ。
調べてみると、通信の信号はHighとLowで表現されるからオシロで見えるらしい。
ここで初めて、信号の仕組みを理解しました。
データシートとAIを駆使しながら、初期設定を一つずつ進めていきます。
そしてついに――オシロスコープに信号が!
スレーブアドレス(0x3E)を送信すると、Ackが返ってきているのを確認でき、感動しました!

そこからはLCDに文字を表示する関数を作ったり、表示を切り替える際に文字が残らないよう工夫したりと、コードを書いては消す日々が続きました。
試行錯誤の連続でしたが、その過程で学んだのは――
「やりたいことを一つずつクリアにしていくことが、いかに大切か」ということ。
地道な作業こそ、完成への近道だと実感しました。
割り込み制御
いよいよ今回の製作物の“肝”である、速度計測に取り組みます。
速度を測るためのポイントは、次の2つでした。
・センサ1が遮光される瞬間を監視すること
・センサ1が遮光してから、センサ2が遮光されるまでの経過時間を測ること
この2点を確実に満たすために、私は2つのタイマを設計しました。
それが、「監視タイマ」と「計測タイマ」です。
・監視タイマ:センサ1の遮光イベントを常時監視し、変化を見逃さない。
・計測タイマ:センサ1が遮光された瞬間に計測開始。センサ2が遮光された時点でストップし、経過時間を取得する。
これらのタイマ設定は、AIと対話しながら詰めていきました。その結果、時間計測の仕組みを確実に動作させることに成功。
さらに、ブレッドボード上で実際にどの程度の精度が出るかを試しながら微調整を重ね、コードを少しずつ改良。
最終的に、狙い通りの速度測定ができるところまで仕上げることができました。
まとめ
試行錯誤の末、ついにソフトウェア部分が完成しました!
長い道のりでしたが、一歩ずつ積み重ねることで形になった瞬間は本当に達成感があります。
次回は「第3話 ハードウェア編」
いよいよ製作物の心臓部ともいえるハードウェアについてお話しします。
どんな工夫や苦労があったのか、ぜひお楽しみに!
