腕立て伏せをしないと開かない「金庫」をRaspberry Piを使って作ってみた
2022/12/13 07:30
Raspberry Pi公式ブログが、指定回数だけ腕立て伏せをしないと開かない箱型ガジェットを紹介した。Raspberry Piカメラモジュールで動作を検知し、関節の位置を機械学習アルゴリズムで検出して、腕立て伏せの回数をカウントする仕組みだ。
オランダ在住のTim van de Vathorst氏(以下、Tim氏)はキャンディーが大好きで、キャンディーが家の中にあるとつい食べ過ぎてしまうため、自分で決めたルールを守るよりもっと楽な方法でキャンディーを食べる量を減らす方法がないかと考えて、この木工細工の「金庫」ガジェットを作ることを思いついた。
腕立て伏せの動きを検知するシステムにはRaspberry Pi 4を使用し、筐体内部にRaspberry Piカメラモジュール、有機ELスクリーン、サーボモーター、モバイルバッテリーを搭載。ガジェットの正面で、あらかじめ設定した回数の腕立て伏せをすると扉のロックが解除されて、中に入れてあるキャンディーを取り出せるという仕組みだ。
機械学習アルゴリズムは、Googleが提供しているMediaPipeライブラリーを使用しており、カメラがとらえた動作から、Raspberry Pi 4が機械学習アルゴリズムを処理して人体のひじや肩、手首などの関節を検出。各関節の位置から角度を計算して、腕立て伏せをしたかどうかを判断し、その回数をカウントする。腕立て伏せを10回したと認識すると、サーボモーターが動作して扉が開く仕組みだ。
まず、肩、ひじ、手首の関節位置から算出される角度が約90度になった時に「腕立て伏せで身体を下ろした状態」と判定し、その後で、肩、ひじ、手首の関節位置がほぼ一直線になると「腕立て伏せで身体を押し上げた状態」と判定する。この1セットで腕立て伏せ1回とカウントする仕様で、プログラムのソースコードはGitHubでオープンソースとして公開されている。
スライド機構やギアなどのパーツについては、インターネットで見つけたファイルを参考にしつつ自分でデザインし直して、メイカースペースでレーザーカッターを使って自作したとのことだ。
Tim氏が公開したYouTube動画では、屋外でガジェットの動作をテストしている様子も収録されている。駅前で「腕立て伏せ10回でキャンディーをプレゼント」という手書きの看板を持って立ち、通行人らに実際に腕立て伏せをしてもらう様子が収録されている。