Home Made Garbage

ハンディバーサライタ PovRanianの表示映像生成フォームの仕組み

ホーム
電子工作
Raspberry Pi
IOT
WEB

Arduino Advent Calendar 2019 | 22日目

今年は念願のHomeMadeGarbageのオフィシャルショップを開店することができ、ハンディバーサライタPovRanian (ポブラニアン)を出品いたしました。
画像や図形をフルカラーで表示することができます。

 

PovRanianを販売するに際して一番の障壁が表示画像の更新でした。Arduino等の環境をお客様に用意していただき、表示データを生成してもらうのは現実的ではありません。

そこでウェブ上で表示映像データを生成しPovRanianにドラッグ&ドロップするだけの仕組みを構築しました。

ハンディ バーサライタ PovRanian の表示映像フォーム使用方法

色々検討してやっとできた表示映像生成フォームですので紹介させてください。
 

 

仕組み検討

バーサライタPovRanianをご購入いただいたのちに自由に表示映像をカスタマイズしてもらうべく、PovRanianに搭載するマイコンに表示データを書き込む手法を色々検討しました。

手法1: Arduino IDE

バーサライタのArduinoコードについては公開しておりますので、おのおのカスタマイズいたたくことも可能なのですが、Arduino IDEや各種ライブラリをダウンロード、インストールする必要があり現実的ではないので却下!

“キング・オブ・ダークネス” EVIL の魔法陣を自作

手法2: CircuitPython

Adafruitが提唱するCircuitPythonも検討しました。
AdafruitのCircuitPython対応マイコンであれば.pyファイルをドラッグ&ドロップするだけで買い込みが可能です。

CircuitPythonをつかってみた

 

しかし、処理が遅く割り込みもサポートしていないためバーサライタには向かないので断念しました。。。

手法3: uf2ファイル

MakeCode MakerでAdafruit SAMD21系マイコンのプログラミングを試したときに、コーディング後にuf2ファイルというものを生成しマイコンにドラッグ&ドロップで書き込んだことを思い出しました。

コードのバイナリをuf2ファイル化する手法も公開されておりましたのでPovRanianのデータ更新にはuf2ファイルを使用することにいたしました。

Microsoft MakeCode で ビジュアルプログラミング

uf2ファイルとは

Microsoftがマイコンフラッシュ向けに開発したファイル形式とのことです。

UF2 file format specification. Contribute to microsoft/uf2 development by creating an account on GitHub.

 

uf2ファイルはAdafruitのSAMD21(M0)やSAMD51(M4)系のボードでも利用可能です。
PovRanianは Adafruit Trinket M0 を利用しています。

Get started quickly using Arduino or CircuitPython on the Feather M0 Express.

プログラムのバイナリでuf2ファイルを生成するpythonコードも公開されております。
M0系のマイコン用の場合の変換は以下のように実行します。

uf2conv.py -c -o test.uf2 test.bin

 

PovRanian表示映像フォーム

PovRanian 表示映像フォームは以下
 http://homemadegarbage.0t0.jp/PovRanian/

表示映像フォーム構成概要

PovRanian 表示映像フォームは自宅のラズパイサーバで構築されています。
フォームの入力内容から表示データを生成しコンパイル・ファイル変換を実施してuf2ファイルを返します。

フォームの入力を受けて表示画像データgraphics.hを生成します。

graphics.hとPovRanian用のArduinoコードをマージしてarduino-cliで.inoファイルをコンパイルしてバイナリファイルcode.binを生成します。
コマンドでArduinoコードをコンパイルできるarduino-cliは以下で公開されています。
 https://github.com/arduino/arduino-cli

arduino-cliでのコンパイルは以下のように実行します。

arduino-cli compile --fqbn adafruit:samd:adafruit_trinket_m0 [コードのフォルダ指定] 

code.binをさきほど紹介した uf2conv.py でuf2ファイルに変換してダウンロードファイルとして返します。

uf2ファイル生成

PovRanian 表示映像フォームにて1つ以上の映像の設定ができるとコード生成ボタンがアクティブにまります。

“コード生成”をクリックするとファイルの作成が開始し、しばらく待つと
PovRanian.uf2ファイルがダウンロードされます。

uf2ファイルのPovRanianへの書き込み

PovRanianに搭載されているマイコン(Adafruit Trinket M0)のマイクロUSB端子とPCを接続します。

 
USBケープルを接続するとLEDが点灯します。リセットボタンをダブルクリックしてLEDが緑色になるとPCにTRINKETBOOTディスクとして認識され表示されます。

 
 
 
 
TRINKETBOOTディスクに先ほど生成したPovRanian.uf2ファイルをドラッグ&ドロップします。
認識されるとすぐにTRINKETBOOTディスクは閉じます。
 
以上でインストール終了です(簡単!!)。
 
あとはPovRanianの電源を入れて映像をお楽しみください♪
 
 

おわりに

以上でPovRanianの表示映像のカスタマイズが容易に実行できるようになり、販売開始することができました。

 

来年は文字出力などフォームのバージョンアップも目指します。

Related Posts

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください