質問編集履歴
2
ご指南を頂き有難うございます。修正させて頂きました。何卒宜しくお願い致します。
test
CHANGED
File without changes
|
test
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
なし
|
22
22
|
|
23
23
|
### 該当のソースコード
|
24
|
-
|
24
|
+
```ここに言語を入力
|
25
25
|
import time
|
26
26
|
import RPi.GPIO as GPIO
|
27
27
|
import datetime
|
@@ -67,6 +67,8 @@
|
|
67
67
|
print(recordtime,distance)
|
68
68
|
|
69
69
|
GPIO.cleanup()
|
70
|
+
```
|
71
|
+
```Python3
|
70
72
|
|
71
73
|
### 補足情報(FW/ツールのバージョンなど)
|
72
74
|
|
1
プログラムが適切に表示されていないとご指摘があり、修正させて頂きました。宜しくお願い致します。
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,75 +22,48 @@
|
|
22
22
|
|
23
23
|
### 該当のソースコード
|
24
24
|
|
25
|
-
Python3
|
26
|
-
|
27
|
-
ソースコード
|
28
|
-
|
29
|
-
# -*- coding: utf-8 -*-
|
30
|
-
# 日本語コメントをエラーとしないように、UTF-8で保存
|
31
|
-
|
32
|
-
# 使用するライブラリのインポート
|
33
25
|
import time
|
34
26
|
import RPi.GPIO as GPIO
|
35
27
|
import datetime
|
36
28
|
import csv
|
37
29
|
|
38
|
-
# 定数の定義
|
39
30
|
PIN_TRIG = 24
|
40
31
|
PIN_ECHO = 25
|
41
|
-
|
32
|
+
|
42
33
|
SPEED_OF_SOUND = 33145
|
43
34
|
|
44
35
|
def init_GPIO():
|
45
|
-
# GPIOの初期設定
|
46
36
|
GPIO.setwarnings(False)
|
47
37
|
GPIO.setmode(GPIO.BCM)
|
48
|
-
|
49
38
|
GPIO.setup(PIN_TRIG, GPIO.OUT)
|
50
39
|
GPIO.setup(PIN_ECHO, GPIO.IN)
|
51
40
|
|
52
41
|
def calc_distance():
|
53
|
-
# 0.5秒ほど落ち着かせれる
|
54
42
|
GPIO.output(PIN_TRIG, GPIO.LOW)
|
55
43
|
time.sleep(0.5)
|
56
|
-
# 0.5秒間、超音波を発射
|
57
44
|
GPIO.output(PIN_TRIG, True)
|
58
45
|
time.sleep(0.5)
|
59
46
|
GPIO.output(PIN_TRIG, False)
|
60
|
-
|
61
|
-
# 超音波が跳ね返ってくるまでの時間を計測
|
62
47
|
while GPIO.input(PIN_ECHO) == 0:
|
63
48
|
signaloff = time.time()
|
64
49
|
while GPIO.input(PIN_ECHO) == 1:
|
65
50
|
signalon = time.time()
|
66
51
|
time_passed = signalon - signaloff
|
67
|
-
|
68
|
-
# 距離を計算する(音速 * 超音波を出力、戻ってくるまでの時間 / 2)
|
69
52
|
distance = SPEED_OF_SOUND * time_passed / 2
|
70
53
|
return distance
|
71
54
|
|
72
55
|
init_GPIO()
|
73
56
|
|
74
|
-
#32400秒測定する
|
75
57
|
for measure in range(32400):
|
76
|
-
|
77
|
-
# 0.5 * 20 で、10秒間、0.5秒間隔で測定結果を表示
|
78
|
-
# 測定結果が約0.5秒で取得されるので、
|
79
|
-
# 0.5秒毎に距離が測定される
|
80
58
|
distance = f'{calc_distance():.3f}'
|
81
|
-
|
82
59
|
today = datetime.date.today()
|
83
60
|
today = str(today).replace('-','')
|
84
|
-
|
85
61
|
with open(today + 'data.csv','a') as f:
|
86
|
-
|
87
62
|
now = datetime.datetime.now()
|
88
63
|
recordtime = '{0:%H:%M:%S}'.format(now)
|
89
64
|
writer = csv.writer(f)
|
90
65
|
writer.writerow([recordtime,distance])
|
91
|
-
|
92
66
|
f.close()
|
93
|
-
|
94
67
|
print(recordtime,distance)
|
95
68
|
|
96
69
|
GPIO.cleanup()
|