制作难度:三星
编程体验:Python
制作耗时:约1小时
立马感受
先来感受一下这辆小车。在家里选一个空旷点的地方,小车会随机乱跑到一个位置,然后等你来投篮。如果投篮投中它就会换一个地方再继续,超过5秒没投中,它就会播放鄙视的声音走开。
材料与工具
以下为所需材料,手工制作时间大概1个小时。
材料 | 数量 | 说明 |
---|---|---|
小龟小车 | 1辆 | |
小龟小车结构件 | 2个 | 用于固定超声波 |
红外测障传感器 | 1个 | 用于识别球进框 |
超声波模块 | 1个 | 乱走的时候用于识别障碍物, 不会碰撞 |
无源蜂鸣器 | 1个 | 用于发出声音 |
M3铜柱和螺母 | 4个 | 用于垫高纸板篮筐, 也可以用纸板代替 |
杜邦线 | 9根 | 用于延长传感器 方便安装到正确的位置 |
硬纸板 | 1张 | 可以用快递盒、包装盒代替 |
胶枪/双面胶 | 1个 | 用于固定纸板和传感器 |
制作过程
我们先来欣赏一下小车的各个角度照片,方便小伙伴对小车有个整体印象,然后再开始制作。
第一步:安装超声波模块
使用小龟小车结构件将超声波模块安装固定在车头超前方向。这个安装过程在小龟以前分享的视频里可是经常出现的。
超声波传感器的连线如下:
超声波的VCC管脚连小车的3V3管脚;
超声波的GND管脚连小车的GND管脚;
超声波的Trig发射管脚连小车的A2管脚;
超声波的Echo接收管脚连小车的A1管脚;
提示:连接完成后,可以用图形编程测试一下传感器是否正常工作。
第二步:制作投球魔盒
用硬纸板剪出纸盒底,留一个走线孔;将竖立面粘到底面上固定
小车扩展孔上安装四根铜柱,将纸盒车尾竖立面沿中上部打开后安装到铜柱上。要是小伙伴家里没有铜柱,则可以直接用硬纸板再做些小盒子把上面这个纸盒垫高垫平即可。
第三步:安装红外测障传感器
假如小伙伴们手上的红外传感器两个灯管是超前的(如下图最左边),那么需要先调整一下探测头的方向,用手轻轻的把传感器探头扳过来就可以了。
然后安装到纸盒右侧内壁(用胶带贴牢即可,记得漏出调节旋钮),引出连接线,连线方式如下:
红外传感器的VCC管脚连接小车的3V3管脚;
红外传感器的GND管脚连接小车的GND管脚;
红外传感器的OUT管脚连接小车的D2管脚;
然后我们拿一个球来调教一下红外传感器,从盒子的各个角落把球放入盒子,看看红外传感器有没有反应。如果没反应,那么旋转调节旋钮试试。有些角落是探测死角,是怎么调节都探测不到的,那么我们在第四步来解决盒子的死角。
第四步:处理盒子的死角
因为红外传感器有距离限制,所以肯定会存在死角。在这一步我们做一些斜坡纸板把死角位置给填充掉。
这样一旦小球落入死角区域,会顺着斜坡纸板滚到可以被探测到的区域。
安装好斜坡纸板后,记得测试一下,是不是盒子已经没有死角了。
第五步:安装无源蜂鸣器
如图将蜂鸣器固定到魔盒上,连线如下:
蜂鸣器的S信号管脚接小车的D1管脚;
蜂鸣器的-接地管脚接小车的GND管脚;
连号线以后,可以用图形编程来调试一下蜂鸣器。
这样整个投篮小车就做完了,再给它贴点修饰画打扮一下。
玩法代码
下面就是这个玩法的范例代码,小伙伴们可以根据自己的喜好去调整代码。当然也可以直接体验。
import time, random
car.speed(9999) #最大速度
#播放准备好了提示动作
car.buzzer.music(D1, "1234567")
car.hello()
sleep(0.1)
#等球
def wait_ball():
t0 = time.time()
while time.time() - t0 < 5:
ball = car.D2()
if ball==0:
car.buzzer.music(D1, "33333")
car.hello()
sleep(0.1)
return
#播放失败的声音
car.buzzer.play(D1, 2000, 0.5)
#随机去个地方(碰撞会调头)
def go_away():
car.left(random.randint(5, 15)/10) #随机旋转
for _ in range(random.randint(5, 15)): #随机长度直走
d = car.hcsr04(A2, A1)
if d and d < 20:
car.back(0.5)
sleep(0.1)
car.right(0.3)
sleep(0.1)
car.go(0.1)
#大循环
while True:
wait_ball()
sleep(0.1)
go_away()