热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DRV8825步进电机驱动控制器与双轴稳定平台的集成应用

本研究基于TI公司的DRV8825步进电机驱动芯片,将其与现有的双轴稳定平台集成,开发出一种具备自动测量功能的新型平台。该平台通过精确控制步进电机,实现了高精度的定位和测量,适用于多种精密测量和自动化应用场景。关键词:DRV8825,步进电机,双轴稳定平台,自动测量,精密控制


简 介: 实验研究了基于TI公司的DRV8825不仅电机驱动芯片模块,并利用它与原来存在的X-Y的平台构建了一个可以自动测量的平台 。

关键词: DRV8825,X-Y平台


 


■ DRV8825简介



  款基于TI公司的 DRV8825 步进电机驱动芯片模块是由 优信电子出品 的。(TB:¥5.9), 它可以用于 RepRap 3D打印机开源项目 中的 StepStick

  由 DRV8825 数据手册可以知道该模块的基本应用数据:
  1. 具有嘴大32细分步骤;
  2. 工作电压可达45V;
  3. 输出最大电流2.5A(24V工作电压的时候)

▲ 应用示意图以及32细分输出电流波形


▲ 应用示意图以及32细分输出电流波形

 


01模块引脚说明



  DRV8825 数据手册中的管脚功能说明,分别确定模块管脚的功能,如下图所示:

  工作模式设定如下表所示:

 


02驱动模块设计[^52893]



  [^52893]:控制模块AD工程文件:AD\Tools\2020\DRV8825


1.电路设计[^52893]


2.MCU软件设计1


**◎ 蓝牙串口(COM2)命令 **

if(strcmp("hello", (char *)STD_ARG[0]) &#61;&#61; 0)printf("%s is ready !\r\n", VERSION_STRING);else IFARG0("drvm1") {if(STD_NUM > 2) {sscanf(SDA(2), "%d", &nNumber);if(nNumber &#61;&#61; g_ucCommandFlag) return;g_ucCommandFlag &#61; nNumber;}sscanf(SDA(1), "%ld", &g_lnMotorStep1);if(g_lnMotorStep1 < 0) {g_lnMotorStep1 &#61; -g_lnMotorStep1;ON(DIR1_PIN);} else OFF(DIR1_PIN);if(VAL(DIR1_PIN)) { if(VAL(SW1_PIN) &#61;&#61; 0) {g_lnMotorStep1 &#61; 0;OFF(DIR1_PIN);}}} else IFARG0("drvm2") {if(STD_NUM > 2) {sscanf(SDA(2), "%d", &nNumber);if(nNumber &#61;&#61; g_ucCommandFlag) return;g_ucCommandFlag &#61; nNumber;}sscanf(SDA(1), "%ld", &g_lnMotorStep2);if(g_lnMotorStep2 < 0) {g_lnMotorStep2 &#61; -g_lnMotorStep2;ON(DIR2_PIN);} else OFF(DIR2_PIN);if(VAL(DIR2_PIN)) {if(VAL(SW2_PIN) &#61;&#61; 0) {g_lnMotorStep2 &#61; 0;OFF(DIR2_PIN);}}} else IFARG0("drvm12") {if(STD_NUM > 3) {sscanf(SDA(3), "%d", &nNumber);if(nNumber &#61;&#61; g_ucCommandFlag) return;g_ucCommandFlag &#61; nNumber;}sscanf(SDA(1), "%ld", &g_lnMotorStep1);if(g_lnMotorStep1 < 0) {g_lnMotorStep1 &#61; -g_lnMotorStep1;ON(DIR1_PIN);} else OFF(DIR1_PIN);if(VAL(DIR1_PIN)) {if(VAL(SW1_PIN) &#61;&#61; 0) {g_lnMotorStep1 &#61; 0;OFF(DIR1_PIN);}}sscanf(SDA(2), "%ld", &g_lnMotorStep2);if(g_lnMotorStep2 < 0) {g_lnMotorStep2 &#61; -g_lnMotorStep2;ON(DIR2_PIN);} else OFF(DIR2_PIN);if(VAL(DIR2_PIN)) {if(VAL(SW2_PIN) &#61;&#61; 0) {g_lnMotorStep2 &#61; 0;OFF(DIR2_PIN);}}} else IFARG0("drvorg") {ON(DIR1_PIN);ON(DIR2_PIN);g_lnMotorStep1 &#61; 500000;g_lnMotorStep2 &#61; 500000;if(VAL(DIR1_PIN)) {if(VAL(SW1_PIN) &#61;&#61; 0) {g_lnMotorStep1 &#61; 0;OFF(DIR1_PIN);}}if(VAL(DIR2_PIN)) {if(VAL(SW2_PIN) &#61;&#61; 0) {g_lnMotorStep2 &#61; 0;OFF(DIR2_PIN);}}}// else printf("Error command : %s !\r\n", STD_ARG[0]);
}

 


