所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
极品飞车(山寨)警车版
LYon LYon 2019-05-15 17:55:37
1
0
简单
projectImage

    我为这个比赛其实投入了很多的时间和精力,不幸也踩了许许多多个坑。我本来设计的是想做一个象DFRobot的Vortex一样的多功能玩具机器人,结果发现Micro:Bit硬件资源资源不够,连几百行的主控程序代码都跑不起来。好吧,只有把每个主要的功能分别用独立的程序来做了。于是我连换了多个不同的项目方案,可每个方案程序都不能完全实现我想要的效果。我设计的程序方案主要有: 

玩具总动员 - 多功能遥控车(主控代码基本完成,多个功能集成时资源不足)

速度与激情 - 调速自动循线(基本完成,现改为极品飞车(山寨)警车版) 

如影随行 - 跟随行走(没意思效果不好放弃) 

家园防线 - 扫地机器人(磁场传感不稳定放弃)

碟影重重 - 手机摄像轨道车(需增加外部配件还未做)

全城搜捕 - 警车走迷宫(基本完成,和循线的代码不一样) 

的士速递 - 优化路径走迷宫(时间来不及还未做)

    此外我还做了给这些方案相配套的传感器自检程序、黑线检测自适应程序、爆闪警灯警报器(多线程)等程序,这一些程序转成源码加起来估计远超过1000行了。做下去才知道,原来每个功能单独实现也都有问题,主要是Mind+扩展库中的彩灯库、超声库、红外库、多线程库之间许多莫名其妙的冲突和不稳定。有的即使能运行起来,效果也强差人意。其实为我总共做的程序肯定超过了20个,绝大多数程序是因为Midn+打开原来运行正常的文件出错或者运行不正常而不得不重新编写的。其中我有个人能力问题,也有Micro:Bit硬件资源的问题,还有Mind+以及DF库文件还不完善的问题,也还连累了DF的李工多天熬夜加班帮我解决问题。 

    眼看时间到了比赛期限最后一天了,只能选其中一个简单点的循线程序来继续完善加点声光效果吧。在赛道的选择上,我选了网上比较流行的四循线传感专用高难度赛道地图。因为库以及硬件资源问题,不得不放弃了本来设计的炫酷多灯变幻爆闪警灯效果,也无法实现狂拽的连续变调警笛。

    暂时也只能这样了,以后有时间再完成那些未实现的麦昆梦吧。


projectImage

从网上下载的巡线赛道地图,因为我的环境限制,没法做象这个地图一样大的尺寸,临时在一个箱子上用黑胶带贴了个小地图,转弯尺寸变小更是增加了小车的循线难度。


步骤1 步骤1
主循环程序

循线策略:因为麦昆只有两个数字量红外循线传感器,无法实现其他小车有3-5个线性模拟循线传感器那样的高精确度小车行走路线控制,而且这两个传感器的距离比一般做黑线用的黑色电工胶带还稍窄点,本来是设想让这两个传感器同时覆盖黑线的方式行走,不过加入声光效果后程序的响应速度严重下降,有点来不及及时修正路线。于是采用了右传感器一直在黑线,左传感器在黑线左侧的方式行走。当检测左右传感数据不一样的时候优先判断左传感器是否在黑线上,如果在黑线则依次通过降低左轮速度、左轮停转、左轮倒转来向左修正路线,否则直行。

projectImage
projectImage
projectImage
步骤2 步骤2
按键检测

当按下Micro:Bit的A按键时,可以减小小车行驶速度,按B键增加小车行驶速度。

projectImage
步骤3 步骤3
警灯警报器效果

最闹心的是这个警灯警报效果,无法采用我单独警灯警报程序里的多线程代码,老是出现死锁问题。好啦,我投降,不用多线程了,这样一步步妥协最终只能做个单调的双灯双音交替的仅仅意思一下的山寨版警车了。

projectImage
步骤4 步骤4
结束函数

END函数是小车检测到终点标志后执行的代码,小车彩灯循环变化,同时演奏音乐。

projectImage
材料清单 材料清单
1x
麦昆: micro:bit教育机器人 V3.0
1x
micro:bit 编程入门开发板
1x
18650锂电池

最后给大家看看我用多线程程序单独做的警车效果(依然无法做连续变调音):

还有麦昆最高速度走迷宫基本路口测试

Makelog作者原创文章,未经授权禁止转载。
1
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]