概述
在此之前最好是学过一些STM32单片机知识。
本文内容针对于初学者,请大佬勿喷勿笑。
修改日志:
2022/8/28
修改文章结构,原计划的多篇文章介绍,改为一整篇介绍。
填充了一些内容。
本文目录
- 前言
- 材料准备
- 一、硬件
- 二、软件
- 前期知识储备与试验
- 一、用STM32让电机转起来(L298N或TB6612)
- (一)、两种常用的电机驱动的简单了解
- 1. L298N
- 2.TB6612
- (二)、驱动电机代码
- 1.说明
- 2.代码部分
- 3.以上代码对应的接线
- 二、手机通过蓝牙与小车通信
- (一)、配置蓝牙模块
- (二)、手机通过蓝牙与单片机通信
- 三、麦科勒姆轮的运动分析
- 开始上手
- 完成 >v<
- 总结
前言
制作一个小车。对于有的同学来说是一件轻轻松松的事情,但有的同学却一脸懵逼,不知道如何下手,这篇教程将会教会你如何制作一辆手机遥控的麦科勒姆轮小车。
由于麦科勒姆轮轮胎结构的特殊性,对于已经完整制作过普通小车的同学来说,制作一辆麦科勒姆轮小车的关键点就在对其的运动分析。
制作一个小车对于有的同学来说那简直是so easy!但是,我并不觉得它就是那种只动动手指就可以完成的事情,想要从无到有的完成一个完整的项目,除了需要具备一定的专业知识外,还需要知道如何将他们融会贯通,考虑周全又恰到好处。比如,有的同学画车板由于没有考虑一些细节导致模型改了一次又一次,又例如有的同学由于电路设计的不合理导致短路烧芯片的,等等一些都是需要我们去注意的。
材料准备
一、硬件
1.stm32c8t6单片机。片上资源完全够用
2.HC_05或者HC_06。建议05吧,感觉好配置一些,反正我配置06是奔溃了的>_<。
3.车板,电机,轮胎。去tb买吧,不到一百块钱,有的都是配好的配件。当然有条件的可以激光切割或者3D打印什么的>o<。
4.电机驱动。我用的是四路的L298N驱动模块,虽然有一点不小巧,但是功能多,是真的香。
5.电源。我用的是航模电池。
6.下载器。我用的是st_link。
7.杜邦线若干
二、软件
1.keil软件。这个应该是必备。
下面链接是一些可能用到的软件,有需要自取,代码可能后续添加。
链接:https://pan.baidu.com/s/1rdvt8SEETCotwg3Ba0DWEQ
提取码:a8jw
前期知识储备与试验
一、用STM32让电机转起来(L298N或TB6612)
本节学习驱动模块的使用方法,并且让小电机转动起来。
这里介绍两种常用的电机驱动模块,L298N和TB6612。下面会有对着两种驱动模块的简单介绍,另外也附上相关资料的链接,如果看完我的不明白可以点进去链接查看详情。
提示:这里介绍两个我常用的电机驱动(L298N和TB6612),用这两个常用的电机驱动来让小电机转起来。
(一)、两种常用的电机驱动的简单了解
1. L298N
L298N驱动的说明大概如下,可以对应自己的驱动看看。
IN1,IN2,IN3,IN4依次分别对应OUT1,OUT2,OUT3,OUT4
ENA对应IN1和IN2的使能。
ENB对应IN3和IN4的使能。
用一个电机接线说明: OUT1,OUT2接直流电机电机两根线,IN1,IN2接单片机的两个IO口,驱动供电方面看自己的电源电压而定。小于5V接5V和GND,大于5小于12V接12V和GND。
看不太明白进去链接看看
参考资料:
链接: L298N、电机、单片机的线路连接.
链接: L298N电机驱动模块详解
链接: stm32单片机驱动L298N模块
2.TB6612
这个模块还比较简单,使用也和L298N类似,网上资料挺多的,这里不介绍了,下面附上一个讲的还不错的文章链接。
链接: TB6612使用说明,使用方法,引脚图,实物图
总的来说两个驱动模块使用方式大同小异,会一个的使用其他基本触类旁通了。
(二)、驱动电机代码
1.说明
单片机我用的是stm32f103c8t6,用其他型号单片机同样适用。
实现逻辑为,使能两个IO口,使其分别输出高低电平,来使驱动输出高低电平,从而使电机转动。给驱动的供电电压大小决定了电机转速的快慢。但是不能超过其供电最大值,防止把自己中伤。
2.代码部分
#include "stm32f10x.h" // Device header
void Motor_Init(void)// 初始化两个IO口PB12,PB13
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13);//保证两个IO口开始时为低电平
}
int main()
{
Motor_Init();//初始化IO口
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12);//将PB12置低电平
GPIO_SetBits(GPIOB,GPIO_Pin_13);//将PB13置高电平
}
}
3.以上代码对应的接线
将PB12,PB13分别接在IN1,IN2(或AIN1,AIN2)。
如果正常我们将会看见电机转动。
二、手机通过蓝牙与小车通信
(一)、配置蓝牙模块
拿出你的hc05,按照如图所示连接线路,注意要接5V要不然电压不够,用不了。
然后用at指令配置蓝牙模块。链接: 蓝牙模块HC05
配置完成后,看看手机发送字符蓝牙能不能接受到并且传到电脑上。
(二)、手机通过蓝牙与单片机通信
待填充
三、麦科勒姆轮的运动分析
如图所示的车头方向。
前进,四个轮胎均向前转,四个轮胎单独的运动分析如图,可见车轮在横向的运动全部相互抵消,即横向运动为0。而每个轮胎在纵向的运动均向前,故车整体向前。
后退,同理。
向左平移,只用让B和C轮胎向相反的方向转动,然后使车整体纵向的运动抵消,和运动向左即可。
向右平移,同理。
左右旋转,则应用差速法来旋转。
这里可能解释的不是很好,另外更加具体形象的介绍可以去B站看看,有那种讲解的视频。
开始上手
待填充
完成 >v<
总结
待填充
最后
以上就是香蕉冰棍为你收集整理的【做一个简易的STM32蓝牙麦克拉姆轮小车】前言材料准备前期知识储备与试验开始上手完成 >v<总结的全部内容,希望文章能够帮你解决【做一个简易的STM32蓝牙麦克拉姆轮小车】前言材料准备前期知识储备与试验开始上手完成 >v<总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复