Baumkuchen’s Workshop

バイオリンと電子工作、DIY、ジョギングなど。

バイオリンタイマーの製作#1

大分経ってしまいました。

そろそろ作りだします。ちなみに、自作CNCは、まだ完成していません。

baum-kuchen.hatenablog.com

外観設計(ケース製作)

全体構造を設計します。ケースは、例によって3Dプリンタで作ります。

こじんまりした、構造と思ってましたが、結局は、ヤマハのチューナと同じ外形寸法で作ることにしました。(バイオリン教室で、他の生徒さんが良く使っているものです。自分は、KORG製ですが)

寸法 111×74×18mmの中に、いかに埋め込むか、それなりに試行錯誤しました。裏側から見た図です。真ん中の四角い穴がLCDパネルがはまるところ。

f:id:Baum_kuchen:20220105213053p:plain

実は、ここまで製作が遅れたのは、FreeCADでのモデル作成で、エラーが解消できなかったためでした。四隅のネジ止めのところが上手くいかず、結局、モデルをほぼ最初から作ることに。

で実際の製作結果です。写真では、秋月で買った1.77インチLCDパネルを嵌めてみたところ(当然裏から見たところ)

f:id:Baum_kuchen:20220105213410j:plain

LCDの上に、基板を載せるイメージです。

f:id:Baum_kuchen:20220105213541j:plain

LCDパネルのテスト

今回の新規部品であるLCDパネルの使い方確認を兼ねてテストです。秋月のサイトからダウンロードしたマニュアルだけでは良くわからないので、ネットを探るとちょうど同じパネルのdemoプログラムがGitHubにありました。

github.comただし、これは、Seeeduino用のプログラムだったので、少し改造して、とりあえず動作の確認ができました(写真の青のグラデーション表示は、GitHubのdemoプログラムにはありません)。ElegooUnoとLCDパネルの間にあるのは、3.3V-5.0Vレベル変換用の74HC4050です。

f:id:Baum_kuchen:20220106002229j:plain

と、簡単に出来たように書いてますが、いろいろ悩んだ末にたどりつきました。

その理由は、何といってもインターフェース仕様の解釈です。

 マニュアル(ILI9163V)には、一応、SPI(LCDパネルとしては、4wire-SPI)とありますが、

f:id:Baum_kuchen:20220106003416p:plain

信号名称がCSX、SCL、SDA、D/CXとなっていて、(SCL、SDA)ときたらI2Cではないですか。でも、D/CXって何って思いましたが。

f:id:Baum_kuchen:20220106003628p:plain

4線SPIでは、普通は信号線は、CS(SS)、SCK、MOSI、MISOだと思うので、一体どっちなんだと。

ネットを幾つか探しても、ILI9143Vは、SPIだと書いてあるし、Aruduioのスケッチ例もありましたが、”SPI.h”をインクルードしているようです。また、マニュアル(ILI9143V)を良く読むと、D/CX信号でコマンドとデータバイトを識別しているともあり、単純なSPIインターフェースでは動かないのでは等々。
 で、ようやくたどり着いたのが、先に紹介したGitHubでしたが、ここまで来て改めて理解しました。

 ILI9143Vは、SPIではないが、描画コマンドを設定するだけなら、SPIインターフェースと同じ動作で動かすことができる

ということかと。 

ちなみに、GitHubのSeeduino用プログラム変更したのは、以下のIO定義と、スタティックRAMのサイズの違い(Aruduinoが2Kしかない)による、vram[]変数の取り扱い位です(当然メモリが少ないのでその範囲で制限しただけなので、同じ表示にはなりませんが、テスト用としては十分でした)。Aruduionのpin13-11が、SPI.hライブラリで使う信号線です。

//Aruduino Uno
//
//13 SCK 
//12 MISO
//11 MOSI
//10 SS
//9  DC
//8  RST
#define TFTCS    10   // chip select
#define TFTCD     9   // command/data
#define SPICLK   13   // clock
#define SPIDAT   11   // data
#define TFTRST    8   // reset

今後の計画

LCDが何とか使えそうになったので、個々の要素を作り上げていきます。LCDつながりで、成果が見えやすい画面構成あたりから作っていこうかな。