Melzi/zh tw

From RepRapWiki
Jump to: navigation, search


Crystal Clear action run.png
Melzi

Release status: working

Melzi2.jpg
Description Release Version 2.0
License GPL 2.0
Author Joem & Adrianbowyer
Contributors
Based-on Sanguinololu
Categories Electronics, Development, Mendel Development
CAD Models https://github.com/reprappro/melzi
External Link none

Contents

介紹

一個集RepRaps功能於一身,並且包含擠出頭控制、最佳化生產製造的控制板

當然RepRap的宗旨為自己動手做,但是有時候使用者只是想要即插即用RepRap控制器,使他們可以更專注於在機器的其他地方,或是專注在機械設計或是軟體的操作。

因此Melzi是一片完整的RepRap控制板,它應該是很便宜並且適合大量生產的控制板。 它是以Arduino Leonardo為基礎來進行開發,並且以Leonardo da Vinci的學生 - Francesco Melzi來命名。

版本

確認您的Melzi控制板版本:

控制板名稱 ATMEGA微控制器 步進馬達驅動器 生產者 年份
RepRap Melzi 2.0 1284P A4982 RepRapPro 2012-至今
"Melzi 2.0 1284P" (eBay hybrid) 1284P A4988 Various eBay vendors 2012-至今
Melzi Ardentissimo 1.0 644P A4988 RepRapPro 2011

Melzi Version 1.0 (Ardentissimo)

Melzi-ardentissimo.jpg

第一版Melzi使用ATMEGA 644P微處理器, 與4顆A4988 步進馬達驅動器。 然而,因為製造不良導致印刷電路板上的線路會有地方出現短路。常常出現熱敏電阻讀數不準確,或者無法讀取。

注意! 有些便宜的網路賣家仍然在販售這個Melzi版本! 詳見本頁最下面的'如何購買'。

Melzi 1.0/2.0 拍賣上的變種版本

Melzi V03.jpg

網路上大部份的都是"Melzi 2.0 1284P"或是"Melzi V03"實際上是使用1.0的電路圖,包括"Melzi Ardentissimo"標誌與像第一版的A4988步進馬達驅動器,但是使用與2.0相同的ATMEGA 1284P微控制器。 因此2.0的韌體可以被使用在這些變種版本的控制板上。

Melzi Version 2.0

Melzi2.jpg

規格:

  1. 微處理器: ATMEGA1284P (相容Sanguino)
  2. 全快拆接頭,不需要焊接
  3. 讀取GCode檔案的Micro SD card插槽
  4. Mini USB 介面
  5. 4 x A4982 步進馬達驅動器
  6. 3 x MOSFET 驅動器控制熱床、擠出頭、冷卻風扇
  7. 尺寸: 210mm x 50mm x 17mm
  8. 重量: 70g

Melzi-circuit.png

Melzi-pcb.png

原始檔案

第一版的Melzi是由Joe Mosfet所開發。

第二版的Melzi是從Joe Mosfet基於RepRapPro Ltd的原創開發。 可以在這裡找到: https://github.com/reprappro/melzi

設定Melzi

通常絕大部分的控制板都已經安裝好bootloader與韌體,以及設定好步進馬達驅動器的電流大小。 如果沒有,請繼續往下閱讀吧...

Bootloader上傳

如果您的控制板上的ATMEGA晶片是空白的,或是您不得不更換Melzi的微控制器(例如,如果您把ATMEGA晶片弄短路了),您將需要更新/燒錄一個bootloader到晶片。

更換Melzi的Atmel ATMEGA1284P晶片,這需要以下的RepRapPro技術:

  1. 移除舊的Atmel ATMEGA1284P晶片 - 我們發現使用熱風槍來進行焊接是非常的容易的;注意不要對周遭的晶體過度加熱。您也可以使用錫爐來進行解銲,但是必須注意不要輕推到旁邊的元件。
  2. 銲接新晶片 - 確定擺放的腳位是正確的! 在電路板上使用助銲劑,然後銲接晶片。 您可以透過使用細尖鉻鐵,熱風槍,焊錫或烤箱做到這一點。
  3. 使用放大鏡或是顯微鏡,檢查各接腳是否有短路。

