以Arduino编写伺服插补控制及C#上位机的阿基米德螺旋线检测

    • 阿基米德螺旋线
      • 阿基米德螺旋线的特性及应用
      • 阿基米德螺旋线的检测原理
    • 检测仪总体结构
      • 上位机
      • 控制器
      • 伺服驱动及电机
      • 测头及机械
    • 检测软件部分的实现
      • 上位机
        • 上位机界面
        • 上位机与控制器间通讯协议
        • 上位机与测头的通讯协议
        • 上位机部分代码
      • 插补控制器
    • 代码下载

阿基米德螺旋线

阿基米德螺旋线的特性及应用

阿基米德螺线(亦称等速螺线),得名于公元前三世纪希腊数学家阿基米德。阿基米德螺线是一个点匀速离开一个固定点的同时又以固定的角速度绕该固定点转动而产生的轨迹。
阿基米德螺线的极坐标方程式为:r=a+bθ。故有Δr=bΔθ,即无论在阿基米德螺旋线的任何位置只要转过相同的角度,两角度间距离中心的距离为一固定值。以此特性阿基米德螺旋线用于灌溉,机床卡盘等领域。

由上图可以明显的看出,对于由阿基米德螺旋线中心发射出的射线,其与阿基米德螺旋线的各相邻交点的距离为定值(b)。这也是Δr=b*Δθ的体现。

阿基米德螺旋线的检测原理

基于阿基米德螺旋线的成形原理,显然当承载阿基米德螺旋线的平台按一固定角速度移动(设为Ω),而测头按与之对应的线速度(设为b*Ω)沿过阿基米德螺旋线中心的射线进行移动时,测头对于平台的轨迹即为阿基米德螺旋线。当其移动精度很高时,可以视其为标准阿基米德螺旋线,此时测头测量值的变化可认为完全来自于被测阿基米德螺旋线。故测头获得数值即为被测螺旋线的精度。
但是,按照速度对两个轴进行控制存在速度偏差问题,而这种速度偏差会发生累积,从而使得测量精度整体降低。
所以,更优化的方式是以位置方式移动轴,即对平台旋转轴的伺服系统没发送M个脉冲,就对测头移动轴发送N个脉冲。尽管位置方式移动一样会有误差,但这种误差不会发生累计,从而提高了检测的精度。

检测仪总体结构

上位机

上位机为PC,搭载检测用软件。上位机通过串口与测头及控制器进行通讯。检测软件负责:1、给控制器发送运动命令,从而生成理论阿基米德螺旋线路径;2、接收测头检测到的误差信息;3、对收集到的误差信息进行实时绘图及误差计算。

控制器

控制器选用了STM32F103C8T6最小系统。使用了其PA0、PA2、PA4、PA6分别作为1轴脉冲IO、1轴方向IO、2轴脉冲IO、2轴方向IO。
由于该单片机的输出为3.3V,而采用的伺服驱动的脉冲输入为24V,同时也为了避免伺服产生的干扰对单片机发生串扰,故采用了光耦进行隔离。
控制器的所有器件焊接于洞洞板,控制器简易电路及洞洞板焊接点如下图:

伺服驱动及电机

伺服及电机采用武汉迈信EP系列,其接收上位控制器发送的脉冲信号及方向信号。由脉冲定义运动的距离,由方向电平定义运动的方向。

测头及机械

仪器机械部分总体结构由上图所示,此处不做赘述。。

检测软件部分的实现

上位机

上位机界面

上位机以C#编写,其界面采用了最简单的winform。界面简单分成了三个区域——测头控制、脉冲控制、图形区。

上位机与控制器间通讯协议

为了方便软件与控制器间的通讯,在此自定义了一个简单的协议:协议共10字节,第一字节为0x02,第二字节为1轴的运动方向,第三字节为1轴运动脉冲数65536,第四字节为1轴运动脉冲数256,第五字节为1轴运动脉冲数1,第六字节为2轴运动方向,第七字节为2轴运动脉冲数65536,第八字节为2轴运动脉冲数256,第九字节为2轴运动脉冲数1,第十字节为0x03。
由于非工业环境,且采用的线材质量较好,通讯记录很短,故没有设置任何的循环冗余校验。

上位机与测头的通讯协议

上位机部分代码

上位机软件按照自定义通讯协议将两个轴的脉冲数进行转化并发送:
上位机获得测头的测量值:

上位机对获得的测量数据进行动态绘图:

插补控制器

控制器对上位机数据的解析:

由于需要1轴每发送M个脉冲,2轴就对应的发送N个,所以需要先判断两个轴哪一个发送的脉冲数更多,然后用更多的一个作为发送基准,另一个轴按比例随基准轴发送。
举例:1轴发送3000个脉冲,2轴发送500个脉冲,显然1轴发送数更多,故以1轴为发送基准。一轴每发送3000/500=6个脉冲,2轴发送1个脉冲,从而形成直线插补式的发送。

控制器进行插补脉冲发送部分代码:

代码下载

