小龟投篮车

制作难度:三星

编程体验: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()