Форум сайта python.su
0
Доброго всем дня!
Помогите решить поставленную задачу
Есть RPi, есть УЗ датчик. Необходимо, чтобы датчик производил замеры 3 раза по 3 раза (извините за тафтологию) через 50мс за общее время 1.6 секунды. Каждая “очередь” замеров должна усредняться. А на выходе нужен csv-файл, в которм будет записываться: дата, время и минимальное значение, которое было вычислено выше
Вот, что у меня имеется –
#!/usr/bin/python import time import RPi.GPIO as GPIO import MySQLdb def measure(): GPIO.output(GPIO_TRIGGER, True) time.sleep(0.00001) GPIO.output(GPIO_TRIGGER, False) start = time.time() while GPIO.input(GPIO_ECHO)==0: start = time.time() while GPIO.input(GPIO_ECHO)==1: stop = time.time() elapsed = stop-start distance = (elapsed * 34300)/2 return distance def measure_average(): distance1=measure() time.sleep(0.1) distance2=measure() time.sleep(0.1) distance3=measure() distance = distance1 + distance2 + distance3 distance = distance / 3 return distance GPIO.setmode(GPIO.BCM) GPIO_TRIGGER = 23 GPIO_ECHO = 24 GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo GPIO.output(GPIO_TRIGGER, False) try: while True: prnt = 10 distance = measure_average() print "Distanciya : %.1f" % distance # f=open('log.csv','wa') # f.write('%.1f distance') # f.close() # f = open('log.csv','wa') # f.write(prnt(str)) time.sleep(1) except KeyboardInterrupt: GPIO.cleanup()
Отредактировано Oleg_Rus (Апрель 15, 2014 17:52:05)
Офлайн
253
надо писать что за ошибка получилась.
судя по этому коду
f.write('%.1f distance')
f.write('%f' % distance)
Отредактировано doza_and (Апрель 15, 2014 20:47:34)
Офлайн
857
Oleg_Rus
Никак не могу победить запись в файл… Что-то я не так делаю…
Oleg_Rusf=open('log.csv','wa')
Отредактировано py.user.next (Апрель 16, 2014 02:06:13)
Офлайн