LoginSignup
0
4

More than 3 years have passed since last update.

Raspberry Pi Zero WでJupyter Notebookを起動し、MacからUSB経由でPythonコードでLチカする

Last updated at Posted at 2019-07-14

1. 背景

初心者でもお手軽に、Raspberry Pi Zero W上でPythonプログラムでLEDを光らせられる環境を構築する。作るまではある程度手間だけど、できてしまえばUSB接続したRaspberry PiをJupyter NotebookのPythonプログラムで操作できる。

前提となる環境は以下の通り。

  • Raspberry Pi Zero W
  • ホストはMac
  • USB接続

USB接続にこだわったのは、使用環境がネットワークに依存しないようにしたかったから。

Windows10でもできるように検討したが、現状ではUSB接続にするとドライバのインストールや設定が大変で、とてもでないが初心者にオススメできないので諦めた。できなくはないが、普通にできても時間がかかる。簡単な方法があれば教えて欲しい。

2. SDカードの準備

2-1. イメージの取得

今回はこれを使う。
RASPBIAN Buster LITE
https://www.raspberrypi.org/downloads/raspbian/

2-2. SDカードにイメージを書き込む

SDカードをスロットに挿入する。

diskutil list

でSDカードのデバイスを調べてから、以下のコマンドを実行。
以降、SDカードのデバイスは/dev/disk2として説明する。

sudo diskutil umountDisk /dev/disk2
sudo dd bs=1m if=./2019-07-10-raspbian-buster-lite.img of=/dev/disk2

自分のマシンでだいたい4分ちょっとかかった。

bootディスクがマウントされていればOK

2-3. ネットワークの設定

SSHを有効にする

以下のコマンドを実行。

touch /Volumes/boot/ssh

USB経由のインターネット接続を有効にする

vi /Volumes/boot/cmdline.txt
でファイルを編集する。以下のように、rootwaitの後ろに
modules-load=dwc2,g_etherを挿入する。

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=17869 b7d-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init    =/usr/lib/raspi-config/init_resize.sh

また、以下のコマンドを実行する。

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

マウント解除してSDカードを抜き取る

マウントの解除は以下のコマンド。

sudo diskutil umountDisk /dev/disk2

3. Raspberry Pi Zero(W)の起動

  • SDカードをRaspberry Pi Zero(W)に挿入する
  • USB接続でMacにつなぐ(電源が入る)

以下のコマンドでログインできる

ssh pi@raspberrypi.local

パスワードはデフォルトでraspberry

4. Raspberry Pi Zero(W)の設定

ここからはRaspberry Piの上で作業。

4-1. ディスクの拡張

以下のコマンドを実行する。

sudo raspi-config  --expand-rootfs

ここでリブートするようにメッセージ表示されるのでリブートする。
リブートは以下のコマンド。

sudo reboot

4-2. ホスト名を変更する

sshでデフォルトのraspberrypi.localでログインしているが、複数のRaspberry Piを接続すると衝突するため、重ならないホスト名を設定する。
ここではraspi0というホスト名にするため、以下のコマンドを実行する。

sudo raspi-config nonint do_hostname raspi0

変更の確認は/etc/hostnameの中を見る。

cat /etc/hostname

再起動しないと、hostnameコマンドでは古いホスト名が表示される。必ずリブートすること。

sudo reboot

次からは以下のコマンドでログインできる。

ssh pi@raspi0.local

4-3. WiFiの設定

raspberry.localからMacOSを介してインターネット接続を試みるがうまくいかず。WiFiでネットワークに接続してなんとかaptとかpipを使えるようにした。

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

以下のように 入力して保存。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
     ssid="SSID-NAME"
     psk="PASSWORD"
}

SSID-NAMEとPASSWORDは適宜入力すること
WiFiを有効にするため、再起動する。

sudo reboot

補足)ここは再起動しなくても、以下のコマンドでいいかも(未確認)
以下を実行するとエラーになったので、素直にrebootした方がいい。

sudo wpa_cli -i wlan0 reconfigure
sudo dhclient wlan0

4-4. システムのアップデート

以下のコマンドを入力する。

sudo apt update
sudo apt upgrade

4-5. PythonからGPIOを制御するパッケージをインストール

以下のコマンドを実行する。

sudo apt install python-rpi.gpio
sudo apt install -y python3-pip
pip3 install RPi.GPIO

4-6. Jupyterをインストールする

以下のコマンドを実行する。

pip3 install jupyter
jupyter notebook --generate-config

.jupyter/jupyter_notebook_config.pyを以下のように修正する。

c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.notebook_dir = '/home/pi/jupyter_notebook'
c.NotebookApp.token = 'password'

passwordの部分は適当なパスワード文字列にすること

4-7. Jupyter Notebookを起動する

以下のコマンドを入力する。

mkdir /home/pi/jupyter_notebook
cd /home/pi/jupyter_notebook
jupyter notebook

Macからhttp://raspi0.local:8888 をアクセスする。

ここまでで、参考文献(4)で紹介されているPythonプログラムが実行できるはず。

5. 課題

  • Jupyter Notebookを自動起動
  • Windows10にも対応(一旦あきらめたけど)

追記
Windows10とRaspberry Piの接続で、LANケーブルで直接接続できる(Raspberry Pi 2とか3とか)なら以下の方法で接続できた。
http://moguno.hatenablog.jp/entry/2015/09/12/100231

6. 参考文献

(1) Raspberry Pi Zero(W, WH)のセットアップ
https://qiita.com/hishi/items/8bdfd9d72fa8fe2e7573

(2) 必要最小限でRaspberry PiにJupyter (Python3)をInstallする方法(2018-08-10)
https://qiita.com/iton/items/1bd670bc84f264024d5d

(3) Raspberry pi 喋らせよう jupyter note で試す
https://qiita.com/hiratarich/items/a829f2550ecf5e3ca206

(4) GPIOでLEDの点滅(Python)
http://make.bcde.jp/raspberry-pi/gpioでledの点滅python/

0
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4