02控制双轴平台



  令示例&#xff1a;


  • zbcmd(b’drvm1 1000’) : 对于顶层移动&#xff1b;
  • zbcmd(b’drvm2 1000’)&#xff1a;对于底层驱动&#xff1b;
  • zbcmd(b’drvorg’) : 两个电机都回复的复位原点。

  当参数大于零时&#xff0c;平台原理步进电机&#xff1b;当参数小于0&#xff0c;平台移动到步进电机&#xff1b;

  移动参数&#xff1a; N&#61; 200000&#xff0c;移动距离&#xff1a;6.6mm
  因此&#xff0c;移动参数的参数&#xff1a;
Lstep&#61;6.6200000&#61;33nM&#61;0.033μML_{step} &#61; {{6.6} \over {200000}} &#61; 33nM &#61; 0.033\mu MLstep&#61;2000006.6&#61;33nM&#61;0.033μM

 



■ 相关文献链接:


  • DRV8825
  • 优信电子出品
  • RepRap 3D打印机开源项目
  • StepStick



  1. MCU工程文件:C51\STC\Tools\2020\DRV8825AXES2\DRV8825AXES2.uvproj ↩︎



推荐阅读
  • 探讨 jBPM 数据库表结构设计的精要与实践
    探讨 jBPM 数据库表结构设计的精要与实践 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 本文详细探讨了C语言中`extern`关键字的简易编译方法,并深入解析了预编译、`static`和`extern`的综合应用。通过具体的代码示例,介绍了如何在不同的文件之间共享变量和函数声明,以及这些关键字在编译过程中的作用和影响。文章还讨论了预编译过程中宏定义的使用,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 题目描述:小K不幸被LL邪教洗脑,洗脑程度之深使他决定彻底脱离这个邪教。在最终离开前,他计划再进行一次亚瑟王游戏。作为最后一战,他希望这次游戏能够尽善尽美。众所周知,亚瑟王游戏的结果很大程度上取决于运气,但通过合理的策略和算法优化,可以提高获胜的概率。本文将详细解析洛谷P3239 [HNOI2015] 亚瑟王问题,并提供具体的算法实现方法,帮助读者更好地理解和应用相关技术。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 提升工作效率:掌握这些技巧,IDEA 使用效率翻倍 | IDEA 高效操作指南
    提升工作效率:掌握这些技巧,IDEA 使用效率翻倍 | IDEA 高效操作指南 ... [详细]
  • 本文深入探讨了NDK与JNI技术在实际项目中的应用及其学习路径。通过分析工程目录结构和关键代码示例,详细介绍了如何在Android开发中高效利用NDK和JNI,实现高性能计算和跨平台功能。同时,文章还提供了从基础概念到高级实践的系统学习指南,帮助开发者快速掌握这些关键技术。 ... [详细]
  • 如何在浏览器中高效调用本地应用程序的方法与技巧
    为了在浏览器中高效调用本地应用程序,本文介绍了一种实用方法。通过创建并运行一个注册表文件(如 `test.reg`),可以实现点击浏览器按钮后自动启动指定的本地应用。具体步骤包括编写特定的注册表条目,并确保其正确配置以支持浏览器与本地应用之间的无缝交互。此外,文章还探讨了安全性和兼容性方面的注意事项,为开发者提供了全面的指导。 ... [详细]
  • 多种实现 Windows 定时自动执行任务的专业技巧与方案
    在Windows系统中,实现定时自动执行任务有多种专业技巧和方案。常见的方法包括:使用Windows任务计划程序、开发Windows服务以及利用SQL Server Agent作业。这些方法被广泛应用于各种自动化场景,多数技术人员对此都有所了解。 ... [详细]
author-avatar
生活更美好YE
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有