RRoy 发表于 2025-2-19 09:14:42

自制一个沙画绘图仪吧

本帖最后由 RRoy 于 2025-2-19 09:14 编辑



沙画绘图仪是一种特殊的数控(CNC)装置,它能在沙面上创造出精美复杂的图案。这种装置采用精确的可编程运动系统,常见于动态沙盘中。在动态沙盘里,一个金属球在沙面上移动,通常由表面下方的磁铁控制,不断变幻绘制出迷人的图案。

https://dfrobot.loll.cc/video/Sand%20Art%20Plotter.webm



材料清单
[*]Arduino Nano 开发板 1个
[*]28BYJ-48步进电机 2个
[*]A4988步进电机驱动模块 2个
[*]CNC V4扩展板 1个
[*]废旧挂钟 1个
[*]自行车辐条 2根
[*]细线(如钓鱼线) 1卷
[*]18650锂电池(3.7V) 2节
[*]18650电池座 1个
[*]拉伸弹簧 2个
[*]1.5mm厚硬纸板 1张
[*]金属球(直径10mm) 1个
[*]钕磁铁 1个
[*]细沙 100克
[*]3D打印零件 若干
[*]强力胶 1瓶
[*]黑色乙烯基贴纸 1张






















工具
[*]3D打印机
[*]小型电钻
[*]电烙铁
[*]数显游标卡尺
[*]卷尺或直尺
第一步:改装28BYJ-48步进电机




首先,用一字螺丝刀小心撬开电机的蓝色塑料盖。露出内部后,用刀尖切断中间的导线。确保切口够深,两侧完全断开,否则电机无法正常工作。然后将蓝色盖子装回。你可能还需要剪断红色导线,因为后续不再需要它了。
第二步:改装CNC V4扩展板


市面上有不少Arduino Nano用的CNC扩展板仿制品。它们价格便宜,但在设置微步进时会出问题。制造这些扩展板的厂家犯了个错误,把应该连到Vcc的引脚接到了GND。由于设置微步进的引脚默认已经下拉到GND,要改变它们的状态,就需要把它们上拉到Vcc。你可以观看视频教程来修复这个问题。

https://dfrobot.loll.cc/video/CNC%20Shield%20V4%20Clone%20Fix%20%21.webm


第三步:拆解挂钟
先把旧挂钟完全拆开,清理干净各个部件。





取下钟面外框。





用黑色(乙烯基)贴纸覆盖钟面。
第四步:搭建Core XY






Core XY是一种使用两个电机和交叉皮带来实现X-Y平面运动的系统。它重量轻、效率高,非常适合DIY沙画绘图仪。

在钟面左下角和右下角钻孔,用螺丝固定步进电机。

用3D打印的定位工具来确定钻孔位置。

在每个步进电机轴上安装两个3D打印的滑轮。

在写字板的四个角落各安装两个惰轮。





X轴和Y轴由垂直交叉的自行车辐条构成。







3D打印的滑块可在X-Y平面内移动,携带磁铁。

线性杆的尺寸:

[*]杆直径: 2 mm
[*]X轴杆长: 270 mm
[*]Y轴杆长: 210 mm
[*]滑轮杆: 三根10 mm长,三根15 mm长

细线绕在滑轮上,带动X轴和Y轴杆移动。

左侧电机控制X轴,右侧电机控制Y轴。

用强力胶将一个钕磁铁固定在滑块顶部。

这个磁铁会在电机带动轴移动时控制金属球。
第五步:组装






准备一张285mm x 225mm、厚1.5mm的硬纸板。



用黑色乙烯基贴纸覆盖纸板。









将纸板放在钟面上,用螺丝固定在钟框内。

你也可以用钟玻璃代替纸板,不过我的钟玻璃已经碎了,所以用了纸板作为绘图表面。

用强力胶将一个强磁铁安装在移动滑块下方。

用3D打印件制作一个矩形边框,用来盛放沙子。

