[決定版] スプラで自動ドット打ち

広場の投稿について

広場の投稿画像は白黒の二値画像で、解像度が横320縦120と決まっています。

ということは全部でドットは38,400ある計算になります。

多いように思えますが、フルHDと呼ばれる現在一般的に普及している解像度は1920×1080なのでそれと比較するとドットの数は1/54しかありません。

DVDですら720×480ですので、それと比べても1/9しかドットが使えないわけです。

しかも白と黒の二色しか使えないという制限もあります。

用意するもの

  • 320×120の二値画像
  • マイコン
    • Teensy2.0++
    • Arduino Uno

たったこれだけです。

ドット打ち用の画像の作り方については以下の記事を御覧ください。

https://tkgstrator.work/?p=13583

Teensy2.0++とArduino Unoはどっちか一つでいいです。

Teensyは最新版は3.5なのですが、これでは動かないという報告が上がっているので2.0++を購入しましょう。

ちなみに日本橋のシリコンパワーでは売ってないみたいなので、通販がいいかと思います。

安価なのはTeensy2.0++ですが、ぼくが動作確認できているのはArduino Unoのみです。

Arduinoは様々な互換ボードが売られていますが、公式のものでないとDFUモードに入れません。

安物買いの銭失いになるので必ず公式のものを購入しましょう。

以下のものはぼくがすでに動作確認しているので間違いなく動作します。

概要

これから先、どういう手順で自動ドット打ちをするかを簡単に説明します。

まず最初に画像をプログラムに変換します。

このプログラムというのは、簡単に言うとコントローラの入力をどのようにすればその絵が描けるかというのを計算したものになります。

これは様々なツールがリリースされているので簡単に行なえます。

そして、そのプログラムをマイコン(TeensyやArduino)に書き込みます。

最後に書き込んだマイコンをニンテンドースイッチのドックに差し込みます。

すると大体25分くらいで指定した画像をドット打ちしてくれるというわけです。

二値画像をプログラムに変換

ここから先はTeensyとArduinoで手順が変わってきます。

Teensy2.0++

Teensy2.0++の場合はここがものすごく簡単で、このサイトに画像をアップロードすると自動的にプログラムに変換してくれます。

高木さんの画像をセレクション
Upload PNGを選択
変換中

およそ10秒ほどで変換が終わって、拡張子がhexというファイルがダウンロードされると思います。

Arduino

Teensy2.0++みたく画像をアップロードしたらプログラムに変換してくれるサイト作ろうと思います。

現状ではこのようにものすごく手間がかかります。

プログラムの書き込み

Teensy2.0++

まずはTeensyをPCと接続します。

基板上のLEDが点滅すると思うので、ボタンを押して止めましょう。

するとTeensyがHalfKay Bootloader Modeになり、プログラムの書き込みができる状態になります。

公式サイトから書き込み用のローダーをダウンロードします。

Teensy Loader Programっていうリンクを踏めばTeensy.exeがダウンロードされます。

Teensy.exe

ここまでできたらあとは「File」から「Open HEX File」を押して先程ダウンロードしたHEXファイルを指定します。

次に「Operation」から「Program」を押し、書き込みが終わったら「Operation」から「Reboot」を押します。

Arduino

まずはdfu-programmerをダウンロードします。

dfu-programmer

atmel_usb_dfu.infを右クリックしてインストールします。

dfu-programmer.exeはSwitch-FightStickと同じフォルダに置いておくと良いかもしれません。

ここまでできればPC側の準備は完了です。

ジャンパケーブルをこのように挿してPCと接続し、PCとの接続に成功したらケーブルを抜きます。

するとArduinoがDFUモードになるので、この状態になったらプログラムを書き込みます。

何度も書き込む予定があるのであれば、以下のようなバッチファイルを作成しておくと楽かもしれません。

dfu-programmer.exe atmega16u2 erase
dfu-programmer.exe atmega16u2 flash Joystick.hex
dfu-programmer.exe atmega16u2 reset

このコマンドを打てばDFU状態のArduinoにプログラムが書き込めます。

投稿

このポストから投稿します。

ペン先を一番細いものにしたらTeensyまたはArduinoをニンテンドースイッチのドックに差し込みます。

あとは書き終わるまで待つだけです。

ドット打ちの最中にプロコンやジョイコンを操作すると今まで描いてきたものが全て無駄になるので絶対に触らないようにしましょう。

さいごに

投稿をまとめてくれているサイトikasumi.artがあるので、そこで自分の投稿を確認することができます。

結構投稿したつもりなんですけどまだまだ作品数が足りないですね。

次の記事では画像の作り方を紹介したいと思います。