スポンサーサイト

上記の広告は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の限界なのか良く調べる必要があります。

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


スポンサーサイト

RaspberryPi2をVNCで操作する。


 今回は、RaspberryPi2のお話です。
 別にPi2 に限った話では無いんだけど。Pity peBの方は今RetroPieになってるんで。

 Pi2ではこれからGPIOしたりいろいろ遊ぶことに使っていこうと思いますが、デスクトップ環境があると何かと便利だということでVNCを導入しようと思います。

 VNCは「Virtual Network Computing」の略称で、リモートでコンピュータのデスクトップを触れるようにしようというものだそうです。
 今までのSHH接続ではコンソール画面をガシガシいじることが出来ましたが、デスクトップもいじれるようになるということです。

 さてさて、早速アプリケーションのインストールといきたいところですがまずはお約束のアップデートチェックから。

$sudo apt-get update

$sudo apt-get upgrade


 何事も無く終了したので、次はVNCで画面を流してくれるサーバーを立ち上げてくれるアプリを入れます。
 定番らしい「tightvncserver」を入れます。


$sudo apt-get install tightvncserver


インストールが終わったら立ち上げます。


$tightvncserver

始めて立ち上げるとパスワードを設定するように言われるので適当に入れます。
view-onlyパスワードってのも聞かれます。画面操作は出来ず見ることができるだけのパスワードってコトだそうです。
必要に応じて作ればいいでしょう。

パスワードが無事設定されると以下の文が表示されると思います。


New 'X' desktop is raspberrypi:1


「raspberrypi」の部分は手持ちのRaspberryPiに付けた名前なので人によって違うはず。
この文が表示されたら、このコンピュータのスクリーン1番についてVNCで流してますよってことらしい。
他にもスタートアップスクリプトとログが保存されました的な文も出ますがその辺はよくわからなくても問題ないっぽい。

さて、そこまでいったら今度はリモートで操作する側の設定です。
今回はwindowsXPが動いてるノートパソコンから操作してみます。
使ったソフトはこれ。
RealVNC日本語インストール版

サイトからダウンロードしてインストールしたら立ち上げます。

ダイアログ
こんな画面が出るので、RaspberryPi2のIPアドレスを入れます。
(固定方法はここ)
IPアドレスの後には「:1」を追加します。さっきコンソールで出た数字ですね。
そのあとパスワードを聞かれるので、先ほどtightvncserverで決めたパスワードを入れます。


あっさり出来ましたー。

ちなみにiPhoneでもVNCアプリがあるようです。

VNC Viewer

VNC Viewer


開発元:RealVNC

無料


posted with アプリーチ








立ち上げたら右上の+ボタンを押して必要事項を入力します…が、ここで注意するところがひとつ!
アドレス欄にはIPのあとにやっぱり「:1」を追加します。
スクリーン1番ということ…かな。


名前はこのアプリの中での呼び方の様です。


右上のconectで進みます。

こちらもあっさり繋がりました。
上手くいくと嬉しい!


RetroPie を使ってみる。

 以前、ネットの記事youtubeでみたRaspberryPiでポータブルゲームを作るってのを自分もやってみたくて、いろいろ始めてみることにしました。

 既にタッチ液晶は注文してモノが届いてたりするんですが、それについてはまた別の機会に触れるとして、手始めにエミュレーターの「Retro Pie」を導入するところから始めてみようと思います。

 今回使うのは、最近セットアップしたPi2ではなくて、もともと昔から持っていたmodel Bの方です。
 こいつは、Pi2とかB+とかよりももっと前の無印Bタイプです。(リビジョンは2だったと思いますが。)
写真 2015-06-06 12 59 41
 線が延びてるのは、USBよりももっとたくさん給電したくなった時用にと以前半田付けしたものです。
 この部分については機会があれば触れようと思います。

 とりあえずしばらくこいつを使ってあれこれ試していきながら、最終的にはポータブルな形に仕上げていきたいなと思います。


 では早速RetroPieについて調べながら取り掛かります。

 参考にした日本語サイトはこちら→ wajima君、Raspberry Pi遊びもほどほどに

 とりあえず、「RetroPie Downloads」に行き、今回はPi2ではないので、「RetroPie SD-card Image for Raspberry Pi 1 Version 2.6」をダウンロードします。

 かなり待ちますが、終わったらダウンロードしたファイルを解凍します。
 「.gz」という形式なので最初戸惑いましたが、いつも使っているLhaplusで普通に解凍できました。

 解凍した後は、いつものとおり、Win32 Disk Imagerで焼きこみます。(使い方は特に難しいことは無いと思うのでここでは省略)

 イメージの焼き込みが出来たら、RaspberryPiにSDカードをぶっさして、HDMIのモニタに繋げて起動します。
起動はあっさりできました。
写真 2015-06-06 14 10 58 (2)
写真 2015-06-06 13 02 55 (2)

からの

