ラズパイZEROのたとえ(例)

昨年夏(2016/8)、アストロシティ筐体プラモ購入して、 中にラズパイZERO入れて遊んでました。
それをブログ記事に書こうと思っていたんですが、ラズパイZERO組込を改良・改変してるうちにめんどくさくなり、未完のまま放置。
よってブログ記事も書かずじまい。

c0323442_22550128.jpg
c0323442_22550145.jpg
これは改良前の一次完成姿。
c0323442_22550297.jpg
もう半年経って忘れ始めてますが、覚書めもを書いておこうと思います。
ラズパイZEROをエミュ機ににするめもだからね。ひとつの例だからね。

利用するツールやスクリプト・プログラムは、頻繁に仕様など変更になります。
このブログ記事の手順では組み込めなくなってる可能性大なのでそのつもりで読んでね。


非常に重要な事、私はLinux知りませんからね。
Linux知らないやつのブログ記事なので迂闊に信用しないように!





===ラズパイZEROの特徴===
基板は「小さい」です。よって何かに組み込む事に向いてます。
組み込むに当たり考慮する点は4つ。
映像出力、音声出力、ボタン入力、電源。
写真はラズパイ3と比較。

c0323442_22570993.jpg

映像出力について
[HDMI]
利点:一番簡単、挿すだけで高画質。
注意点:MiniHDMIなこと。
欠点:HDMIコネクタが出っ張る。
HDMI対応の小型モニターというものが存在しない。
HDMI対応モニターは7インチくらいまで。
5インチくらいも存在するが独自ドライバが必要でHDMIそのまま挿しても映らない。


[コンポジット]
いわゆる黄色いプラグね。
基板右上の「TV」シルクの場所が接続端子。
利点:2線つなぐだけで簡単に映る。モニターは2.4インチ~3.5インチくらいのものから簡単に見つかる。
欠点:表示文字がつぶれて・ぼけて読めない。
別途電源が必要で、車のインダッシュ用が主のためか、+9V~+12V必要。この電圧確保が欠点。
値段は安い物なら2.000円くらいから。


[GPIO]
GPIOピンからSPIモニター出力。
利点:小型薄型のモニターが使える。値段が安い。
表示文字がしっかり読めて、画面きれい。
電源は+5Vや+3.3Vなので、ラズパイZEROと共有できる。
欠点:ドライバが必要、Linuxコマンドからインストールと設定が必要。
多くの配線が必要。動画に滑らかさがない。


音声出力について
[HDMI]
ラズパイZEROの音声標準装備はコレしかない。
利点:一番簡単、挿すだけで音が出る。
注意点:MiniHDMIなこと。
欠点:HDMIコネクタが出っ張る。
モニター基板側にスピーカー又は音声出力端子が必要。


[GPIO]GPIOピンから音声出力。
利点:I2S利用で小型基板から音が出せる。
電源は+5Vなので、ラズパイZEROと共有できる。
欠点:Linuxコマンドから設定が必要。
私はI2Sの音基板は1種類知かしらなくて、モノラルで音量調整機能が無い。


[USB]USBから音声出力。
利用した事ありませんので、以下は想像です。
利点:簡単USB接続。ステレオ出力。
欠点:USBが出っ張る。かさばる。ドライバが必要。


ボタン入力について
[USB]
USBゲームパッド
利点:簡単USB接続。多くのゲームパッドを自動認識。
欠点:USBが出っ張る。組込に向かない。


[GPIO]GPIOピン利用。
利点:かさばらず組込しやすい。
欠点:Linuxコマンドからインストールと設定が必要。


電源について
[外部電源]
利点:一番簡単。
欠点:ポータブル化できない。


[内臓電源]
利点:コードレス化。
欠点:バッテリーと回路が必要。
・市販のUSBバッテリー利用
  利点:簡単接続、簡単充電。
  欠点:かさばる。
・バッテリーと昇圧回路
  利点:一番コンパクト。
  欠点:給電と充電が同時に行えない。
