【3D打印机DIY组装】Sanguino 控制板 安装 Marlin 软件

开源技术
2014
03/20
23:00
分享
评论
Sanguino 控制板 安装 Marlin 软件
Note: Sanguinololu 1.3a 在USB 晶片跟1284P的通讯设计上,有些问题,倒致非常多网友买板子买来,却无法使用。建议请避免再购买Sanguinololu。


Sanguinololu简介

(译自http://reprap.org/wiki/Sanguinololu  翻得不好,请多多指教。)

Sanguinololu 是一个相对便宜的 RepRap 综合控制电路板,使用ATMEGA-1284做主控制器,使用四组 Pololu 模组做步进马达控制控制,分别控制XYZ三轴和挤出机。提供了I2C, SPI, UART等介面供软体开发者延伸控制功能。ADC 脚位提供量测功能(测温度用)。额外的14个GPIO可以增加周边电路的控制功能,例如SD卡、LCD液晶银幕等等。

Marlin 韧体特色:

(译自 https://github.com/ErikZalm/Marlin  翻得不好,请多多指教。)

Look-ahead (加减速预测):

透过预先分析下一个位置移动指令,Marlin知道下一个指令需要的马达速度。靠著这样的资讯,在结束当下指令的马达转动之前,不必减速到完全停止,而是直接改变马达速度去执行下一个指令。这样可以大幅加快列印的速度。

Arc Support (支援弧线):

Marlin可以自己决定最佳的弧线分段解析度,得到最平滑的弧线。

Temperature Oversampling  (温度多重採样):

為了减少杂讯对温度测量的干扰,Marlin採样16次后取平均值来当作加热时温度控制的参考依据。

AutoTemp(自动温度控制):

当环境温度改变,或是列印速度改变时,挤出头加热需要输出的功率,都需要跟著改变。Marlin利用PID自动控制技术,让挤出头能够稳定得维持工作温度。

EEPROM(参数记忆功能):

系统运作时需要一些参数来调整工作表现。例如控制温度的PID参数、步进马达的"距离 / 步数 对应值",仍然需要依照整个印表机的实际状况进行调整。这些调整后校準的结果,可以透过EEPROM的记忆功能,保留在控制晶片中。下次开机会自动载入,不需重新校正。

LCD Menu (液晶显示器选单):

透过外加的液晶显示器、按键模组,Marlin可以提供即时的离机操作。可以控制的功能包括: 改变工作温度、改变马达加速度、改变工作速度、改变挤出头挤出率、选择SD卡中的档案进行列印、预热还有关闭马达。相关硬体可以参考 http://www.thingiverse.com/thing:12663

SD card folders:

可以读取SD卡内的资料夹,档案不必放在卡片内最上层目录。

SD card auto print:

当SD卡最上层资料夹中,有档名為 auto[0-9].g 的档案时,机器会在开机后自动开始列印该档案。

Endstop trigger reporting:

在列印过程中,当边界侦测意外被触发,会留下记录。这有助於釐清列印失败的原因。

在Sanguinololu上安装Marlinl


设定马达控制的"微步进" (Microstepping)

Microstepping Jumper Settings
微步进的设定,是透过Sanguinololu板子上的跳线来操作。跳线的位置在马达驱动板的下方,要把马达驱动板拆下来才能看到跳线。一般会选用 1/8 或是 1/16 步进。要设定成八分之一步进的话,MS1 跟 MS2 要接上短路端子, MS3 维持开路。要设定成十六分之一步进的话,MS1 、 MS2 跟 MS3 都要接上短路端子。四个马达控制板都要做个自的设定。




下载 Arduino 1.0.1

(在这个版本上测试没有出现问题)
Download the Arduino Software
下载后解压缩到C:\arduino\arduino-1.0.1

下载 Marlin

https://github.com/ErikZalm/Marlin (找 "Download Zip"按钮进行下载)
载点
解压缩到C:\arduino\Marlin-Marlin_v1

新增sanguino硬体资讯到Arduino中

将资料夹C:\arduino\Marlin-Marlin_v1\ArduinoAddons\Arduino_1.x.x\sanguino
整个复製到C:\arduino\arduino-1.0.1\hardware

啟动 Arduino

执行C:\arduino\arduino-1.0.1\arduino.exe

在 Arduino 中指定硬体為 Sanguino



将Sanguino与电脑用USB连接

todo: 贴上照片

安装Sanguino驱动程式

驱动程式请指定在C:\arduino\ 中进行自动搜寻
todo: 贴上照片

设定COM port

选择正确的COM port


开啟Marlin程式码

File -> Open
开啟 C\arduino\Marlin-Marlin_v1\Marlin\Marlin.pde

修改设定档 Configuration.h


#define MOTHERBOARD
主控板种类
修改為 62 ,设定成"使用Sanguinololu 1.2 and above"

#define TEMP_SENSOR_0
挤出头温度感应器设定
如果使用100K的热敏电阻,请修改為1。
如果还没安装温度感应器,可以先改為0。


#define TEMP_SENSOR_1
热床温度感应器设定
如果使用100K的热敏电阻,请修改為1。
如果还没安装温度感应器,可以先改為0。

#define PID_MAX
加热头PID控制校正电流百分比,255对应到100%。
建议设定成100或更小,在校正挤出头PID控制参数时,不要让挤出头加热速度过快。

#define  DEFAULT_Kp
#define  DEFAULT_Ki
#define  DEFAULT_Kd
加热头PID控制参数。
要修改成多少,请参考 "挤出头温度控制校正"一文。
校正前,请不要啟动电热头加热功能。

#define MAX_BED_POWER
热床PID控制校正电流百分比,255对应到100%。

#define  DEFAULT_bedKp 10.00
#define  DEFAULT_bedKi .023
#define  DEFAULT_bedKd 305.4
热床PID控制参数。


#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
如果马达转动方向颠倒,可以靠这些参数做修正。

// ENDSTOP SETTINGS:
// Sets direction of endstops when homing2 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
边界侦测开关的位置,一般都安装在位置原点的那一侧,故设定成-1即可。

// Travel limits after homing
#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0
机器工作区域的设定,单位是 mm。
请依照机器结构做设定。

#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}  // set the homing speeds (mm/min)
寻找原点时机构运行的速度。如果马达有失步的问题,可以考虑减小这边的速度。
Z轴两颗马达串联,如果运转不顺,马达乱转的话,可把Z数值从"4*60"改小成"2*60"再试看看。

// default steps per unit for Ultimaker
#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0*8/3,760*1.1}
挤出头移动1mm,主控板需要发出几个步进讯号。
数值如何决定,请参考"计算移动1mm,步进马达需要走几步?"一文。

#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}    // (mm/sec)
挤出头最高移动速度。如果马达有失步的问题,可以考虑减小这边的速度。

#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}
挤出头移动时最大的加速度
机器运作时如果震动得狠严重,可能是挤出头加速减速过猛造成。可以减小这边的数值来改善。

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK                20.0    // (mm/sec)
#define DEFAULT_ZJERK                 0.4     // (mm/sec)
#define DEFAULT_EJERK                 5.0    // (mm/sec)
速度改变在这个值之内,控制板会不透过加速、减速的过程,直接把速度改到新指定的工作速度。如果起步就会卡住,或是列印过程中有失步,可以考虑减小这几个设定的值。
上载 Marlin 到 Sanguino

修改完 Configuration.h 后,请存档。然后直行 File->Upload,将 Marlin 上载到 Sanguino。
上载完成的话,在Arduino的状态列会出先 Done Upload 字样。


参考资讯

* https://github.com/ErikZalm/Marlin
* http://reprap.org/wiki/Sanguinololu
* marlin 简介.pdf (请先加入 FabLab Taipei 的 FB社团)
* Ginge1s Marlin Builder http://marlinbuilder.robotfuzz.com/
回复

使用道具 举报

2014-6-16 13:49:44 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

2014-6-27 12:24:07 | 显示全部楼层
谢谢楼主分享教程
回复 支持 反对

使用道具 举报

推动3D打印

关注南极熊

通知

联系QQ/微信9:00-16:00

392908259

南极熊3D打印网

致力于推动3D打印产业发展

Copyright © 2024 南极熊 By 3D打印 ( 京ICP备14042416号-1 ) 京公网安备11010802043351
快速回复 返回列表 返回顶部