1

重複の可能性:
Arduino の Pyserial 問題 - Python シェルでは動作しますが、プログラムでは動作しません

それで、私はArduino Unoを手に入れたばかりで、今はUSBを使ってそれと通信しようとしています。Arduino IDE が提供するシリアル モニターで動作するようになりました。現在、Pythonでテストしています。

プログラムは、USB からデータを読み取るときに、ボード上の LED を点滅させる必要があります。

私がそれを行う方法は次のとおりです。

#!/usr/bin/env python
import serial

ser = serial.Serial("/dev/ttyACM0", 9600)
ser.write("something")

これは機能しませんが、インタラクティブ シェルで各ステップを実行すると機能します。

>>> import serial
>>> ser = serial.Serial("/dev/ttyACM0", 9600)
>>> ser.write("something")

閉じる前にスクリプトでタイムアウトを使用しようとしましたが、それは役に立ちませんでした。私は何を間違っていますか?

4

1 に答える 1

1

このリンクがお役に立てば幸いです:arduino-python

--- 編集済み ---- お詫び

コンセプトは、python スクリプトから arduino に何かを送ることです。そのため、arduino は LED をオンまたはオフにするコマンドとして解釈できます。

Pythonアイドルで

>>> import serial
>>> ser = serial.Serial('com7', 9600)
>>> ser.write('ON')

一方、arduinoでは:

int LedPin = 13;
char msg = ' ';

void setup(){
  pinMode(LedPin, OUTPUT);
  Serial.begin (9600);
}

void loop()
{
  while (Serial.available()>0)
  {
    msg = Serial.read();
  }

  if (msg=='ON')
  {
    digitalWrite(LedPin, HIGH);
    msg=' ';
  } 
  else if (msg=='ON')
  {
    digitalWrite(LedPin, LOW);
  }

}
于 2012-12-14T01:58:47.997 に答える