热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

记录一下我的蓝牙遥控小车

上班一族,马上奔四了,爱读书,爱科学,喜欢探索。自从接触了单片机,就发现了通往新世界的大门,这个

上班一族,马上奔四了,爱读书,爱科学,喜欢探索。
自从接触了单片机,就发现了通往新世界的大门,这个世界太有趣。从此开始捣鼓单片机,玩过传感器如DS18B20采集温度,BMP280采集温度和气压,显示海拔,DS1302采集时间,超声波测距等等。然后留下一大堆电子元件。(此处应该有个捂脸哭笑不得的表情)
做个车吧,动动手,动动脑,也挺不错的。有了想法就着手开始。在淘宝上看了一下,有现成的底盘可用,只需要自己设计单片机及控制电路。但似乎都不太满意,有的嫌小,有的嫌贵,有的嫌不好看。于是只有自己想设计方案,自己淘零件。最后留下一大堆电机,齿轮,各种塑料零件,螺栓螺帽。(此处应该有个捂脸哭笑不得的表情)
其实自己做的车更难看,自己喜欢就行。下面上图
图一 整体观感
在这里插入图片描述
由于自己做,就很随意,也很迷茫。(我是不是该做个外壳??)


1、驱动方式选择

刚开始的想法是裸电机,套齿轮驱动后轮,后轮由一根轴连接,轴中间套一个大齿轮。这种方式,要求电机的位置和齿轮的大小必须精确,不然齿轮啮合太松或者太紧都不行,失败。第二种方法是后轮仍然由一根轴连接,轴中间套皮带轮,这样的话电机的位置不用太精确,表现出来也就是皮带的张紧程度不同而已,减速比较小。试了一下,能跑,不过皮带太容易掉了,失败。最终采用了大家用得比较多的一种方法,减速电机直接驱动后轮。如下图
图二 后轮驱动及370减速电机分立零件 图三 后轮效果图
在这里插入图片描述


2、车架选择

最初买的网上的PVC板,有很多孔,要根据PVC板的孔去对其他零件的尺寸,完全对不准。最后自己找了个有机玻璃板子,比较厚,自己设计打孔(没有图纸,图纸在自己脑袋里,脑袋是乱的,所以导致打了很多无用的孔,千疮百孔)。舵机那个方孔,用手钻捣鼓半天,钻大了,居然。不严谨,不严谨。


3、前桥选择

自己脑袋里想了很多种方法,都不成功。最后友人提醒用舵机,那就去了解舵机 吧。发现舵机还真有意思。舵机需要拉杆,拉杆这种东西只有汽车模型上用,以前从来没有接触过,尺寸也不好选,舵机位置也不好确定。(要是事先有设计图纸就好了,可惜我做不来,都是脑袋想到哪做到哪)拉杆是买回来了,怎么拉,拉什么地方?又犯难了。前轮虽然没做驱动(要做驱动会更麻烦,自己能力有限,就不做了),但是总得有动静结合点吧,轴承是个好东西。轴承中间套轴,是运动部件,轴承外面应该是静止部件,这个静止部件到底应该是个什么形状的部件,脑壳完全是空的。只有不停地刷淘宝,最后终于让我淘到一样东西。如下图
图四 魔方六通与前轮连接在这里插入图片描述
白色的塑料件,我叫它魔方六通,中间是封闭的,还需要自己打孔,稍微歪了一点儿,将就吧。这样就可以不用轴承了,反正不锈钢轴跟塑料件摩擦又摩不坏,不需要保修三年或者10万公里。然后,拉杆拉的地方也又着落了,如下图:
图五 舵机与拉杆连接
在这里插入图片描述
长拉杆两端球头中心的距离,要几乎等于魔方六通的距离,也就是上下两个蓝色塑料片倒数第三个孔之间的距离。这个着实不易,这些都是在网上东拼西凑的零件,又不是专门为我生产的。最后看来,还真是完美。长拉杆和魔方六通连接好后,前转向轮就同步了。短拉杆一端连接舵机摆臂,一端用一个轴套连接长拉杆,通过调整轴套与长拉杆的位置来调整前轮回正的方向。完整的前桥转向系统如下图:
图六 前桥与转向系统
在这里插入图片描述


4、控制方法选择

真正的核心部分来了。首先是单片机的选择,STC12C60S2,足够了。电源选择12V的,用三节18650锂电池串联实现,作为动力电,再用LM7805降压至5V供单片机用。两个H桥驱动动力电机,可前进和后退。单片机控制舵机转向更不在话下了。电路板都做好了,电子元件也焊好了,编程实现了,最后随着换车架,这个电路板也作废,准备尝试一下L298N电机驱动模块,这样单片机电路就更简单了。
大概说一下电路板自制过程,有很多方法。我的方法是,用立创画出原理图–PCB布线—打印到油纸上—热转印到覆铜板上–化学腐蚀掉多余的铜–碳下面保留的铜即是需要的电路板–钻孔—电子元件焊接
图七 电路板
在这里插入图片描述
编写程序,实现两个功能。第一,手动控制模式,手机上装了个蓝牙APP,可连接JDY-31蓝牙芯片,控制小车前进、后退、左转、右转,加速、减速。第二,循迹模式。安装了两个循迹模块。
图八 电路板连接
在这里插入图片描述
线太乱了,不美观啊。
图九 循迹模块
在这里插入图片描述

图十 手机APP界面
在这里插入图片描述
最后是电池,六节18650锂电池,三节串联,再并联,增大容量。放到最上面,有一个锂电池保护板,还有个电量监控模块。
在这里插入图片描述
最后大功告成,自娱自乐一下。借此平台,纪念一下自己曾经的历程。希望有同志之人,批评指正,多多交流。


推荐阅读
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 距离11月的软考还有不到五个月的时间,考试将于11月5日至6日举行。许多朋友对软考的具体情况还不太了解:它是什么?有何用途?本文将为你详细解答。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 如何查找和管理计算机中的C盘临时文件
    本文详细介绍了如何在计算机中找到和管理C盘的临时文件,包括其具体路径、环境变量设置方法以及清理这些文件对系统性能的影响。对于希望优化系统性能和释放磁盘空间的用户来说,这是一篇非常有价值的参考。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
author-avatar
回味的微笑_184
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有