pigpio というライブラリは,Raspberry Pi の GPIO に対応しています.
このライブラリは,デーモンとインターフェイスから構成されていて,ネットワークを通じてデーモンを操作することができます.つまり,開発用の高性能なパソコンにインターフェイスをインストールして,Raspberry Pi でデーモンを起動しておけば,快適な開発環境になります *1.公式サイトにはC言語とPythonに対応していると記載されています.
環境
本記事では以下の商品を使用しました.
- Raspberry Pi Zero W
- MacOS 12.6.2
Raspberry Pi の準備
GUI は不要なので,Raspberry Pi OS Lite を Raspberry Pi Imager で microSD に書き込みます.このときに,hostname と WiFi の設定をしておくと便利です.hostname はこれ以降 raspberrypi.local
と設定したものとします.適宜読み替えてください.SSHは不要です.
Raspberry Pi が起動したら,pigpio をインストールします.
sudo apt install pigpio
pigpio デーモンは raspi-config から有効にできます. "Remote GPIO" を有効にします.
Raspberry Pi Documentation - Configuration
sudo raspi-config
pigpio デーモンは自動実行されると便利なので,サービスを有効にします.
$ sudo systemctl enable pigpiod.service $ sudo systemctl start pigpiod.service $ sudo systemctl status pigpiod.service
これで active となれば完了です.
動作確認
簡単な例で試してみます.hostname を raspberrypi.local
と指定しているので,ネットワークから操作ができます.
requirements.txt
pigpio==1.78
main.py
GPIO 14 を OUTPUT モードにして,10回点滅させる python スクリプトです.
import sys import time import pigpio pi = pigpio.pi("raspberrypi.local") if not pi.connected: sys.exit() pi.set_mode(14, pigpio.OUTPUT) for _ in range(10): pi.write(14, 1) time.sleep(0.5) pi.write(14,0) time.sleep(0.2) pi.stop()
回路
GPIO 14 に LED と 330 Ω の抵抗を直列に繋ぎました.
結果
手前の LED をご覧ください.奥の LED は 3v3 Power に接続しており,電源の確認用です.
これで,Raspberry Pi の GPIO をネットワークから操作できることが分かりました.
*1:Raspberry Pi Zero W にデスクトップ環境を準備して,Thonny を起動してみましたが,文字入力すら遅延するため,直接操作するのは大変でした.