stm32开发3D打印机(一)——介绍(已完成)

如何运用stm32开发3D打印机

首先介绍一下我是如何开发的

这是我第一次写博客,关于stm32开源3D打印机我将在今后的一年里陆续写完
首先介绍一下本人,写这篇文章是于2020年8月开始,同时本人现在是一名准大二大学生,专业是电气工程及其自动化,在大一时参与了一些实验和项目并自学使用stm32。

我于6月开始在淘宝寻找一块合适的3D打印机开发板,以diy一部3D打印机
起初我发现Dlion的主板挺好的,但是拓展端口过少,尽管可以使用。
后来我找到了BIGTREETECH 的 SKR-PRO-V1.1,这块主板各个方面都相当的优秀。
如下图所示
在这里插入图片描述

我于6月下旬购买了BIGTREETECH 的 SKR-PRO-V1.2开发板,在7月上旬期末考试结束后开始开发,大概用了三个星期的时间开发完成,目前能够读取G代码,随后步进电机做出相应的运动。

首先使用的是 BIGTREETECH 的 SKR-PRO-V1.2 ,SKR-PRO-V1.2 与SKR-PRO-V1.1大致相同。

这里是引用于深圳市必趣科技有限公司 SKR-PRO-V1.1 的使用说明书
BIGTREETECH-SKR-PRO-V1.1 主板是深圳必趣科技有限公司 3D 打印 团队针对市面上主板存在的一些问题,推出的一款以 STM32F407ZGT6 为核心控制器的高性能 3D 打印机主控板。

然而这块主板

这里是引用于深圳市必趣科技有限公司 SKR-PRO-V1.1 的使用说明书
1)目前只支持必趣科技有限公司开源的 Marlin2.0 固件:
可到必趣科技有限公司开源网址:https://github.com/bigtreetech?tab=repositories 找到对应的主板进行下载。
2)Marlin2.0 固件更新方法:
下载好必趣科技有限公司开源的 Marlin2.0 固件后,使用 Visual Studio Code 打开工程进行编译,然后 找到 firmware.bin 文件,复制到 SD 卡中,然后复位主板等待 10 秒左右即可即可。(也可直接下载 firmware.bin)
详细步骤请参照教程:
https://www.dropbox.com/s/ppjfflhf3j5yzh2/MarlinV2.0%20SKRV1.1%20instruction.docx?dl=0

通过上述说明,可以知道这块SKR-PRO-V1.1是通过Visual Studio Code开源的,并将生成的文件复制到SD卡更新固件的。

然而目前只会用stm32的我,恰好发现了这块板的芯片是STM32F407ZGT6,所以我想这块板当成了stm32f4开发。

想法挺好的,但是其中遇到许多困难:

最主要的困难是,如果把这块板当成stm32使用keil5开发,那么这块板的资料恐怕就剩下PCB了,(上述引用中有这块板的Visual Studio Code开源代码下载地址,但是这些代码我几乎没有看,我对这些代码的印象只有多、乱、复杂)。

但我还是克服了并开发出这块板的stm32代码

  • 首先这块板内部已经下载好程序,所以我们要通过电脑使用CH340芯片与板子连接(如上图的TFT位置有RXD、TXD)。
  • 随后短接boot1(使boot1置高),按下复位键,即可开始烧录。
  • 使用keil5编译生成的hex文件通过Flymcu串行烧录。
  • 烧录完成后,就可使用。
    下面两张是烧录时的截图

在这里插入图片描述
在这里插入图片描述

下面是我的运行效果图

板子是这样的,目前热床温度和喷头温度还未使用,使用了4个a4988,TF卡,通过电脑使用CH340芯片与板子连接(左下方既是ch340与板子相连的4根线),电脑通过串口通信软件发送信息对其控制。
在这里插入图片描述
连接后,板子启动,开启初始化,对部分端口、定时器、中断初始化,SD卡初始化完成后,随后进行文件系统FATFS初始化,如下图所示(其中前面连续出现了SPI_Init Finsh与finsh为TF卡初始化与FATFS初始化串口所发送的信息)
因为内部使用了usmart 的代码,所以可以直接调用函数(只需向串口发送信息)
(初始化时已对TF卡挂载)
随后发送了mf_scan_files(“0:”),这是打开TF卡目录的函数,然后板子通过串口返回TF卡目录信息。
在这里插入图片描述
再通过mf_open(“0:/aa1.gcode”,1),打开aa1.gcode打印文件,再输入1即可开始打印。

前面的解析失败是正常现象。(因为目前代码只实现读取G0与G1指令,并解析F、X、Y、Z、E),a11.gcode文件下面有截图

在这里插入图片描述
aa1.gcode打印文件前面的代码如下
在这里插入图片描述
好吧跳过前面不能识别的,看看到下面的串口接收到了什么信息
获得数据:XXXXXXXXXXXXXXXXXXX(是指完成读TF卡一行代码)
cmdbuffer[]=XXXXXXXXXXXXXXXXXXXX(是指读取代码缓存的信息)
(F是速度,feedrate是速度缓存,destination[]中0、1、2、3分别指X、Y、Z、E轴的信息转换缓存)

在这里插入图片描述
因为我还未安装温控,所以不能进行3D打印,但是我尝试了写字机器人,通过懒人代写软件生成了G代码,并进行执行(因为没有安装回弹,所以一直连笔,但尽管如此这精度还算是这样了)(a4988为全步,未开16细分)(5毛钱的笔芯,用线绑在那里,所以有这样的效果是不错了)
在这里插入图片描述
生成的文件代码如下图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

介绍到这里就结束了,代码部分后续更新。。。。

猜你喜欢

转载自blog.csdn.net/Nico_jion/article/details/107944274