・バッテリーと昇圧/給電/充電回路
  利点:給電と充電が同時に行える。
  欠点:あまり存在しない。私は組み込めるサイズのもを1商品2種類しか知らない。値段高い。


===環境準備===
私の覚書めもは、GPIOを利用したひとつの例です。
それを行うためのラズパイZEROが1個の環境です。
エミュOS:RetroPieを導入します。


・ラズパイZERO 単品500~800円、送料込みだと1,300円くらいから入手可能
  購入制限で1回の買い物で1個しか購入できません
  https://www.raspberrypi.org/
  このURL右下にお店が5つほどあります
  送料を確認しましょう、全然違うから
  もし購入するなら、周辺機器など同時購入品の有無を確認してから購入手続きしましょう


・microSDカード 4GB以上あればよいかと思う
・HDMIモニター 作業用に必要です
・HDMIケーブル MiniHDMI-HDMIケーブル又はミニHDMI変換アダプタとHDNIケーブル
・電源microUSB  +5V1Aくらいあると安定


・USBハブ 4ポートぐらい、microUSB端子だと便利、私は800円くらいのBSH4UMB01BK
・USBキーボード 作業用に必要です
・USBゲームパッド 無くてもOK
・USB無線LAN ラズパイ動作確認済みの低消費電力のもの、私は1,000円くらいのGW-USNANO2A

c0323442_22593717.jpg
c0323442_22593779.jpg
c0323442_22593834.jpg
・windowsパソコン
・無線LAN環境


・windowsパソコン用TeraTermソフト導入
 パソコンから無線LAN経由で、ラズパイZERO側をリモートコントロールします
 パソコン側で操作するので作業が楽になる(参考サイトやメモ帳を開いて、コピー&貼り付けできる)
 ラズパイZERO(RetroPie)側だとキーボードが日本語になっていないので文字入力が非常に不便
  (こんな感じ、^→6、#→む、{→Shift+@、}→Shift+[、日本語キーボード化も面倒のようです)

c0323442_23012022.jpg
c0323442_23012013.jpg
c0323442_23012159.jpg

===GPIOピンからSPIモニターへ映像出力===
SPI接続は各メーカー・商品毎にドライバが必要です。
Linux用小型SPIモニター用にドライバをまとめた物があります。
FBTFT
サイト:https://github.com/notro/fbtft/wiki
対応モニター:https://github.com/notro/fbtft/wiki/LCD-Modules
それをラズパイ用にしたもの(?)
rpi-fbcp
サイト:https://github.com/tasanakorn/rpi-fbcp


まぁ、上記サイトに行ってもよくわからんので、私の導入したひとつの例。


★★★残念ながら、以下のLCD SPI手順はもう古いため使えません★★★


購入モニター
・2.2in 240x320 ILI9341SPI TFT Display
・2.4in 240x320 ILI9341SPI TFT Display
ともにeBayで送料込み600円くらいで購入だったんですが、なんか今は倍くらいの値段になってる(?)
eBay http://www.ebay.com/

c0323442_23042692.jpg
c0323442_23042695.jpg
c0323442_23042777.jpg

その1)
RetroPieのOSイメージをmicroSDに書き込む

ラズパイZEROにRetroPie導入

[raspi-config]から各種設定
RASPI-CONFIG→7 Advanced Options→A1 Overscan→NO→OK
RASPI-CONFIG→7 Advanced Options→A4 SSH→YES→OK
RASPI-CONFIG→7 Advanced Options→A6 SPI→YES→OK


・Wi-Fi設定
RASPI-CONFIG→WiFi


その2)
GPIOとモニターとラズパイZEROをつなぐ

モニター:1番ピン(VCC) <==> ラズパイ:2番ピン(5V)
モニター:2番ピン(GND) <==> ラズパイ:6番ピン(GND)
モニター:3番ピン(CS) <==> ラズパイ:24番ピン(GPIO 8)
モニター:4番ピン(RESET) <==> ラズパイ:17番ピン(3.3V)
モニター:5番ピン(DC) <==> ラズパイ:22番ピン(GPIO 25)
モニター:6番ピン(SDI) <==> ラズパイ:19番ピン(GPIO 10)
モニター:7番ピン(SCK) <==> ラズパイ:23番ピン(GPIO 11)
モニター:8番ピン(LED) <==> ラズパイ:1番ピン(3.3V)
モニター:9番ピン(SDO) <==> ラズパイ:21番ピン(GPIO 9)
※ラズパイ側のピン番号1~40ピンとGPIO 2~27は別だから間違えないように、下の接続画像の赤帯ね。

c0323442_23050923.png
c0323442_23051086.jpg
c0323442_23051099.jpg
c0323442_23051109.jpg

その3)
パソコンのTeraTerm起動、ラズパイZEROを接続、リモート操作
 User name: pi Passphrase: raspberry
c0323442_23054734.jpg
c0323442_23054777.jpg
c0323442_23054819.jpg
c0323442_23054868.jpg

コマンド:インスト(少し時間掛かる)
curl -SLsk https://apt.adafruit.com/add-pin | sudo bash
c0323442_23112951.jpg
コマンド:アップデート(少し時間掛かる)
sudo apt-get update
c0323442_23112932.jpg
コマンド:raspberrypi-bootloaderインスト(少し時間掛かる)
sudo apt-get install raspberrypi-bootloader
質問:DO you want to continue? 答:y , enter
c0323442_23113172.jpg
コマンド:TFT用スクリプトインスト(かなり時間掛かる)
sudo apt-get install adafruit-pitft-helper
質問:DO you want to continue? 答:y , enter
c0323442_23113161.jpg
コマンド:TFT用スクリプトインスト起動
sudo adafruit-pitft-helper -t 28r
質問:Would you like the console appear on the PiTFT display? 答:no , enter
質問:Would you like GPIO #23 to act as on/off button? 答:no , enter
c0323442_23113234.jpg
c0323442_23113243.jpg
コマンド:cmakeインスト(少し時間掛かる)
sudo apt-get install cmake git
質問:DO you want to continue? 答:y , enter
c0323442_23123531.jpg
コマンド:rpi-fbcpダウンロード
git clone https://github.com/tasanakorn/rpi-fbcp
c0323442_23123609.jpg
コマンド:ディレクトリ移動
cd rpi-fbcp/
コマンド:ディレクトリ作成
mkdir build
コマンド:ディレクトリ移動
cd build/
コマンド:cmake
cmake ..
c0323442_23123685.jpg

コマンド:make
make
コマンド:fbcpインスト
sudo install fbcp /usr/local/bin/fbcp
コマンド:rc.local記述書き換え
sudo nano /etc/rc.local
c0323442_23130590.jpg

文章の"exit 0"の前に下記の文章新規追加
/usr/local/bin/fbcp &
nanoツール終了キー
 キーボードで Ctrl+x
上書き保存を聞いてくるので
 キーボードで y その後 Enter
c0323442_23130561.jpg

c0323442_23130571.jpg

c0323442_23130634.jpg

コマンド:config.txt記述書き換え
sudo nano /boot/config.txt
c0323442_23133220.jpg

下記の文章のコメント#消す、また設定値変更
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87

下記の文章を書き換え
dtoverlay=pitft28r,rotate=90,speed=80000000,fps=60
下記の文章を新規追加
hdmi_cvt=320 240 60 1 0 0 0
nanoツール終了キー
 キーボードで Ctrl+x
上書き保存を聞いてくるので
 キーボードで y その後 Enter
c0323442_23133293.jpg

c0323442_23133260.jpg

c0323442_23133380.jpg

コマンド:再起動
sudo reboot
c0323442_23133352.jpg

以上で完了、SPIモニターに映像が映っているはずだ。
c0323442_23141105.jpg

c0323442_23141171.jpg

c0323442_23141257.jpg

c0323442_23141391.jpg
2.2インチLCDの動画、無音です



続く



[PR]
by ayasuke_aya2 | 2017-01-02 01:20 | Raspberry pi | Comments(0)