当前位置: 首页 > article >正文

第7节、双电机直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章

摘要:前面章节主要介绍单个电机控制,本节内容介绍两个电机完成Bresenham直线运动

一、Bresenham直线算法介绍
Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发,最初用于计算机显示直线,它确定应该选择的n维光栅的点,以便形成两点之间的直线的近似。因为它仅使用整数加法,减法和位移,非常适合单片机系统。

二、算法推导
关于该算法的视频推导教程非常多,推荐B站洛阳鸿卓课工场-白洋老师的Bresenham算法教程,讲解十分详细,链接如下:
https://www.bilibili.com/video/BV1eE411p7tn/?spm_id_from=333.337.search-card.all.click&vd_source=cbda27af6174dc53fd338dba3ab7dc66

三、算法移植
根据单片机步进电机系统的特点,将bresenham算法移植到单片机系统,与上述视频教程方式有区别,单片机系统适合正数处理,将坐标原点移动至左下角,即整个可移动区域为第一象限
在这里插入图片描述
第一种情况:直线在第一象限前半区(0<θ≤45)
在这里插入图片描述
在这里插入图片描述
第二种情况:直线在其他位置
统一转换到第1区处理,处理流程如下:
在这里插入图片描述
1、 通过直线起点坐标P1(X1,Y1),终点坐标P2(X2,Y2),可以判断向量位于哪个方位
2、 判断主轴与方向
  1/4/5/8四个方位主轴为X,副轴为Y,其中1/8主轴电机方向为正,4/5主轴电机方向为负
  2/3/6/7四个方位主轴为Y,副轴为X,其中2/3主轴电机方向为正,6/7主轴电机方向为负
3、 根据Bresenham算法判断是否有副轴移动
  让主轴匀速移动,根据Bresenham的算法,判断移动主轴的每一步,是否需要移动副轴,最终实现直线插值运动

四、proteus仿真及实测
为了直观显示坐标值,该仿真中已调整步距角,步进电机每走一步为1°,即电机显示的角度为坐标值,起点(0,0),终点(300,100)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
请添加图片描述
请添加图片描述
请添加图片描述
五、附件
proteus仿真文件百度网盘链接:
链接:https://pan.baidu.com/s/1KC36wo2Xcsa-VOYWwXm0fg
提取码:1x64

Keil工程文件获取链接:
https://item.taobao.com/item.htm?ft=t&id=764303950500


http://www.kler.cn/a/229715.html

相关文章:

  • JavaEE之线程池
  • 【2024年华为OD机试】 (A卷,100分)- 总最快检测效率(Java JS PythonC/C++)
  • 选择器css
  • okhttp 的 拦截器
  • ts总结2、any 类型,unknown 类型,never 类型(编译选项noImplicitAny)
  • pnpm + vite 从外网迁移到内网环境开发
  • 【推荐算法】userid是否建模
  • Java设计模式大全:23种常见的设计模式详解(一)
  • 【知识整理】一文理解系统服务高可用
  • Express框架介绍—node.js
  • 假期day4,链表增加与删除(2024/2/5)
  • 1、深度学习环境配置相关下载地址整理(cuda、cudnn、torch、miniconda、pycharm、torchvision等)
  • Unity之协同程序
  • 如何在HA智能家居系统中添加HACS集成并实现异地控制家中苹果与小米设备
  • Android Compose 一个音视频APP——Magic Music Player
  • [Linux] 网络编程套接字
  • ChatGPT Plus如何升级?信用卡付款失败怎么办?如何使用信用卡升级 ChatGPT Plus?
  • 算法学习——LeetCode力扣哈希表篇2
  • MIT_线性代数笔记:第 34 讲 总复习
  • vue3 之 商城项目—layout静态模版结构搭建
  • 网络版本计算器
  • MySQL5.7 百万数据迁移到 ElasticSearch7.x
  • LeetCode、790. 多米诺和托米诺平铺【中等,二维DP,可转一维】