Raspberry Pi(ラズパイ)をやってみよう。



ラズパイ

Raspberry Pi:上に付いているのはカメラ


私はRaspberry Piの初心者で、使い慣れた人のやってる事を見てその可能性に驚いている。実際にまねをしてみて内容が分かってきた。PythonやOpenCVなど覚えること。あせらず進みましょう。


Raspberry Piのセットアップ。
Raspberry Pi3 コンプリートスターターキットを購入。
OSがインストールされている16GBのmicroSDカードが付属しており、すぐに使えます。

OSのバックアップ。

Macのディスクユーティリティーでイメージファイルを作ってみたら一応出来た。ではこれを戻す作業をやってみた。エラーが出てダメ。そこで、’Etcher’と言うソフトを使い、Macでバックアップしたイメージファイルを戻してみました。見た目は戻っているように見えます。しかし、実際にこれで起動してみると途中から進まない。後日、別の方法でやってみることにして保留。
OSをダウンロードする場合、’NOOBS’と’RASPBIAN’があり、’NOOBS’は起動してからOSをダウンロード、’RASPBIAN’はイメージファイルになっている。


Raspberry Piを実際に動かしてみて、感じはつかめた。

後で使う事を考えて専用のカメラモジュール V2を購入。
Raspberry Piにカメラモジュールを接続後、電源アダプターからのmicroUSB、ディスプレイのHDMIケーブル、USBキーボード、USBマウスを接続。
電源スイッチをオンにすると起動する。


Raspberry Piの初期設定。
メニューの設定からRaspberry Piの設定を選択。
国、言語、キーボードを選択。ディスプレイの解像度も選択。

カメラを使えるようにする。

sudo rasps-config

を実行。config画面で、
5 Interfacing Optionを選択→1 Camera→はい。

 

カメラに問題は無いのかチェックしてみる。

raspistill -o image.jpg

問題無く表示された。

Python3のインストール。
Raspberry Pi3にはPython3はインストール済みなので必要無し。

カメラを使えるようにします。
OpenCVのインストール。
sudo apt install make wit libgtk2.0-dev pig-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-bumpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

pipを使ってopencvをインストール。
sudo pip3 install opencv-python

opencvで利用するプログラムをインストール。
sudo apt install libcblas-dev libatlas3-base libilmbase12 libopenexr22 libgstreamer1.0-0 libqtgui4 libqttest4-perl

V4L2のインストール。
sudo apt-get install libv4l-dev

opencv関係の実行プログラムやデータを入れるディレクトリを作成します。
mkdir ~/opencv_programs

opencvの動作確認。
サンプル画像をダウンロード。
cd ~/opencv_progtams
wget https://github.com/opencv/opencv/raw.master/sample/data/lena.jpg

表示プログラムを作成。
vi show_img.py

(show_img.py)
import numpy as np
import cv2

img = cv2.imread('lena.jpg')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

では早速実行。
python3 show_img.py
結果。
エラー発生。
Attributeエラーだ。プログラムをチェックして入力ミスを発見。再度トライ。何回かやってどうしても動かないのでopencvで使うプログラムあたりが怪しいと思い、プログラムを再度インストール。その後画像表示プログラムを実行。動いた。
次にカメラの画像を表示するプログラムを作成。
cd ~/opencv_programs
vi showcamera.py

(showcamera.py)
import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()


次にカメラの画像表示プログラムを実行。
python3 showcamera.py


やはりエラーが出た。
’VIDEO ERROT:V4L can't open camera.’。カメラが検出されるかチェック。

ls /dev/video*

カメラが見つからない。
結局カメラがマウントしてないらしい。
ラズパイ起動時にマウントするように /etc/modules に’bcm2835-v4j2’を追記すれば良いらしい。とじろが、このディレクトリはrootに有るため管理者権限でなければ修正出来ない。そこで、ターミナルで sudo passwd root

を実行。パスワードを入力。これでOK。
次に

su

パスワードを要求するので先程のパスワードを入力。すると入力部が$から#に変わります。これで準備OK。

sudo vi /etc/modules

ファイル修正。保存してエディター終了。再起動後、プログラムを実行して今度はOK。

ところで、PYTHONのスクリプトをVIエディターでやっていると、かなり手間取ります。そこでMacとネット越しに接続し、ファウルのやり取りが出来るようにして、PYTHON用のスクリプトをMacで作成しRaspberry Piに送るようにすればかなり楽だ。

Raspberry Pi側の準備。
ターミナルで、
sudo apt-get install netatalk


或いは、ラズパイのメニューからAdd/Remove Softwareを選択。
検索窓にnetatalkと入れて検索すれば出てきます。

Mac側の操作。
メニューから移動→サーバに接続。
afp://(IPアドレス)で接続します。
IPアドレスはLanScan等のソフトを使えば簡単です。

接続しようとすとと、名前、パスワードを聞いてくるので、名前:pi、パスワード:Raspberry Piに設定したもの。

ラズパイファイル


Mac上のラズパイのファイル表示


今回はここまでですね。