概要
Raspberry PiでのGPIO制御はgpiozero(python)使うのが普通らしい(Raspberry Pi公式のUse GPIO from Python).そこでその準備.
またRaspberry Pi上でプログラム作るのはちょっと面倒(Raspberry Pi上にはUbuntu Server入れて軽量かつ制御に専念させているので).そこでデスクトップPC上でプログラム作成・Raspberry Pi上で動作,をするための話.
参考
PC開発 + Raspberry Pi動作
基本の流れはPC使ったRaspberry Pi開発手順通り.以下の説明はPC使ったRaspberry Pi開発手順の『前提』を使用.またbranchの活用をしている.
流れ
PCでの作業は『PC$』,Raspberry Piでの作業は『Pi$』と表記.
準備
- GitLab上でgpiozero用のブランチ作成
- ブランチ名: gpiozero-test
- sshでclone: git@hogehoge.co.jp:user1/gpiozero-test.git
- PC$ git clone git@hogehoge.co.jp:user1/gpiozero-test.git
- クローン先のディレクトリ: /home/user1/program/
- コンピュータ名: home
- PC$ git switch -c develop-user1
- 開発用ブランチの作成
- Pi$ git clone ssh://user1@home/home/user1/program/gpiozero-test
- PCの開発用ブランチがcloneされる
gpiozeroのインストール
gpiozeroのパッケージはlgpioというパッケージも使用するみたいなので,こちらも合わせてインストール.
Raspberry Pi上でインストールしてPipfileをPC上にpushする.でpushする時にPC上の作業ブランチがdevelop-user1だとpushできなかった.そこでpushする時には一旦別のブランチ(mainブランチ)にしてpush,その後元に戻している.
- Pi$ cd gpiozero-test
- Raspberry Pi上のプロジェクトディレクトリに移動
- Pi$ pipenv --python 3
- Pi$ pipenv install gpiozero lgpio
- gpiozeroとlgpioのインストールでPipfile, Pipfile.lockができるのでPCにアップロード
- Pi$ git add .
- Pi$ git commit -a -m "なんかのメッセージ"
- PC$ git switch main
- 一旦push先以外の別のブランチにしておく
- Pi$ git push
- PC$ git switch develop-user1
Raspberry Pi上での編集
gpiozeroのインストールと同じ流れ.
- Pi上で編集
- PC$ git switch main
- 一旦push先以外の別のブランチにしておく
- Pi$ git push
- PC$ git switch develop-user1
PC上で編集(プログラム作成など)
PC上ではdevelop-user1ブランチで作業.
- PC上で編集
- PC$ git commit -a -m "なんかのメッセージ"
- Pi$ git pull
一段落ついてgithub, gitlabにアップロードする場合.最初はdevelop-user1ブランチから作業.
- git merge main
- git switch main
- git merge develop-user1
- git pushでgithub, gitlabにアップロード
ちょっとやってみる?
Raspberry PiでのLチカ実験の準備・回路作成の回路を作っているなら,PC上で編集(プログラム作成など)の『PC上で編集』のところで下記のプログラムを作成,実行してみると理解が進む.
from gpiozero import LED
from time import sleep
led = LED(21)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
led_test.pyの作成
PC$ git commit -a -m "led_test.pyつくったよ"
Pi$ pipenv shell
Pi$ git pull origin develop-user1:main
Pi$ python3 led_test.py
led光るの確認.Ctrl-Cで止まる.
PC$ git merge main
PC$ git switch main
PC$ git merge develop-user1
PC$ git push # githubやgitlabにpush
PC$ git switch develop-user1 # 次の編集に備える