您的位置:首页 > 其它

Repetier-Firmware Documentation(中文翻译)

2015-07-28 15:51 239 查看
本人尝试着翻译一些Repetier固件的文档,希望能帮助到大家,也让自己对他的内容有所了解。

原文地址:http://www.repetier.com/documentation/repetier-firmware/rf-installation/

括号中蓝色部分是小编的注释


Repetier-Firmware Documentation


Installation


Arduino-IDE



首先你应该下载和安装开发软件。不用太担心,做这件事很简单,而且你不需要特别的编程经验和技巧。你可以在 http://arduino.cc/en/Main/Software得到你需要版本的
Arduino IDE(Arduino 集成开发环境)。这个软件有Windows,Linux和Mac的版本。你需要根据Arduino网址上的介绍进行安装和测试。如果你需要支持SD卡,那么你就要需要Arduino 1.0 或者更高的版本。

这个IDE(Arduino 集成开发环境)只包含他官方支持的单片机驱动(board driver)。如果你的单片机不在其中,那么你就要安装这些驱动文件了。没有包含的有: Gen
6, Sanguinololu, Gen7, Teensylu 和 Printrboard。

下一步是驱动的安装。这些Arduino IDE支持的单片机都是用串口协议,所以你的打印机就需要一个串口了。Arduino的设计者知道这是个问题,所以他们在Arduino单片机上集成了一个USB转串口的芯片。也是这个原因你需要在你使用的单片机上安装一个USB驱动。一些单片机或操作系统上并不需要一个这么一个特别驱动。但是如果你是Windows用户,那么你需要安装一个。(注:这一段我也没看懂它说的什么,我安装的时候没这么多的事啊)。

你现在需要下载最新的Repetier-Firmware去理解这个IDE。

你不用将克隆所有的镜像(就是在GIT上克隆),你需要做的就是下载这些内容的ZIP文档就好了。下载文档后--解压--打开IDE--File->Open--选择Repetier子文件夹中的“Repetier.ino”。

在你编译和上传(也就是我们烧录)程序到单片机之前,你需要在菜单栏选项Tool中选择单片机和端口。但是你需要先打开你的单片机,因为只有你的单片机和电脑相连时,那个端口才能被选中。

为了一部上传成功,你需要按照以下步骤:

选择注册标签页“Configuration.h”
查找行“#define MOTHERBOARD”并且改变后面的数字以匹配你的单片机
在靠近末尾的地方,你可以发现行:“#define BAUDRATE 250000”,根据你的喜好改变波特率或者不用管它
确保连接了打印机,并且单片机和端口选择正确
按下上传按钮。这个按钮是指向右侧的箭头。
等待一段时间后,你会看到编译后文件的大小,并且开始了上传。在大多数的单片机上你会看到一个LED灯开始闪烁。当它停止闪烁的时候,那么上传完成,并且一会你会在IDE上得到消息:“Upload done”。

祝贺你!你就在刚刚编译和上传了你第一个固件。(有这么简单?应该是可以的!当然你的打印机得是标准的。)你可以打开上位机软件,并且连上你的单片机,并且设置你刚刚设置的波特率。这个时候不要试着打印,你还没有设定好所有所需的细节。但是你可以使用“m115”(获取固件信息)或者让你的打印机移动一点(在你设定好每个轴上每个脉冲移动多少mm之前,不要移动太长的距离)。


常见错误:

如果 MOTHERBOARD 的设置和你的板子不匹配,你会得到一个相应的错我信息。

如果你的上位机软件和你的固件相连着,那么你不能更新你的固件。

有时上传器会重启单片机失败,这样就不会开启bootloader。如果你发现固件编译完成而且那个LED灯在5秒内没有闪,那么尝试按下重启按钮。通常情况下这样做是有用的。

有时你会从上传器得到一个同步错误消息。尝试:拔掉打印机并且重新连接,如果还是不行,就是重启你的电脑。


总体配置

大体上你只需要更新两个配置文件。主要的配置文件是“Configuration.h”,这个文件已经在这个章节处理过了。如果你有一个LCD显示屏和一些按键,并且如果你的固件不直接支持,那么你需要更改“uiconfig.h”,这些配置会在下一章节中讲解。默认配置是没有LCD显示屏和没有按键。如果你的单片机不是官方支持的或者你改变的一些针脚的用法,那么你需要更改“pins.h”

