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

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

这是我第一次写博客,关于stm32开源3D打印机我将在今后的一年里陆续写完

于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毛钱的笔芯,用线绑在那里,所以有这样的效果是不错了)

生成的文件代码如下图所示


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

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

  1. stm32开发3D打印机(三)——ADC热敏电阻测温、PWM控制(已完成)

    3D打印机温度读取 ADC3初始化 主控芯片为stm32f407ZG,对ADC3初始化,精度设定为12位 ADC3代码部分 void init_adc3() /ADC3初始化 {GPIO_InitTy ...

  2. stm32开发3D打印机(二)——方向、相关资料链接

    在这编文章里,我将写下3D打印机的相关资料链接和如何运作及之后写文章的大致方向 关于3D打印机(如何diy,零件的3D模型.Arduino源代码等等).写字机器人的资料等,是从多个地方收集,总而言之有 ...

  3. stm32开发3D打印机(五)——TF卡spi协议与FATFS文件系统(已完成)

    借鉴于正点原子stm32 Mini板 下方的代码仅为对TF卡的初始化 FATFS移植方法请看正点原子Mini板教程,以及建议完成USMART的移植 因为TFATFS移植与USMATRT没有什么好写的, ...

  4. stm32开发3D打印机(零)——打印板配置(未完成)

    对BIGTREETECH 的 SKR-PRO-V1.2的端口.定时器.中断等配置说明 板子如下图所示 板子相关资料在下方链接,下文就不全部截图了 链接:https://pan.baidu.com/s/ ...

  5. stm32开发3D打印机(六)——使用FATFS文件系统读取打印文件 获取信息 执行转换 转换坐标(上)

    这篇文章为读取打印文件(后缀为gcode的文件),并添加USMART功能调试 因为TFATFS移植与USMATRT没有什么好写的,而且在下方的链接:正点原子教程已经有详细的教程了,所以跳过了TATFS ...

  6. iar stm32_树莓派玩转STM32开发(一)——介绍篇

    01 - 树莓派 树莓派(Raspberry Pi)听起来让人流口水,但它的确不是吃的(身为非吃货的我第一次也以为它是食物--).树莓派是基于ARM架构的Linux卡片电脑,由英国树莓派基金会开发,目 ...

  7. 使用Cocos2d-x 开发3D游戏-卞安-专题视频课程

    使用Cocos2d-x 开发3D游戏-39376人已学习 课程介绍         由CSDN知名博客讲师火云红孩儿创建的火云开发课堂正式开始讲授新的Cocos2d-x v3.7版本中的3D引擎功能模 ...

  8. STM32开发环境(工具)之Keil MDK 介绍

    STM32微处理器基于ARM核,所以很多基于ARM嵌入式开发环境都可用于STM32开发平台.开发工具都可用于STM32开发.选择合适的开发环境可以加快开发进度,节省开发成本.本章将先对STM32常用的 ...

  9. 3D打印机DIY之三------Arduino开发环境构建和Marlin固件配置

    一.Arduino开发环境 1.搜索Arduino IDE下载安装即可. 2.使用VS code开发Arduino Arduino IDE很简单,很多功能都没有,使用起来很不方便.因此建议使用Visu ...

  10. stm32开发板能干什么?stm32开发板功能介绍

    很多开发者对于STM32开发板还都不了解,具体哪一款好用?怎么选择?让很多工程师感到困惑,今天就给大家介绍一款DFRobot商城新品,适合有经验的STM32玩家使用的一款开发板-STM32F411开发 ...

最新文章

  1. 【深入浅出项目管理视频1】-项目文档评审
  2. python的函数的对象属性_Python帮助函数调试函数 用于获取对象的属性及属性值...
  3. 游戏中的颜色:深度解析游戏设计工具
  4. 在linux系统JDK安装中文字体
  5. OS- -进程详详解
  6. java单例模式_在Java中实现单例模式
  7. 剑指offer:33-37记录
  8. matlab的7.3版本是什么_乐建工程宝V6.3版本升级说明公告
  9. USB外接摄像头不能用怎么办
  10. Markdown 基础语法与常见问题总结
  11. vue的第一份正式源码
  12. 全通阅卷系统服务器配置,网上阅卷系统建设方案(24页)-原创力文档
  13. EasyAR4.0简单使用说明
  14. Nebula Graph - SpringBoot 操作 Nebula
  15. java 佛祖保佑_佛祖保佑,永无bug
  16. 基于STM32HAL库ADC+DMA模式,高精度采集电池电量与芯片内部温度方法 (48脚 使用内部参考电压方案)
  17. annotation 的方法
  18. 国家计算机二级office要准备多久,全国计算机二级考试office一周复习计划
  19. iOS中GIF图片的加载
  20. 计算机组成与体系结构乘法指令设计,基于Quartus II的计算机组成与体系结构综合实验教程...

热门文章

  1. 最新emoji表情代码大全_在 Markdown 中使用表情符号
  2. lwip-2.1.3在STM32F103ZE+ENC28J60有线网卡上无操作系统移植(使用STM32 HAL库)
  3. 服务器2008修改端口,Windows Server 2008 R2需要修改445端口
  4. Java词法分析器的设计与实现
  5. JUnit 4 vs JUnit 5
  6. Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1
  7. 微信小程序云开发实现一对一聊天
  8. Python——球面两点距离及两条直线夹角的计算
  9. FATF发布数字资产反洗钱指南
  10. 计算机桌面桌面设置动态视频,电脑怎么设置动态桌面