发作品签到
专业版

Air001+AD转换芯片+应变片用于3D打印热床调平

工程标签

1.0w
0
0
57

简介

制作简单成本低的3D打印压感热床调平方案,兼容HX71708或者CS1237,高采样率达到320或者1280Hz

简介:制作简单成本低的3D打印压感热床调平方案,兼容HX71708或者CS1237,高采样率达到320或者1280Hz

开源协议

MIT License

创建时间:2023-10-23 07:17:06更新时间:2024-10-08 06:32:43

描述

获取程序

3D打印机压力热床,主控使用PY32F002AF15P(普冉) Air001(合宙) 本质是同一款,Arduino开发环境由合宙提供,可以使用HX71708、CS1237(推荐)两种AD转换芯片。

电路简单易于修改,可以很容易嵌入各种其它主板或项目电路中。

芯片可选数据速率

HX71708 10、20、80、320

CS1237 10、40、640、1280

基础版

截图_2023-10-23_14-26-45.png

新增RGB版本

PixPin_2024-10-06_17-19-10.png

  • 5档LED进度条显示功能,触发进度转换成百分比,从30-100%控制LED点亮。
  • 一颗LOGO灯光,4颗文字背景灯光,电阻跳线位选择颜色和常亮或者呼吸灯
  • 外置基准源芯片,也可以选择20R电阻使用LDO作为基准源,外置更精准稳定
  • 外置基准源在1280Hz速率下,重量读数跳变可以从30g降到10g左右,低阈值更稳定

使用参考

PixPin_2024-10-06_17-34-42.png

PixPin_2024-10-06_17-37-16.png

RGB灯光说明

PixPin_2024-10-06_17-57-49.png

触发逻辑

实时读取ADC芯片的压力传感器数据,并转换成压力值,速率最高1280Hz

滤波后的压力值大于阈值即可触发两个输出引脚的电平变化,有最长时间限制,超过后更新阈值回到未触发状态

当前的静态压力值+预设阈值=触发阈值,超过一定时间没有压力值突变,更新一次触发阈值

压力值长时间的缓慢增减不会导致误触发,仅在当前压力值的基础上发生突变大于预设阈值触发

测试条件:CS1237 1280Hz,5mm/s速度,皮带Z 80:20减速比,触发重量150g
连续10次重复精度测试结果:

RangeDeviation
0.00250.001146
0.00250.001146
0.00500.001581
0.00500.001581
0.00250.001000
0.00750.001871
0.00500.002000
0.00500.001658
0.00500.001581
0.00500.001346

klipper官方建议调平探针的重复精度范围(range)在0.025以内,如果使用HX711,数据速率最高80Hz的情况下,只能降低速度勉强达到要求,高采样率的HX71708和CS1237可以显著提高重复精度以获得更好的探测数据

如果测试结果显示范围(range)值大于25微米(0.025毫米),那么探针不满足典型的床面调平流程的精确度要求。可以尝试调整探测速度和/或探测起点高度以提高探头的重复性。

截图_2023-10-23_15-47-28.png
对比HX71708 80和320Hz的数据间隔,还有CS1237的数据间隔

下载说明

需要自备串口下载器,连接预留的串口排针插座进行下载

根据合宙官方教程配置开发环境Air001基于Arduino的用户手册

[重点]下载时将主频设置为48MHz

下载配置

程序说明

程序都来自ChatGPT4编写

  • 修改代码中const int THRESHOLDS[] = { 50, 150, 300 };自定义触发阈值重量,boot按键在运行中可以用于切换。

  • 串口波特率设置为115200,其它设置和调试都可以使用串口命令进行修改。

  • 串口发送 HELP获取帮助信息

  • 使用命令: SET SPEED 索引,重启后生效,用于修改CS1237数据速率,降低可以得到更精准的重量,0=10,1=40,2=640,3=1280。

  • 使用串口发送命令: ADC 数值,此值是一个校准因子,用于将 ADC(模数转换器)的读数转换为实际的重量,不同传感器结果不同,需要自行测试修改得到准确的称重结果。

  • 使用命令开启串口输出SERIAL,则串口始终实时输出当前重量读数,使用已知重量物品称重,观察读数,修改校准因子,直到读数接近所称重物品的实际重量。[重点]air001的性能不足以在640Hz以上采样率开启串口稳定运行,仅在调试时降低采样率使用,高采样率下务必关闭

  • 调试说明:

    • SERIAL命令开启实时重量读数输出,每100ms输出一次三个数据:重量、滤波后的重量、触发阈值。

    • 开启SERIAL输出后,可以使用Arduino IDE的串口绘图仪,将数据使用可视化图表展示。

68747470733a2f2f73322e6c6f6c692e6e65742f323032342f30392f31382f45506e684757616558624e485a70712e706e67.png

  • RECORD命令开始记录读取重量的最高值和最低值,可以用于观察空载下读数浮动,或者触发力度。

  • EMA用于开启、关闭指数移动平均滤波器,此选项设置后不保存,默认开启


以上特性只有CS1237版本代码可用,HX71708已弃用,下方内容仅供参考,不建议使用

HX711库不支持HX71708修改数据速率,HX71708只有一个通道,增益固定,通过代码修改数据速率;而HX711通过硬件修改速率,代码修改增益,所以需要修改hx711.cpp的库文件
截图_2023-10-23_15-59-30.png
RTKw9UnKRZjVjXnvv6nNOltJxF7OJTKdrTqowNbj.png
代码中scale.set_gain(64);设置增益,再把对应增益在,cpp库文件中的脉冲数改为4,即可实现对数据速率的控制

HX711程序以绝对压力值判断,压力值超过阈值即触发,每隔一段时间读数归零

CS1237以相对压力值判断,以实现不归零动态检测压力突变,实时压力值>参考值+阈值触发,参考值每隔一段时间更新一次,缓慢增长的重量到了阈值不会导致触发

都使用Boot键切换代码中的预设阈值

输出两个相反的高低电平信号,短接跳线处选择

建议使用CS1237,相对价格更低、性能更好,代码调试功能更丰富

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
Air001_CS1237.zip
159
2
压力板编译烧录和校准.mp4
137
3
触发演示 - Compressed with FlexClip.mp4
86
4
SJ-VORON-BED-HANDLE-B_1.step
102
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航