# MOZHU-AMS **Repository Path**: nodejava/mozhu-ams ## Basic Information - **Project Name**: MOZHU-AMS - **Description**: DIY 3D打印多色供料系统,主要针对的是拓竹的P1系列,理论上X1系列也可以用. - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-11-20 - **Last Updated**: 2024-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MOZHU-AMS #### 介绍 这是一个DIY 3D打印多色供料系统的项目,主要针对的是拓竹的P1系列,理论上X1系列也是可以用的。 ![完整的设备概览](doc/full_device.jpeg) 这是项目第一次测试通过并且实现自动换料打印时拍摄的完整系统图片 ![打印效果测试](doc/print_resault.jpg) 目前已经能实现稳定的4色无人值守自动换色打印,无需上位机参与。 #### 引用项目 1.该项目引用了B站up主不死鳥の守り的DIY AMS项目(已征得同意),非常感谢他开源的基于拓竹MQTT接口进行通信的设计方案和硬件结构设计,本方案才能最终落地 这是引用项目的开源地址:https://github.com/YBA0312/YBA-AMS-ESP ![BILIBILI](https://foruda.gitee.com/images/1711894690895476931/8329886d_10373519.png "屏幕截图") 在本项目中,引用了这位UP主的AMS模型设计(1.2版)和拓竹MQTT的部分指令,模型设计在本开源项目的hardware文件夹中的AMS组件.3mf中,MQTT指令在代码中有所体现。 2.本项目中,由于作者的建模水平堪忧,并没有能完成五通的建模,故从闲鱼购买了别人打印好的,就是这位朋友的(已征得同意展示)。 ![闲鱼](doc/xianyu.jpg) #### 项目说明 1. 本项目使用无上位机的设计,使用合宙esp32C3核心板作为主控,理论上一个主控可以控制最多四个通道的耗材。 2. 本项目为开源项目,欢迎所有对此感兴趣的人一起建设。 3. 本项目还有许多不完善的地方,日后会陆续完善,欢迎大家批评指导。 #### 文件说明 1. hardware文件夹中包含了引用的AMS进退料组件模型,进料缓冲器模型和断料检测模型,五通受限于本人建模技术较差,是买的成品,理论上可以直接买一个A1的五通拿来用。 2. software文件夹中包含了本项目中使用到的代码,其中filamentChange.gcode是用来替换拓竹的换料GCODE的,直接在打印机设置中复制替换就可以,主要作用是降低换料过程的复杂性,这段代码可以让打印机完成切料、退料、进料、冲洗。请注意,直接编写GCODE控制打印机是很危险的,操作不当会有很大可能导致打印机出现机械故障,所以你如果对3D打印机的gcode没有深入了解,请尽量不要做修改。software中的AMSwithESP32是本项目的代码,基于Arduino IDE编写,其中包含了一个defines.h,这个文件中包含着用户设置,使用前请在这里设置wifi SSID、密码、打印机IP、打印机的链接授权码(八位数字)以及使用的通道数量,请尽可能不要修改除user setting以外的其他设置,否则有可能导致代码无法正常运行。 3.bambu_ca.pem是本开原作者提取到自己打印机中的CA证书,并用其生成了finger point来连接打印机,如果你连上网以后无法连接到打印机的MQTT端口,在确认IP没有出错的前提下,可以使用以下指令来生成finger point并对代码进行修改: `openssl s_client -connect your_server_address:port -showcerts | openssl x509 -noout -fingerprint` #### 部署方法 将本仓库克隆或下载到本地 ##### 硬件部分 本项目所需硬件如下 1. AMS的主体部分:项目文件中的`AMS组件.3mf`是单个颜色的AMS所需要的打印件,本项目目前最多支持四通道,故最多可以打印四套,组装起来。单个AMS主体部分需要使用MR106轴承四个和608轴承两个(轴承的后缀不做限制)。 2. 进料缓冲器:只需要制作一个,但是需要使用M3螺丝、M3螺母、微动开关两个、PC4-01气动接头两个(建议购买可以让特氟龙管穿过的型号)、MGN9的直线导轨(5cm或10cm均可,5cm可能需要修改螺丝孔位)和MGN9C的标准滑块一个。 3. 断料检测:需要根据AMS通道数决定制作数量,每个通道需要一个断料检测模块,每个断料检测模块需要M3螺丝两颗,微动开关一个和PC4-M5气动接头一个。 4. 其他硬件:每个颜色的AMS的还需要TT电机一个(建议为1:48的减速电机),BMG挤出机一个。每两个电机需要一个L298N电机驱动模块。整个AMS还需要一个合宙的esp32C3开发板(建议使用经典版)、一根MX3.0(2x2)的线用于从打印机的AMS接口取电、两个降压模块(24V-5V和24V-12V)分别给电机控制器和esp32供电。项目中使用到的微动开关都是kw11-3f-z。 综上所述,如果你也想做一个四通道的AMS,那么你一共需要购买这些东西 |名称|数量| |--|--| |合宙ESP32C3开发板|1个| |微动开关KW11-3F-Z|6个| |五通|1个| |特氟龙管|两米及以上| |MR106轴承|16个| |608轴承|8个| |PC4-01气动接头|2个| |PC4-M5气动接头|4个| |BMG挤出机|4个| |TT马达|4个| |L298N电机驱动模块|2个| |MX3.0(2x2)接头|1个| |降压模块(24V降5V)|1个| |降压模块(24V降12V)|1个| |M3螺丝螺母|若干| |连接线|若干| ##### 软件部分 1. 下载并安装arduino IDE(如果之前没有安装过),下载页面连接在这里:[arduino software](http://https://www.arduino.cc/en/software) 2. 在arduino IDE的文件-首选项-其他开发板管理器地址中添加`https://arduino.luatos.com/package_air_cn_index.json`并点击确定。 ![软件设置](doc/arduino_setting.jpg) 3. 在arduino IDE的开发板管理器中安装`AIR MCU`和`ESP32`。 ![输入图片说明](doc/air_board.jpg) ![输入图片说明](doc/esp32_board.jpg) 4. 在arduino IDE的库管理器中安装ArduinoJSON、AsyncTCP、AsyncTCP_SSL、AsyncMQTT_ESP32。 ![输入图片说明](doc/arduinoJSON.jpg) ![输入图片说明](doc/ASYNC_TCP.jpg) ![输入图片说明](doc/ASYNC_TCP_SSL.jpg) ![输入图片说明](doc/async_mqtt.jpg) 5. 编辑软件中的defines.h,在其中的User Settings中设置对应的设置,其中`WIFI_SSID`和`WIFI_PASSWORD`是wifi的名称和密码,`MQTT_HOST`是3D打印机的IP地址,`password`是打印机的配对码,一般是8位数字,`BambuLab_Serial`是打印机的序列号,编辑时注意区分大小写,`Filament_Num`是通道数,最多为4通道。在`debug settings`中的`JUMP_FILAMENT_INIT`是跳过耗材初始化的设置,如果AMS在开机初始化的时候就1通道的耗材已经在打印机中完成进料,则应该设置为1,跳过开机过程中的耗材初始化。 6. 替换打印机中的gcode,替换打印机设置-打印机G-code中的耗材丝更换G-CODE,将对应G-CODE更换为`filamentChange.gcode`中的G-CODE。 7. 连接好线路,其中所有的微动开关公共端上拉到3.3V,另一端连接到开发板上,电机的控制端直接连接到开发板,连线方式见`defines.h`中的`default settings`,其中`Motor_Forwar`分别对应电机1-4正转(进料)的GPIO引脚,`Motor_Bacword`对应电机1-4反转(退料)的GPIO引脚,`Filament_detection`对应耗材1-4的断料传感器的GPIO引脚,连接微动开关,`Buffer_Detection`对应进料缓冲器的GPIO引脚,连接微动开关。