【TinyGo】ネームバッジを Wio Terminal で作るのは高くないか?
はじめに
TinyGo 界隈では割とお馴染みの Wio Terminal
このデバイスを買えばこれだけでイベントで役立つこと間違いなし(?)なネームバッジが作成できます。
かくいう私も購入して作りました。
半田付け不要でお手軽にネームバッジが作成できるー!!!???
本当にそうでしょうか。1個 5700 円ですよ。
ネームバッジにしか使わないのにそれはちょっと高すぎないか。
多機能な Wio Terminal をネームバッジとして使うには贅沢すぎないか。
ということでもうちょっと安くできないかね?と思い手を動かしてみました。
この記事はそのときの奮闘記(?)になります。
結論、半田付け不要というお手軽な条件で Raspberry Pi Pico H + Pico-LCD-2
の組み合わせでネームバッジを作成できました!(ディスプレイを小さくすればもう少し安くできそう)
お値段は 2900(920+1980) 円です!ほぼ Wio Terminal の半額です!素晴らしい!
簡単に動くだろうなって思って購入したものの、意外につまづいたので実際に動かすまでの過程を共有します。
完成したネームバッジ

裏面

Wio Terminal との比較

サンプルコード
動かし方だけ知りたい方、以下のリポジトリにサンプルコードを配置しているのでご参考ください。
少しだけですがボタン操作やシンプルなディスプレイ表示のサンプルコードも以下のリポジトリに保存しています。
つまずき0:どうすればいいかわからない
そもそもどうやってディスプレイを表示すればいいのだろうか。そこからです。
まったく見当もつかなかったので仕様書をもとに Gemini に聞きました。
以下のドライバを使えばいいことがわかりました。
つまずき1:ビルドが通らない
examples があったのでこれをそのまま使いましたが、ビルドが通りません...
どうやらピン番号の設定が違ったみたいです。
これは仕様書と睨めっこして正しいピン番号を設定してあげました。
display := st7789.New(
- machine.SPI0,
- machine.P6, // TFT_RESET
- machine.P7, // TFT_DC
- machine.P8, // TFT_CS
- machine.P9, // TFT_LITE
+ machine.SPI1,
+ machine.GP12, // RST
+ machine.GP8, // DC
+ machine.GP9, // CS
+ machine.GP13, // BL
)
つまずき2:ディスプレイが映らない
ピン番号の設定を直しビルドは通りました。
いざ書き込んでみると次はディスプレイが映りません...
調べてみると SPI の設定が足りていなかったようです。
machine.SPI1.Configure(machine.SPIConfig{
Frequency: 62_500_000, // 62.5MHz
SCK: machine.GP10,
SDO: machine.GP11,
- SDI: nil,
+ SDI: machine.GP12, // ダミー - ST7789は受信しないが、SPIドライバが要求
Mode: 0,
})
つまずき3:ディスプレイ全体が表示されない
SPI の設定を修正することでディスプレイは表示されました!
しかし、ディスプレイの表示がなんだかおかしいです。
ただ、これはなんとなくディスプレイの表示する角度が違うのだなと直感でわかりました。
display.Configure(st7789.Config{
Width: 240,
Height: 320,
- Rotation: 0,
+ Rotation: st7789.ROTATION_90, // 90度回転で横向き表示
RowOffset: 0,
ColumnOffset: 0,
})
おわりに
つまずきましたがなんとかお手軽ネームバッジを作ることができました。
はんだ付けが必要になりお手軽さはなくなりそうですが、以下のパーツを組み合わせればもっと安く作れそうな気がします。
Discussion