29
Go to list of users who liked
24
More than 5 years have passed since last update.
PythonからArduinoにシリアルで文字列を送る場合、pyserialを使って、こんな感じで書くと思います。
importserialser=serial.Serial()ser.baudrate=9600ser.port=2# COM3->2,COM5->4ser.open()ser.write("Hello")
ser.portはUSBを抜き差しするたびに変わるので、Arduino IDEでポートを確認し、Macの場合はser.port = "/dev/tty.usbmodem1451"
、WindowsだとCOM3に刺さってる場合、ser.port = 2
と書くわけですが、抜き差しするたびに変わって面倒ということで、こういう書き方も用意されてます。
importserialimportserial.tools.list_portsser=serial.Serial()ser.baudrate=9600ser.port=list(serial.tools.list_ports.comports())[0][0]ser.open()ser.write("Hello")
この書き方、環境によっては失敗するみたいで、Macなら/dev配下を適当に探せば見つかるだろうと、こういう書き方を試してみたら、ちゃんと動きました。
ser=serial.Serial()ser.baudrate=9600forfileinos.listdir('/dev'):if"tty.usbmodem"infile:ser.port='/dev/'+fileser.open()
Windowsの場合、数字で指定されるので、こんな書き方でもいいですね。
ser=serial.Serial()ser.baudrate=9600foriinrange(100):try:ser.port=iser.open()breakexcept:i=i
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme