【pySerial】micro:bitにシリアル通信時「could not open port '/dev/cu.」エラーが出た時に考えられること
pySerialを使ってmicro:bitにシリアル通信した際に以下のようなエラーが出た時の対処法備忘録です。
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/serial/serialposix.py", line 265, in open
self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
FileNotFoundError: [Errno 2] No such file or directory: '/dev/cu.usbmodem14302'During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "testSerial.py", line 4, in
ser = serial.Serial(port,115200,timeout=None)
File "/usr/local/lib/python3.8/site-packages/serial/serialutil.py", line 240, in init
self.open()
File "/usr/local/lib/python3.8/site-packages/serial/serialposix.py", line 268, in open
raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 2] could not open port /dev/cu.usbmodem14302: [Errno 2] No such file or directory: '/dev/cu.usbmodem14302'
Arduinoのシリアルポートを開いているとエラー
エラーのcould not open port
という内容からUSBポートが使用中の可能性が考えられます。
僕の場合はArduinoのシリアルモニタを開いていたことが原因でした。
※デバッグのために使っていました。
閉じたら正常にシリアル通信出来ました。
最後に
今回のエラーはArduinoのシリアルモニタのように、シリアルポートを専有するような事をしていないかという視点を持つことが対処法になりそうです。
Python側
import serial
mac='/dev/cu.usbmodem14302'
ser = serial.Serial(port,115200,timeout = None)
ser.write(b'1')
time.sleep(1)
ser.close()
micro:bit側(JavaScript)
serial.setBaudRate(BaudRate.BaudRate115200)
basic.forever(function () {
str = serial.readString()
if (str.indexOf("1") >= 0) {
basic.showIcon(IconNames.Heart)
}
})
Author And Source
この問題について(【pySerial】micro:bitにシリアル通信時「could not open port '/dev/cu.」エラーが出た時に考えられること), 我々は、より多くの情報をここで見つけました https://qiita.com/ohbashunsuke/items/ea829f79a723406e9876著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .