見出し画像

M5Stack Japan Creativity Contestに作品を応募してみました

こんにちは。
TOPPANデジタル株式会社 DXソリューション開発部の萩原と申します。
私は日ごろ、スマート点検支援サービス「e-Platch™」の開発担当としてWebアプリケーションの開発・運用に携わっています。
今回、DXソリューション開発部の有志で、小型マイコンモジュール M5Stack を活用した作品を製作し、M5Stack Japan Creativity Contestに応募しましたので、その内容について記事を書かせていただきました。


きっかけ

DXソリューション開発部の中には、組み込み機器のソフトウェア開発を担当する者や、電子工作系DIYを趣味としている者、機械工学の専門知識をバックグラウンドに持つ者など、モノづくりに関心の高いメンバーがいます。私を含め上記のメンバーは入社から日が浅い中途社員が多いため、何かを作る活動を通してお互いの強み・スキルを共有しつつ組織内コミュニケーションを深め今後の業務の質を高めることに繋げたいという話が挙がりました。そして、ただ作るだけではなく社外へのアウトプットを目標とすることでよりよい作品に仕上げられたらという思いがありました。
そこで、発表の場を探していたところ目に留まったのがM5Stack Japan Creativity Contestでした。

M5Stack Japan Creativity Contest

M5Stackとは

小型のマイコンモジュールです。
名前の通り、周辺機器やセンサなどの機能モジュールを スタック したり接続することでシステムを構成でき、非常に多種類の機能モジュールが用意されているため、電子工作系DIYやプロトタイピング用途で人気があります。
メインのマイコンが電子工作系DIYで有名なEspressif Systems社のESP32シリーズであるため、ArduinoやMicroPythonを使って開発できる点も人気の理由の1つと思います。

https://m5stack.com/ より

コンテスト概要

M5Stackを使ったプロトタイピングの楽しさと手軽さ、あらゆる創造性にフィットする多様な製品群を知ってもらうことを目的として、M5Stack製品を使った創造的なプロジェクトを発掘、紹介するコンテストです。

https://www.switch-science.com/pages/m5stack-japan-creativity-contest-2024?srsltid=AfmBOorzgVmq_zFMi_uX1RjpcB8nbXWSgZHKyEZ8gVKGkpq_8JShzOKc

全体の優勝だけでなく、ロボットアイデア賞、商業アイデア賞、工業アイデア賞など様々な視点から評価されます。過去の入賞作品を見ると、どれも工夫を凝らした作品ばかりで、参加者の強い創作意欲が伝わってきます。

製作物を決める

まず作りたいもののアイディア出しから始めました。10~20個程度の様々な案が出た中で、以下の3つを製作することになりました。

  • 自動不良米選別機

  • ペットボトル自動つぶし機

  • BLE-MESHを用いたオフィス管理

自動不良米選別機を選んだ理由

これは、私の親戚の米農家が、精米されたお米の中に混じっている虫に食われたものや米以外の混入物を除去する作業を手で行っており非常に労力がかかっているということがきっかけで思いついたものです。
世の中には、この除去作業を自動で高速に行う色彩選別機という装置が存在しますが、大型で高価なため大規模農家や卸売業者などでなければ導入が難しい状況です。なので、小規模農家でも導入できる小型で安価なものが実現できれば、と思い提案しました。

良米と不良米の例

ペットボトル自動潰し機を選んだ理由

この案は、ごみ箱にペットボトルをつぶさないで捨てるとすぐに容量いっぱいになり溢れていることをよく目にするため、ごみ箱自身がつぶせる機能を持つことができれば、使用者の利便性はそのままで、ごみ箱があふれることを防止でき回収頻度も下げることができるのではないか?という発想で思いつきました。

BLE-MESHを用いたオフィス管理を選んだ理由

これは、コピー用紙が無くなりそうなタイミングで無駄なく補充するための通知手段が欲しいという身近な課題がきっかけで思いついたものです。そして、それを実現するうえで無線ネットワークが必要ですが、一般にIoT機器を社内ネットワークへ接続することは許容されにくいため、解決案としてBLE-MESH(Bluetooth Low Energyによるメッシュネットワーク)を活用して社内ネットワークと独立した通信手段を構築するという方法を思いつきました。
コピー用紙の在庫ととともに、CO2濃度などによって会議室の利用状況などもメッシュネットワークで一括収集、可視化すればより利用価値が高まります。

製作する

①自動不良米選別機

はじめに、システム構成と選別の原理を説明します。

自動不良米選別機のシステム構成

キーデバイスは、ベルトコンベヤー+米送出機、AIカメラ、マイクロブロワーです。選別の原理は、以下の通りです。

  • ベルトコンベヤー+米送出機が米を右レーンに送出する

  • コンベヤ―の中ほどに設置されたAIカメラ(M5Stack UnitV2)が、流れてきた米を撮影しAIで不良米を検出する

  • コンベヤー終端付近で、流れてきた不良米に向けてマイクロブロワーが細く絞った空気を噴射し、不良米を左レーンに吹き飛ばす

  • 良米、不良米がそれぞれコンベヤー終端の右レーン側にある良米受けトレイ、左レーン側にある不良米トレイに落ちる

選別原理

不良米の検出手段
AIカメラを用いた理由は、検出対象が持つ色味や形状の微妙な違いを認識する複雑なタスクに画像認識AIが向いていることと、近年ではそのようなAIが計算資源の少ないデバイスでも精度よく動作する例が出てきているからです。
使用するデバイスは、M5Stack製品群の中の UnitV2 というカメラを用いました。このカメラは、自分で画像認識AIモデルを組み込めるので、良米と不良米の画像を撮影して教師データを作成し学習させたものを作って組み込めばよいということになります。
しかし、学習データを準備するのは骨の折れる作業でした。米を20~30粒並べてカメラで撮影し、それら1粒1粒にアノテーション(バウンディングボックスとラベルを付与する作業)を何度も繰り返しました。それでもデータのバリエーションには多少不安があったので、画像の回転や拡大縮小といったデータ拡張をメンバーに手伝ってもらいデータ量を確保しました。
そして、出来上がった画像認識AIモデルをUnitV2に組み込み、不良米の除去系にモデルの認識結果を渡すため、モデルの出力を整形してUARTで出力する機能を付け加えて完成です。最終的な実行速度は5FPS程度となりました。

アノテーションの例

不良米を除去する手段
除去手段は、色彩選別機で用いられているのと同じ風で飛ばす方式としました。色彩選別機では、高速に流れ落ちる大量の米の中の一粒を狙って非常に正確に噴射することができますが、本システムではコンセプト上の制約から高性能デバイスや高度な制御系の採用は難しいので、安価に入手可能なマイクロブロワー(村田製作所製)を用いて、上述のベルトコンベヤーのレーン端に吹き飛ばすという方法にしました。

その他の工夫
コンセプト上の制約(予算≒デバイス性能、サイズ)から、上記のコア機能以外に主にハードウェア面で工夫を要す部分がいくつもありました。それらをいくつか列挙してみます。

  • 撮影したい距離でカメラのピントが合わないため、100均の虫メガネを分解してレンズをカメラ前に装着することで接写できるようにした

  • 外乱光による影響を避けるため、撮影範囲を囲う遮光ハウスと専用光源を3Dプリンターで製作した

  • 当初購入したベルトコンベヤー付属のベルトがホビー用途のため滑りやすく、100円ショップで売っていた トレーニング用ゴムベルト に換装した

  • AIカメラ筐体が小型のためサーマルシャットダウンをしやすいので、外部ファンを追加して温度上昇を防がなかければならなかった

  • 米送出機は、目的に合う市販品が存在しないため、水車のような構造のロータを自作しホビー用ギヤードモータと組み合わせて構成した

完成
製作期間2か月弱(しかもサブ業務として実施)に対してシステム構成が少し複雑でしたが、どうにか動作するものが構築できました。全体のサイズとしては、横幅45cm×奥行20cm×高さ25cm程度で、卓上という表現が当てはまるサイズ感になりました。
問題の検出精度ですが、検討期間とモデルサイズが限られたこともあり、まだまだ改善余地がある状況です。また、検出~噴射までのタイミング制御についてもシステム構成上どうしてもバラつきが入る余地があるため、不良米の流れてきたタイミングを外してしまう場合があります。それでも、前述のようないろいろな工夫をして動作させることができたことは、一定の成果だと考えています。

②ペットボトル自動潰し機

ペットボトル自動潰し機のシステム構成

このシステムは、メインマイコンを M5 Atom Lite として、プレス板を押すためのモータを制御するシンプルな構成です。M5 Atom Liteは、非常に小型でM5 Stack Coreと比べるとインターフェースが限られますが、シンプルな本システムの要件にはむしろぴったりです。
ペットボトルを入れて、M5 Atom Liteのボタンを押せば動作開始します。そして、ホールセンサが、プレス板が所定距離移動した≒ボトルがつぶれたことを検知すると、メインマイコンがモータ動作を逆転させ、初期状態に戻ります。そして戻る過程で、潰れたペットボトルがごみ箱に落ちるというイメージです。
製作にあたっては、システム構成はシンプルであるものの、力をしっかりとペットボトルに伝えるための機構を組み立てるのに試行錯誤しました。
筐体は、はじめ手元にある3Dプリンタを活用して製作しましたが、残念ながらペットボトルをつぶす際の力に負けてたわんでしまいうまくつぶせませんでした。そのため試作を何度か行って木材に行きつきました。木材は、加工が容易でありながら十分な強度を持ち金属よりも安価と優れた材料だと再認識しました。モーター部分は、はじめモータ軸とプレス板につながる軸を別にして、その間をギヤによって力を伝えましたがうまくいかず、軸方向に直接力が伝えやすいボールねじタイプのギヤードモーターモジュールを採用しました。後段で紹介する動画を見ていただくとわかる通り、モーターが軸方向にぐいぐい進んでうまく潰れていきます。
他にも、一定時間経過しても所定量まで潰せない場合にプレス板を戻すようにプログラミングし、モーターへの過負荷がかからないように配慮もしました。

③BLE-MESHを用いたオフィス管理

BLE-MESHを用いたオフィス管理のシステム構成

このシステムは、 M5 Atom Liteをゲートウェイ、距離センサを接続したもう1つのM5 Atom LiteとCO2濃度や温湿度を計測できる空気質計測キット M5StampS3 をそれぞれノードとするBLE-MESHネットワークを構成しています。そして、計測結果の表示デバイスとして M5 Paper という電子ペーパーを使用します。
コピー用紙の残量は、距離センサによって計測します。コピー用紙トレイなどに固定しておけば、残量に応じて距離が変化することで残量を把握できます。
空気質計測キットの M5StampS3 は、以下のような多種類の計測ができ、画面までついています。

PM1.0, PM2.5, PM4, PM10 particles, temperature, humidity, VOC and CO2 concentrations
です。

https://shop.m5stack.com/products/air-quality-kit-w-m5stamps3-sen55-scd40

今回は温湿度、CO2計測といった一部機能だけを使用していますが、すべての計測機能を使えばかなり高度な計測が可能ではないかと思います。

組み込みアプリケーション作成に当たっては、使用したセンサデバイスのサンプルコードがうまく動かず、色々調べながらプログラムを改良して動くようにした結果、センサデバイスの仕様書に記述誤りがあったとわかりました。こういったことはなぜか組み込みソフトウェア開発で時々遭遇する罠ですが、結果的にデバイスを熟知するチャンスになる場合もあります。なので、無駄な労力と思わず前向きにとらえるのが良いと思っています。

応募

コンテスト規定により、作品についてのシステム説明と動画を ProtoPedia というITものづくりに関する作品を記録・公開できるWEBサービス上に投稿することで応募とみなされるので、7月末の期限ぎりぎりでしたが動画を作成して無事応募を完了しました。以下にそれぞれのリンクを掲載します。

①自動不良米選別機


②ペットボトル自動潰し機


③BLE-MESHを用いたオフィス管理

コンテストの結果・その他の反応

2024年9月18日に、コンテストの結果発表がありました。
残念ながら、3作品とも入賞することはできませんでした。

しかし、自動不良米選別機については、 こちら の動画にて取り上げていただくことができました。(22:00から28:19までの間で出てきます。)ProtoPediaに投稿された作品をレビューするという内容のYoutubeチャンネルのようです。配信者の方から動画内で、思ったよりも高速に動作していて完成度が高まればすごい、という旨のポジティブなコメントをいただけました。
また、他2つも私たちのチームの作品ということで、同様に取り上げていただけました。

今後について

今回の製作を通じて、メンバー間でのお互いの理解が深まったことやそれぞれの技術的強みが明らかになり、普段の業務においても協力してより高い課題に挑戦していけるのではないかという感触をメンバー全員が得ることができました。また、行き詰ったときにすぐにメンバー同士で相談し合って解決につなげることができました。
メンバーとの間では、またデバイス系のコンテストに参加したいという話が挙がっているので、参加を検討していきたいと思っています。