文章目录

  • 一、L298N驱动介绍
  • 二、麦克纳姆轮特点及其运动
  • 三、CubeMx配置
    • 1.RCC
    • 2.SYS
    • 3.GPIO
  • 四、代码

一、L298N驱动介绍

驱动部分介绍选https://blog.csdn.net/weixin_46758622/article/details/115804098?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162918592516780261966328%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=162918592516780261966328&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~times_rank-18-115804098.pc_v2_rank_blog_default&utm_term=%E7%9B%B4%E6%B5%81%E5%87%8F%E9%80%9F%E7%94%B5%E6%9C%BA+hal&spm=1018.2226.3001.4450


输出A(OUT1和OUT2):顺序无所谓,接通后可根据IN1,IN2或者IN3,IN4决定正反转
12V供电、供电GND:12V电源接口接12V电池正极,负极接地,同时一定要和单片机共地,尽量不要高于16V也不要低于8V,过高过低都可能会烧毁芯片。
5V供电:由于L298N电机驱动模块自带了稳压功能,可以供出5v电压,在以后的智能小车项目中,单片机的供电选择可以选这个。
通道A使能(EN1):这里的使能可以类比STM32的GPIO口和时钟配置,这是使能的意思就是让它开启工作状态。这个使能接口是用来控制PWM输入的,也就是说,如果单纯只想让电机转动起来,可以不用管EN1,把那个帽子给它盖上,它就和5v接上了,也就是它不使能了。以后如果想用PWM来控制,那就把帽子拔了,把EN脚接到单片机的PWM输出口。
单片机IO口控制输入(IN1、IN2):这两个脚是接到STM32的某两个GPIO口上,通过给予高低电平,就可以实现电机的正反转。

所以,剩下的IN3、IN4、EN2、OUT3和OUT4都同理。

供电超过12v,拔掉跳线帽,再在5v处输入5v电压。
供电不到12v,插上跳线帽,5v作为输出端。
ENA和ENB相当于开关,插入跳线帽相当于打开开关,使能两个口

二、麦克纳姆轮特点及其运动

本文不作详细剖析,只列出其不同情况下的运动状态,由于麦克纳姆轮的结构特殊性,可以做到左右平移这样的特殊状态。

下图是一个麦克纳姆轮的图片

将其装在小车上时,应注意轮子分布。、

呈现O型或者X型视为正确安装

以下是轮子不同状态下小车最终的运动形态

三、CubeMx配置

1.RCC

设置完记得调整时钟树F103是72Hz

2.SYS

3.GPIO

GPIO的配置如下

generate code生成代码

四、代码

有前文所述L298N原理可知,想要用L298N驱动电机,只需要在相应时刻将其对应引脚电压拉高拉低即可。

main.h

/* USER CODE BEGIN Private defines */#define M1IN1_0 HAL_GPIO_WritePin(M1IN1_GPIO_Port,M1IN1_Pin,GPIO_PIN_RESET)
#define M1IN1_1 HAL_GPIO_WritePin(M1IN1_GPIO_Port,M1IN1_Pin,GPIO_PIN_SET)
#define M1IN2_0 HAL_GPIO_WritePin(M1IN2_GPIO_Port,M1IN2_Pin,GPIO_PIN_RESET)
#define M1IN2_1 HAL_GPIO_WritePin(M1IN2_GPIO_Port,M1IN2_Pin,GPIO_PIN_SET)
#define M1IN3_0 HAL_GPIO_WritePin(M1IN3_GPIO_Port,M1IN3_Pin,GPIO_PIN_RESET)
#define M1IN3_1 HAL_GPIO_WritePin(M1IN3_GPIO_Port,M1IN3_Pin,GPIO_PIN_SET)
#define M1IN4_0 HAL_GPIO_WritePin(M1IN4_GPIO_Port,M1IN4_Pin,GPIO_PIN_RESET)
#define M1IN4_1 HAL_GPIO_WritePin(M1IN4_GPIO_Port,M1IN4_Pin,GPIO_PIN_SET)#define M2IN1_0 HAL_GPIO_WritePin(M2IN1_GPIO_Port,M2IN1_Pin,GPIO_PIN_RESET)
#define M2IN1_1 HAL_GPIO_WritePin(M2IN1_GPIO_Port,M2IN1_Pin,GPIO_PIN_SET)
#define M2IN2_0 HAL_GPIO_WritePin(M2IN2_GPIO_Port,M2IN2_Pin,GPIO_PIN_RESET)
#define M2IN2_1 HAL_GPIO_WritePin(M2IN2_GPIO_Port,M2IN2_Pin,GPIO_PIN_SET)
#define M2IN3_0 HAL_GPIO_WritePin(M2IN3_GPIO_Port,M2IN3_Pin,GPIO_PIN_RESET)
#define M2IN3_1 HAL_GPIO_WritePin(M2IN3_GPIO_Port,M2IN3_Pin,GPIO_PIN_SET)
#define M2IN4_0 HAL_GPIO_WritePin(M2IN4_GPIO_Port,M2IN4_Pin,GPIO_PIN_RESET)
#define M2IN4_1 HAL_GPIO_WritePin(M2IN4_GPIO_Port,M2IN4_Pin,GPIO_PIN_SET)
/* USER CODE END Private defines */

main.c

  while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_Delay(100);forward();HAL_Delay(5000);backward();HAL_Delay(5000);shift_left();HAL_Delay(5000);shift_right();HAL_Delay(5000);turn_left();HAL_Delay(5000);turn_right();HAL_Delay(5000);Reset();}/* USER CODE END 3 */

