Raspberry Pi zero で JupyterLab を使う

Raspberry Pi zero でJupyterLabを実行し,PCからJupyterLabを利用するための設定をまとめておきます.ゴールは,PCからJupyterLabでPythonコードを開発して,RaspberryPiのGPIOに接続した外部機器(LEDやDCモータ)を制御することです.

画像1

USB Gadget Driver (OTGドライバ)を利用することで,Raspberry PiをUSBの子機として動作させることができます.Raspberry Pi Zeroの場合,USB給電が可能ですので,USBケーブル1本ですみますし,インターネットにもブリッジ接続でつなげることができます.PCからRaspberryPiへのアクセスは,ターミナルからSSHで接続するか,VNCリモートデスクトップで接続できます.

ここでは,JupyterLabや必要なPythonライブラリをRaspberryPiにインストールできればよいので,SSHで接続してRaspberryPiを設定する方法を説明します.

・Raspberry Pi Zero WH 
・SDカード 32GB
・USBケーブル A - microB(データ転送ができるもの)

Raspberry Pi Zero のOSの準備

公式サイトから,OSイメージをダウンロードします.
 今回は,Raspberry Pi OS with desktop を選択

●Etcher でSDカードにOSイメージを書き込みます.
 MacでEtcherを管理者モードで起動するには,ターミナルでつぎを実行

$ sudo /Applications/balenaEtcher.app/Contents/MacOS/balenaEtcher

●イメージの書き込みが終了したら,PCにSDカードをマウントして,SSHを有効にするために次の作業をします.

$ touch /Volumes/boot/ssh
$ echo "dtoverlay=dwc2" >> /Volumes/boot/config.txt

さらに,

$ vim /Volumes/boot/cmdline.txt

として,文末に  modules-load=dwc2,g_ether を追加します.

Raspberry Pi Zero の起動

●SDカードをRaspberry Pi Zero に装着します.
データ通信ができるUSBケーブルを用いて,PCとRaspberryPiを接続します.

●PCでUSB接続のインターネット共有を有効にします.
 → MacOSでは,インターネット共有でRNDIS/Ethernet Gadget を選択します

●PCのターミナルから,

$ ssh pi@raspberrypi.local

 で接続します.初期PWは raspberry です.

●システムのアップデートをします.

 $ sudo apt update
 $ sudo apt upgrade -y
 $ sudo reboot

●Pythonライブラリをインストールします.制御系設計用のライブラリやJupyterLabをインストールします.

$ sudo apt install libatlas-base-dev
$ sudo pip3 install -U bumpy
$ sudo pip3 install slycot
$ sudo pip3 install control
$ sudo pip3 install jupyterlab

●JupyterLabの設定をします.以下のコマンドを実行します.

$ jupyter lab --generate-config
$ vi ~/.jupyter/jupyter_lab_config.py

そして,該当箇所を以下のように変更します.起動時にブラウザが起動しないようにする設定やパスワードの設定をします.パスワードは control です.

c.ExtensionApp.open_browser = False
c.ServerApp.ip = '*'
c.ServerApp.password = 'sha1:f11c457757ec:03959a3edadc01be08a48bfcd34d2b0ee18a5963'

control --> 
sha1:f11c457757ec:03959a3edadc01be08a48bfcd34d2b0ee18a5963

JupyterLabの起動

●PCからRaspberryPiにSSH接続し,つぎのコマンドを実行してJupyterLabを起動します.

$ jupyter lab

スクリーンショット 2021-04-20 22.10.00

すこし,起動に時間がかかりますが,気長に待ちましょう

RaspberryPi 上のJupyterLabにアクセスする

●PCのブラウザからRaspberryPi 上のJupyterLabにアクセスします
http://raspberrypi.local:8888/lab

パスワードを聞かれたら,control を入力します.
動作が遅い時もありますが,お茶でも飲みながらのんびり待ちましょう

●ノートブックを作成し,サンプルコードを実行してみましょう

スクリーンショット 2021-04-20 22.07.00

ひとまず,制御工学の勉強ができる環境が整いました.Pythonで制御工学を学ぶには,拙書「Pythonによる制御工学入門」がおすすめです.

画像4

このあと,DCモータとエンコーダをRaspberryPiのGPIOピンに接続して,PythonでDCモータを制御することに挑戦します.

GPIOの制御

●工事中

この記事が気に入ったらサポートをしてみませんか?