天天看點

Repetier-Firmware Documentation(中文翻譯) Repetier-Firmware Documentation

本人嘗試着翻譯一些Repetier固件的文檔,希望能幫助到大家,也讓自己對他的内容有所了解。-->未完結,以後再抽時間去搞

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

括号中藍色部分是小編的注釋

Repetier-Firmware Documentation

Installation

Arduino-IDE

Repetier-Firmware Documentation(中文翻譯) Repetier-Firmware Documentation

  首先你應該下載下傳和安裝開發軟體。不用太擔心,做這件事很簡單,而且你不需要特别的程式設計經驗和技巧。你可以在 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中選擇單片機和端口。但是你需要先打開你的單片機,因為隻有你的單片機和電腦相連時,那個端口才能被選中。

  為了一部上傳成功,你需要按照以下步驟:

  1. 選擇注冊标簽頁“Configuration.h”
  2. 查找行“#define MOTHERBOARD”并且改變後面的數字以比對你的單片機
  3. 在靠近末尾的地方,你可以發現行:“#define BAUDRATE 250000”,根據你的喜好改變波特率或者不用管它
  4. 確定連接配接了列印機,并且單片機和端口選擇正确
  5. 按下上傳按鈕。這個按鈕是指向右側的箭頭。
  6. 等待一段時間後,你會看到編譯後檔案的大小,并且開始了上傳。在大多數的單片機上你會看到一個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));
           

  注意事項:

  1. 我們發現宏定義的名字使用大寫字母,這并不是必須的,但是是一個有用的公約,因為通過浏覽全文代碼,我們可以快速地發現預處理器需要處理的由大寫字元組成的宏定義
  2. 宏定義可以擁有參數
  3. 宏定義可以不擁有一個替代的值,它可以為空
  4. 宏定義可以是另一個宏定義的參數
  5. 如果你想将一個超長宏定義分為數行書寫,你可以使用反斜杠“\”作為一行的結束符。注意反斜杠後不能有任何字元,比如空格。

  固件使用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

繼續閱讀