スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LCD タッチモニタシールドを試す。


 RaspberryPiでポータブルゲーム機を作るために、ebayで買ったLCDタッチモニタについて、書きとめながら進めようと思います。

 購入したのは、「3.5" TFT LCD Touch Screen Module 320*480 RGB Display Board Raspberry Pi PI2 B+/B」というタイトルのものです。
LCD.jpg

 サイズはそこそこの大きさがいいかなということで3.5インチを選択。

 送料無料で$18.95 = 2,391円でした。(paypal払い)
 5/25に注文して、6/1には来ました。from香港です。

 とにかく安かったのでひとつ買ってみるかというつもりでいたのですが、使用するまでの情報がまったくと言っていいほどありません。
 
 とりあえずebayの説明にある仕様は以下のとおりです。()内は調べたメモ。

Key Parameters

LCD TypeTFT
LCD InterfaceSPI
Touch Screen TypeResistive(抵抗被膜方式)
Touch Screen ControllerXPT2046
Colors65536
BacklightLED
Resolution320*480 (Pixel)
Aspect Ratio2:3
Power ConsumptionTBD(←TBD = To Be Determined 決まってない。知らんてことらしい)
Backlight CurrentTBD
Operating Temp. (℃)TBD


 ちなみに、GPIO端子にぶっさして使いますが、配列は以下のとおりです。

Interface

PIN NO.SYMBOLDESCRIPTION
1, 173.3VPower positive (3.3V power input)
2, 45VPower positive (5V power input)
3, 5, 7, 8, 10, 12, 13, 15, 16NCNC
6, 9, 14, 20, 25GNDGround
11TP_IRQTouch Panel interrupt, low level while the Touch Panel detects touching
18LCD_RSInstruction/Data Register selection
19LCD_SI / TP_SISPI data input of LCD/Touch Panel
21TP_SOSPI data output of Touch Panel
22RSTReset
23LCD_SCK / TP_SCKSPI clock of LCD/Touch Panel
24LCD_CSLCD chip selection, low active
26TP_CSTouch Panel chip selection, low active

 うーん。使わない端子があるにもかかわらずコネクタで占領されてるし他に取り出されても無いから実質つぶされてるじゃん・・・


 それから、シールド裏面には次の様に型番の記載がありました。
  「SKU:AC-TFT35-V2.1
写真 2015-06-25 13 27 24

 さて。これを元に情報を集めなくてはいけません。
 
 するとGitHubにこんな投稿がされていました。Pi2だけど使用できている人の手順が示されています。
 →TFT35" Touch Shield For RPi SKU: AC-TFT35V-2.1
 この投稿によれば
 
 (1)RaspberryPiの基本設定でSPIとI2CをONにする。
 (2)FBTFTドライバを入れる。
 (3)/etc/modulesをいじくる。
 (4)/boot/config.txtをいじくる。

 でいけるらしい。
 更に、FBTFTドライバについていろいろ調べると、日本語ブログも発見。
 →Raspberry Pi でTFT液晶モジュールを使用する:jakaladaのブログ

 どうやら今回購入した液晶は、Piscreenとかいう形で販売されているもののクローンというか原理を同じとして売られているものらしい。
 かといってメジャー製品でも完全コピー品でもないので1から情報を組み合わせて頑張っていきたいと思います。

 では早速いきます。

 まずはSPIを使えるようにします。(OSを入れたりしたときに既に設定済みの時は不要ですね。)
 今回使うのは、ポータブルゲーム機を見据えているのでtypeBです。
 SSHでデスクトップPCから操作します。

 ・sudo raspi-config で、お馴染みの青い設定画面を出したら、「8 Advanced Options」を選択。
 ・「A6 SPI」を選択して「OK」します。その後、起動時にデフォルトでSPIモジュールを読み込むかと聞かれたのでYes
 ・同じく「A7 I2C」も使うようにしておきます。
 ・ここで再起動 (全てキャンセルを選択していく)
 
 これだけではSPIは使えるようにはならないらしいので
 ・sudo nano /etc/modprobe.d/raspi-blacklist.conf
 ・開いたら、
   blacklist spi-bcm2708
   blacklist i2c-bcm2708
  の頭に#を付けてコメントアウトするらしいけど…あれ。もうなってる。
2015-06-25_15h13_55.jpg

 まぁいいや。次にFBTFTドライバをインストールします。

 ・sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update

 なにやら進みます。1分ぐらいドキドキ・・
 続いてUpdating Firmware と Updating kernel modules のあといろいろ読み込まれていきます。

