每个男孩都有一个机器人的梦,这个梦也许就是从第一次玩遥控汽车玩具开始的。只是那时的男孩还不能够明白,神奇的小车为什么能够按照自己的指令行动,随着知识的增长,他开始明白了一个叫做电磁波的东西传递这其中的指令。如果把这其中的东西拆解,会发现其实并不难以理解。现如今,我们可以自己打造一个功能更加强大,更加“智能”的遥控小车,所需要的只是简单的写几句代码而已。我们有什么理由不开始动手呢。

使用树莓派打造的的智能小车就是这样一个功能强大的遥控小车。你可以加装任何你需要的传感器升级小车的功能,比如,躲避障碍,探测前方目标距离等等。你也可以使用更加厉害的语音识别和图像识别算法使它更加高大上。我在这个系列的教程里面会详细记录智能小车功能不断升级的过程,如果你有兴趣,可以按照我的记录一步一步耐心细致的实现。

当然,在实际制作过程中,由于使用的设备、编程环境并不一致,也许会遇到各种各样的“意外”,使你并不能完全按照我所记录的一步步顺利走下去,不过没关系,我本人也是从最简单的功能开始,一步步不断提高复杂度。如果遇到困难实在没法解决,可以在评论里留言,或者请教你周围的高人。另外网上也有很多类似的教程,遇到问题的时候,也可以搜索参考。

实现智能小车的方式有很多种,开发工具和语言也是五花八门。我这里记录的是我的实现历程,所以一切开发工具和语言都以我熟悉的为主,适当会提及一下其他开发环境的配置。

以下是功能清单

初级
1、LED灯控制(亮度调节,闪烁频率调节)
2、小车转向控制

中级
1、使用红外避障传感器躲避障碍
2、使用巡线传感器寻黑线轨迹
3、使用超声波距离传感器探测前方目标距离
4、使用人体红外传感器监测人体位置
4、搭载摄像头并回传实时图像
5、打造摄像头云台
6、加装机械臂并对其进行控制

高级
1、智能语音控制(使用麦克风,手机APP或者微信传递语音指令)
2、使用摄像头进行人脸识别
3、使用深度学习算法进行目标检测
4、目标追踪并自动响应

我把功能分为三个级别,它们所需要的知识背景要求也是递增的。初级功能足够简单,也许高中生就可以轻松实现。而高级功能由于涉及到一些人工智能的知识,需要至少本科毕业才能够掌握(如果你是天才少年,就当我什么都没说),尽管我用的也是一些开放平台的API,并没有涉及到核心算法。但要实现起来,也需要掌握足够多的计算机编程知识。

自己实现智能小车是很有意思的事情,通过这一过程,普通人都可以了解各种各样的传感器和电路知识;科技爱好者也可以用人工智能算法实现一些实实在在的东西,而不仅限于大而无当的概念宣传;学生们可以通过这个完成毕业设计课程(并不仅限于我提到的功能,可以扩展更多功能);而爸爸们也可以手动打造一个小玩具给自己的孩子,比起从市场上买的那些成品,这个是不是更有纪念意义呢?

技术每天都在突飞猛进的发展,此功能清单也许会更新。如果你有更好的建议和想法,欢迎交流。

系列目录:

《手把手教你打造智能小车(0)-写在前面的话》

《手把手教你打造智能小车(1)-树莓派及其使用配置》

《手把手教你打造智能小车(2)-点亮 LED 灯》

《手把手教你打造智能小车(3)-小车跑起来》

《手把手教你打造智能小车(4)-使用传感器自动避障》

《手把手教你打造智能小车(5)-使用舵机打造摄像机云台》