Raspberry Pi 3 Model Bを使ってみよう

「手のひらより小さい名刺サイズのマイコンボードを使ってみよう!」

 

ーーーー目次ーーーー

1.Raspberry Pi 3 Model Bとは?

2.RASPBIAN(Linux)をインストールしよう

3.その他のアプリケーションのインストール

4.GTK3を使ってgccでGUIソフトを作ろう

5.電動フォーカスカメラをつなごう!

6.今後

ーーーーーーーーーー

1.Raspberry Pi 3 Model Bとは?

 2018年4月29日、日本橋のシリコンハウスに+12VのACアダプターを買いに行ったら、Raspberry Pi 3

 Model B(element14版)と+5V、3Aの大き目のACアダプタがセットで、税込み4,320円で特価販売して

 いたので、つい買ってしまいました。(本格的に使うなら、TinkerBoardの方が性能は上です。また、

 Model B+という新しい製品も出てくるようです。)

 Raspberry Piは、Raspberry Pi財団が教育用に開発した、安価で小型のマイコンボードです。

 様々なところに、Raspberry Pi 3 Bの紹介が書かれているので、ここでは、ポイントだけ記載します。

 ・1.2GHz、64bit、Quad-coreのCortex-A53(ARMv8)のCPUを搭載

 ・1GBのDDR2メモリを搭載

 ・HDMIコネクタ、USB2.0x4コネクタ、MicroSDカードスロット、IEEE802.11b/g/n(2.4GHz)の無線LAN、

  BlutoothV4.1等のインタフェースを搭載

 ・電源は、USB microBコネクタから5Vを供給(PCのUSBコネクタでは電力不足!3A以上推奨!)

 ・LinuxやWindows10 IoT CoreなどのOSが動作。

 これらが、名刺サイズの基板に載ってます。MicroSDカードをストレージとして使ったり、USBにHDDなど

 を接続することは可能なので、モニタとキーボード、マウスを接続すれば、パソコンが出来上がります。