上傳bootloader:

  1. 如果晶片是空白的;您將需要燒錄一個bootloader到晶片中。當晶片是空白時,它是無法透過USB來進行上傳韌體,只能透過電路板上的ISP腳位進行上傳。
  2. 燒錄bootloader,您需要一台AVR燒錄器,像是 http://www.atmel.com/tools/AVRISPMKII.aspx 這是官方的一台燒錄器,當然它的售價比較昂貴,不過有一些便宜可代用的燒錄器可以在購物網站上找到。 記得確認這類的燒錄器是否支援ATMEGA1284P晶片; 像是USBtinyISP就不支援。
  3. http://arduino.cc/en/Main/Software 下載最新版本的Arduino IDE軟體
  4. 確定您已經從 https://github.com/reprappro/Marlin 下載最新的'Sanguino'資料夾,並已經將它放置到您的Arduino/hardware資料夾(它有可能已經被放置資料夾下的'arduino'或'tools'資料夾)
  5. 透過USB連接AVR燒錄器到電腦。 燒錄器透過SPI接腳連接到Melzi。 連接USB到Melzi - 它需要使用USB提供電力。
  6. 開啟Arduino IDE。 點選'Tools | Board',選擇 'Sanguino W/ATmega1284p 16 mhz'。 接著點選'Tools | Serial Port'選單,選擇您的AVR燒錄器通訊埠; 或是選取'Tools | Programmer'選擇您的AVR燒錄器。
  7. 選取'Tools'選單,選擇'Burn Bootloader'。 如果不順利,您可能會看到錯誤訊息,您可以透過網路來查詢排除這些錯誤。錯誤訊息可能會因為您所使用的燒錄器而不同。 當然,這也有可能是您的控制板有一些問題...

使用Arduino UNO當作ISP燒錄器上傳bootloader:

  1. 您可以透過Arduino UNO開發板來燒錄bootloader。 首先您必須先上傳ISP程式到Arduino UNO開發板上。
  2. 下載最新版本的Arduino IDE軟體。
  3. 開啟Arduino IDE。 載入ISP程式'File | Examples | ArduinoISP'。 在'Tools | Board'選單下,選擇'Arduino UNO'。 最後選擇開發板的序列埠。
  4. 點選上傳按鈕,來將Arduino UNO變成ISP燒錄器。

使用Arduino UNO當作ISP燒錄器與Melzi的連接如下,共四條線:

 * pin 1 MISO (Melzi) on pin 12 (Arduino)
 * pin 3 SCk  (Melzi) on pin 13 (Arduino)
 * pin 5 Reset(Melzi) on pin 10 (Arduino)
 * pin 4 MOSI (Melzo) on pin 11 (Arduino)
Arduino as ISP.jpg
  1. 連接Arduino UNO開發板與Melzi控制板到您的電腦上(Melzi開發板需要電力)。
  2. 下載最新的'Sanguino'資料夾並像上面的敘述一樣進行安裝。
  3. 開啟Arduino IDE。 選取'Tools | Board'選單選擇有著Sanguino的板子,如果您不知道該選擇哪一片板子,您可以先隨便選一個,如果選到了錯誤的板子,Arduino UNO將會無法燒錄bootloader並且出現錯誤。
  4. 選取'Tools | Serial Port'選單,選擇Arduino UNO開發板的序列埠。 接著至'Tools | Programmer'選擇'Arduino as ISP'。
  5. 如果您之前選擇的板子並不是正確的,您將會得到錯誤訊息,像是板子的id 'XX' 是不正確的,這裡的XX為十六進位。 如果'XX' 為 'FF',請再三檢查連接的線路,再來嘗試從'Tools | Board'選擇另一片板子,或是到搜尋引擎搜尋'XX'所代表的意思。

韌體上傳

有一個Marlin版本的RepRap韌體在RepRapPro Ltd's Github repository。 它包含了使用Arduino IDE上傳到Sanguino(包括了Melzi)所必需的額外檔案。 而這些額外的檔案在您要使用燒錄器燒錄bootloader時也非常的必要。