写真 2015-06-06 13 03 24 (1)

 ここで画面を見ると、「NO GAMEPADS DETECTED」とあります。
 いきなりゲームパッドを繋いでもいいんかなと疑問に思いつつ、ゲームパッドを繋ぎます。
 しかも、今回は、有り合わせのゲームパッドをということで、以前PCゲーム用に使っていたPS2コントローラとUSB変換ケーブルの組み合わせを使います。
写真 2015-06-06 13 18 41

使ったのはこいつ↓
ELECOM ゲームパッドコンバータ USB接続 プレステ/プレステ2コントローラ対応 2ポート JC-PS102UBK


最初から不安のある組み合わせですが・・・
変換機を差して一呼吸おいてPS2コントローラを繋げたらあっさりと認識しました。

画面の指示に従ってさらっとパッドのボタン設定を進めます。
写真 2015-06-06 13 22 18

 すると・・・機種を選択する画面に進みました。

 とりあえず一通り見てみますが、スーファミとかファミコンとかメジャーなものがありません。
 どうやらROMを入れると自動的に出てくるようです。
 
 立ち上がったことを確認したら、いろんなサイトを参考にしながらRPi本体の設定を進めていきます。

 やったことをまとめると以下のとおりです。

 ・コントローラーを一回抜いてUSB無線LAN、USBキーボードを差す。
 ・起動したら、「F4」キーを押してエミュから抜けてコンソールに入る。
 ・sudo raspi-cofigで設定画面に入る。
 ・「Expand Filesystem」で容量拡張
 ・「Internationalisation Options」で「Locate」に「Ja_JP.UTF-8」を加える。
  (その後聞かれるデフォは良くわからないので元からある「en_GB.UTF-8」を選択)
  更に「Timezone」で「Tokyo」を選択
  更に「keyboard Layout」を「Generic 105-key (Intel) PC」-「Other」-「JAPANESE」を選択
 ・「Advanced Options」で「SSH」を「Enable」

 ここまでは、この前Pi2をセットアップした時と同じです。
 再起動したらまたコンソール画面に戻って、無線LANの設定に入ります。
 (有線でLANケーブルを繋ぐときはいらない手順でしょう。
 
 ・lsusb でUSB無線LANが認識されているか確認 →OK
 ・iwconfigでwlan0が機能しているか確認 →OK
 ・sudo iwlist scanでネットワークが見えているか確認 →OK
 ・sudo nano /etc/network/interfacesで設定ファイルを編集
  内容は前回設定したときと同じ内容で、IPを192.168.11.16に固定する。
 ・sudo nano /etc/wpa_supplicant/wpa_supplicant.confで以下の様に記述する。
  

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="繋ぎたいネットワーク名"
psk="パスワードを間違わないようにここへ入力"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}

sudo nano /etc/resolv.confで以下の様に記述する。
 

nameserver 192.168.11.1   //実際の環境に合わせて入力

sudo rebootで再起動語にまたコンソール画面へ。

 上手く言っていればネットに繋がっているはず。
 ここからはモニタじゃなくて他からSSHで繋いでもいけるはず。

 続いていよいよRetoroPieにかかわることです。(有線LANの人はここから!)

 ・sudo rpi-updateでRaspberryPiのファームをアップデート
 ・sudo rebootで再起動後にまたコンソールへ戻る。
 ・お決まりのアップデート&アップグレード
  以下を打てば一回でいけるらしい。いい事を聞いた!
  sudo apt-get update && sudo apt-get upgrade -y
 ・sudo rebootで再起動後にまたコンソールへ戻る。

 ・cd RetroPie-Setup でフォルダ移動
 ・sudo ./retropie_setup.sh でセットアップメニューを出す。
 ・「U UPDATE RetroPie Setup script」 を選択する。
  何やら処理が行われたあと、メニューを再起動しろ見たいに言われるので、OKの後、
  最初の画面でCancelを選んでコンソール画面に戻り、再びsudo ./retropie_setup.shを打つ。
 ・「Setup / Configutration (to be used post install)」から「320 Configure input devices for RetroArch」
  を選んだ後、「Configure joystick/controller for use with RetroArch」を選んでキーの設定を行う。
  設定するコントローラーだけ繋いどけよ見たいなことを言ってる気がするので「OK」
  コンソール画面になるので、準備が出来たら「Enter」を押す。
  一つのボタンにつき数秒しかない制限時間があるので注意。心の準備が出来てから進め!(何回でもやり直せるんだけどね!)
 ・更に「329 USB ROM Service」から「1 Enable USB ROM Service」を選択します。
  これは、USBメモリ経由でROMをインストールする機能のようです。
 
 ここまできたらメニューを「Cancel」してコンソールに戻り、再起動します。

 さて。次はROMの準備です。
 ROMはUSBメモリを通じて入れることにします。
 まず適当なUSBメモリを、電源が入ってRetroPieが起動している状態のRPiに差し込みます。
 自動でいくつかの空フォルダが作成されるので少しだけ待ちます。

 その後に抜いて、ROMが入っているPCに繋ぐと、USBメモリの中に「roms」というフォルダが出来ていて、ハードというかエミュレータ毎にフォルダが出来ています。

 今回は、「nes」「nes-nestopia」「snes」「snes-pisnes」の中にROMを入れてみました。
