Skip to content

Latest commit

 

History

History
211 lines (158 loc) · 7.94 KB

raspi_setup.md

File metadata and controls

211 lines (158 loc) · 7.94 KB

注意: 現在は(株)アフレル様よりRaspbianを用いた環境構築方法が提供されています。セットアップ時の外部ディスプレイなどが不要となり、提供されるスクリプトによって環境構築が自動化されるため、Raspbianを用いた環境構築を推奨します。ここではUbuntu Mateを使った環境構築方法を紹介しますが、Raspbianを使った環境でもできることに違いはありません。

Raspberry Pi 3の環境構築(Ubuntu Mate編)

  • 準備するもの

    • Raspberry Pi 3 Model B 1個
    • micro SDカード (32GB) 1枚
    • micro SDカードリーダー 1個(PCに備え付けの場合は不要)
    • PC (sshコマンドを実行できるPC環境) 1台
    • 無線ネットワーク環境 (ここではPCとラズパイが同じネットワークセグメントに存在すると仮定します)
    • 外部ディスプレイ 1個
    • HDMIケーブル 1本
    • USB接続マウス 1個
    • USB接続キーボード 1個
  • SDカードにUbuntu Mateのイメージをダウンロードしてください。

    こちらからRaspberry Pi用のイメージ(v18.04.2)をダウンロードしてください。

  • SDカードにダウンロードしたイメージを書き込んでください。

  • ラズパイの起動・更新

    イメージをコピーしたSDカードをラズパイに差し込み、USB接続でマウスとキーボード、HDMI接続でディスプレイを接続する。給電ポートに電源を差し込み起動させます。

  • ネットワークに接続し、アップデートをかけます。

    $ sudo apt update; sudo apt upgrade;
    
  • Wicdをインストール

    デフォルトのネットワークマネージャーでは本体にログインしている状態でなければssh接続が途切れてしまいます。 そのためWicdをインストールしてネットワークを管理します。

    $ sudo apt install -y wicd wicd-curses wicd-gtk
    $ sudo apt remove --purge network-manager
    
  • デーモンを起動

    $ sudo service wicd start
    

    wicd-gtkを起動し、ネットワークを設定します。 (固定ipアドレスを設定を推奨します。)

  • wicd-gtk

    以下のコマンドより、起動時にwicdデーモンの起動を有効にします。

    $ sudo systemctl enable wicd
    
  • SSHの設定

    $ sudo apt install -y openssh-server
    $ sudo systemctl enable ssh
    $ sudo dpkg-reconfigure openssh-server
    

    ラズパイの再起動をしてPCからssh接続ができるかを確認します。

  • ラズパイカメラの設定

    $ sudo apt-get install raspi-config
    $ sudo raspi-config
    

    config画面が立ち上がったら、「Interface Options」→ 「P1 Camera」を選択し、カメラを有効化します。再起動したら以下のコマンドを実行してカメラの動作を確認します。

    $ raspivid -o test.h264 -t 10000
    
  • パッケージツールのインストール

    $ sudo apt install -y git gcc g++ make libssl-dev libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev libjpeg-dev libffi-dev
    
  • pyenvのセットアップ

    $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
    $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
    $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
    $ echo 'eval "$(pyenv init -)"' >> ~/.profile
    
  • pyenv-virtualenvのセットアップ

    $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
    $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.profile
    
  • Python3のセットアップ

    Python3.8.5をインストール。

    $ source ~/.profile
    $ pyenv install 3.8.5
    
  • レポジトリのクローンとpython仮想環境の構築

    $ cd
    $ git clone git@/pfnet-research/chainer-ev3.git
    $ cd chainer-ev3/workspace
    $ pyenv virtualenv 3.8.5 chainer-ev3
    $ pyenv local chainer-ev3
    $ pip install --upgrade pip
    $ pip install -r requirements_rpi.txt
    
  • JupyterLabの設定 - クライアントPCのブラウザからラズパイ上のJupyterLabを遠隔操作する -

    ウェブブラウザで動作するIDEのJupyterLabの設定をします。ここでは図のようにクライアントPCのブラウザでラズパイ上で動作させたJupyterLabを表示・操作する手順を示します。

    my image

    Python仮想環境を作成の上、ラズパイ上で以下のコマンドを実行します。

    $ cd /PATH/TO/chainer-ev3/workspace
    $ jupyter lab --generate-config
    

    $HOME/.jupyter/jupyter_notebook_config.pyが生成されていることを確認します。 jupyter_notebook_config.pyをエディタで開き、c.NotebookApp.ipc.NotebookApp.tokenのコメントアウトを外し、次のように編集します。この例のようにtokenを設定していませんが、ネットワーク内の第三者に参照させない場合は、必ずtokenの設定をしてください。

    c.NotebookApp.ip = '0.0.0.0'
    c.NotebookApp.token = ''
    

    ラズパイ上でJupyterLabを起動します。

    $ cd ~/chainer-ev3/workspace
    $ jupyter lab
    

    クライアントPCのブラウザを立ち上げ、アドレスバーにhttp://<ラズパイのip address>:8888と打ち込み、以下のような画面が出たら成功です。 my image

  • ラズパイ上のJupyterLabの自動起動設定

    ラズパイの起動のたびにJupyterLabを立ち上げるのは手間がかかるため、自動で起動するように設定します。

    サービスの設定ファイルを作成します。管理者権限で、/etc/systemd/system/jupyter.serviceをエディタで開き、以下の内容をコピーして保存してください。USERNAMEUSERGROUPは適切な値に変更してください。

    [Unit]
    Description = JupyterLab
    [Service]
    Type=simple
    PIDFile=/var/run/jupyter.pid
    ExecStart=/home/USERNAME/.pyenv/versions/chainer-ev3/bin/jupyter lab
    WorkingDirectory=/home/USERNAME/chainer-ev3/workspace
    User=USERNAME
    Group=USERGROUP
    Restart=always
    [Install]
    WantedBy = multi-user.target
    

    jupyter.serviceがUnit一覧に存在することを確認します。

    $ sudo systemctl list-unit-files --type=service | grep jupyter
    jupyter.service                           disabled
    

    以下のコマンドを実行して、サービスが起動できることを確認します。

    $ sudo systemctl start jupyter
    $ sudo systemctl status jupyter
    ● jupyter.service - JupyterLab
     Loaded: loaded (/etc/systemd/system/jupyter.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2019-05-20 16:09:35 JST; 19min ago
    

    stopコマンドで停止できることを確認します。

    $ sudo systemctl stop jupyter
    ● jupyter.service - JupyterLab
     Loaded: loaded (/etc/systemd/system/jupyter.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Mon 2019-05-20 16:30:08 JST; 14s ago
    

    サービスの動作確認ができたので、自動起動の設定をします。

    $ sudo systemctl start jupyter
    $ sudo systemctl enable jupyter
    Created symlink from /etc/systemd/system/multi-user.target.wants/jupyter.service to /etc/systemd/system/jupyter.service.
    

    ラズパイを再起動して、クライアントPCのブラウザからラズパイ上のJupyterLabにアクセスできるか確認してください。

  • EV3Consoleのセットアップ

    ev3consoleをラズパイとev3へ接続し、こちらの記事に従ってセットアップを行います。

    次に、USBシリアルポートへのアクセス権限を得るためにdialoutグループに追加します。

    $ sudo gpasswd -a $USER dialout