這裡有更詳細的韌體介紹與說明 RepRapPro 網站.

除了Marlin以外還有Repetier這個韌體,他在我的Melzi上運作甚至比Marlin還要棒。 想要了解更多有關Repetier的資訊可以在這裡找到。 另外還有一個有著不錯功能的韌體設定工具(v0.92)。 如果您喜歡Repetier,您可以考慮贊助Repetier。

Melzi Arduino 接腳編號

#define X_STEP_PIN         15
#define X_DIR_PIN          21
#define X_MIN_PIN          18

#define Y_STEP_PIN         22
#define Y_DIR_PIN          23
#define Y_MIN_PIN          19

#define Z_STEP_PIN         3
#define Z_DIR_PIN          2
#define Z_MIN_PIN          20

#define E0_STEP_PIN         1
#define E0_DIR_PIN          0

#define LED_PIN            27

#define FAN_PIN            4 

#define HEATER_0_PIN       13 // extruder

#define HEATER_BED_PIN     10 // bed (change to 12 for breakout pin on header)
#define X_ENABLE_PIN       14
#define Y_ENABLE_PIN       14
#define Z_ENABLE_PIN       26
#define E0_ENABLE_PIN      14

#define TEMP_0_PIN          7   // Analogue pin
#define TEMP_BED_PIN        6   // Analogue pin
#define SDSS               31

#define SLAVE_CLOCK	   16

設定馬達電流

這部分請參考: RepRapPro_Setting_Motor_Currents

Melzi使用藍芽(Bluetooth)

為了擺脫電腦與Melzi之間麻煩討厭的USB連接線,可以使用藍芽(Bluetooth)模組來取代這條USB傳輸線。 這裡有一片便宜的藍芽(Bluetooth)模組 - 'JY-MCU' (供應商 Shenzhen Jiayuan Electronic Co.,Ltd.).

Jy-mcu f.jpg Jy-mcu b.jpg

更改藍芽(Bluetooth)設定

使用藍芽(Bluetooth)之前可以改變一些預設設定值。 透過模組USB<->RS232 (RxD/TxD)介面與電腦連線,預設的通訊埠設定值為(9600, N, 8, 1)實際可能不同,請參閱藍芽(Bluetooth)模組的手冊。 此時藍芽(Bluetooth)模組要為未配對的狀態,再使用終端機程式輸入以下的AT指令:

AT OK 
AT+BAUD8 OK115200BAUD (設定成Melzi控制板的序列埠鮑率)
AT+NAMEHUXLEY OKsetname (選用, 設定名稱)
AT+PIN0000 OKsetPIN  (選用, 設定密碼, 預設: 1234)

更多設定項目,您可以在這裡找到[[1]]

連接藍芽(Bluetooth)線路

Melzi控制板上的4050D有一組尚未使用的電平轉換(5V -> 3.3V)。 整體需要銲接五條線路。 需要注意的是並不建議直接與TXD腳位連接,在Arduino開發板上的序列晶片是透過一顆1kOhm的電阻來與微控制器連接,但是在Melzi控制板並沒有這樣的設計。

BT Connection.png

透過藍芽(Bluetooth)連接

您可以像是平常使用RepRap一樣,從下拉式選單選擇您的藍芽(Bluetooth)通訊埠即可。

液晶顯示器

Gert為他的Melzi增加了液晶顯示器與旋轉編碼器,這裡有一些照片

可以透過I2C介面連接一片純文字的液晶顯示器,如這個部落格裡的圖。 最新的Marlin版本已經可以支援一些I/O擴充IC (PCA8574, PCF8574, MCP23017, MCP23008).

Panelolu2液晶顯示器與旋轉編碼器可以透過簡單的轉接板來與Melzi進行連接。

Melzi修復

弄壞了您的Melzi? 也許這裡有一些維修方法可以幫得上忙(方便的話也請透過編輯來分享您的解決方法吧):

Mini-USB連接座從電路板上脫落

A repair by Kevin T: http://forums.reprap.org/read.php?4,239276

無法與Melzi連接(FTDI驅動問題)

