2

シリアル ポートからデータを取得する際に問題が発生しています。この python コードがあります。その目的は、ファイルから値を取得してインクリメントすることです。これをモーターサーボでarduinoに接続して、インクリメントを検出するとサーボが動くようにしようとしています。

#
# fetch counter 
#

import time
import urllib
import serial

# usb serial connection to arduino
ser = serial.Serial('COM3', 9600)

last_counter = open("hitcounter.txt")
for b in last_counter:
b = b.strip()
while (True):
counter = open("hitcounter.txt")
for a in counter:
    a = a.strip()

delta = int(a) - int(b)
ass = delta+1
print ass
print "counter: %s, delta: %s" % (a, delta)
x=chr(ser.write(chr(ord(chr(delta)))))
print type(x)
print "%s" %(x)
y=ser.write(ass)

print type(y)
print "%s" %(y)
b = a
time.sleep(10)
4

1 に答える 1

2

あなたのコードで:

while (True):

次の行はインデントされていないため、コード ブロックの一部ではありません。あなたのコードはここで単純にループをアイドル状態にします。:(

あなたのコードロジックを理解していると仮定します:

#
# fetch counter 
#

import time
import urllib
import serial

# usb serial connection to arduino
ser = serial.Serial('COM3', 9600)

last_counter = open("hitcounter.txt")

for b in last_counter:
    b = b.strip()

while (True):
    counter = open("hitcounter.txt")
    for a in counter:
        a = a.strip()

    delta = int(a) - int(b)
    ass = delta+1
    print ass
    print "counter: %s, delta: %s" % (a, delta)
    x=chr(ser.write(chr(ord(chr(delta)))))
    print type(x)
    print "%s" %(x)
    y=ser.write(ass)

    print type(y)
    print "%s" %(y)
    b = a
    time.sleep(10)
于 2013-03-26T20:43:13.287 に答える