小白第一次上手 python ,用树莓派,红外和超声波传感器做智障小车。 编译错误:
RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(trip,GPIO.OUT)
Traceback (most recent call last):
File "xiaochetest.py", line 82, in <module>
fwd()
TypeError: fwd() takes exactly 1 argument (0 given)
下面是小车的代码:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
m1_fwd = 12
m1_rev = 11
m2_fwd = 13
m2_rev = 15
red_left = 07
red_right = 16
trip = 38
echo = 37
def init():
GPIO.setup(m1_fwd,GPIO.OUT)
GPIO.setup(m1_rev,GPIO.OUT)
GPIO.setup(m2_fwd,GPIO.OUT)
GPIO.setup(m2_rev,GPIO.OUT)
def stop(sleep_time):
GPIO.output(m1_fwd,False)
GPIO.output(m1_rev,False)
GPIO.output(m2_fwd,False)
GPIO.output(m2_rev,False)
time.sleep(sleep_time)
GPIO.cleanup()
def fwd(sleep_time):
GPIO.output(m1_fwd,GPIO.HIGH)
GPIO.output(m1_rev,GPIO.LOW)
GPIO.output(m2_fwd,GPIO.HIGH)
GPIO.output(m2_rev,GPIO.LOW)
time.sleep(sleep_time)
GPIO.cleanup()
def rev(sleep_time):
GPIO.output(m1_fwd,GPIO.LOW)
GPIO.output(m1_rev,GPIO.HIGH)
GPIO.output(m2_fwd,GPIO.LOW)
GPIO.output(m2_rev,GPIO.HIGH)
time.sleep(sleep_time)
GPIO.cleanup()
def right(sleep_time):
GPIO.output(m1_fwd,GPIO.HIGH)
GPIO.output(m1_rev,GPIO.LOW)
GPIO.output(m2_fwd,False)
GPIO.output(m2_rev,False)
time.sleep(sleep_time)
GPIO.cleanup()
def left(sleep_time):
GPIO.output(m1_fwd,False)
GPIO.output(m1_rev,False)
GPIO.output(m2_fwd,GPIO.HIGH)
GPIO.output(m2_rev,GPIO.LOW)
time.sleep(sleep_time)
GPIO.cleanup()
def get_distance():
GPIO.setup(trip,GPIO.OUT)
GPIO.setup(echo,GPIO.IN)
GPIO.output(trip,GPIO.HIGH)
time.sleep(0.000015)
GPIO.output(trip,GPIO.LOW)
while not GPIO.input(echo):
pass
t1 = time.time()
while GPIO.input(echo):
pass
t2 = time.time()
return (t2-t1)*34300/2
def turnaround():
GPIO.setup(red_left,GPIO.IN)
GPIO.setup(red_right,GPIO.IN)
while GPIO.input(red_left) and GPIO.input(red_right)==0:
rev()
if GPIO.input(red_left)==1:
left(1)
else:
right(1)
GPIO.cleanup()
while True:
distance = get_distance()
time.sleep(0.5)
if distance > 20:
fwd()
elif distance == 20:
stop()
else:
stop()
turnaround()
1
9hills 2016-06-03 07:03:16 +08:00
def fwd(sleep_time)
if distance > 20: fwd() 调用 fwd 的时候要传参数啊,错误提示说的比较清楚了。 |
2
xspoco 2016-06-03 07:08:53 +08:00 1
树莓派竟然不是用来吃灰,差评!
|
3
qsun 2016-06-03 07:11:04 +08:00
智障小车
|
4
Perry 2016-06-03 07:19:13 +08:00
建议把英语学学好,这样错误提示就能看懂了
|
5
loading 2016-06-03 07:36:18 +08:00 via Android
TypeError: fwd() takes exactly 1 argument (0 given)
如果楼主看不懂,去学英语! 能看懂,去学做人。 |
11
ProfFan 2016-06-03 08:39:01 +08:00
第一个明显是端口不对,或者 GPIO 模式不对。 LZ 可以先去官方 wiki 看看硬件,还有 doc 。小问题不要伸手。
|
12
messyidea 2016-06-03 08:53:26 +08:00 via Android
看标题我还以为小车遇到蛇了。。
|
13
ChinoMasker 2016-06-03 09:04:57 +08:00
@messyidea 哈哈哈哈哈哈哈哈哈
|
16
busfool 2016-06-03 10:04:25 +08:00
我去我们组也有人研究这个
|
17
Patrick95 2016-06-03 10:51:17 +08:00
智障小车萌到我了
|
18
nobodybutme 2016-06-03 11:49:53 +08:00
while True 里的 fwd (), stop()要带参数, turnaround 函数中 rev() 也要带参数。
|
19
subdued 2016-06-03 11:55:07 +08:00
别人家的小白和我是小白,别人家的能做小车,我还在研究元组到底怎么回事
|
20
julyclyde 2016-06-03 12:01:46 +08:00
RuntimeWarning 为什么叫编译错误?
|
21
morning 2016-06-03 12:14:09 +08:00
你这 智障小车 距离大于 20 的时候可以往前走多久?
看起来数填错了就真变 智障小车 的样子~ (原谅我只是想用一下 智障小车) |
25
windfarer 2016-06-03 12:59:24 +08:00 via Android
智障小车。。嗯
|
26
mdzz 2016-06-03 13:05:27 +08:00
给 sleep_time 参数加上默认值
|
30
HypoChen 2016-06-03 13:36:19 +08:00
所以说 python 是最大的障喽 (手动斜眼
|
31
ihciah 2016-06-04 02:36:43 +08:00 via iPhone
这标题好奇怪…………
|
34
NullMan 2016-06-04 10:00:25 +08:00
@loading 不是你的错. 用不着妥协. 麻痹这么简单的错误提示都不好好看, 都来 V2EX 乱问, 麻痹标题都不取好.
|
35
NovemberEleven 2016-06-04 11:40:04 +08:00
我第一眼也看成智障了
|
36
coldcoder 2016-06-04 14:28:52 +08:00
你都知道是编译错误了…………哎
|
37
SuT2i OP @NullMan 谢谢你的建议~发帖是来这里问下前辈们。也没有恶意…之前熬夜太多了,有点反应不过来,第一次技术提问帖…下次会注意的!
|
38
irgil 2016-06-05 13:02:59 +08:00
这是编译错误吗。。。。你看错误提示说得这么清楚。。。
|
39
pierre1994 2016-06-06 11:26:03 +08:00
这错误确实够低级的 ==
|
40
SuT2i OP @pierre1994 跪…别吐槽我了ಥ_ಥ
|
41
ResponYan 2017-12-17 22:29:10 +08:00
楼主问题解决了吗?
|
42
ResponYan 2017-12-17 22:29:48 +08:00
可不可以请教楼主几个问题
|