有一個透過Microsoft更新FTDI驅動造成的已知問題,如果Melzi使用非正版的FTDI晶片會出現裝置被停用的狀況。 此晶片是使用USB來與電腦進行通訊,所以控制板看起來都是在正常運作的狀態(LED閃爍),但是電腦上卻不會正常的出現序列埠,所以Arduino IDE/設定工具將無法與控制板連接。

此問題的詳細介紹: http://hackaday.com/2014/10/24/ftdi-screws-up-backs-down/
只能透過目視來檢查晶片的方法來確定晶片是否為正版: http://hackaday.com/2014/10/24/ftdi-screws-up-backs-down/#comment-2059852
在reprap論壇上有針對此問題在做討論: http://forums.reprap.org/read.php?1,417199
對於此問題有一個變通的解決辦法(為Windows強制安裝驅動): http://forums.reprap.org/read.php?1,417199,418768#msg-418768

如果晶片已經被驅動程式判斷為偽造品,該裝置的PID會被設定為"0000"。您可以在Mac System Profiler中看到,在Ubuntu下則可以打開一個終端機,執行"lsusb",它應該會顯示一個裝置是"0403:0000"。 如果您是使用Ubuntu這裡有一個工具可以重置裝置的PID: http://www.minipwner.com/index.php/unbrickftdi000 然後更新FTDI驅動程式,它就不會再次變成像磚頭一樣了。

螺絲端子座融化

有時候,Melzi控制板上的螺絲端子座會出現融化的狀況,通常這是因為熱床的連接線接觸不良、也就是說固定螺絲沒鎖緊所造成。 這有可能造成MOSFET損毀,因為它無法將控制時產生的電流輸出。 RepRapPro建議定期檢查螺絲端子座是否有鎖緊: https://reprappro.com/documentation/mendel-tricolour/maintenance/#Regular_maintenance

如果Melzi電路板沒有損壞,您可以考慮更換一個新的螺絲端子座。 有幾種不同的螺絲端子座:
這種是最常見的 - http://uk.farnell.com/multicomp/mc000048/terminal-block-pcb-5-08mm-2way/dp/2008019
這種高度比較高,可以更容易將電線放入 - http://uk.farnell.com/phoenix-contact/mkdsn2-5-2-5-08/header-pcb-screw-5-08mm-2way/dp/1792766

加熱床的電源線大約承載12V 10A,所以任何接觸不良將會導致溫度升高。 因此必須檢查放入端子座的電線銅線部分長度是否足夠,以及時常檢查螺絲端子座是處在鎖緊的狀態。 另外加熱床的電源線的長度必須足夠,並且固定在框架上,不可以處在緊繃的狀態,避免電線因為疲勞而斷裂,造成危險。

熱床或擠出機出現錯誤或不正常的數值

如果當您的加熱床或是擠出機,在沒有連接熱敏電阻時就會有數值出現,這可能是電容已損壞,試著移除或是更換電容。

請參閱RepRapPro Mendel/Huxley 故障排除文件來解決其他已知的溫度問題請按此連結

燒錄韌體後出現avrdude錯誤

當我嘗試上傳韌體時avrdude出現"avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50...)"

這時候可以檢查當控制板與電腦連接時是否有出現新的序列埠,然後確定您已經燒錄了bootloader到控制板中,這部分可以參考上面的'Bootloader上傳'。

X軸向只能朝一方向移動或是限位開關無法運作

這可能是錯誤的664P Fuse設定值所造成。
Fuse設定值來自sanguino資料夾下的"hardware/arduino/boards.txt"檔案。
正確的644P Fuse設定值如下:

 atmega644.bootloader.low_fuses=0xFF
 atmega644.bootloader.high_fuses=0xDC
 atmega644.bootloader.extended_fuses=0xFD

然後您需要以上述的設定值重新燒錄bootloader。

Melzi已知問題(Geeetech)