2015-06-25_15h22_40.jpg
 とりあえずうまくいったようです。とりあえず再起動。

 続いて、二つのファイルを書き換えて設定をいじっていきます。
 ・sudo nano /etc/modules
  開いたファイルの末尾に以下を追加します。
  fbtft_device name=piscreen rotate=90 speed=16000000
2015-06-25_17h31_14.jpg

 保存したらもう一つ
 ・sudo nano /boot/config.txt
  こちらはもっといろいろ書いてありますが、同じく最終行に以下を追加
  dtoverlay=piscreen fbtft_device.debug=3
2015-06-25_17h31_49.jpg

でもって再起動すると、一瞬真っ白の画面が出てから、黒い画面になります。
 SSHで端末からcon2fbmap 1 1と入力すると・・・
写真 2015-06-25 17 28 51

 きたぜぇぇぇーーーー!!!!
 とりあえず映った!壊れてはいないようで よかったよかった。


 ・・・ここで気付く。
 ただTFT液晶を使えるようになるだけがゴールじゃなかった、と。
 起動したらそのままRetroPieまでたどり着かなきゃいかんのでした。

 ということでいろいろ探すと、今更ながらこんなぴったりなサイトを発見!
  →[Raspberry Pi] RetroPieで3.2インチLCDを利用する手順:Raspberry Piで遊ぼう!

 日本語サイトでしかもRetoroPieで使うことを目標にしていて、尚且つWaveShareというメーカーを使っているではないか!
 RetroPieでTFTする情報はいくつか出てきますが、PiTFTとかいうadafruit製の製品のドライバ取り込みの記事が多い気がします。
 今回のはちょっと違うようなので、WaveShare製のならおんなじドライバを使っていけるはず!

 まず、ついさっきやったブートの書き込みはこのサイトには無いので、書き込んだ部分を削除します。
 ・sudo nano /boot/config.txtで開いてさっきの部分を削除ね。

 ・次にsudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.confで開いたファイルの
  「"fbdev" "/dev/fb0"」を「"fbdev" "/dev/fb1"」に書き換えます。

 ・次にsudo nano /boot/cmdline.txtの最後に以下を追加します。
  「fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo
  この時、rootwaitの後にスペースを入れた後そのまま打ち込んでいきます。
  改行して2行目から書き始めると失敗します!

2015-06-26_00h16_29.jpg


  ・次にfbcpと言うものをインストールします。
   ダウンロードして展開して・・・というのを手動でやることになります。
   打ち間違いの無い様に・・・

sudo apt-get install cmake //←これは既に入ってました。
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build //打ち間違い注意!
cd build/
cmake ..
make
sudo install fbcp /usr/local/bin/fbcp  //一瞬で終わる


 ・sudo nano /etc/profileで開いたファイルの一番最後の行の頭に#を付けてコメントアウトする。
  「#[ -n “${SSH_CONNECTION}” ] || emulationstation」

 ・起動シェルを作成します。これは/home/pi/ディレクトリに作成します。特に移動していなければ現在のところです。
  sudo nano es.shで新規に作成したら以下を入力してCtrl+Xの後、YでEnter

#!/bin/sh
fbcp &
emulationstation
killall fbcp


 ・最後に.profileを編集します。これで最後だ!
  sudo nano .profileで開いたら、最後に以下を追加。

 CHK=`ps -ef | grep emulationstation | grep -v grep | wc -l` // `は’ではないことに注意!! -l はマイナスエル
if [ $CHK -eq 0 ]; then
    . /home/pi/es.sh
fi


 再起動すると・・・
写真 2015-06-25 23 59 59

 やったぁぁあーーー!!!
 コントローラー繋げば出来ちゃうぜ!
 後はスピーカーとかバッテリーの組み込みとかが解決すれば夢のポータブル機の完成じゃん。

 と思ったのは束の間・・・動きおっせーーー!!!!
 これじゃどうにもならん。
 設定が悪いのか無印typeBの限界なのか良く調べる必要があります。

 この他、終了処理をした後もずっとモニタのバックライトが光ったままなのでこれも改善の余地有りです。
 
 先は長い!!


スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する
プロフィール

SiO_the_ORANGE

Author:SiO_the_ORANGE
 
DIYとか自作とか修理って言葉に反応します。

 いろんなことを勉強しながらちょっとずつ出来ることを増やしていこうと目論むブログです。

 情報というよりメモですが、お気付きの点あればいろいろ教えてください。

コメント大歓迎です!

最新トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。