質問編集履歴

2

ソースコードについて

2020/06/21 05:12

投稿

TokiShin
TokiShin

スコア0

test CHANGED
File without changes
test CHANGED
@@ -37,6 +37,10 @@
37
37
 
38
38
 
39
39
  ### 該当のソースコード
40
+
41
+ 一度pdfに出力したものからコピペしたので、一部文字化けしてしまっています。
42
+
43
+ 後ほど変更します。
40
44
 
41
45
 
42
46
 

1

前提・実現したいこと、ソースコード、試したことの追記です。

2020/06/21 05:11

投稿

TokiShin
TokiShin

スコア0

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,14 @@
18
18
 
19
19
 
20
20
 
21
+ 質問:
22
+
23
+  ・ifやtry文で両方の処理を実現できるかどうか
24
+
25
+  ・gamepad.read_one()またはgamepad.read_loop()に代るコードで、実現できるものはないかどうか
26
+
27
+
28
+
21
29
  ### 発生している問題・エラーメッセージ
22
30
 
23
31
 
@@ -28,14 +36,156 @@
28
36
 
29
37
 
30
38
 
39
+ ### 該当のソースコード
40
+
41
+
42
+
43
+ ```Python
44
+
45
+ while(1):
46
+
47
+ event = gamepad.read_one()
48
+
49
+ if event != None :
50
+
51
+ #for event in gamepad.read_loop() :
52
+
53
+ f = open(’./data/cam.txt’, mode=’r’) s=f.read()
54
+
55
+ f.close()
56
+
57
+ s = float(s)
58
+
59
+ print("s␣=␣%3d" %(s)) if s != 0 :
60
+
61
+ stop(in1,in2,in3,in4) print("Obstacles!!") sys.exit(0)
62
+
63
+ if event.type == ecodes.EV_KEY: if event.value == 1:
64
+
65
+ if event.code == yBtn: print("Y-medium") p.ChangeDutyCycle(50) p2.ChangeDutyCycle(50)
66
+
67
+ elif event.code == bBtn: print("B-stop")
68
+
69
+ elif event.code == cBtn: print("C-very␣high") p.ChangeDutyCycle(100) p2.ChangeDutyCycle(100)
70
+
71
+ elif event.code == aBtn: print("A-QR␣mode␣press␣Ctrl+C␣to␣exit") capture_code()
72
+
73
+ root.mainloop()
74
+
75
+ elif event.code == xBtn: print("X-low") p.ChangeDutyCycle(25) p2.ChangeDutyCycle(25)
76
+
77
+ elif event.code == zBtn: print("Z-high") p.ChangeDutyCycle(75) p2.ChangeDutyCycle(75)
78
+
79
+ elif event.code == home:
80
+
81
+ print("home-line␣auto␣mode␣press␣Ctrl+C␣to␣exit") p.ChangeDutyCycle(20)
82
+
83
+ p2.ChangeDutyCycle(20)
84
+
85
+ forward(in1, in2,in3,in4)
86
+
87
+ try:
88
+
89
+ while (1) :
90
+
91
+ forward(in1, in2,in3,in4)
92
+
93
+ if ((not GPIO.input(left_sensor)) and (GPIO.input(right_sensor))):
94
+
95
+ print("move␣left") p.ChangeDutyCycle(0) p2.ChangeDutyCycle(70) sleep(0.5)
96
+
97
+ elif ((not GPIO.input(right_sensor)) and (GPIO.input(left_sensor))): print("move␣right")
98
+
99
+ p.ChangeDutyCycle(70)
100
+
101
+ p2.ChangeDutyCycle(0)
102
+
103
+ sleep(0.5)
104
+
105
+ elif ((not GPIO.input(right_sensor)) and (not GPIO.input(left_sensor))) :
106
+
107
+ i = random.randrange(100) print("Going␣back") p.ChangeDutyCycle(20) p2.ChangeDutyCycle(20) backward(in1,in2,in3,in4) sleep(0.5)
108
+
109
+ if (i%2 == 0 ): p.ChangeDutyCycle(0) p2.ChangeDutyCycle(70) forward(in1, in2,in3,in4) sleep(0.2)
110
+
111
+ else:
112
+
113
+ p.ChangeDutyCycle(70) p2.ChangeDutyCycle(0) forward(in1, in2,in3,in4) sleep(0.2)
114
+
115
+ else: print("Following␣the␣line!") p.ChangeDutyCycle(20) p2.ChangeDutyCycle(20)
116
+
117
+ except KeyboardInterrupt: print(’exiting...’) GPIO.cleanup() print("GPIO␣Clean␣up") sys.exit(0)
118
+
119
+ elif event.code == select: GPIO.cleanup() print("select-GPIO␣Clean␣up") break
120
+
121
+ elif event.code == lTrig: print("PUMP␣OFF") pumpstop()
122
+
123
+ elif event.code == rTrig:
124
+
125
+ for event in gamepad.read_loop():
126
+
127
+ if event.type == ecodes.EV_KEY: if event.value == 0:
128
+
129
+ if event.code == rTrig: break
130
+
131
+ elif event.type == 3 : if event.code == 0 :
132
+
133
+ if event.value == stick1: print("pump␣up")
134
+
135
+ pe = pe + 10
136
+
137
+ if (pe > 100) :
138
+
139
+ pe = 100 print("pe␣=␣%3d" %(pe))
140
+
141
+ elif event.value == stick2: print("pump␣down")
142
+
143
+ 2
144
+
145
+ pe = pe - 10 if (pe < 0) :
146
+
147
+ pe = 0 print("pe␣=␣%3d" %(pe))
148
+
149
+ print("PUMP␣ON␣with␣pe␣=␣%3d" %(pe)) pump(pe)
150
+
151
+ elif event.type == 3 : if event.code == 0 :
152
+
153
+ if event.value == stick1: print("turn␣right") turn_right(in1, in2,in3,in4) temp1=0
154
+
155
+ elif event.value == stick2: print("turn␣left") turn_left(in1, in2,in3,in4) temp1=0
156
+
157
+ elif event.value == stickN: print("stick␣Neutral") stop(in1,in2,in3,in4)
158
+
159
+ if event.code == 1 :
160
+
161
+ if event.value == stick1:
162
+
163
+ print("backward") backward(in1, in2,in3,in4) temp1=0
164
+
165
+ elif event.value == stick2: print("stick␣forward") forward(in1,in2,in3,in4) temp1=1
166
+
167
+ elif event.value == stickN: print("stick␣Neutral") stop(in1,in2,in3,in4)
168
+
169
+ ```
170
+
171
+
172
+
31
173
  ### 試したこと
32
174
 
33
175
 
34
176
 
35
- if文、try文、exceptやfinalなどの例外処理試してい
177
+ if文、try文、exceptやfinalなどの例外処理等を試しました
178
+
179
+ 前進のボタンを長押ししている間は、分岐がそれ以上進まず、前進の処理を続けています。
180
+
181
+ その途中で、障害物との距離が一定以下になっても止まらずに、ボタンから手を離して初めて停止します。
36
182
 
37
183
 
38
184
 
39
185
  ### 補足情報(FW/ツールのバージョンなど)
40
186
 
41
187
  **よろしくお願いします!**
188
+
189
+
190
+
191
+ teratailを使うのもプログラミングについて他者に相談するのも初めてなので質問の仕方が上手くなくて申し訳ないです。