2015-06-18_13h00_30.jpg
 
 コピーが終わった後に、USBメモリをまたRPiへ戻します。
 ゲームパッドを繋いで電源を入れると...
写真 2015-06-06 22 20 52
 きた!ファミコンもスーファミもある!!
写真 2015-06-06 22 30 34

 少し操作をしてみましたが...ん?右のABXYの割り当てがおかしいような。。。
 
 とりあえず動いて操作が出来るようになりました。
 

 ちなみに、コンソール画面で最初に出るキノピオ的な画面のスクショです。
 (最初はモニタを直撮り。SSH繋げてからはTera Termをスクショ)

before
写真 2015-06-06 14 15 25 (2)
after
2015-06-18_12h29_39.jpg

 ファイルシステムが拡張されて15GBまで認識されているのと、ネットワークに繋がって指定した固定IPアドレスになっているのがわかります。
 
 こういうの自分でやったことがカタチになっていくのは楽しいねー。
 

RaspberryPi2 でGPIOを準備する。

Raspberry Pi2から入出力等を行うことができるGPIOについて、使うための準備をしていこうと思います。

まず、GPIOについての確認。
Raspberry Pi2のGPIOは以下のとおりだそうです。
画像はelement14.comから拝借。
(ちなみに今使っているRaspberry Pi2は、element14製です。)
GPIO_Pi2.png

ここでいろいろ調べてみて理解したことを並べてみます。

・左右それぞれにある「Pin#」は、上から順に決められたピンの配置番号を示す。
・「NAME」は、それぞれのピンができる仕事を元に付けられた名前的なものを示す。

この2つがとても大事なのかなと。
ピンを指定するとき、どちらの呼び方も使われるらしいけど、どちらの呼び方かをはっきりさせないと混乱しそうです。
特にGPIO番号とピン番号が両方あるピンはやばそう。

各ピンの説明については、こちらのページも参考になるかと思います。(英語ですが)
Raspberry pinout
2015-06-04_13h26_40.jpg

このページでは、上画像で言う「Pin#」を「physical」、「NAME」の「GPIO~」を「BCM」と表記しています。
それぞれの機能や、同じ役割のピンが一緒に選択されたりするので今後使えそうです。

さて、こんなGPIOですが、使えるようになるためには下準備が必要そうです。

自分が教科書にしている「Raspberry Pi クックブック」では、RPi.GPIOというライブラリを使って説明されているのでそれを使います。


ターミナルから以下の2つをインストールします。


sudo apt-get install python-dev
sudo aot-get install python-rpi.gpio


RPi.GPIOの方は、今日現在では最新のものがすでに元から入っていたようです。

これで準備は出来たはず!
とりあえず次はLEDをチカチカさせるところまでじっくり考えて見ます。

RaspberryPi2 でSSHする。(Win7編)


前回に引き続き、今回はWindows7とRaspberry Pi2をSSHで繋いでみようと思います。
手順を忘れそうなのでメモ。

前回の記事でも書きましたが、RaspberryPi2側はSSHが使用できるように予め設定をしていることが前提です。
(まだなら一瞬で終わるのでチェック!

さて、今回はSSHのソフトとしては定番らしい「Tera Term」を使います。
早速ここからダウンロード。最新のものを選択します。
http://sourceforge.jp/projects/ttssh2/
2015-06-04_11h48_50.jpg

次の画面で最新版の「.exe」ファイルを選択。

2015-06-04_11h59_41.jpg

ダウンロードが完了したら実行します。
言語や、インストール場所の設定を適当に。

コンポーネントの選択では、コンパクトインストールで充分だそうです。
2015-06-04_12h03_46.jpg

あっという間にインストールが完了するので起動してみます。

「新しい接続」という画面が出るので、ホスト名にRaspberry Pi2の固定したIPを入力します。
その他の設定はそのままでいいと思います。

2015-06-04_12h08_05.jpg

一番最初に接続するときは、サーバリストに無いとかなんとかいわれますが、OKで進みます。
次に「ユーザー名」と「パスフレーズ」を聞かれるのでRaspberry Pi2の設定時に決めたものを入力します。

2015-06-04_12h13_11.jpg


無事に成功すれば以下の画面が出ます。
簡単だぁ!!

2015-06-04_12h13_40.jpg

「設定」-「フォント」でフォントの変更、「設定」-「ウィンドウ」に進むとカラー設定が出来ます。
後はセンスに任せて雰囲気を楽しみましょう。

2015-06-04_12h36_34.jpg




プロフィール

SiO_the_ORANGE

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

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

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

コメント大歓迎です!

最新トラックバック

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