下面是一些使用Geeetech Melzi控制板所遇到的問題列表。這些控制板的零售價已經低於$50 USD(其他工廠生產的v2.0與一些Sanguinololu的成本在$80-90上下)。 我個人的看法是,Geeetech已經沒有優勢,而且在跟其他高價的控制板(如Melzi 2.0, Sanguinololo, or RAMPS)比較下在重組/維修/時間上還會發現有更多的花費。我早在2014一月就使用過這一些控制板,並且已經維修與重組過他們,最後我已經更換或升級這些控制板兩次 --FlyingLotus1983 (talk) 19:47, 23 March 2014 (PDT)

  • 印刷電路板上的線路會出現隨機位置的斷路。 這是因為使用廉價的製造商、製造後又未進行測試所造成的結果。 例如,一塊控制板X軸向的方向控制訊號與接地短路,這將會造成X軸向只會往一個方向移動。 另一種則是跳線的訊號線與接地短路,當我設定該跳線(MS1-3)時,將會使5V電源與接地短路,這是非常危險的一件事。
  • BTEMP和ETEMP電阻(R4和R5)是使用錯誤的電阻值。 原始的Melzi是使用10K,但是在兩年前被改成了4.7K(Melzi 2.0已經改回正確的電阻值了),但是Geeetech依然使用錯誤的電阻值。這將影響熱敏電阻的精度,最好將電阻從4.7K換成10K,並於Marlin的韌體中改變熱敏電阻的數值。
  • 電壓調節器不能輸入24V的電壓。這是可以接受的,但是應該要在說明文件中加上像是"最高只支援18V的電壓輸入"的說明文字來提醒使用者。 要解決這個問題可以透過將跳線("PWR-SEL")設定為USB模式,然後也將7805電源調節器移除不使用。 另一個解決辦法則是購買一顆支援最高輸入電壓為24V的電源調節器換上去。
  • 如果您將標準Mk2b印刷電路加熱床(有著藍色的電源線)在12V下運作,由於Mk2b加熱床的工作電壓是24V,當使用12V時,會出現電壓不足導致溫度不夠高的狀況。 當使用24V時,它可以正常的加熱,但是只有在MOSFET電晶體上加上散熱片是不夠的,還有存在著一定的危險性,因此應該要告知使用者MOSFET規格(電壓與電流),讓使用者可以加上外部的MOSFET或是固態繼電器來提高安全性。 如前述的狀況,控制板上沒有任何設計任何相關的電路來應付各式各樣的加熱床,Geeetech的板子也沒使用像是原來Melzi所使用的RFP30N06LE,所以我不能確定它到底能夠承受多大的電流與功率。 所以使用加熱板時,請謹慎使用。
  • 當SD記憶卡插入時,有些控制板可能會重新開機,到現在都還沒有嘗試解決。 (這是所有Melzi都可能會遇到的,我認為或許是SD記憶卡插槽是共用reset腳位,但是也有可能是因為SD記憶卡插槽的3.3V電力是從FTDI供應所造成的。)
  • LED非常的暗,R25他們應該使用390 ohm電阻,但是可能因為某一些原因,他們使用1K電阻。
  • 用來設定步進馬達電流的可變電阻,在出廠時沒有設定在最低值。 在步進馬達安裝前沒有將一些設定成比較合理的參數(比如0.4V),控制板將會變得非常的燙,甚至可能造成損毀。 控制板出貨前應該要使用USB的5V電源,並透過三用電表量測四個可變電阻的電壓應該要在0.4V。他們並沒有做這個步驟,甚至連說明都沒有。

有在使用Geeetech的朋友,請注意Geeetech要召回更換一批控制板(從12/2013 到 03/2014). 他們有在他們的部落格公告如何更換。

他們指出"主要的問題出在加熱床與擠出機的熱敏電阻是使用10kohms來替代4.7Kohms。 另外熱床所使用的10N06 MOSFTEs只能負載10A的電流(目前已更換為35N06) 所有遇到此問題的顧客請透過myorder@geeetech.com跟GEEETECH服務團隊聯繫,我們將免費更換。"

這意味著他們可能自己安裝這些零件,不過這已經相當不錯了。

Digikey供應Geeetech Melzi的維修零件:

P4.7KECT-ND (4.7 OHM 1/4 Watt 電阻)

IPD035N06L3 GCT-ND (MOSFET N-CH 60V 90A)

如何購買

RepRapPro - Melzi V2.0