AKIBAko

自分のためのナレッジ的ブログ

OpenCV2 インストール

家のサーバに OpenCV を入れたが、これがちょっと面倒だったのでメモ

まずは、OpenCV に必要なライブラリをインストール
本当にこんなに必要なのか。。

$ sudo apt-get install git cmake build-essential pkg-config
$ sudo apt-get install libopencv-dev libopencore-amrnb-dev libopencore-amrwb-dev
$ sudo apt-get install libgtk2.0-dev libdc1394-22 libdc1394-22-dev libdc1394-utils
$ sudo apt-get install libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev
$ sudo apt-get install libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev 
$ sudo apt-get install libqt4-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils

OpenCV ソースコードgithub から取得
※ 現時点で2系の最新は 2.4.13 みたい

$ wget https://github.com/opencv/opencv/archive/2.4.13.zip
$ unzip 2.4.13.zip
$ cd opencv-2.4.13

cmake の作成

$ mkdir build
$ cd build/
$ sudo cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON ..

ビルド&インストール

$ make
$ sudo make install

ちゃんと入っているか確認

$ python
>>> import cv2
>>> cv2.__version__
'2.4.13'

あと、opencv インポート時に『libdc1394 error: Failed to initialize libdc1394』が出たら下記で対処

stackoverflow.com

Python で GPIO 制御

以下の図のとおり、Wiiリモコンで GPIO制御して LED を点けたり消したりしたい
まずは、Python でGPIO制御を確認するところまで実施してみる
(電流が LED の定格を多少超えようが気にしない)

f:id:minori-san:20161030160139j:plain

RPi.GPIO をインポートして使いたいGPIO を Out設定すれば行けそうなので下記のとおり実施してみる

  • GPIO設定
$ python
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
  • GPIO Out設定
>>> GPIO.setup(4, GPIO.OUT)
>>> GPIO.setup(17, GPIO.OUT)
>>> GPIO.setup(18, GPIO.OUT)
>>> GPIO.setup(23, GPIO.OUT)
  • LED点灯
>>> GPIO.output(4, True)
>>> GPIO.output(17, True)
>>> GPIO.output(18, True)
>>> GPIO.output(23, True)
  • LED消灯
>>> GPIO.output(4, False)
>>> GPIO.output(17, False)
>>> GPIO.output(18, False)
>>> GPIO.output(23, False)

問題なく LED が点灯 ⇒ 消灯 できた

f:id:minori-san:20161030160145j:plain

あとは、下記で使ったスクリプトに上記手順を組み合わせれば完成だけど、また今度にしよう

mino-san.hatenablog.com

Raspberry pi を Wiiリモコンでコントロール

Raspberry pi を外部から制御するように Wiiリモコンを使ってみようと思ったところ下記のように簡単にできるようだ

Raspberry pi から Wiiリモコンが見えているか確認

pi@raspberrypi:~ $ hcitool scan
Scanning ...
00:19:1D:29:F5:34 Nintendo RVL-CNT-01

まずは Python をインストール

$ sudo apt-get update
$ sudo apt-get install python-dev

cwiid をインストール

$ sudo apt-get install python-cwiid

適当なディレクトリを作って、テストプログラムをダウンロード

$ mkdir wiimote
$ cd wiimote
$ wget https://www.raspberrypi.org/learning/robo-butler/code/wii_remote_1.py

実行してみた

pi@raspberrypi:~/wiimote $ python wii_remote_1.py
Press 1 + 2 on your Wii Remote now ...
No wiimotes found
Error opening wiimote connection

なんかエラーが出たと思ったら、sudo を忘れていた

pi@raspberrypi:~/wiimote $ sudo python wii_remote_1.py
Press 1 + 2 on your Wii Remote now ...
Wii Remote connected...
Press some buttons!
Press PLUS and MINUS together to disconnect and quit.
Button 1 pressed
Button 2 pressed
Left pressed
Left pressed
Right pressed
Right pressed
Down pressed
Up pressed
Right pressed
Left pressed
Left pressed
Down pressed
Down pressed
Left pressed
Right pressed
Right pressed
Up pressed
Down pressed

できた。これで Raspberry pi をラジコンとかにして遊んでみようと思う

 

 

Raspberry pi にリモートディスクトップ接続

分かってはいたが、4インチ LCD では使い勝手がいまいち悪い。

そのため、Raspberry pi はリモートディスクトップで運用することにした。

 $ sudo apt-get install xrdp

Google先生が言うには  xrdp をインストールするだけで、リモートディスクトップに接続できるようになるらしいが、何故かセッション確立後に『error - problem connecting』となって先にすすまない

f:id:minori-san:20161029161536p:plain

 色々調べてみたら vncserver をインストールすれば上手くいくことがあるらしい。

$ sudo apt-get install tightvncserver

 

f:id:minori-san:20161029162047p:plain

 上手くいった。

あとは、キーボード入力を日本語対応して完了

$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini

 

パイソン?

仕事柄、最近 Python に触れる機会が増えてきた

アセンブラC言語しか書いたことのない低レイヤプログラマとしては『なにそれ?おいしいの』という感じである。。

とはいえ食わず嫌いしてもしょうがないので、Python を勉強することにした

 このブログは、Pythonお勉強のモチベーション維持と、備忘録のために更新するのである

RaspberryPi が LCD を装着

我が家の Raspberry Pi が眠りについた理由。。

HDMIケーブルが接続できるモニタがない』

 

 HDMI を繋ぎたかったらテレビしかなく、

RaspberryPi を起動するためにリビングに行き、HDMIを接続し、キーボードやマウスやら、、、めちゃしんどいのである。

 

ゾンアマでオーダーしてた LCD が週末届いていたのでさっそく装着

Raspbian は『2016-09-23-raspbian-jessie』を使用

4inch RPi LCD (A) - Waveshare Wiki から LCD-show-160811.tar.gz をダウンロード

$ tar xvf LCD-show-160811.tar.gz
$ cd LCD-show
$ ./LCD4-show

実行直後にいきなり再起動が入るのでびっくりしたが、無事 LCD の表示を確認

タッチスクリーンの反応が反転していたのでキャリブレーションを実施

$ sudo apt-get install xinput-calibrator
$ xinput_calibrator

f:id:minori-san:20161022174856j:plain

解像度が低く、多少使いづらいがちょっとした確認には便利になった

Raspberry Pi にケースを

なるほど。。パソコンからの更新だったら補助ツールバーがあるのか。

と使い方が少し分かったところで更新してみる。

 

家に眠っていた Raspberry Pi2

を呼び覚まし、そのむき出しボデーにケースを付けてみた。

こんなやつ

www.amazon.co.jp

f:id:minori-san:20161020003139j:plain

なんか傷防止についているシートがめっちゃ取りづらい。。

付けてみた感じがこれ

f:id:minori-san:20161020002834j:plain

 

いい感じだ。。

 

ということで次は LCD を付けてみよ