自制一个沙画绘图仪吧
本帖最后由 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创客社区
转载请注明来源信息
太好了,谢谢分享!
页:
[1]