2.RASPBIAN(Linux)をインストールしよう

 Raspberry Pi 3でLinuxを動かす場合、次のものが必要です。

 ・Raspberry Pi 3 Model B本体

 ・+5V、3A以上出力できるUSB microBコネクタの電源(2A電源では電力不足が発生!)

 ・HDMI対応のモニタやTV

 ・HDMIケーブル

 ・USBキーボード及びマウス

 ・8GB以上(16GB以上、Class10など高速のカードの方が良い)のMicroSDカード

 ・有線LANならLANケーブル(無線LANなら不要)

 ・セットアップするためのPC及びネット環境

 

 インストール方法は次の通り。

 (1)RASPBIANのディスクイメージをダウンロード。公式HPは無茶苦茶遅いので、日本のミラーサイト

   からダウンロードすべきでしょう。(最新のフォルダーの中で、一番サイズの大きなZIPファイルだけでOK)

   通常版(1.7GB)とLite版(350MB)があり、サイズが全然違うので目的に応じて、選んで下さい。

   私は、Liteは試さず、通常版をインストールしました。通常版は、GUIでブラウザやオフィスソフトも使えました。

   公式HP:https://www.raspberrypi.org/software/operating-systems/

   日本のミラーサイト:通常版 http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/

             Lite版 http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/

 (2)Etcherをダウンロードします。

   https://etcher.io/

 (3)MicroSDカードをPCのカードリーダにセットし、フォーマットされていない場合はFAT32でフォー

   マットする。

   Etcherを起動します。

   Select imageで(1)でダウンロードしたZIPファイル(展開する必要なし!)を選び、Select driveで

   MicroSDが選ばれていることを確認して、Flash!を押せば、10分ほどで、終了。

 (4)Raspberry Pi 3にMicroSDカード、HDMIモニタ、USBキーボードとマウスを接続した後、電源を接続。

   (電源ボタンがないので、電源をつないだら即起動!)起動したら、下記のようなデスクトップが出ます。

 (5)無線LANの場合、右上のBlutoothの横の×の付いたアイコンを押して、接続機器を選び、パスワードを

   入力すれば、アンテナ強度表示に変わり、ネットに接続できます。

 (6)ConfigurationのLocalisationで、LocaleをJapanese、TimezoneをJapanに変更してください。

   これで、メニューなどが日本語になり、日本時間で表示されます。音もHDMI又はアナログで出力できます。

   また、モニタに表示した時、端に黒枠が表示され、画面一杯に表示されない場合は、システムの

   オーバースキャンを無効にして下さい。

 (7)日本語入力するためのIMEをインストールします。LXTerminalのアイコンを押し、ターミナルを起動します。

   そこで、

   sudo apt-get install ibus-anthy

   と入力し、「続行しますか?」の質問対しては、「Y」を押します。

   その後、rebootするか、sudo rebootで再起動します。

   右上の、ENのアイコン上でマウスの左ボタンを押すと、日本語と英語を切り替えることができます。

   ブラウジングする程度であれば、チップはほんのり暖かい程度で、ヒートシンクは全く不要です。

 (8)sshを有効にして、PCからSSH接続できるようにします。

   まず、

   sudo raspi-config

   を起動し、「5 Interfacing Options」の「P2 SSH」を選択し、

   YES

   を選べば、SSHが有効になります。

   次に、いつでも同じIPアドレスで接続できるように、IPアドレスを固定します。

   sudo vi /etc/dhcpcd.conf

   などエディタを起動し、一番最後に、

   <有線LANの例>

    interface eth0

    static ip_address=192.168.10.10/24

    static routers=192.168.10.1

    static domain_name_servers=192.168.0.1

   <無線LANの例>

    interface wlan0

    static ip_address=192.168.10.10/24

    static routers=192.168.10.1

    static domain_name_servers=192.168.10.1

   などのような記述を追加します。なお、「192.168.10」の部分は、各自のルータのアドレスなど、

   ネットワーク環境に合わせて下さい。

 

   Windowsからアクセスする場合は、TeraTerm等をインストールして、

   ホスト:192.168.10.10

   サービス:SSH

   ユーザー名:pi

   パスフレーズ:パスワード(ディフォルトは、「raspberry」)

   を入力すると、接続できます。

   Linuxなら次のコマンドで接続可能。

    >>ssh pi@192.168.10.10

   これで、RaspberryPiにキーボード、マウス、モニタを接続しなくても、基板に電源を入れるだけで、

   使うことが可能です。

 

 (9)Sambaをインストールして、PCからファイルアクセスできるようにします。

   まず、

   sudo apt-get install samba

   と入力し、「続行しますか?」の質問対しては、「Y」を押します。

   次に、

   sudo vi /etc/samba/smb.conf

   のように、su権限でエディタを起動し、最終行に次の行を追加

   [share]

   comment = Raspberry Pi

   path = /home/pi

   guest ok = yes

   read only = no

   public = yes

   browsable = yes

   force user = pi

   その後、

   sudo service smbd restart

   sudo service nmbd restart

   でSambaを再起動すれば、OKです。

    Windowsマシンからアクセスする場合、ネットワークを開き、「\\raspberrypi\share\」にアクセス

   すると、RaspberryPi3の

     /home/pi/

   が見え、ファイルの読み書きが行えます。

    RaspberryPiからアクセスする場合、ファイルマネージャを起動し、フォルダー名に

     smb://192.168.10.xxx

   とすれば、WindowsマシンやLinuxマシンの共有フォルダーにアクセスできます。

 

 (10)vncでRespberryPiのデスクトップを表示する。(リモートデスクトップのサーバー)

   これにより、モニタがなくても、GUIアプリケーションをPCから使うことができます。

   リモートデスクトップならVNCが最も有名で、Raspberry Piに標準でインストールされています。

   ターミナルで >>sudo raspi-configを実行し、

    3 Boot Options

      B1 Desktop/CLI

        B3 Desktop 又は B4 Desktop Autologin

    5 Interfacing Options

      P3 VNC を選んで、enableにする。

    7 Advanced Options

      A5 Resolution

        お好きな解像度をお選び下さい

   を行って下さい。特にResolutionを設定しないと、VNCで「Cannot currently show the desktop」

   と表示されます。

   PC/Linux側は、ここからVNC Viewerをダウンロードし、インストールして下さい。なお、ubuntu

   では、標準でインストールされており、左下のアプリケーションの中にあります。

   起動して、メッセージを読んで、適当にOKやGOT ITを選び、Enter a VNC Server addressに

   (8)のIPアドレス(192.168.10.10など)を入力すると接続できます。その後、

   username : pi

   password : パスワード(ディフォルトは、「raspberry」)

   を入力すると、RaspberryPiのデスクトップが現れ、マウスとキーボードで操作可能となります。

 

 (11)xrdpでPCにRespberryPiのデスクトップを表示する。(リモートデスクトップのサーバー)

   Windowsのリモートデスクトップを使う場合は、こちらです。

   まず、xrdpをインストールします。

   >>sudo apt-get update

   >>sudo apt-get install xrdp

   xrdpを起動します。

   >>sudo service xrdp restart

   Windowsで「ウインドキー+R」を押し、ファイル名を指定して実行で、

   mstsc

   を起動し、(8)のIPアドレス(192.168.10.10など)を入力して接続を押します。確認画面で「はい」を

   押した後、

   username : pi

   password : パスワード(ディフォルトは、「raspberry」)

   を入力すると、RaspberryPiのデスクトップが現れ、マウスとキーボードで操作可能となります。

 (12)他のマシンのデスクトップをRaspberryPiに表示する(リモートデスクトップのビューア)

   でも、結局、RaspberryPiは非力で動きがもっさりしていますので、RaspberryPiを

   ビューアにした方が実用的です。(但し、ネットにこの情報はほとんど載っていません。)

   ビューアは標準でインストールされており、ラズベリーインターネットーVNC Viewer です。

   しかし、ここに記載したとおり、私が使っているデスクトップ版ubuntuでは、画面は表示

   できますが、デスクトップマネージャが立ち上がらないので、何も操作できません。

   できるようになったら、報告します。

 

