私はPythonとプログラミング全般に不慣れです。私はArduinoとPythonを使ってSpotifyのリモコンを作っているところです。Arduino でボタンが押されるたびに、単一の文字がシリアル経由で送信されます。この文字をリッスンする Python スクリプトがあり、その文字に基づいてコマンドを実行します。私が抱えている問題はspotify.playpause()
、それぞれのボタンが押されるたびに機能することですが、他のすべてのコマンドでは複数のボタンを押す必要があります。文字が正しく送信されていることを複数のシリアルモニターで確認したため、Arduino の問題ではないと確信しており、Python ループの問題であると考えています。
編集:さらに情報を追加するだけで、Python側serial.read()
またはArduino側のさまざまな組み合わせが問題に影響を与えないようですserial.readline
Serial.print
Serial.println
TL;DR ループが完全に実行されません。何が問題なのですか。
コードは次のとおりです。
import serial
from pytify import Spotify
spotify = Spotify()
connected = False
ser = serial.Serial("COM3", 57600)
while not connected:
serin = ser.read()
connected = True
while True:
if ser.read() == '0':
spotify.playpause()
elif ser.read() == '1':
spotify.volumeUp()
elif ser.read() == '2':
spotify.volumeDown()
elif ser.read() == '3':
spotify.previous()
elif ser.read() == '4':
spotify.next()
else :
pass