M&M’sを色ごとに分ける色彩選別機を作る【後編】

Arduino

m&m’s選別機の回路&コードをつくる

こんにちは、くろべこです。

前回に引き続き、m&m’s色彩選別機を作っていきます。

M&M'sを色ごとに分ける色彩選別機を作る【前編】
カラーセンサを使用したm&m'sを色別に仕訳けてくれる色彩選別機の製作記事になります。前編と後編を予定しておりまして、今回は設備構想と材料紹介記事になります。色彩選別機の制御は毎度おなじみのarduino nanoさんで組んでいきます。電気回路・コードに関しては後編に紹介します。

今回は、色彩選別の核となる電気回路と制御コードの作成を進めていきます。

では、早速どうぞ!!

m&m’s色彩選別機の電気回路

追記:前回の材料紹介の際に不足がありました。カラーセンサの動作電圧が2.25V~3.63Vであるためレベル変換器が必要になります。

回路図はEasy EDAというソフトで書いています。このソフトはライブラリが充実しているので結構使いやすくお勧めです。

組み立て

組み立ては、前編で描いた3D図を基に現物合わせで作っていきます。出来上がればOK!!肝となる部分のみ載せていきますね。

  • 色彩検出器(上の穴にカラーセンサ、下の穴に光源用の白色LEDを埋め込んでいます)

  • 扉部分(m&m’sが詰まることが多いので段ボールでガイドをしています)

  • 回転梯子(Daisoのプラ板をH型にくっつけています。真ん中にサーボホーンを付ける感じ)

いずれの加工においてもグルーガンが大活躍します。100円ショップで売っているので購入をオススメします。

制御コード紹介

本コードではカラーセンサ(S11059-02DT)のライブラリとして以下を使用しています。

jakalada / Arduino-S11059

サーボ制御に関してはライブラリを使用していません。コード内でTimer1のレジスタをいじってサーボ制御用に調整しています。delayとかmillisはTimer0を使用しているので問題なく使用可能です。Timer1ってarduinoではなんかの関数に割り当てられていますかね?

ちなみに、arduino nanoに内蔵されているTimerレジスタの各割り付けは以下の通りです。

Timer0 D5, D6
Timer1 D9, D10
Timer2 D3, D11

では、早速コードの紹介です。

以下の機能は関数化しています。

  • 扉の開閉
  • 回転梯子の駆動
  • 色彩検出(条件分岐も)
  • m&m’sの在荷確認

そして、Switchによりシーケンス処理を行っています。

一番難しかったのが、色彩検出により抽出した各色データを基にm&m’sが何色であるか判断する条件式の構築でした。今回は、数パターン色のサンプリングを行って条件を出しましたが、それでも100%選別はできていません、、、

色彩選別サンプリング

m&m’s色彩選別機を動かす

さあ、実際に動かしてみましょう!

その時の動画が以下の物になります。

どうでしょうか!?色彩検出通りに選別できていますよね、、、といってもこれ、5回くらい取り直しているんですね。

三原色のはほぼ100%選別できるのですが混色である茶色や黄色の選別が難しいですねー

色彩検出を安定させるためには、以下の項目をさらに検討する必要がありそうです。

  • 測定環境を一定にする(極力外部光が入らないようにする)
  • 反射光を効率的に採光する(照明の角度とカラーセンサとのワークディスタンスの最適化)
  • m&m’sの姿勢を一定にする(光の反射を常に一定にする)

という事で、検討の余地は結構ありそうという結果でした。

FA機器でもそうですが、画像検査関連は調整が難しいですね。

あとはさらに改造してみたい点として、今回は1粒ずつ手動で投入していましたが、バッファー容器を設けて一粒ずつ自動で選別出来たら面白いですね。でも、一粒ずつ切り出す機構が結構難しそうです。

m&m’sの色彩選別機の記事は今回でいったんは終了となりますが、何かしら改造とかする機会があったらまた記事にしたいと思います。

では、ばいばいノシ

コメント

タイトルとURLをコピーしました