Teensy 4.0 SPI ST7789 を Adafruit_ST7735_and_ST7789_Library で表示してみる
EuroRack のパネルに組み込むのに小さい画面がいいかなと思い、先行して購入していた1.3インチのTFTモニタ 240x240 ST7789チップを使ったやつを駆動してみた。
最初、Spresenseで動かそうと思ったが、うまくいかず、Teensy 4. 0でまず動かしてみて条件を分析しようと思いました。
保護フィルム付けたまま。
ピンとの配線は、
TFT_CS -1 // チップセレクトは使わない
SDA: TFT_MOSI 11 // SPI マスタから出力 (チップの入力)
SCL: TFT_SCLK 13 // SPI
RST: TFT_RST 7 // 空いてるピン リセット
DC: TFT_DC 8 // 空いてるピン
BLK: TFT_BL 9 // 空いてるピン TFT バックライト
11, 13 pin はSPI オブジェクトを使うとデフォルトで使われるピンです。
Adafruit_ST7735_and_ST7789_Library のexamples あたりを動かします。
// このコンストラクタでは動かない
//Adafruit_ST7789 tft(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
Adafruit_ST7789 tft(TFT_CS, TFT_DC, TFT_RST);
tft.init(240, 240, SPI_MODE2);
tft.setRotation(3); // 3:270度 画像は3を指定
// ※0:0度 だと思いますが、基板の印字と逆さになります。
あとはexamples のままで動くと思います。
フォントサイズはsetTextSize(2); で、それでもかなり小さいです。1 だと読めないくらい小さい。
ログを垂れ流しにして表示したかったのですが、スクロール を実装しないといけないみたい。ST7789の VSCRDEF、VSCRSADD コマンドあたりを使うとできそう。
(ソフトウエアでやるとかなり遅くなると思います)
SONY Spresense を入手
OSの介在しない、マルチCPUのプログラミングをやってみたくて、開発環境も整っていそうなので入手しました、SONY Spresenseです。
遮光フィルムを貼るのを忘れてました。電源や周辺の電圧合わせに心配が残りますが、やりたいことがプログラムできるのか、これから勉強します。
EuroRack用 19インチラックフレームの製作
EIA規格の19インチの機材が収まるサイズのラックフレームを製作しました。本格的な19インチの機材では強度が足りないと思いますが、EuroRackの機材であれば3Ux3 +1Uが収まるサイズで作ってみました。強度がたりないようであれば、部材を追加できるので後からでも対応できます。
アルミ構造体、構造材といわれるアルミ押し出しで作られた材料で、指定した長さでカットして販売しているサイトがあります。私は、
アルミフレームとFA装置のNIC|エヌアイシ・オートテック(株) (nic-inc.co.jp)
こちらのサイトで、ネット販売しているページで購入しました。
NIC Direct エヌアイシ ダイレクト (nic-direct.jp)
20mm x 20mm角のM4ベーシックフレームシリーズのアルミ材が一番手軽に使えるサイズですが、EIA規格で機材が収まるブラケットを取り付けるネジがM5ボルトのため、少なくとも機材を取り付けるレールのみM5ボルトが通る幅の溝が必要です。
M4ベーシックフレームはM4ボルトが通る幅の溝になっています。直立している2本のアルミ材のみM5ベーシックフレームを使いました。
厳密に言うと、EIA規格を調べると分かりますが、フレーム幅が20mmで、ボルト位置がその中心になるので、EIA規格どおりにボルト位置を合わせると、フレーム幅内側10mmではEIA規格いっぱいに使った機材が入らないことになります。
このフレームに収まる3Uサイズのものは自作するつもりなので、この幅に収まるように作るつもりですが、ぎりぎりのサイズの機材は多くないと想像します。
画像では、BeLa PEPPERが横向きに配置されています。PEPPERに組み上げたBeagleBoneBlackのUSBジャックがどうしても3Uの枠に干渉してしまうため、細いパネル2枚を使って横向きに取り付けました。
電源をどこに置くか、どう取り付けるか悩みましたが、とりあえず、下段の背後に配置しました。
ゴム足は、アルミカバーが付いたタカチ電機工業 TC型アルミカバー付ビス止ゴム足 TC-2Sです。
BeagleBone-black BeLa PEPPER 動作チェック
部屋改装と置いてあったものの片付け、再配置でだいぶ時間が空いてしまいました。
BeLaで最初にやっておくべきことがあるようです。(進行形なので)
パネルを付ける前に、GITにあるExamplesにテスト用のProjectがあります。
Building Rev2 · BelaPlatform/bela-pepper Wiki · GitHub
右のメニューのProjectsからリンクをたどります。
bela-pepper/Examples at master · BelaPlatform/bela-pepper · GitHub
getting-started のProjectをBeLaの IDE Webページから実行します。
次のテストができます。
- LEDの点滅。10個のLEDを左から右に流れるように光ります。
- プッシュボタン。consoleに押したときと離したときに状態の文字が表示されます。
- ステレオ入力とステレオ出力。入力音に音が連続して大きく小さくを繰り返す音がMIXされて出力されます。
- 入力CV 1~8 を対応する 出力CV 1~8に出力する。
PureDataの_mainを見ると上記ができるようです。8個のボリュームが作用するかまでテストできるのかまだ解析できてません。
※8個のボリュームは入力1~8のアッテネータとして働くようです。 そのため、getting-startedですべてチェックできます。
実は、LEDが1個動作しませんでした。組上げてしまうと、確認するためにボリュームとジャックをすべて外して、BeagleBoneのpinを抜く必要があるため、組上げる前にgetting-started のProjectを動かしてテストすべきでした。
原因は、BeagleBoneBlackへ接続ピンソケットのはんだ付け忘れが1ピンありました。
PEPPER自体はBreakOutボードのようなボードなので回路図を追うのは比較的簡単です。ただしピンの何番目かを数えるのが大変です。
回路図とPCB図を見比べて、ピンとLEDの抵抗の間が接続されてないことに気づいたのではんだ付けし直したらLEDが点滅しました。
おそらく、同じようなミスをしているところが他にもありそうです。
ステレオ出力はOKでしたが、入力がNG。ステレオΦ3.5mmミニジャックをモノラル2本に分配するケーブルがもう一本ないと確認が大変なので、ここまで。
モノラルのカラフルなΦ3.5mmプラグのコード、EuroRackパッチワークコードというべきでしょうか、そちらは入手済みだったのですが。
プッシュボタンはOKでしたが、少し傾いていたので修正しました。
今回はここまで。
EuroRack の電源部を作る(2)
配線が終わり、EuroRackパワーサプライのIDC 16Pの基板に+12V, -12V, +5V が供給されていることを確認しました。
+12Vとー12Vは、手持ちのテスターでは差異がありました。
+5Vはスイッチング電源の可変抵抗で調整ができます。電圧の差が今後問題になりそうですが、このまま使ってみようと思います。
幅は19インチで先に作ったEuroRackのフレームと同じサイズです。側面(3U x50mm)はラックブラケットを使わず、3mm厚のアルミ板を指定寸法で裁断してもらいましたが、ブラケットの方が安いという結果になりました。
EuroRackのフレームと背中合わせにする予定で、電源スイッチが右の背面に来るように配置しました。
BeagleBone-black BeLa PEPPER を組み上げました。
動作確認もまだですが、組上げたPEPPERをユーロラックフレームに収めてみました。(パネル面はお掃除すればよかったかな)
パネルは両面が使えるようになっていて、銀色/金色の文字のどちらか選べます。金色を選びました。パネルはアルミ、金属ではありません。基盤と同じような素材です。軽いため送料を抑えることができますが、強いテンションをかけると割れる可能性があります。
3.5mmジャックと8個のボリュームの固定面の高さは、選んだ部材によって微妙に異なります。スペーサを入れてそろえるかしないと、きつく締めるとパネルが反ってしまうと思います。3.5mmジャックの固定ネジを付けていない画像も見かけますね。
パネルが反っていないか確認しながら締めていきましょう。
他のユーロラックユニットと接続しないBeLa PEPPER単体では、あまり楽しめないかもしれません。アナログのユニットは作るつもりでいますが、ここまで来るのにかなり時間を費やしたので、まだまだ時間がかかりそう。
フレーム内ぎりぎりで、最初、前面パネルのすぐ後ろにある基盤が干渉してフレームに入らず、フレームのネジを緩めて上下いっぱいに広げました。
当然、EuroRackの電源で動かすこともできますが、USB接続だけで動かそうとすると(後ろのジャンパーの設定を変えないといけないはず)ストレートのUSBコネクタがフレームに干渉してしまうので、L字のUSB miniプラグのケーブルが必要になります。
動作確認はフレームから外して確認しようと思います。
USBパネルが付属していますが、そのケーブル(別売り)も、beagleBone側はL字でないと上下のフレームに干渉します。
EuroRack の電源部を作る(1)
19インチ 3Uサイズに収まるアクリル板に、電源の部品を取り付けました。穴あけ作業、特に角型の100VACコネクタの穴あけに手間取り、アクリル板にヒビを入れてしまいました。
あとは配線です。ハンダ付けと圧着端子の両方を使う予定です。