用强力胶将这些3D打印件固定在纸板表面。
第六步:电路连接


沙画绘图仪的核心部件是两个由CNC V4扩展板控制的28BYJ-48步进电机。扩展板上搭载了Arduino Nano和两个A4988步进电机驱动模块。





将电机接到扩展板的X和Y端上。





将RGB LED灯带连接到扩展板的5V和GND端。



注意:别忘了将A4988/DRV8825驱动器的电流调到最小。这些电机每相的承受电流不能超过100mA。忽视这点可能会烧坏甚至熔化电机。你也可以把驱动器分辨率降到半步。

将CNC V4扩展板放在挂钟底部。

在挂钟底部开几个孔,用来安装扩展板。

按照电路图正确连接步进电机、A4988驱动模块和RGB LED灯带与扩展板。

在挂钟底部安装四个3D打印支架,给电机驱动器散热。

所有组件由两节18650锂电池(每节3.7V)供电。

至此,电子部分组装完成。
第七步:最后组装








将RGB LED灯安装在3D打印矩形边框的内壁上。

在绘图表面均匀铺上细沙。

将金属球放在沙面上—它会随着磁铁的移动而运动。

连接电池并开机。

用USB线将Arduino Nano连接到电脑。


第八步:软件准备
下载并安装以下软件:

[*]Arduino IDE:https://www.arduino.cc/
[*]Inkscape 0.92版本:https://inkscape.org/release/0.92.2/windows/
[*]Universal Gcode Sender (UGS):https://winder.github.io/ugs_website/download/
[*]带伺服电机支持的Grbl 0.9i:https://github.com/robottini/grbl-servo20
[*]4xiDraw Inkscape插件:https://github.com/CodersCafeTech/Large-CNC-Plotter/blob/main/InkScape%20Extension.zip

下载库文件,解压后导入Arduino:

打开Arduino IDE,选择"文件" > "示例" > "grbl",然后编译并上传代码到Arduino Nano。

GRBL设置:

X轴和Y轴行程分辨率: 根据步进电机的步距角计算每转步数

在UGS的命令窗口输入$$来修改这些值:
$100= 100.000 (x轴,步/mm)
$101= 100.000 (y轴,步/mm)
$110= 400.000 (x轴最大速度,mm/分)
$111= 400.000 (y轴最大速度,mm/分)


第九步:生成G代码

https://dfrobot.loll.cc/video/INTERACTIVE%20LED%20WALL%20CLOCK.mp4


我们用Inkscape软件来生成G代码文件。按以下步骤操作:

[*]下载并安装上述所有软件和4xidraw插件。
[*]解压4xidraw插件,将所有文件复制到Inkscape的extensions文件夹。
[*]添加完插件后,按以下步骤创建G代码:

[*]打开Inkscape,选择"文件" > "文档属性",将页面大小设为120mm x 100mm。
[*]导入你选择的图像,调整大小并放置在页面上。
[*]选中图像,点击"路径" > "描摹位图" > "应用"。
[*]删除原始图像。
[*]选择"扩展" > "4xidraw工具",设置参数并点击"应用"。
[*]G代码文件就生成好了。
第十步:运行原理






将USB线连接到Arduino Nano,接通5V-9V直流电源。

打开UGS,选择正确的COM口,波特率设为115200,点击连接。

点击"打开",选择Inkscape生成的G代码文件(如infinity.gcode)。

点击"发送",沙画绘图仪就会开始绘制图案。

比如绘制一个♾️的符号:



每次绘制后,需要重新整平沙面。
第十一步:STL文件和示例G代码


可以在文末打包下载。

希望你也能按照这个教程做出自己的沙画绘图仪。

原文地址:https://www.instructables.com/Sand-Art-Plotter/

项目作者:Deepaksh123

译文首发于:DF创客社区

转载请注明来源信息


glwz007 发表于 前天 06:46

太好了,谢谢分享!
页: [1]
查看完整版本: 自制一个沙画绘图仪吧