
小白第一次上手 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) ifdistance > 20: fwd() 调用 fwd 的时候要传参数啊,错误提示说的比较清楚了。 |
2 xspoco 2016-06-03 07:08:53 +08:00 树莓派竟然不是用来吃灰,差评! |
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 Hyponet 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 可不可以请教楼主几个问题 |