GR-CITRUSとMIKANを試してみる(9)

今回はGR-CITRUSにTFTを接続してみました。私が試したSPI-TFTは、ILI9341を使ったもので、2.2インチサイズのQVGA(320×240)です。初め、SOFT SPIで試してみましたが、SD Cardと同時利用ができない不具合があったのでSPI libを使ってプログラムを作成してみました。SDカードをアクセスすると画面にゴミが残りますが同時利用はできるようです。また文字列を表示する際のポインターの受け渡しがうまくいかない場合があったのでプログラムを一部変更しました。

(1)GR-CITRUSとSPI TFTを下記のように接続します。

f:id:jf3rgskun:20170131075525j:plain

(2)GR-CITRUSのソースをmakeする環境をつぎのGR-CITRUSのmrubyソースをmakeする方法 - Qiitaを参考にして構築

(3)GR-CITRUS用のソースをつぎのGitHub - wakayamarb/wrbb-v2lib-firm: Wakayama.rb Ruby Board V2 library Firmwareからダウンロードしてきて環境を構築したRenesasフォルダに展開

(4)firmware_developフォルダーに移動し、gr_commonフォルダ内のlibフォルダに新規にTFTフォルダを作成

このフォルダに3つのファイルを作成SPI_TFT.cpp、SPI_TFT.h、font.h

(5)firmware_developフォルダーに移動し、wrbb_mrubyフォルダ内にsTFT.cpp、sTFT.hを新規に作成

(6)同じwrbb_mruby内のsSys.cppにTFTが使えるように追加、変更

(7)firmware_developフォルダーに移動し、上記追加したファイルがmakeできるようmakefileに下記を追加

・SRCFILESに./gr_common/lib/TFT/SPI_TFT.cpp、./wrbb_mruby/sTFT.cppを追加

・OBJFILESに./gr_common/lib/TFT/SPI_TFT.o、./wrbb_mruby/sTFT.o \を追加

・CCINCに-I./gr_common/lib/TFTを追加

・HEADERFILESに./gr_common/lib/TFT/SPI_TFT.hおよび ./gr_common/lib/TFT/font.h、./wrbb_mruby/sTFT.hを追加

(8)ここでmakeすると新しいcitrus_sketch.binができます。つぎにGR-CITRUSのリセットボタンを押すとUSBマスストレージとして認識されるのでcitrus_sketch.binをこのフォルダに移動させてファームを書き込みます。

(9)Rubicを開いて下記のTEST_TFT.rbを入力

TEST_TFT.rb

(10)実行するとこのように描画されます。

f:id:jf3rgskun:20170130204534j:plain

 (11)今回のTFT libを盛り込んだfirmware_developのソースはこちらです。

GitHub - ojisan/firmware_develop