はじめに
Raspberry PIで工作をする上で必要な作業をまとめてインストールする作業のメモ.
「みんなのラズパイコンテスト2017」に向けて,いろいろと作業をおこなっているが,自分の実力不足かいろいろなところでコケる.
もうすでに5回目の再インストールに入ろうとしている.
もう何度も同じ作業をやる前にバックアップ取っとけよ,とかいろいろあるとは思うが今後も新たに環境構築を行うこともあるだろうからここにメモしておく.
他の方も少しでも参考になれば幸いです.
構築予定の環境
- Raspberry PI3 with Jessie
- OpenCV 3.2
- Blynk
- Adafruit WS2812
- FaceTracker
今回のトラブル
特に今回はI2Cが認識しなくなった.デバイスが壊れているのかと思い,PCA9685,RaspberryPI3ともに買いなおしたが変化なし.
新たにインストールし直したSDカードで起動+確認したら認識したのでHWのトラブルではなかった.
金損した...orz
そこで,今回再インストール作業に伴い,行った作業を列挙していくことにした.途中で適時バックアップにimgファイルを作成する予定.
OSインストール
この作業はすでに終わっているので,後で書きます.
インストール直後の環境構築
RaspberryPi3を買ってSSHして電源を切るまでや
ここ を参考に
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot now
VNC構築
OpenCVを使う場合,デフォルトのVNC接続でつなげるとOpenCVの画像がフレームバッファに直接描画されるようでHDMIの画面からしか見ることができません.
そこで,VNCでRaspberry Piを別のPCから操作しようあたりを参考にx11vncを導入します.
sudo apt-get install x11vnc
sudo x11vnc -storepasswd
これでVNC接続するときのパスワードを設定します.
さらに起動時に自動で立ち上がるように
cd ~/.config
mkdir autostart ※autostartディレクトリが存在していれば不要
cd autostart
nano x11vnc.desktop
x11vnc.desktopの内容は
[Desktop Entry]
Type=Application
Name=x11vnc
Exec=x11vnc -usepw -forever
Terminal=false
こんな感じ
起動しているか,の確認には
ps aux | grep x11vnc
これでできる.
ファイル共有
windowsのファイルシステムと共有するためにSambaを導入.
sudo apt-get install samba
sudo apt-get install chkconfig
smb.confの設定
sudo nano /etc/samba/smb.conf
[pi]
path = /home/pi
read only = No
guest ok = Yes
force user = pi
我が家にはMacもあるので、そちらも設定
sudo apt-get install netatalk
I2C周り
参考
sudo nano /etc/modprobe.d/raspi-blacklist.conf
sudo modprobe i2c-dev
sudo apt-get install i2c-tools
ブラックリストをチェックしても何もなかったので,そのままインストール続行.
OpenCVインストール
ビルド用事前インストール関連
今回はC++で作業を進めるが,今後のことも考えてPython環境も整えておく.
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libgtk2.0-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libv4l-0 libv4l-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python-numpy python-scipy python-matplotlib
sudo apt-get install default-jdk ant
sudo apt-get install libgtkglext1-dev
sudo apt-get install v4l-utils
pip のインストール
ライブラリ用のディレクトリ「lib」以下に格納
mkdir ~/lib
cd ~/lib
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
OpenCV3.2のインストール
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
unzip opencv_contrib.zip
そしてコンパイル
cd ~/opencv-3.2.0/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/lib/opencv_contrib-3.2.0/modules \
-D BUILD_EXAMPLES=ON \
-D ENABLE_NEON=ON ..
sudo make -j3
sudo make install
sudo ldconfig
sudo nano /etc/bash.bashrc
sudo nano /etc/ld.so.conf.d/opencv.conf
/usr/local/lib # enter this in opencv.conf, NOT at the command line (leave a blank line at the end of opencv.conf)
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
そして再起動.
BLYNK
参考にしたのは
第1回 IoTサービス「Blynk」を導入しよう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう
このサイト.
インストール
mkdir blynk
cd blynk
git clone https://github.com/blynkkk/blynk-library.git
cd blynk-library/linux
make clean all target=raspberry
起動時にBlynkが立ち上がるようにblynk.desktopを作成
cd ~/.config/autostart
nano blynk.desktop
blynk.desktopの内容は
[Desktop Entry]
Type=Application
Name=blynk
Exec=sudo blynk --token=BLYNK_TOKEN
Terminal=false
BLYNK_TOKEN
にはBlynkで設定したTokenを入力.
C++で扱うためには,
Using C++ on a Raspberry Pi with Blynk
このあたりが参考になります.
BlynkをPythonで扱うこともできるようです
ローカルサーバー
Blynkを
ここまでをバックアップ
Windows で Raspberry Pi のバックアップを取る方法
あたりが参考になります.
今回はwindowsでバックアップを取るので,Win32 Disk Imagerを使います.
再開
Adafruit WS2812環境
WS2812とは,マイコンチップを内蔵して3本の信号線で多数のフルカラーLEDを同時にコントロールできるLEDです.
参考
C++で動かす
git clone https://github.com/jazzycamel/ws28128-rpi
Pythonで動かす
git clone https://github.com/jgarff/rpi_ws281x
Face Tracker
FaceTracker
git clone https://github.com/kylemcdonald/FaceTracker
cd ~/git/FaceTracker
make target=raspberry
これでコンパイルできるはずです.
face-alignment-at-3000fps
このあたりが参考になります.
ただし,このface-alignment-at-3000fps は動画に対応していないのでひとまずpending.