【電子工作】WiringPiとPythonでLチカしてみる(Raspberry Pi 4で遊ぼう日記 その7)

投稿日:2022年4月29日
最終更新日:2022年5月1日

WiringPiとPythonでGPIOを制御する

前回はWiringPiというライブラリをインストールして、CLIからGPIOを操作した。今回はPythonのコードでWiringPiを使ってLEDを点滅させてみる。これでやっと堂々とLチカやりました!と言える…笑

※前回も書いたが、WiringPiは2019年で作者による開発が停止されているので今後使う予定の人はご注意を。

回路は前回同様、以下のセットを使ってブレッドボード上につくる。

 

実行環境

Raspberry Pi 4 Model B

Raspberry Pi OS (Bullseye)

wiringpi 2.60.1 (Python package)

Python 3.9.2

 

ブレッドボードに回路をつくる

毎度おなじみの回路。LEDと抵抗をラズベリーパイの35pin(GPIO 19)と39pin(GND)に接続した。抵抗値は330Ω。

WiringPiのPythonパッケージをインストール

まずPythonについては、最近のRaspberry Pi OSをインストールしていればptyhon3が最初からインストールされている。ためしにCLIから以下のコマンドでpythonのversionを確認したところ、version 3.9.2がインストールされていた。

$ python -V
Python 3.9.2

次に、WiringPiのpythonパッケージをインストールする。

$sudo pip3 install wiringpi

※ちなみに、以下のpypiのサイトにも書かれているように、pipでインストールされるpythonパッケージは公式のものではなく有志によりつくられているようだ。versionも前回インストールした公式のものとは異なっている。

https://pypi.org/project/wiringpi/

 

Python3のコードを書く

今回は以下のwiringpi_led.pyという0.5秒ごとにGPIO 19を点滅させるコードを書いたので、こちらを実行してLチカをやってみる。

#!/usr/bin/env python3

import wiringpi as gpio
import time

led_gpio = 19
gpio.wiringPiSetupGpio()
gpio.pinMode(led_gpio, 1)

while True:
    gpio.digitalWrite(led_gpio, 1)
    time.sleep(0.5)
    gpio.digitalWrite(led_gpio, 0)
    time.sleep(0.5)

WiringPiの使い方についてはpypiのサイトに書いてあるし、WiringPiの本家の公式サイトのfunctionsが踏襲されているのでそちらを参照。

あとはコードが置いてあるディレクトリで以下を実行すればOK。

$ sudo python wiringpi_led.py

以下が光らせてみた様子。

これで目的は達成。今回はPythonのコードを実行したが、C言語のコードをコンパイルして動かすのもやってみたいので、次回は同じ動作をC言語でやってみたいと思う。

 

日記まとめ

ラズパイで遊んでみた軌跡を以下でまとめてます。

【電子工作】Raspberry Pi 4で遊ぼう日記 まとめ

 


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください