前回の続きです。
またも、電装系です。
4D Systemsの「gen4-uLCD-70D-SB」(159.95ドル)です。
7年4ヶ月前に、4.3インチの「uLCD-43PT-AR」(480x272ピクセル)を購入し、2年1ヶ月前に、arduinoと接続検証していましたが、思うところあって、新たに買い直しました。
「gen4-uLCD-70D-SB」は、7.0インチで、800×480ピクセルとなっています。
「gen4-uLCD-70D-SB」の裏面です。
LCDコントローラが、第三世代の「Picaso」から、第四世代の「Diablo16」に変わっています。
また、ケーブルの接続が、ピンヘッダではなく、FFCケーブル(30ピン)になっています。
あわせて、GPIOやオーディオ出力などのピンヘッダが、メインボード上から削除されています。(必要な場合は、「gen4-Breakout」ボードなどを使って取り出す)
「uLCD-43PT-AR」(左側)と「gen4-uLCD-70D-SB」(右側)の比較です。
中学生と大学院生ぐらい、違います。
と、いうことで、今日も今日とて、制御回路を作製します。
「ArbotiX-M Robocontroller」(Arduino ATmega644P)は、2つのシリアルポートを持っていますが、1つ(Serial0)は書き込み用、もう 1つ(Serial1)は「Dynamixel Robot Servo」用に予約されています。
そこで、以前に接続検証したとおり、Arduino ATmega644P側から、Serial0を、FTDI用とTFTディスプレイ用とに、切り替えて使えるようにします。
左側が、以前に作った初号機。右側が、今回作り直した弐号機。
初号機では、「トライステートバッファ」(SN74HC126AP)とワイヤードORの組み合わせでしたが、弐号機では、「アナログ・マルチプレクサ/デマルチプレクサ」(TC4053BP)を使って、TX/RXの双方向スイッチングを実現しています。
また、これまでArduino ATmega644Pの書き込み用には、「FTDI Cable 5V」を使っていましたが、将来のことを考えて、秋月の「FT232RQ USBシリアル変換モジュールキット」に変更しました。
あわせて、「nVIDIA Jetson TX2」からも制御できるよう、ピンヘッダを追加しておきました。(ついでに、TFTディスプレイの強制リセット回路も)
「ArbotiX-M Robocontroller」に「gen4-uLCD-70D-SB」を接続し、デバッグしているところ。
microSDカードに格納した画像ファイルを読み出し、表示させています。
Diablo16のArduino用ライブラリは、FAT16フォーマットをサポートしており、一般的なファイル入出力関数で、画像その他ファイルを読み書きすることができます。
画像は、24bit/ピクセルから16bit/ピクセルに、ツールを使って減色しています。
LCDコントローラが、Picaso世代からDiablo16世代に換わり、画像の表示速度が、若干速くなったように思います。
(メモリ-メモリ間のブロック転送に対応したとか?)
弐号機に、さらに回路を追加。
手前右側は、LEDをPWM制御して点灯させる回路で、手前左側は、温度センサ(サーミスタ)の回路です。
LEDの点灯制御には、NPN型のデジタルトランジスタ(RN1201など)を使えば簡単ですが、どうも、「ローサイドスイッチ」にすると、GNDが他の回路から浮くので、これが気持ち悪いのです。
#以前の、HRD05003の出力制御の時と、同じ事由。
そこで、NPN型のデジタルトランジスタに、PchのMOSFETを組み合わせ、「ハイサイドスイッチ」を構成し、GNDを他と共通化しています。
最近は、小型(TO-92パッケージなど)のMOSFETの選択肢がかなり減ってしまったため、SC-59パッケージのMOSFET(2SJ168)を、「SOT-23変換基板」を改造したものを使って、わざわざDIPパッケージに変換しています。
#この方法は、ドラレコ電源制御回路の時に使ったワザ。
SC-59は、米粒より小さいパッケージのため、ハンダ付けは、なかなかにシビれます。
回路の裏側。
(つづく)
Post Comment