Arduino控制器程序代码
C#上位机代码
测头协议说明书

以Arduino编写伺服插补控制及C#上位机的阿基米德螺旋线检测相关推荐

  1. 60吨反渗透+混床程序 西门子200 smart 编写程序,西门子smart line触摸屏上位机组态

    60吨反渗透+混床程序. 西门子200 smart 编写程序,西门子smart line触摸屏上位机组态. 带模拟量,读写时钟,报警视图,用户管理,报警指示器,运行状态. 非常好的一个纯水项目实例. ...

  2. 信捷PLC C语言伺服插补6轴码垛机器人威纶通触摸屏程序

    包括信捷XD5-48T6 PLC程序,TK6071ip威纶通触摸屏程序 梯形图和信捷C语言混编,精典程序,结构好,中文注释,各种插补 id=625610353110&

  3. 【QT上位机编写第三步】编写一个电压、电流显示串口上位机

    文章目录 一.上位机的信号和槽函数? 二.上位机软件编程 2.1.模块和类导入 2.1.首先是写串口初始化 2.1.串口读取 2.2.串口写入 2.3.清除数据框的内容 2.4.自动搜索串口端口号 三 ...

  4. 松下PLC控制松下伺服电机(上位机发送控制命令)

    松下AFPXHM8N30T PLC 控制松下伺服电机 选型: PLC: AFPXHM8N30T (最大8CH) 伺服电机:MSMF022L1A1 伺服驱动器:MADLN15NE 实现目标:通过上位机发 ...

  5. 上位机控制plc,上位机控制软件,ATECLOUD中国人自己的LabVIEW

    LabVIEW是用图标来进行编程的一个开发环境,通过在表示不同功能节点的图标之间连线来完成预想的程序,LabVIEW所采用的是图形化开发语言,通过这种语言,LabVIEW可以极大的提高工作效率. 类似 ...

  6. 单片机控制步进电机-VB上位机生成S曲线

    程序下载地址: https://download.csdn.net/download/ludantongxue/10971448 对应硬件线路连接见上章: https://blog.csdn.net/ ...

  7. CNC插补技术(从原理、分类到具体插补算法,较为详细)

    版权声明:本文为CSDN博主「qq_39887918」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 对于插补技术的理解与认识 对于插补技术的理解与认识 1 插补及 ...

  8. 无人值守污水处理控制系统,西门子200PLC和显控触摸屏编写的智能污水处理控制系

    无人值守污水处理控制系统. 西门子200PLC和显控触摸屏编写的智能污水处理控制系统,有上位机编程软件,带图纸,带PLC程序,上位机画面,真实工程项目,已稳定运行一年多 现有:699662971294 ...

  9. 雷赛运动控制卡能不能用c语言_基于PMAC控制卡的三坐标测量机控制系统

    三坐标测量机控制原理 三坐标测量机获取测头触碰点相对于系统原点的三坐标值,然后经特定算法处理,得到尺寸公差或形位公差.测头在X.Y,Z三个相互垂直的导轨上进行复合运动,实现逐点测量:或按一定运动轨迹, ...

最新文章

  1. Mac OS X 修复基本命令失效的问题
  2. CUDA5.5入门文章:VS10设置
  3. ./4.sh: No such file or directory
  4. 如何高效地存储与检索大规模的图谱数据?
  5. 8.霍夫变换:线条——介绍、参数模型、直线拟合_1
  6. 页面间参数传递---基于Vue的uniapp手机端_前端UI_uview工作笔记005
  7. pat1056. Mice and Rice (25)
  8. toLocaleTimeString()方法在IE和谷歌浏览器上 根据本地时间格式,把 Date 对象的时间部分(不含日期)转换为“时间字符串”存在区别...
  9. 书单:交互设计书籍推荐
  10. 联想微型计算机如果进入BIos,联想笔记本各机型如何进入bios
  11. 爬取企业信息-企业信用信息查询系统-天眼查爬虫
  12. PIBOT移植ROS2记录(2)-添加Node与cmd_vel
  13. Physically Based Render初学者PBR整理
  14. dp / 算术几何均值不等式 求 正整数拆分后的最大乘积
  15. JN项目-app首页订票功能实现
  16. MySQL 数据库 分组查询
  17. Halcon视觉软件库介绍
  18. 【P8090 [USACO22JAN] Herdle B】题解
  19. 研发人员绩效考核案例
  20. parse_url笔记

热门文章

  1. 【外设】关于鼠标快捷按键的设置
  2. MACA协议和CSMA/CA协议的区别
  3. 解决Service Unavailable
  4. java错误日志打印问题
  5. Matlab GUI显示当前时间,设置定时器(timer)
  6. [转载]巧改上传图片格式的 Protel 99SE 视频教程
  7. Spring AOP简单入门学习
  8. 微信小程序 swiper和weiper-itme组件的基本使用,微信小程序轮播图这么做教程
  9. STM32看门狗详解
  10. 【写笔记】WPF 自定义简单的TextBox控件