作者:Michael Wang
這邊分享在開源3D printer (Arduino Mega2560、RAMPS1.4、Marlin firmware)架構下,透過WiFi連線操作的方式,希望能提供不熟悉電子電路的朋友們一種簡單的使用方式。
1. 所需的硬體裝置:
1.1 Arduino Mega 2560
1.2 RAMPS 1.4
1.3 ESP8266 ESP-01 (Wifi module)
1.4 USB-TTL FTDI (支援3.3v/5v。建議選擇5v,因3.3v常發生電流不足而產生非預期異常現象)
1.5 5V->3V降壓模組 (為了足夠電流選擇5v端,但必須降壓成3v才可供ESP8266 ESP-01使用,否則可能造成元件燒毀)
2. 所需的軟體:
2.1 NodeMCU Firmware:
https://github.com/nodemcu/nodemcu-firmware/releases
2.2 Firmware Flasher-
2.2.1 Win64 Windows Flasher:
https://github.com/nodemcu/nodemcu-flasher/raw/master/Win64/Release/ESP8266Flasher.exe
2.2.2 Win32 Windows Flasher:
https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe
2.3 ESP8266 TCP to Serial Bridge file (讓ESP8266可以和RAMPS溝通)
2.3.1 Station Mode (此篇以Station Mode為例):
https://drive.google.com/file/d/0B9b6-RyV1H8VQ090RXpEa2dRLUU/view?usp=sharing
2.3.2 AP Mode:
http://www.roboremo.com/esp8266-tcp-to-serial.html
2.4 ESPlorer:
3. 燒錄NodeMCU Firmware:
3.1 首先根據圖(1)接上USB-TTL FTDI與ESP8266 ESP-01之間的連線。
3.1.1 圖(1)注意RX接TX,TX接RX。同時也注意要燒錄NodeMCU Firmware時,橘色GPIO0的連線必須要接上GND,其他Wifi運作時、Upload Lua code時則不得接上。

圖(1)
3.1.2 使用圖(2)中元件、杜邦線做準備。

圖(2)
3.1.3 圖(3)為USB-TTL FTDI使用3.3v的接線方式。

圖(3)
3.1.4 圖(4)但是由於3.3v會因電流不穩,造成燒錄失敗或異常的可能,因此建議此處直接連接5V->3V降壓模組(後續使用到的裝置),而USB-TTL FTDI則調為5v模式使用。(注意此時要燒錄firmware,所以左邊橘線必須接上GPIO0 <-> GND)。
3.1.5 5V->3V降壓模組電壓輸出端連接ESP8266 ESP-01、電壓輸入端連接USB-TTL FTDI。
3.2 上述裝置USB插入電腦,並打開軟體Firmware Flasher。
3.2.1 首先注意圖(6) COM Port number是否正確。
3.2.2 圖(7)在燒錄時需要在Advanced -> Baudrate選項,選擇ESP8266 ESP-01 default baudrate (通常為115200),若否,則需要trial and error。
3.2.3 圖(8)選擇所要燒錄的NodeMCU Firmware file,再回到3.2.1按下Flash開始燒錄。

圖(8)
3.2.4 圖(9)可以在Log頁面確認燒錄過程與燒錄是否成功。
*注意:以此版本fimware燒錄後的baudrate為9600 (後續upload 檔案和Marlin firmware修改皆需使用)。

圖(9)

圖(9)
4. 上傳ESP8266 TCP到Serial Bridge (Station Mode):
4.1 打開圖(10)的ESPlorer軟體,File -> Open from disk選擇所要的init.lua檔案。(注意檔案名稱必須為”init.lua”)
4.2 接著修改項目:
4.2.1欲連線之Wifi SSID、Wifi Password
4.2.2 IP(配給ESP8266之IP)、Netmask和Gateway(Wifi AP之IP)
4.2.3連線速率baudrate改為 9600
4.3 修改完成後,插入圖(11)的 USB〈注意此時並非燒錄firmware,所以左方橘線不得接上 GPIO0 != GND〉。並在圖(10)右上方選擇正確com port number後按下Open,接著左下方按Save to ESP鈕上傳〈右方會有上傳log顯示是否成功〉。

圖(11)
5. 裝配ESP8266 ESP-01上的Arduino/RAMPS1.4
5.1 圖(12)搭配上5V->3V降壓模組,並取下與USB-TTL FTDI之間的接線,改與RAMPS 1.4連接。

圖(12)
5.2 根據圖(13),將對應的連線接上(注意TX接RX、RX接TX)。
5.2.1 ESP8266 RX <-> RAPMS 1.4 AUX-4 D16 TX
5.2.2 ESP8266 TX <-> RAPMS 1.4 AUX-4 D17 RX
5.2.3 降壓模組GND <-> RAPMS 1.4 AUX-4 GND
5.2.3 降壓模組Vin <-> RAPMS 1.4 AUX-4 5v

圖(13)
6. 修改Marlin firmware:
6.1 Configuration.h
#SERIAL_PORT X // X改為2
#define BAUDRATE Y // Y改為9600
6.2 注意改好後接上USB線,upload到Arduino Mega 2560後不能再用USB列印, 要用TCP/IP連接。若要改回USB列印則在6.1之步驟修改為原始值再使用USB upload到Arduino Mega 2560。
圖(14)設定Host Software (Repetive-Host為例)
7. 最後設定:
7.1 列印機設定->連線方式->選TCP/IP連線
7.2 IP位址->設定ESP8266時輸入的IP (參考4.2.2步驟)
7.3通訊埠->設定ESP8266時輸入的Port (default為9876)
或您也可以參考此篇文章的做法(部分方式不同)
(本文同步刊載於作者部落格AiFood,原文連結,責任編輯:賴芳如)
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!