关于stm32的智能车硬件设计_stm32小车前进程序

关于stm32的智能车硬件设计_stm32小车前进程序目录1.硬件整体逻辑二级目录三级目录1.硬件整体逻辑二级目录三级目录

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

小车做完后是这个样子:
在这里插入图片描述

硬件整体逻辑

在这里插入图片描述

主控:

开始做小车的时候,手头只有一块F407的核心板,个人只是做着玩的,也没有考虑价格问题,干脆就直接拿来用了。其实F103c8t6的引脚资源和响应都是足够用的,也很便宜,推荐使用,如下图。
f103c8t6

底盘:

电机

博主个人住的是四驱的,底盘没接线时长成这个样子:
在这里插入图片描述
淘宝一搜就有很多同类的,买回来自己装上就可以。
当然,你也可以选择下面这种两轮的:
图片来源于网络,侵删 两种其实没有什么区别,不过相比第一种第二种一般价格更便宜,操作逻辑也简单,只需要控制后面两个轮子的正反转就可以实现小车的左右转向,前进后退,控制车速也只需要调两个电机就好(说人话就是第二种写代码简单)。而第一种正反转实现的方法是差速转向(这个我在同系列博客讲代码时候会说到),调速时候会需要同时考虑4个电机,不过四个电机速度不同就可以写出 花里胡哨 不同的运动方式,欢迎各位喜欢秀操作大佬的进行研究。
在这里插入图片描述
两种小车用的电机都是TT电机:一种直流减速电机,工作电压3-6V,控制电机引出两端高电平就可以实现正反转。一两元就可以买下来一个,非常适合个人diy,尤其适合新手,操作不当玩坏了损失也不是很大(真香)。

L298n电机驱动:

在这里插入图片描述
接线,使用方法如图所示。这个驱动可以驱动两个两相电机,也可以驱动一个四相电机。通过单片机控制逻辑电平就可以实现电机正反转,可以接四路pwm来调速,也可以直接两路pwm(一个电机对应一路pwm)。工作电压5v-35v都行,我个人用了两节18650锂电池,充满电后8V左右,带动毫无压力。
不过这个驱动问题也是很多,体积大,浪费空间;芯片发热严重 (小火炉警告);精度低,电流不稳定等。
同时安利另一款驱动TB6612FNG,散热和体积相比之下要好很多。
在这里插入图片描述

供电:

两节18650锂电池,电压充满后8v左右。
在这里插入图片描述
自己又焊接了一个简单的电路转接板:
在这里插入图片描述
六脚开关作为电路总开关,开关一侧直接与电池盒相连接,另一侧直接接到一个电源显示模块和直流降压模块上。有的六角开关接触不稳定,电源显示模块可以显示开关是否正确按下,以及电池剩余电量以判断是否应该及时充电等。降压模块用来将电源电压稳压到5V直接接在单片机5V引脚供电。为什么不直接降压到3.3V直接供电给单片机呢?这么做可能会导致GPIO输出模式下逻辑电压达不到3.3V,实测也就只有2.8V左右。
也可以选择下面的电源模块,12v电压输入,可以转成3v,5v,不降压三种输出。
在这里插入图片描述

外设功能:

电机测速:

码盘+红外光电对管,利用红外光的在码盘转动时的导通和gpio电平输入:
在这里插入图片描述

循迹功能(走s线,绕弯)

三个红外循迹模块,左中右各一个:
在这里插入图片描述

避障功能:

利用超声波避障,用到了图中看起来像一对眼睛的模块——HCSR04超声波测距模块。和sg90舵机接在一起,可以实现180度转动来检测左中右三个方向。
在这里插入图片描述

蓝牙遥控:

HC05蓝牙模块,一个蓝牙转串口的设备,配合手机或电脑蓝牙。没什么好说的:
在这里插入图片描述

高级功能:

小车信息的获取及显示:

采用mpu6050六轴加速度传感器获取信息,如俯仰角,加速度等。
配合屏幕,如oled,LCD等再将它们显示出来,这同时也可以作为小车初始化完成,成功启动的依据。

物体跟随,色块追踪等:

双轴舵机云台+视觉处理模块:
双轴云台实现上下左右的转动,给视觉模块获取信息提供良好位置。
视觉模块用的最多的就是openmv,但是我个人更加推荐K210这款,在性能,处理速度,帧率上都可以吊打openmv,价格也很亲民,就是内存比较少,数据一多可能会存储空间不足,但是据说有专业的压缩软件,不是很大的问题。

注:

作者后期会出相应的模块和个人代码讲解的博客,帮助大家减少踩坑
写作不易,如果大家觉得有帮助欢迎点赞和关注,您的点赞和关注也会成为我持续创作的动力,同时也方便您获取持续更新的博客讲解和开源代码,感谢你呀 ^ω ^
有疑问欢迎在评论区留言,有时间将为您做出回复

开源代码:

码云开源代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183945.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月10日 上午6:16
下一篇 2022年10月10日 上午6:16


相关推荐

  • 简述sealed关键字_java field

    简述sealed关键字_java fieldsealed的中文意思是密封,故名思义,就是由它修饰的类或方法将不能被继承或是重写。sealed关键字:在类声明中使用sealed可防止其它类继承此类;在方法声明中使用sealed修饰符可防止扩充类重写此方法。相当于Java中的final类和final方法密封类:密封类在声明中使用sealed修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。在哪些场合…

    2025年8月15日
    4
  • 永恒之蓝(MS17010)漏洞kali使用MSF进行漏洞复现

    永恒之蓝(MS17010)漏洞kali使用MSF进行漏洞复现永恒之蓝是指2017年4月14日晚,黑客团体ShadowBrokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序今天就来利用KALI进行漏洞的复现实验准备:1.win7靶机(未打补丁):192.168.1.1412.kali攻击机:192

    2022年5月9日
    408
  • OpenClaw隔夜失忆解决方案

    OpenClaw隔夜失忆解决方案

    2026年3月13日
    14
  • SQL 从查询结果里查询[通俗易懂]

    SQL 从查询结果里查询

    2022年3月6日
    94
  • isNotBlank_participate用法介绍

    isNotBlank_participate用法介绍isNotEmpty将空格也作为参数,isNotBlank则排除空格参数StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用Str

    2022年8月12日
    8
  • xAI和Grok为“可怕的行为”道歉

    xAI和Grok为“可怕的行为”道歉

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号