前回の「ペガソス計画」の続きではあるのですが、
ちょうど5年3ヶ月ほど前に購入したまま、放ったらかしにしていた4D Systemsの「uLCD-43PT-AR」を、引っ張り出してきました。
いちおう、LEDキャラクタディスプレイ(TC1602E-25)とか、有機ELキャラクタディスプレイ(WEH002004A)とかを、ArbotiX-M(Arduino)に繋いで試してみました。
しかしながら、この際、せっかくなので、表現力の高い、フルカラーTFT液晶ディスプレイを使ってみることにしました。
このuLCD-43PT-AR、サイズは対角4.3インチで、解像度はQVGA(480×272ドット)、色数は16bit(65,536色)となっています。
このディスプレイに、抵抗膜方式(Resistive)のタッチパネルが組み合わされています。
「4D Programming Cable」を使って、動作確認をします。
まずは、定番の「Hello World!!」から。
リセット後に、「glx_Cls」を送り、「txt_FGcolour」で文字色送り、putstrで文字列を送ると、テキストが表示されます。
つづいて、フルカラー画像。
あらかじめ、24bitを16bitに減色した画像を作り、microSDカードに書き込んでおきます。
リセット後に、「glx_Cls」を送り、「media_Init」、「media_SetSector」でセクター番号を送り、「media_Image」で表示位置(x, y)を送ると、イメージが表示されます。
動作確認ができたところで、Arduinoベースの「ArbotiX-M Robocontroller」に接続し、制御できるようにします。
シリアル接続するためのRX0とTX0は、6PのFTDIコネクタから取り出すことができますが、このコネクタは、「FTDI Cable 5V」用のもので、ArbotiX-Mのデバッグ中は、常時接続している状態となります。
回路図を見てみると、「XBee 1mW Communication Module」用のコネクタから、取り出すことができそうです。
亀の子状に取り付けられているものが、新たに作製した変換基板です。
XBeeのコネクタは、2mmピッチであることから、秋月電子通商の「XBee用2.54mmピッチ変換基板」を用いて、2.54mmピッチに直しています。
パッケージそのままの大きさでは、ArbotiX-Mに載らないため、少し改造しています。(緑色の基板)
あわせて、uLCD-43PT-ARを、ArbotiX-Mから強制リセットするための回路を積んでいます。(乳白色の基板の、右奥のデジタルトランジスタ)
uLCD-43PT-ARを、ArbotiX-Mに接続し、動作確認をします。
uLCD-43PT-ARの解像度は、QVGA(480×272ドット)ですが、システムの状態を表示させるには、十分な大きさです。
これで、出力系(表示系)の準備が整いました。
と、思ったのですが・・・。
Arduino IDEでスケッチを転送すると、書き込みエラーが発生することが分かりました。
一方、uLCD-43PT-ARに向かうケーブルを抜いておくと、書き込みエラーが発生しません。
なんとなく想定はしていたのですが、シリアルポート(Serial0)を、FTDIとuLCD-43PT-ARとで共有しているため、入出力(RX0 / TX0)の衝突が起き、書き込み後のベリファイにおいて、エラーとなってしまうようです。
これを解決するため、SPI通信の際の制御方法に倣い、FTDI側でSerial0を使用している間は、uLCD-43PT-AR側のSerial0を、トライステートバッファを使って、論理的に切り離しておくことにしました。
画像は、新たに作製した変換基板です。
変換基板の裏面です。
左側が初期型、右側が改良型の変換基板。
トライステートバッファで切り離しておくことにより、uLCD-43PT-ARと115,200baudで、高速通信できるようになりました。
これで、出力系(表示系)の準備が整いました。
と、思ったのですが・・・。
やはり、後々のことを考えて、以前に作製したユニバーサル基板上に実装することにしました。
こんな感じで、デバッグしています。
これで、ほんとに、出力系(表示系)の準備が整いました。
(つづく)
Post Comment