仅仅实现最简单的前进后退左移右移左转右转,如有错误还望指正。

资源链接

使用STM32F103C8T6控制L298N电机驱动麦克纳姆轮小车(HAL库)相关推荐

  1. arduino 4WD 麦克纳姆轮小车支持Mixly/Scratch

    加粗样式 完整资料教程下载链接: 前往界面 1.简介: 提及编程,很多人都会觉得是一件令人非常头疼的事情. 然而,基于arduino的麦克纳姆轮小车套件可以让您发现编程不再那么难.这款可编程套件,提高 ...

  2. 步进电机与直流减速编码电机的优缺点分析 第六届工程训练综合能力竞赛之智能物料搬运机器人的反思-----麦克纳姆轮小车的底盘电机选择--步进电机

    近期刚参加完第六届的全国大学生工程训练综合能力竞赛,发现很多队伍 的麦克纳姆轮小车的底盘电机都选用的步进电机作为动力部分,感到很惊讶, 步进电机还能这么用?  进过一番思考 我觉得步进电机做麦克纳姆轮 ...

  3. python firmata协议利用arduino操控麦克纳姆轮小车(附完整代码)

    python firmata协议利用arduino操控麦克纳姆轮小车 前言 一.python中pyfirmata的环境 材料 二.使用步骤 1.小车的安装方式 我在这采用的是X型安装方式 总结 前言 ...

  4. 基于STM32的麦克纳姆轮小车的寻迹实现

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-27.html 本项目用STM32F407,麦克纳姆轮小车,八路 ...

  5. 麦克纳姆轮小车matlab仿真,学习使用Python控制麦克纳姆轮底盘

    学习使用Python控制麦克纳姆轮底盘 这里小龟给大家分享如何使用Python控制麦克纳姆轮底盘的小龟小车. 首先小伙伴得参考小龟提供的改造手册进行先把小龟小车改造成麦克纳姆轮底盘,假如小伙伴在改造过 ...

  6. 基于 RT-Thread的麦克纳姆轮小车循迹运动控制算法开发和研究

    学校:浙江工业大学 队伍名称:浙工大鸿泉全向 SOLO 队参赛队员:杨一帆.袁启恒.何志涛 带队教师:陈国定.褚衍清 简 介: 本文详细介绍了全向行进组智能车的制作方案.该方案以南京沁恒公司的 CH3 ...

  7. 麦克纳姆轮小车360°平动

    麦克纳姆轮 图1 图2 图3 图4                                 图5 麦克纳姆轮的安装如图1所示.暂定以图1中向上为小车的正方向(即前方),右上角为1号车轮.左上角 ...

  8. 麦克纳姆轮小车在gazebo中的实现

    搞毕设看的是赵虚左老师的视频,在视频中赵老师只介绍了两轮差速小车和阿克曼底盘的小车的控制器插件,麦克纳姆轮的小车并没有介绍到,在这里给大家分享一下麦轮小车的简单实现. <robot name=& ...

  9. 基于Arduino的麦克纳姆轮小车的制作

    一.简介 Arduino是一款便捷灵活.方便上手的开源电子原型平台.它比较容易入门.但是就在我刚刚接触硬件的时候我不知道如何上手,想要自己开发出一个经过在网上查找资料才知道Arduino对新人比较友好 ...

最新文章

  1. ListView.getChildCount() 详解
  2. 【三维重建】基于切片的三维重建MATLAB仿真
  3. 多态部分作业 2.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void 输出大小写字母表
  4. Nginx中间件web服务安装
  5. 74LS138译码器介绍
  6. 卫星定位领域相关基础知识汇总
  7. 分享最近发现的几个实用 chrome/edge 扩展和油猴脚本
  8. Github上开源仿京东商城项目启动配置详解(进阶版)
  9. 排序算法整理(冒泡、选择、快排、堆排序、希尔、归并)
  10. 计算机科学与技术专业为什么要学物理,「物理」一定要好的14个大学专业
  11. 路由宽带运营商服务器未响应,路由器拨号失败服务器无响应的解决方法
  12. 刷固件版本 1756-RM2
  13. 【大话设计模式】模式十:中介者模式
  14. 达尔文的进化论VS柏拉图的理念论
  15. 个人办公效率便签工具
  16. R语言实现灰色预测模型gm11
  17. 旅行的青蛙ios正版无限四叶草教程,正版!正版!App Store下载的那种
  18. emui4.0-android6.0+root工具包,华为荣耀7 EMUI4.0刷Recovery获取ROOT权限的教程(6.0)
  19. 计算机二级wps和c语言,2021年3月计算机二级要报名了。报哪一科呢?要不要报名二级WPS?...
  20. 前台调用后台方法,无刷新更新数据

热门文章

  1. 6s测试信号软件,手机信号强度测试:苹果iPhone6s不敌三星S6
  2. 网络猫只有计算机和机顶盒两个口,电信的猫上有两个网口,但是只能用网口1,这是为什么。360......
  3. suma++ TensorRT Not Found
  4. 早期RA获超声缓解的基线预测因素
  5. wps合并所有sheet页_WPS怎么把几个工作表合并到一个工作表 - 卡饭网
  6. OpenMV物品清单
  7. linux系统使用ps,Linux系统ps命令使用教程
  8. Educational Codeforces Round 128 (Rated for Div. 2) E. Moving Chips(玄学)
  9. rmarkdown入门
  10. 一个资深Java架构师告诉你我们是如何将一个项目做烂的