3.その他のアプリケーションのインストール

 (1)GIMP:フォトレタッチ

  sudo apt-get install gimp

 

 (2)MPlayer:メディアプレイヤ(CD/DVD、MP3、AVIなどの再生)

  sudo apt-get install mplayer

 

 (3)Stellarium:プラネタリウムソフト

  (但し、Raspberry Pi 3では遅すぎるし、チップは熱々になるので実用にならず) 

  sudo apt-get install stellarium

 

4.GTK3でgccでGUIソフトを作ろう

 Linux(Ubuntu)のページにも書いていますが、GTK3を使ってgccでGUIのソフトを作成する

 ことができます。やり方は、全く同じです。

 (1)開発環境のインストール

   >sudo apt update

   >sudo apt install libgtk-3-dev

   >sudo apt install pkg-config

   >sudo apt install glade

 (2)コンパイル方法

  コンパイルは次のように行います。(-lmは算術関数を使う時に必要。)

   >gcc ファイル.c -o 実行ファイル名 -lm $(pkg-config --cflags --libs gtk+-3.0)

  最適化を行う場合は、次の通り。これにより、ソフトによっては2倍程度処理速度が早くなります。

   >gcc ファイル.c -o 実行ファイル名 -lm -O3 $(pkg-config --cflags --libs gtk+-3.0)

  マルチスレッドのプログラムを作成する時は、次のようなオプションにします。

   >gcc ファイル.c -o 実行ファイル名 -lm -lpthread -O3 $(pkg-config --cflags --libs gtk+-3.0)

 (3)実行速度は、Ryzen 5 3600の1/16程度でした。動作周波数が1対3、スレッド数が4対12、

  そしてキャッシュやメインメモリの容量や速度が全く違うので仕方ありません。でも、デスクトップと

  同じソフトがカードサイズのボードで動くだけでも意味はあります。

 

5.電動フォーカスカメラをつなごう!

 Amazonを見ていて、面白いものを見つけました。Arducam社製オートフォーカスカメラです。

 センサーには500万画素のOV5647を採用し、スタンドが付いて、更に電動フォーカスできて、

 1500円程度です。本当に動くのかなぁ? 安いので買ってみました。

 予想よりは写りもよく、オートフォーカス/マニュアルフォーカスも動きました。

 使い方はマニュアル通り。念の為、日本語で記載しておきます。

 なお、リモートデスクトップでは映像は見れませんので、本体にモニタを接続下さい。

  1.カメラをボードに接続します。CAMERAと書かれたコネクタのロックを上げ、上の写真の

    通りケーブルの裏表を間違えないように奥まで差し込み、ロックを下げて下さい。

    (私は仕事柄、リボンケーブルは慣れていますが、一般の方には難しいかも...)

  2.RaspberryPiのカメラを有効にします。

    sudo raspi-config

   を起動し、「5 Interfacing Options」の「P1 Camera」を選択し、Yesを選んでenableにする。

  3.ここにあるファイルを一通り、RaspberryPiにコピーします。

  4.OpenCVのライブラリとI2Cの設定を行います。

    >> sudo apt-get install python-opencv

    >> chmod +x enable_i2c_vc.sh

    >> ./enable_i2c_vc.sh

  5.マニュアルフォーカスで映像を表示します。

    >> python Motorized_Focus_Camera_Preview.py

     キーボードの上矢印と下矢印でフォーカスを調整。

     但し、終了の方法が分かりません...(自分でプログラムを書き換えて下さい!)

  6.オートフォーカスのテストです。

    >> python Autofocus.py

     ピントを自動で合わせて終了。ピントが合わなかったら、エラー終了しました。

 

6.今後

 進展がありましたら、随時、追記します。