2016-03-25 16 views
1

私は自分のコンピュータとPython(pyserial 3.0.1)のArduinoとの間でシリアル速度テストをしようとしています。私はArduino Duemilanove(ATmega328)をUSB経由で私のUbuntu VMに接続しました。デバイスが完全に現れて、私はのArduino IDE(1.6.7)を介して、この単純なループバックスケッチとそれを点滅:pythonシリアルto arduinoスピードテスト

void setup() { 
    Serial.begin(115200); 
} 

void loop() { 
    while(Serial.available()) { 
    Serial.write(Serial.read()); 
    } 
} 

私のPythonプログラムは次のようになります。

from __future__ import print_function 

import time 
import serial 

ser = serial.Serial(
    port='/dev/ttyUSB0', 
    baudrate=115200, 
    timeout=1 
) 

i = 0; 

#wait until bootloader finished 
time.sleep(2) 

try: 
    t0 = time.time() 
    while i < 1000: 
     ser.write(b'U') 
     ser.flush() 
     while ser.in_waiting <= 0: 
      pass 
     ret = ser.read(1) 
     if ret != 'U': 
      print("Error received: %s" % ret) 
     i += 1 
    t1 = time.time() 
except KeyboardInterrupt: 
    ser.close() 
    exit(1) 

ser.close() 

print("%.3f" % (t1-t0)) 

問題は、それでありますときどき動作し、時にはPythonプログラムが返されず、Ctrl + Cキーを押してしまうことがあります。これが起これば、私はarduino RXとTX LEDが点滅しているのを見ることができません。

誰かがこれがなぜ起こるか知っていますか?

は、[OK]を...私は私の「本当の」(ではないVM)のLinuxマシンに切り替え、あそこだけで正常に動作するようです

答えて

0

draufundrann ...ありがとうございました。私はさらにいくつかのテストを行い、結局私はこの質問を終了します。

編集:私は時々Ubuntu VMで動作することを確認しました。これはいつも私の実際のLinux Mintマシンで動作します。私はVMを使用する必要はないので、なぜ本当にうまく動作しないのか(おそらくいくつかの気になるVMのもの)私はこの質問を閉じるでしょう。