LEGO-EV3-イメージスキャナー
レゴ マインドストーム EV3 教育セットと追加のホイールを使用して構築されたイメージ スキャナー。 Mindstorms EV3 ソフトウェアのソースとビルド手順が含まれています。 8.5 インチ幅の用紙をスキャンしますが、同様のページ サイズにアダプタで対応できます。
入力
- レンガボタン – 設定メニューを制御するため
- 超音波 – 紙が挿入されたことを検出します
- タッチセンサー – 衝突によりカラーセンサーの位置をリセット
- 光センサー – ピクセルをスキャンして画像を作成します
出力
- 44 x 32 ピクセルの 8 ビット グレースケール画像
- グレースケール 8 ビット ビットマップ データ値を表す CSV ファイル
- 画面上のディザリングされた画像
部品
このビルドには、レゴ マインドストーム EV3 セットのパーツと、同じセットの別のセットまたは車のセットから入手できる追加の大きなホイールが必要です。
ビルドとセンサーの詳細
- このロボットは 2 つのフォース ギア構成を実装しています。1 つはモノレールを介して光センサーを水平軸上で移動させ、もう 1 つはスキャンする画像を含む用紙のスプール機構を提供します。
- スプール機構、モノレールともに大型モーターを使用しています。
- カウンターウェイトは、モノレールの表面によって加えられる垂直力に対してモノレールの車輪を位置合わせするために使用されます。
- スプールの近くには赤外線センサーがあり、紙が挿入されたことを検出できます。
- スキャナーの各隅に 2 つのタッチ センサーが配置されています。モノレールがコーナーに到達したことを検出するために使用されます。現在は右側のセンサーのみが使用されています。
ソフトウェアに関する注意事項
プログラムは、UI、スキャン、画像の印刷、画像の保存の 4 つの段階で構成されます。 UI は、MVC パラダイムを逐次ブリック プログラミングに適応させて構築されています。これにより、n 個の構成画面が可能になり、画面ごとに 1 つの値を構成できます。プログラムの後半で使用される変数は、それぞれ設定に対応します。
設定画面
- uiPrintScreen : bool – true の場合、RAM 内のグレースケール イメージに似せるために、ディザリングされた 1 ビット イメージが EV3 の画面に印刷されます。
- uiSaveState : bool – true の場合、RAM 内のデータから CSV ファイルが生成されます。このファイルはビットマップ ファイルに似ており、A-VEKT Image CSV Converter などの外部プログラムを使用してビットマップに変換できます。
- XStartPos : 数値 – X 軸上の開始位置をインチ単位で示します。
- YStartPos : 数値 – Y 軸上の開始位置をインチ単位で示します。
- width : 数値 – 画像の幅をインチ単位で示します。
- height : 数値 – 画像の高さをインチ単位で示します。
スキャンフェーズ
- スキャンする前に、ユーザーはスキャンする用紙を挿入するように求められ、光センサーの位置が初期位置にリセットされます。
- スキャンは、イメージ センサーをモノレール上で移動させ、紙をスプール上で移動させ、独立してスキャンされたドットのマトリックスを作成することで構成されます。
- スキャンする場合、1 つのラインは右から左にスキャンされ、次のラインは左から右にスキャンされます。これによりスキャン時間が短縮されます。
- スキャンが完了すると、残りの用紙はスキャナーの背面からスプールされます。
印刷フェーズ
- このフェーズはオプションであり、デフォルトで有効になっています。これは、画面上の画像を印刷することで構成されます。
- スキャンされた画像にはグレースケール データが含まれていますが、EV3 の画面は 1 ビット白黒です。補正するために、スキャンされた各ピクセルは順序付け (ベイヤー) ディザリングを使用して 4 x 4 ピクセル パターンに変換され、スクリーン上に印刷されます。
保存フェーズ
- このフェーズはオプションです。
- EV3 のファイル ブロックは印刷可能な文字のみの保存に制限されているため、ビットマップ イメージをプログラムで生成することはできません。代わりに、CSV ファイルが使用されます。
- CSVは「A-VEKT Image CSV Converter」を使用し、8ビットアルファチャンネル設定でビットマップに変換できます。
- CSV を作成するときに、逆方向にスキャンされた行が 2 番目の配列で並べ替えられます。
改善点
- スキャナーの精度は、モノレールの代わりに 2 つのレールの X 軸を作成するために使用できる 2 番目のセットで改善できます。
- ケーブルによって加えられる力により、モノレールが不安定になることがあり、一部のピクセルをキャプチャする際に焦点が変動することがあります。
- ソフトウェアは改善することができます。作業をやめたときの状態のままリリースします。
- LEGO が Linux オペレーティング システム用の LEGO MINDSTORMS EV3 のバージョンをリリースするか、自分の Mindstorms EV3 セットを購入する別の説得力のある理由が見つかるまで、このプロジェクトの開発を続ける予定はありません。
ライセンスと著作権
- ソース ファイルは GNU General Public License 2.0 に基づいて共有されます。
- 説明図と追加コンテンツは、クリエイティブ コモンズ ライセンス 表示 4.0 国際に基づいて共有されます。
- 著作権はプエルトリコ大学アレシボ校と私の間で共有されます。
免責事項
- 私はプエルトリコ大学アレシボ校のロボット工学入門クラスの一環として、趣味でこれを開発しました。
- このスキャナは、「非公式 LEGO MINDSTORMS NXT 2.0 Inventor's Guide」のプリンタに大まかに基づいています。
- LEGO、MINDSTORMS、MINDSTORMS EV3、MINDSTORMS NXT は、LEGO Group の商標および著作権です。これらの使用は、それらとの提携または承認を意味するものではありません。