2013-03-26 3 views
2

У нас возникла проблема с получением данных из последовательного порта. У нас есть этот код python, его цель - получить значение из файла, а затем его увеличить. Мы пытаемся подключить его к ардуино с помощью сервопривода двигателя, так что когда он обнаруживает приращение, сервопривод перемещается.Arduino hit counter

# 
# 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) 
+1

линия отступ не является правильным. – joaquin

ответ

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)