当你打开“Configuration.h”文件,你会看到众多的注释和一些可以更改的变量。这些配置是通过预处理命令完成的。

对预处理器的简明形象介绍:

如果你不知道预处理器是什么,那么你应该仔细看这些介绍。我会介绍你所需的所有关于配置的信息。但是你是大师级的有经验的程序员,那么你可以越过这部分内容了。

我们的目标是通过配置使我们的固件在我们的打印机上完美地运行。查看RepRap的网站,你会发现有许多不同种类的打印机,它们有着不同的控制板、不同的传感器、不同的启动方法。让一个固件适应这么多不同的种类,那么它需要非常灵活,并且使用数据来定义某个控制板的启动方式。那么为了实现这些功能,预处理器就显得特别重要了。它是一个简单的处理工具,它在真正进行编译之前将代码的不同的部分是失去作用或者拥有作用、替代一些内容使用预处理器中的数据、进行一些错误检查。

所有拥有#开头的预处理命令都可以被辨认,其中最重要的是#define。他定义的这些标志会替代掉所有在代码中它指向的数据的内容。

例子:

#define MY_NUMBER 8
#define SQUARED(a) (a)*(a)
print(SQUARED(MY_NUMBER);


最后一条代码会被转化为:

print((8)*(8));


注意事项:

我们发现宏定义的名字使用大写字母,这并不是必须的,但是是一个有用的公约,因为通过浏览全文代码,我们可以快速地发现预处理器需要处理的由大写字符组成的宏定义
宏定义可以拥有参数
宏定义可以不拥有一个替代的值,它可以为空
宏定义可以是另一个宏定义的参数
如果你想将一个超长宏定义分为数行书写,你可以使用反斜杠“\”作为一行的结束符。注意反斜杠后不能有任何字符,比如空格。

固件使用2种方法在特定条件下去编译代码。方法一:你可以自定义一个参数,使用这个参数来说明“0”用来编译,而“1”不用来编译。另一种方法是利用条件编译命令。在configuration你可以发现许多被注释掉的宏定义,如果你移去//修饰符,则这个定义就会被激活。下面的例子解释了它是怎么运行的。

#define PRINTTYPE 1
#define DOIT
//#define DOITTOO
#if PRINTTYPE==1
print("Type is 1");
#endif
#if PRINTTYPE==2
print("Type is 2"); // Not called, because PRINTTYPE is 1
#endif
#ifdef DOIT
print("Doit defined");
#else
print("Doit not defined"); // Not called
#endif
#ifndef DOITTOO
print("I'm also called.");
#endif




EEPROM 陷阱

我已经解释过了使用EEPROM功能会带来多么的方便。你知道你对configuration.h的任何改动的意义是很重要的。在你的“Configuration.h”中存在下行代码:
#define EEPROM_MODE 1
如果你将其设为0,那么就会禁止使用EEPROM。介于1到255之间的值都可以激活它,而且决定是否在一开始就就将EEPROM中的值覆盖掉或者是保留原有的值。这个技巧非常简单。我将EEPROM中的第一个字节和EEPROM_MODE的值进行对比,如果比值不同,那么你在configuration中的设定值就会拷贝到EEPROM中,并且第一个字节也会设置成相应的模式。在下一步,固件就会使用储存在EEPROM中的值。

正确的初始化对于一个优秀的功能是非常重要的。如果你要使用另一个软件,而且这个软件也会往EEPROM中写东西,所以你要确定哪些有可能被影响的数据得到重新初始化。从0.8版本以来,固件中会储存一个校验码,如果有任何改动,我们就会自动发现。

如果你遵循第一个安装教程进行了安装,那么你已经将数据写到EEPROM中了。那么你可以现在将EEPROM_MODE更改为2,那么你就可以使用现在的一些配置覆盖掉原来的配置。

从0.8版本开始,你可以使用M502命令根据Configuration.h更改EEPROM中的值了。


Modifying EEPROM values

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: