AIの学習モデルの単体実行環境とかIoTのプラットフォームになんか使えんか?
Raspbian Stretch DesktopでRaspberry-Piを起動
Quimat 3.5インチディスプレイのアクリルケースを取り付ける
Raspbian Stretch DesktopでRaspberry-Piを起動
(現RaspbianはBusterです。Stretchのイメージ->Lite、Full)
ディスプレイには、Quimat 3.5inch タッチスクリーンを使ってみます。
ラズベリーパイ(Raspberry-Pi 以降 ラズパイ)の基本構成はこのページ参照。
MicroSDカードにOSの準備をします。
カードの書き込みにダイソーの「マルチカードリーダー」を使ってみました(リーダーと書いてますが書き込みもできます)。
全然問題ないです (昨今の100均はすごいですわ、ホンマ)。
MicroSDカードは32GB Class 10を使用。
作業PCはWindows7(64bit)。
MicroSD用のスロットに挿します。
USBを確実に認識するために、電力が十分なPC後部のUSBポートの使用をお勧めします(by SanDiskサポート)。
MicroSDはFat32などでフォーマット済みが多いですが、まだならフォーマット。
NOOBSを使う例が多いですが、手っ取り早く起動・設定したかったのでOSイメージを焼き付けることにします。
GUIを使ってみたかったので、MicroSDカードにRaspbian Strectch with Desktopを焼き込む(2018-06-27-raspbian-stretch.imgで4.49GB)。
Mathematicaなんかも使いたい方は、Raspbian Stretch with desktop and recommended software
DDWinはうまくいかなかった(ドライブを認識してくれなかった)のでEtcherを使用。
Flash(書き込み)開始。
Validation実行。
書き込み終了後、MicroSDをスロットに挿しておく(電源投入は一番最後です)。
USBキーボード・マウスも挿しておく。
カメラ・モジュールを使う場合、スロットに挿しておきます。
両端を持ち上げて少し後ろに倒して、カメラケーブルを挿すスペースを空けておきます。
ケーブルを差し込んだら、両端を降ろして固定。
カメラのケーブルを固定するパーツがポロっと取れてしまったら…….。
こういう向きに差し込みます。
モジュールがブランブランして危なそうなら、小さめの透明なチャックつき子袋で保護。
ディスプレイ(Quimat 3.5インチタッチスクリーン)をセット。
今回は自己完結型のラズパイにしたかったのでディスプレイも準備。
HDMIコネクターを接続。
コネクターの挿入位置はどっちが上(下)でも構いません。
ディスプレイをGPIOとジャンパー線で接続する場合
ディスプレイ側の結線端子はオス側でもメス側でもどちらでもいいです。
実際に使用されているピンは以下の12個のようです。
ちなみに、Jetson Nano のGPIO配列はラズパイと互換性があるので、上の結線でOKでQUIMATディスプレイが使えます。
5Vの給電を空けておきたいような場合、いずれか一方を3.3Vで代用しても大丈夫なようです。
電源投入。
OS起動後、セットアップが開始されます。
画面が小さいので天眼鏡なんぞで拡大してマウスとキーボードで入力。
まずは、Japanを選択、その他は自動で設定されます。
後はひたすら仰せのとおりに設定していけば問題ないです。
最後に、Updateが開始されます(結構な時間がかかります)。
見づらいですが、プログレスバーが表示されています。
Wi-Fiでリモート接続
とにかくディスプレイの画面が小さいのでGUIはストレスがかかります(ハズキルーペでも見づらいだろうというレベル)。
解像度は1280x720のようです。
HDMI端子があれば、外部ディスプレイやTVでモニターする方がいいですが、ない場合は、SSHやVNCで環境を作った方がいいです。
SSH、VNC、カメラを使う場合、インターフェースを有効にしておきます。
設定->Raspberry Piの設定->インターフェース->SSH、VNCやカメラの有効にチェック
再起動
固定IPにしておいたほうがいいですが、ローカルIPはルーターをリセットしない限りそんなにコロコロ変わるもんでもないんで今回はパス。
ラズパイのターミナルで、ifconfigコマンドを使ってローカルIPを確認(ここばっかりは極小文字でもガマン)。
ifconfig
以降、例えば192.168.0.27だとします。
/bootにsshのファイルやフォルダーを作っておくという説明をよく聴きますが、なくてもハンドリングできました…..。
TeraTermを起動
ホストにローカルIPを入力。
デフォルトのままなら「ユーザー名」はpiです(ホスト名と間違わないようにしてください)。
例えば、ラズパイの端末を起動するとデフォルトでプロンプトは以下のように表示されます。
pi@raspberrypi:~ $
ユーザー名@ホスト名:~ $
パスフレーズはOS設定時に入力したログインパスワード。
● RealVNC (リモートデスクトップアプリ)を設定
サーバー:ラズパイ
クライアント:PC
PC側でTeraTermを起動して以下を実行。
sudo apt-get update
sudo apt-get install realvnc-vnc-server
上記の有効チェックがまだの場合は
sudo raspi-config
Interfacing Options > VNCでYesにする。
PC側でVNC Viewerをダウンロードしてインストール
ちなみに、VNC Viewerは以下のプラットフォームでサポートされています。
今回はWindows版を使ってみます。
TeraTermで使ったものと同じものを入力。
ログイン
ちなみに、VNC ViewerではなくブラウザーでVNCサーバーにアクセスしてリモートデスクトップするような場合はこのページ参照
メニュを見ると……
WolframやMathematicaが普通に入ってるんですね、ちょっとびっくり。
ブラウザーはChromium。
以降、ラズパイはディスプレイやマウス、キーボードなしのすっぴん状態(ヘッドレスと言うそうです)でもOK、リモートで制御できます。
ラズパイの電源投入後Raspbianが起動します、頃合を見計らってVNC Viewerを起動。
ディスプレイがない場合のOSの起動状況は赤い電源ランプの隣の緑のランプで一応確認できます。緑が点滅や点灯状態なら起動中、完全に消灯したら起動完了です(シャットダウン時もこういう状態です)。
Raspbianの起動がコンプリートしてアイドリング状態になったらログイン画面になるのでTeraTermで使ったものと同じユーザー名とパスを入力してログインしましょう。
カメラ・モジュールの動作確認
raspistill -w 800 -h 600 -o tmp.jpg
5秒くらい経過して、/home/piに画像が保存されます。
動画もraspividで撮れます。
エラーになる場合
ラズパイのメニュ->設定->Raspberry Pi の設定->インターフェース->カメラにチェックが入っているか確認
ちなみにUSB接続のWebカメラの場合
例えばコマンドラインから使えるfswebcamを使ってみます。
sudo apt-get install fswebcam
fswebcam image.jpg
解像度指定
fswebcam -r800x600 image.jpg
最大解像度
fswebcam -r 1280x960 image.jpg
Quimatのタッチスクリーンの設定
ラズパイでアプリを直接操作する際、I/Fになるのは文字入力じゃなく、スマホのようなタッチ操作だと思われるので設定しておきます。
まずは以下を設定、最後のコマンドで自動で、再起動されます。
1 2 3 4 |
git clone https://github.com/goodtft/LCD-show.git chmod -R 755 LCD-show cd LCD-show/ sudo ./MPI3508_480_320-show |
でもこのサイズだと、ウィンドウが大きすぎてディスプレイ外へはみ出してしまって不便。
この方の設定を参照。
抜粋
800x600の解像度でタッチスクリーンにします。
このサイズならターミナルの字も何とか見えます(^^)。
sudo nano /boot/config.txt
1 2 3 4 5 6 7 8 9 10 |
hdmi_drive=2 hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=87 #hdmi_cvt 480 320 60 6 0 0 0 #hdmi_cvt 800 480 60 6 0 0 0 hdmi_cvt 800 600 60 6 0 0 0 dtparam=spi=on dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900 |
再起動
マウスやタッチペン、指先などでスクリーン上をドラッグしてちゃんと矩形を描ければOK。
キャリブレーション設定
1 2 3 |
git clone https://github.com/karaage0703/raspberry-pi-setup cd raspberry-pi-setup ./setup-quimat_3_5_display.sh |
再起動
Swap領域の拡張
Swapのデフォルトは100MBですが、これだとMovidiusやROSをビルドするような場合は失敗するようです。拡張しておきます。
sudo nano/etc/dphys-swapfile
下記のように変更します。
書き換え
CONF_SWAPSIZE=2048
設定値を大きくしたら、スワップ領域に関するプログラムを再起動。
sudo /etc/init.d/dphys-swapfile restart
必要性がない場合は、そのまま。
MicroSDカードの寿命が心配な向きはswapを停止。
一時的なswap停止
sudo dphys-swapfile swapoff
再設定
sudo dphys-swapfile swapon
恒久的な停止
sudo insserv -r dphys-swapfile
VNCを使ったデータ転送
Raspberry-Pi ->PC
PCのデスクトップに転送されます。
PC->Raspberry-Pi
PCのファイルリストから選択
ラズパイ側で「どこに保存する?」と聞いてくるので、選択して保存。
ラズパイのスクリーンキャプチャー
普通に「Print Screen」キーでできますね。イメージは、/home/piに保存されます。
ブランク スクリーンを回避
ラズパイは無操作がしばらく続くと画面に何も表示されない状態(blanc screen)になります。
これを恒久的に回避するには、/etc/lightdm/lightdm.confを編集します。
sudo nano /etc/lightdm/lightdm.conf
以下を追加
[SeatDefaults]
xserver-command=X -s 0 -dpms
保存して、ラズパイを再起動
GUI とCUI (CLI)を切り替える
ラズパイは通常デスクトップが使えるようにGUI環境でインストールされます。
ただ必要によってCLIのみで使うCUI環境が必要になる場合があります。
メニュのRaspberry Pi の設定で以下のようにCLIをチェックして再起動します。
デスクトップ表示する場合は以下を記述してリターンキー。
>startx
自動でデスクトップが表示されます。
CUIからGUIに戻る場合は
メニュのRaspberry Pi の設定で以下のようにデスクトップをチェックして再起動させます。
Quimat 3.5インチディスプレイのアクリルケースを取り付ける
ディスプレイは外しておきます。
細くて長い方の小ネジで、底板を取り付けます
ネジはこんな具合。
透明なワッシャーのようなもので、基板を底上げします。
側板を取り付けます
ディスプレイをセットします。
HDMIコネクターを差し込みます
最後に、太くて短い方の小ネジで天板を固定して完成
(天板も左右非対称なので間違えないようにします)
ちなみに、ラズパイの寸法はこちら(pi B+ , pi3 B+ , pi3 A+)
オーディオチェック
Quimatのディスプレイを使うとステレオミニジャックはQuimatが優先されるようです。
このミニジャック、なんかスムーズに再生されませんね。
ラズパイのミニジャックを優先するように設定します。
出力テスト
ミニジャックにヘッドフォンを接続して以下を実行
cd /opt/vc/src/hello_pi/
./rebuild.sh
/opt/vc/src/hello_pi/hello_audio/hello_audio.bin
うるさいのでCtrl + zキーで停止
出力をミニジャックに固定してテスト
1 |
amixer cset numid=3 1 |
1 |
speaker-test -t sine -f 600 |
うるさいのでCtrl + zキーで停止
音が出てればOK。
ラズパイのサウンド出力は、HDMIとライン(ステレオミニジャック)の2系統あります。
デフォルトでは、どちらか自動で判別されて再生されるようになっているようです。
HDMI出力の場合も、Quimat 3.5インチディスプレイの設定時に\boot\config.txtではhdmi_driver=2に書き換わっていて、TV接続時もスピーカーから出力されるはずです。
hdmi_driver=1の場合はDVIモードでPCモニター等へ出力されますが、サウンド出力は抑制されるようです。
aplay /usr/share/sounds/alsa/Front_Center.wav
で女性の声で「フロント センター」と喋るのが聞こえると思います。
aplayではmp3は再生できません。mpg321を使います。
sudo apt-get install mpg321
mpg321 xxx.mp3
注:エラーになる場合、サウンドデバイスを明示的に指定しなければならないかもしれません。
aplay -l
で、カード番号とデバイス番号をチェック
例
カード番号=1、デバイス番号 = 0の場合
aplay -D hw:1,0 /usr/share/sounds/alsa/Front_Center.wav
注:ミニジャックに接続しているのに音が出ない場合
ここもチェックしてみましょう。
スピーカーアイコンを右クリック
Bluetoothスピーカーの場合
100均(ダイソー)の防滴タイプBluetoothスピーカー。100均だけど600円。Bluetooth2.1対応。
このスピーカーは設定状況を(英語ですが)しゃべってくれます。
技適マークもついてます。
設定は簡単です。
充電して、背面のスィッチをON
ラズパイ側でBluetoothデバイスを追加してペアリング
スピーカーメニュを右クリックして、このデバイスを選べばOK
ダイソーからBluetooth Speaker 2(600円)ってのも出ています。
これはBluetooth3.0に対応。ラズパイで使うとaplayでwavを再生できますがYoutubeなどの音声は出力できませんでした。
防滴仕様で電話ボタンとマイクがついてるので、スマホ用「お風呂でハンズフリー」という使い方になるのだと思います。
スピーカーの動作確認ができたら、マイクをチェックしてみます。
USBマイクを使うとして、接続して情報取得。
arecord -l
こんな感じで、カード番号とデバイス番号を確認。
USBマイクの優先度を確認
cat /proc/asound/modules
既存の内蔵オーディオモジュールが優先されるので多分こうなっている
0 snd_bcm2835
1 snd_usb_audio <-ここ
USBマイクの優先度を上げます。
sudo nano /lib/modprobe.d/aliases.conf
コメントアウト
#options snd-usb-audio index=-2
挿入
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
aliases.confを閉じてラズパイ再起動
以下のコマンドでご自分の声を録音してみます。
arecord -D plughw:1,0 -f cd mic.wav
音声はホームディレクトリーに保存されます。再生して確認。
aplay /home/pi/mic.wav
音量が小さい場合は、録音レベルを調整します。
オプションCがマイクのカード番号
amixer sset Mic 400 -c 1
日本語環境をアップデートしておく
注:最新の2018-10-09-raspbian-stretch.imgでは以下の設定は不要になっているようです。
デフォルトの日本語環境は不完全です(文字化けしているところもあります)。
アップデートして日本語入力もできるようにしておきます。
例によってリポジトリーを更新しておく
sudo apt-get update
フォントをインストール
sudo apt-get install fonts-ipafont fonts-ipaexfont
日本語入力システムをインストール
sudo apt-get install fcitx-mozc
再起動
文字化けが直って、CPUモニターが普通に見れるようになります。
日本語を入力してみます。
「メニューボタン」→「アクセサリ」→「Text Editor」を起動します。
最初はキーボードから半角英数字が入力されますが、Ctrl + Spaceキーを押すと
日本語入力に切り替わります。
変換はSpaceキー。
再度Ctrl + Spaceキーを押すと半角英数字に切り替わります。
iBus+Mozcを使う場合
1 |
suso apt install ibus-mozc |
再起動
ソフトキーボード
アプリインストール
1 |
sudo apt install matchbox-keyboard -y |
メニュのアクセサリから起動
こんなふうに文字がトーフ状態になっていた場合
フォントインストール
1 |
sudo apt install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname -y |
壁紙チェンジ
●マニュアルで変更
デスクトップで右クリック
壁紙選択
デフォルトの壁紙が用意されているフォルダー
/user/share/rpd-wallpaper
●コマンドで変更
1 |
pcmanfm --set-wallpaper /画像のフルパス |
携帯用のモバイルバッテリーはどれがいいんだろうか?
条件
最低8時間はもちたい
Movidius NCSも使える
Movidiusの消費電力は1wだそうです。
ちなみに、ラズパイ3の消費電力は12.5W
計算合ってる?
$$バッテリー蓄電容量:X[mAh] = X \times 10^-3[Ah]\hspace{ 35pt }$$
$$バッテリー定格電圧:5[V]\hspace{130pt }$$
$$バッテリーの電力:5 \times X \times 10^-3[Wh]\hspace{ 70pt }$$
$$ラズパイとNCSの消費電力量:12.5 + 1[W] = 13.5[W]$$
$$稼動時間:5 \times X \times 10^-3[Wh] / 13.5[W] = 8[h]\hspace{ 35pt }$$
電力ロスを考慮して20%ほど多く見積もる
$$X = 8 \times 13.5 \times 10^3 / 5 \times 1.2 [mAh] = 25920[mAh]$$
この数字に近いバッテリー Aikove モバイルバッテリ24000mAh
工事中
ブラウザ
ラズパイのデフォルトブラウザーはFirefox です。
Chrome も入れてみましょう。
1 |
sudo apt-get install chromium-browser |
WisteriaHillが経験した特殊な不具合
ラズパイ Zero WHで起こった通電しなくなる不具合です。
それまで通常稼働していたZeroに新しくイメージを焼いたMicroSDを挿して電源投入してもPowerランプが点灯しない!
Zeroが逝ってしまったのか?
もし、あなたが正常に稼働している別のMicroSDをお持ちなら、それを使ってテストしてみてください。
通電が確認できる….かもしれません。
通電確認後、再度通電不具合のMicroSDで動作確認すると、無事通電が確認できました。
どうしてこういう症状が出るのかは分かりませんが、ラズパイが壊れた!と思う前にやってみる価値はあります。
MicroSDが絡んだ不思議な不具合現象です。
追加で入れておいた方がいいもの
画像処理用にimagemagickをインストールしておきます。
sudo apt-get install imagemagick
USBカメラでキャプチャー用にfswebcamをインストールしておきます。
sudo apt-get install fswebcam
Appendix
ラズパイ起動電源
Model 3Bでは5Vで2A以上、それ以前の低電力モデルでは5Vで700mAを供給できるMicro USB電源で駆動。
メーカーの推奨する電源は、5V 2.5A以上のもの。 Raspberry Pi 4では、さらに消費電力が大きくなり、推奨電源は5V3A以上。
Raspberry Pi 5では5V3A以上、5.1V/5A推奨。
Leave a Reply