手机蓝牙遥控循迹寻光重力感应全功能 STM32 小车

2016-05-09 20:56:19 +08:00
 hongfeiyu

很多设备调试,程序编写都是自己一个人一行一行一根线一根线调试出来的, 从中体会到了很多酸甜苦辣。其中调试小车让其识别拐弯与平时的轻度弯曲的直线之间的区别是最让人痛苦的,不过小车最后还是跑出了全专业最快的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

Android 遥控程序

这个是工程量比较大的一个项目,程序都是自己写的,这里把源代码也开源了:https://github.com/hongfeiyucode/Car_remote_control

最后的程序大致界面,基本是重新改写了一遍。后期还加了重力感应这一功能。

操作说明:

重力感应模式

重力感应遥控说明:

PS :别忘了 star 或者 fork 一下我的程序哦

2920 次点击
所在节点    程序员
9 条回复
sennes
2016-05-09 21:53:58 +08:00
Sensor 没选好所以导致可能在算法上需要多下功夫。
hongfeiyu
2016-05-09 22:07:28 +08:00
@sennes 传感器是配发的,这可不能选哦
sennes
2016-05-09 22:10:04 +08:00
刚刚不小心点了发送。不好意思。

对于做硬件项目给几点建议:

1. 且不说功能如何 外观可以花点心思。 最低标准是,线不要凌乱的裸露在外。
2. 开发前期应该先调研一下传感器。 您用几路普通传感器,但是采样的点和精度都不够好,会导致你的成果表现不会特别出色。
3. 有条件的话尝试学习一下绘制 PCB 。像您这样的项目到了最后期就没有必要使用最小系统+模块的方式了。而且画集成的板子难度也不是特别高,能学到东西。
4. 您软件这边做的还是不错的
sennes
2016-05-09 22:11:45 +08:00
@hongfeiyu 嗯 因为不知道你们题目
不过感觉您挺有天赋的,如果多花点心思在外观和一些细节方面。会对您就业以后做研发带来不少好处。(如果打算做硬件这块的工作的话)
hongfeiyu
2016-05-09 22:21:29 +08:00
@sennes 碰到专业的大神了_(:з」∠)_
其实我只是玩一玩的,也就接触了几周,自己瞎捣鼓的
大神轻喷轻喷
硬件方面确实只是因为平时自己动手多所以做起来不是很麻烦
但是还是希望自己首先要不断不断地提高自己的编程水平
sennes
2016-05-10 00:00:53 +08:00
加油
xmoiduts
2016-05-10 07:10:06 +08:00
请问大神,安卓要用多长时间学?最近想做个 arduino 调速风扇,想要接入手机做个第一印象好些的界面,对 java 和安卓 0 基础。 arduino 那边蓝牙倒是没啥问题。
kobe1941
2016-05-10 09:51:20 +08:00
STM32 ,好熟悉的名词,当年在大学也是玩单片机焊电路板

已转行互联网,不解释
hongfeiyu
2016-05-10 13:03:31 +08:00
@xmoiduts 学的话一个月差不多就能写出来这种程序吧,我觉得,每个人情况不一样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/277444

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX