概要
ラズパイでLEDを制御する際、GPIOを操作する方法の一つとして、Pythonのpigpioライブラリを使うのが便利そうなので使い方を学びます。使い方
- pigpioのサービスを起動しておく pigpioを使う際にはあらかじめ「pigpiod」という常駐プログラムを起動しておく必要があります。
- pigpioを使ってLEDを点灯するプログラムを作成する LEDはこのように接続しました。GPIO14をGRDのピンを使用しています。
- プログラムを実行する 以下のようにpythonのプログラムを実行します。
pigpiodを制御するユニットがあらかじめ用意されているので、systemctlコマンドで常駐プログラムを起動します。
pi@raspberrypi:~ $ sudo systemctl start pigpiod
pi@raspberrypi:~ $ sudo systemctl status pigpiod
● pigpiod.service - Daemon required to control GPIO pins via pigpio
Loaded: loaded (/lib/systemd/system/pigpiod.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2020-08-09 13:40:24 JST; 2s ago
Process: 17319 ExecStart=/usr/bin/pigpiod -l (code=exited, status=0/SUCCESS)
Main PID: 17321 (pigpiod)
Tasks: 4 (limit: 2200)
Memory: 532.0K
CGroup: /system.slice/pigpiod.service
mq17321 /usr/bin/pigpiod -l
8月 09 13:40:24 raspberrypi systemd[1]: Starting Daemon required to control GPIO pins via pigpio...
8月 09 13:40:24 raspberrypi systemd[1]: Started Daemon required to control GPIO pins via pigpio.
サービスファイルの中身はこのようになっています。
pi@raspberrypi:~ $ cat /lib/systemd/system/pigpiod.service
[Unit]
Description=Daemon required to control GPIO pins via pigpio
[Service]
ExecStart=/usr/bin/pigpiod -l
ExecStop=/bin/systemctl kill pigpiod
Type=forking
[Install]
WantedBy=multi-user.target
再起動後した時に自動起動する場合には、ユニットをenableにしておきます。
pi@raspberrypi:~ $ sudo systemctl enable pigpiod
Created symlink /etc/systemd/system/multi-user.target.wants/pigpiod.service → /lib/systemd/system/pigpiod.service.
抵抗は200Ωのものを使っています。(図に書かれている抵抗の色とは違うものです)
以下がプログラムです。pigpioをインポートして、出力設定した後にHighに設定しています。
pi@raspberrypi:~/test $ cat led_on.py
import pigpio
LED_PIN = 14
pi= pigpio.pi()
pi.set_mode( LED_PIN, pigpio.OUTPUT )
pi.write( LED_PIN, pigpio.HIGH)
pi@raspberrypi:~/test $ python led_on.py
無事に点灯しました。
ここではpigpioを使ってLEDを点灯させてみましたが、これができればループ処理を組み合わせて点滅させたり、明るさを変えてみたりすることができそうです。
IoTでラズパイを使う際にディスプレイはつながないで使う事が多いと思うので、LEDを使って簡単に出力できるのは便利そうです。
0 件のコメント:
コメントを投稿