
小白第一次上手 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.setmoe(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 年 6 月 3 日 def fwd(sleep_time) if distance > 20: fwd() 调用 fwd 的时候要传参数啊,错误提示说的比较清楚了。 |
2 xspoco 2016 年 6 月 3 日 树莓派竟然不是用来吃灰,差评! |
3 qsun 2016 年 6 月 3 日 智障小车 |
4 Perry 2016 年 6 月 3 日 建议把英语学学好,这样错误提示就能看懂了 |
5 loading 2016 年 6 月 3 日 via Android/span> TypeError: fwd() takes exactly 1 argument (0 given) 如果楼主看不懂,去学英语! 能看懂,去学做人。 |
11 ProfFan 2016 年 6 月 3 日 第一个明显是端口不对,或者 GPIO 模式不对。 LZ 可以先去官方 wiki 看看硬件,还有 doc 。小问题不要伸手。 |
12 messyidea 2016 年 6 月 3 日 via Android 看标题我还以为小车遇到蛇了。。 |
13 ChinoMasker 2016 年 6 月 3 日 @messyidea 哈哈哈哈哈哈哈哈哈 |
16 busfool 2016 年 6 月 3 日 我去我们组也有人研究这个 |
17 Patrick95 2016 年 6 月 3 日 智障小车萌到我了 |
18 nobodybutme 2016 年 6 月 3 日 while True 里的 fwd (), stop()要带参数, turnaround 函数中 rev() 也要带参数。 |
19 subdued 2016 年 6 月 3 日 别人家的小白和我是小白,别人家的能做小车,我还在研究元组到底怎么回事 |
20 julyclyde 2016 年 6 月 3 日 RuntimeWarning 为什么叫编译错误? |
21 morning 2016 年 6 月 3 日 你这 智障小车 距离大于 20 的时候可以往前走多久? 看起来数填错了就真变 智障小车 的样子~ (原谅我只是想用一下 智障小车) |
25 windfarer 2016 年 6 月 3 日 via Android 智障小车。。嗯 |
26 mdzz 2016 年 6 月 3 日 给 sleep_time 参数加上默认值 |