很多设备调试,程序编写都是自己一个人一行一行一根线一根线调试出来的, 从中体会到了很多酸甜苦辣。其中调试小车让其识别拐弯与平时的轻度弯曲的直线之间的区别是最让人痛苦的,不过小车最后还是跑出了全专业最快的10 秒 /圈
的速度。
PS:此文中的小车的
循迹程序
,寻光程序
,Android 遥控程序
,重力感应程序
,循迹与寻光自由切换程序
已全部上传至网上。
小车最终外观
处理器用的是STM32F4
后面两个轮子为驱动轮,前面一个轮子为从动轮
GIF 演示
这只是初期程序的效果,考核的时候已经不会在直线上扭来扭去了。但其实有的人的车不调也能到达差不多的效果,但无奈我的两个马达转速差别太大,调节也无法完全走直线。所以必须用程序做到将其完全可控。
并且程序在检测到需要转弯时两个轮子是一前一后地转动,能够以最大限度的提供动力使车身转向并且还在直线上,当检测到转过的角度到达时车会立即继续向前开动。
最终程序源代码:https://github.com/hongfeiyucode/find_way_car
这架在上面的是就是寻光传感器,最后考核很是蛋疼,很多人写的程序直接就是转 180 度然后car_forward()
检测到光直接停下,这种当然是最快的,但是因为前面说过的我这小车无法直行最后跑的不是很快。
但是程序的逻辑还是很具有参考价值的: https://github.com/hongfeiyucode/find_light_car
这个主要是利用芯片上的一个按钮将其进行程序之间的切换。程序检测一个值,检测这个键是否按下,还有什么时候弹起,来达到两个程序之间切换的功能。
这样相当于一个程序完成了两个程序的功能!
也另外写了一个程序,程序还是很简洁明了的: https://github.com/hongfeiyucode/car_find_way_and_light
这个是工程量比较大的一个项目,程序都是自己写的,这里把源代码也开源了:https://github.com/hongfeiyucode/Car_remote_control
最后的程序大致界面,基本是重新改写了一遍。后期还加了重力感应这一功能。
操作说明:
打开蓝牙
查找蓝牙设备
右下角的按钮
可以切换重力感应与键盘操作模式重力感应遥控说明:
PS :别忘了 star 或者 fork 一下我的程序哦
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.