質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

378閲覧

raspberry Pi5においてのRPi.GPIOが使用できなくなった件について

mememd

総合スコア50

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/08/02 08:40

編集2024/08/02 09:23

実現したいこと

現在、raspberrypi 4B+において
https://www.souichi.club/raspberrypi/omron-ee-spw311/
を参考に実装しました。
しかし新たにraspberrypi 5を購入して配線をそのまま繋ぎ直し、該当pythonのソースを実行しようとするとrpi.gpioが廃止になっており、実行することが出来ませんでした。
そこで新たなライブラリを用いて開発を行おうと試行錯誤しております。

発生している問題・分からないこと

gpiozeroを開発をしようと考えておりましたが標準のライブラリでは電気の抵抗値の変化、HIGHのLOW値は検知出来ないです。
どのように実装すればいいでしょうか

該当のソースコード

python

1import gpiozero 2import time 3 4 5pin = gpiozero.DigitalInputDevice(pin=5) 6try: 7 while True: 8 print(pin.value) 9 time.sleep(1) 10finally: 11 pin.close()

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

自分自身でgpiozeroについて調査したのですが上記のコードにおいては接続したEE-SPW311を遮光しても「1」が出力されるだけで変化を検出できませんでした。

補足

raspberry Pi5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bsdfan

2024/08/03 00:57

参考ページではpull upされているようですが、質問にあるコードでは特に指定されていません。そのあたりは大丈夫でしょうか?(デフォルトではpull downっぽいですが、確認してみてください)
mememd

2024/08/03 01:35

コメントありがとうございます。 gpiozero.DigitalInputDevice(pin=5,pull_up=True)と記述を変更して 試しましたがまだ解決できていません。
bsdfan

2024/08/03 03:08 編集

あと気になった点としては、GPIO5につないでいるのか、5番ピンにつないでいるのか、どちらでしょう? コードとしては後者を期待しています。
bsdfan

2024/08/03 07:48

すいません。上のコメントは間違っていました。pin=5でGPIO5になりますね。 RPi4B+ と RPi5 があるなら、ソフトの問題なのかハードの問題なのか、いろいろ組み合わせてみて確認してみてはどうでしょう。
matukeso

2024/08/04 01:15

lgpioとかlibgpio とか使ってみたら。PI5からGPIOの担当チップが変わってるから。
dodox86

2024/08/04 02:35

Raspberry Pi5を持っていないくて試せる環境にないのでコメントのみですが、ハードとソフト、どちらが悪いのか分からなくなったら、最小限度のコードにし、実際にGPIOの端子出力をテスターで確認するのが一番だと考えますがどうでしょうか。
dodox86

2024/08/04 02:41

> 実際にGPIOの端子出力をテスターで確認するのが一番だと考えますがどうでしょうか。 今回はセンサー等の入力なので、GPIOの出力のみでなく入力も、ですね。
mememd

2024/08/04 06:58 編集

コメントありがとうございます。今回の該当のコードは最小限のつもりでした。 また、すでにテスターでGPIOの端子出力を確認を試しました電圧が変化しているようでなぜダメなのか不明でした
dodox86

2024/08/05 03:36

> 自分自身でgpiozeroについて調査したのですが上記のコードにおいては接続したEE-SPW311を遮光しても「1」が出力されるだけで変化を検出できませんでした。 遮光すると1が出力されて、遮光しない(受光している)と0が出力されているのでしょうか。そうであれば、ハードウェア(回路)的にはOKなのだと思います。それともどんな場合でも1が出力されているのですか。 説明の文の記載が足りないだけなのかもしれませんが、出力が0から1, 1から0への変化を検出するのは、ソフトウェア(質問者さんのプログラム)の担当です。その辺りの認識は合っていますか。
mememd

2024/08/05 05:03

>出力が0から1, 1から0への変化を検出するのは、ソフトウェア(質問者さんのプログラム)の担当です。 ソフトウェア上(該当のソースコード)で変化を検出できない出来ないので困っています。 import gpiozero import time pin = gpiozero.DigitalInputDevice(pin=5,pull_up=True) try: while True: print(pin.value) time.sleep(1) finally: pin.close() を実行すると通常「1」が出力されて、抵抗部分を外すと「0」が出力されるようになります。 ただ以前、遮光しても変化を検出することができません。
matukeso

2024/08/05 09:33

遮光した時の電圧(5pin-GND)は0Vですか?
mememd

2024/08/05 11:54

遮光した時の電圧(5pin-GND)は0Vだと思います。 raspberrypi 4B+において上記のコードを実行しましたが 通常「0」が出力されて、遮光時「1」が出力されました。 二つのraspberrypiは、同じ位置にPINを差し替えており尚且つ、抵抗器も同じで電源供給口も同じです。 raspberrypi 4B+と5では電圧が異なるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問