gpioが使われているエラーが出ます
ラズベリーパイ初心者で画像認識、QRコード読み取り、モーター起動のプログラミングを作っている高1です。知識がない為教えてくださると幸いです。
発生している問題・エラーコード
Warning (From warnings module): File/home/pi/Desktop/qrswitch2. py", line 13 GPI0. setup (8, GPIO.OUT) RuntimeWarning: This channe l is already in use, continuing anyway. Use GPIO, set warnings (False) to disable warnings. Warning (from warnings modu le) File/home/pi/Desk top/qrswitch2. py", line 14 GP 10. setup (24, GP10,OUT) RuntimeWarning: This channel is already in use, cont inuing anyway. Use GPIO, set warnings (False) to disable warnings True Ln: 43 Col: 0 SHARP
該当のソースコード
import sys sys. path. append(' /usr/local/lib/python2. 7/dist-packages') from pyzbar.pyzbar import decode from pyzbar.pyzbar import ZBarSymbol from tkinter import messagebox import cv2 import numpy as np import RPi. GPIO as GPIO import time GPIO. setmode (GPIO. BCM) GPIO. setup (8, GPIO. OUT) GPIO. setup (24, GPIO. OUT) def edit_contrast (image, gamma): ''''''コントラクト調整'''''' look-up-table: [np. uint8(255,0 / (1 + np.exp(-gamma * (i - 128.) / 255.))) for i in range (256)] result image =np. array ([ look_up_table[value] for value in image. flat], dtype=np. uint8) result image =result image. reshape(image. shape) return result image try: if _ name_==''_main_ '': capture = cv2. VideoCapture(0) print (capture. is0pened()) if capture. is0pened() is False: raise (''I0 Error") while True: ret, frame = capture.read() # messagebox. showinfo('' main '',''2'') if ret == False: # messagebox, showinfo('' main '',"2") continue #グレースケール化してコントラクトを調整する gray scale = cv2.cvtColor(frame, cv2. COLOR BGR2GRAY) image=edit contrast (gray scale, 5) #加工した画像からフレームQRコードを取得してデコードする codes=decode (image) if len(codes) > 0: for code in codes print(code) print(code[0]. decode (' utf-8', ' ignore')) GPIO. output (8, GPIO. HIGH) time. sleep (10) GPIO. output (8, GPIO. LOW) time. sleep (60) GPIO. cleanup() except ValueError as e: print (e) GPIO. cleanup () except: import traceback traceback. print exc() GPIO.cleanup
試したこと
学校の先生やプログラミングに詳しい方に聞いてもわからないと言われてしまったので、お願いします。
明日発表で本当に困っています。
お願いします…
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
gpio を全く承知していませんが、例えば "This channe l is already in use" を検索キーワードにすればいくらかヒットします。GPIO.cleanup() が適切でないために警告メッセージが発生するようです。そもそも警告メッセージなのですが、何か支障があるのでしょうか? cleanup() の書き方についても、(1) GPIO.cleanup()、(2) GPIO cleanup() (ピリオドなし空白)、(3) GPIO,cleanup() (ピリオドなしカンマ)と3通りを書かれています。これはこれで上手く動作しないのでは?
全てgpio.cleanupです。
誤字訂正しました。
ありがとうございます。
回答2件
あなたの回答
tips
プレビュー