3D 프린터 만들기 - 아두이노에 마를린 펌웨어 업로드 환경 만들기 (아두이노 보드설정 / 12864 LCD 설정)

프로필

2015. 11. 27. 10:00

이웃추가

로봇빌더스에요.

오늘은 아두이노 보드에 마를린 펌웨어를 올리는 과정을 정리합니다.

[ 준비물 ]

1. 아두이노 [ MKS GEN V1.4 ] 보드 & USB 케이블 ............ 여러가지 보드가 있으니 선택하기

2. 마를린 펌웨어 다운로드 .............................................. 지난 포스팅 링크 참조 (https://github.com/MarlinFirmware/Marlin)

3. 아두이노 IDE 프로그램 다운로드 .................................. 지난 포스팅 링크 참조 (https://www.arduino.cc/en/Main/Software)

4. LCD 모듈 ................................................................. 여러가지 모듈이 있으니 선택하기

5. 그래픽 LCD용 [ u8glib ] 라이브러리 [ 12864 LCD ] 용 .... 상세설명 아래 참조 (https://code.google.com/p/u8glib/)

준비된 아두이노 [ MKS GEN V1.4 ] 보드에 마를린 펌웨어를 업로드 한후에 잘 작동하는지 확인하기 위해서 아래와 같이 두가지 방법이 있답니다.

아두이노 보드 [ MKS GEN V1.4 ] + 마를린 펌웨어 업로드 ............................ PC와 연결하여 호스트 프로그램으로 상태확인

아두이노 보드 [ MKS GEN V1.4 ] + LCD모듈 + 마를린 펌웨어 업로드 ............ LCD모듈의 버튼조작으로 상태확인

PC와 연결하여 3D 프린터에 설치된 아두이노 보드의 상태를 확인하고, 설정하는 호스트 (HOST) 프로그램은 나중에 다루기로 하며, 이번에는 LCD 모듈을 설치하여 작동확인을 해보기로 합니다.

준비물 폴더에는 아래와 같은 파일들이 있습니다.

#1 - 다운로드 받은 아두이노 IDE 프로그램 [ arduino-1.6.6-windows.exe ] 설치하기

* 설치과정은 어렵지 않아 생략합니다. ^^

* 드라이버는 모두 [ 설치하기 ] 를 선택합니다.

#2 - 설치된 아두이노 IDE 프로그램 실행

* 아래 그림과 같은 프로그램 실행화면을 만날 수 있어요.

#3 - USB 케이블을 이용하여 아두이노 보드와 PC 연결

* 아두이노 보드를 PC에 연결하고 잠시 기다리면 자동으로 [ 드라이버 소프트웨어 ] 설치가 됩니다.

* 제 경우 USB Serial Port 는 [ COM3 ] 으로 설정되었고, 사용자 PC 사양에 따라 다른 [ COM 포트 ] 가 지정될 수 있으니 당황하지 마세요. ^^

* [ COM3 ] 포트는 아두이노 IDE 에 설정값을 지정하여 아두이노 보드와 통신하는데 사용되니 기억하세요.

#4 - 장치관리자에서 USB Serial Port 설치 확인 (생략가능)

* 아두이노 시리얼 통신용 포트가 잘 설치되었네요.

#5 - 아두이노 보드와 통신을 위한 아두이노 IDE 설정하기

* 툴 >> 보드 >> [ Arduino / Genuino Mega or Mega2560 ] 선택 ........ 보드사양에 따라 다를 수 있음

* 툴 >> 프로세서 >> [ ATMega2560 or Mega2560 ] 선택 ................... 보드사양에 따라 다를 수 있음

* 툴 >> 포트 >> [ COM3 ] ............................................................ 아두이노 IDE 설치시 설정된 통신포트 사용

#6 - 그래픽 LCD 모듈 [ 12864 LCD ] 사용시 필요한 라이브러리 [ u8glib ] 다운로드

​ * 다운로드 링크 ................... https://code.google.com/p/u8glib/

​ * 아두이노에 사용할 라이브러리로 아래 그림의 화살표 참조

* 텍스트 타입 2004 LCD 모듈 사용시에는 필요없음

​

#7 - 아두이노 IDE에 라이브러리 [ u8glib ] 포함시키기

* ​스케치 >> 라이브러리 포함하기 >> .ZIP 라이브러리 추가 >> 저장위치 선택 >> 열기

​ * ​스케치 >> 라이브러리 포함하기 >> [ Contribyted 라이브러리 ] 항목에 라이브러리 추가 확인​

* 텍스트 타입 2004 LCD 모듈 사용시에는 필요없음



#8 - 마를린 펌웨어 열기

* ​다운로드한 마를린 펨웨어 압축파일 풀기

* 소스파일 위치 [ Marlin-Release\Marlin​\Marlin.ino ] 파일

* 아두이노 아이콘이 표시되어 찾기 쉬움​

* 새창으로 마를린 펌웨어 소스파일들이 열림

#9 - 마를린 펌웨어 수정을 따라가기 위한 팁 [ 아두이노 IDE 간단 설명 ]

* ​아래 그림과 같이 우측 상단에 있는 화살표를 클릭하면 현재 열려있는 소스파일을 확인할 수 있음

* 설명에 나오는 소스파일을 선​택하여 이동할 수 있음

* ​아래 그림과 같이 좌측 하단 화살표 위치에 소스코드의 라인이 표시됨

* 설명에 나오는 소스파일 수정위치 (라인번호 참조) 를 알 수 있음

#10 - 마를린 펌웨어 수정하기 [ 아두이노 보드타입 설정 / LCD 모듈 설정]

* ​아래 그림과 같이 우측 상단에 있는 화살표를 클릭하여 [ board.h ] 로 이동합니다.

* 소스코드 라인 13-16 번의 보드형태가 [ RAMPS 1.3 / 1.4 ] 를 사용하는 아두이노 보드의 형태임

* 일반적인 경우 첫번째 구성으로 설정함

==> ​​#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)

* 설정하고자 하는 보드구성의 번호를 [ 예) 33 ] 을 사용하거나 보드이름 [​예) BOARD_RAMPS_13_EFB ] 를 사용함

* 다른 구성의 보드를 사용하는 경우 [ board.h ] 에서 보드의 번호 또는 명칭을 찾을 수 있음

* 사용하려는 보드구성의 이름을 복사합니다. 여기서는 [ ​BOARD_RAMPS_13_EFB ] 를 사용

​#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)

#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)

#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)

#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)

* ​아래 그림과 같이 우측 상단에 있는 화살표를 클릭하여 [ configration.h ] 로 이동합니다.



* 소스코드 라인 47

​ - 수정전 : #define MOTHERBOARD BOARD_ULTIMAKER

- 수정후 : ​#define MOTHERBOARD BOARD_RAMPS_13_EFB

* 소스코드 라인 552 [ 2004 LCD 모듈 사용시 ]

​ - 수정전 : //#define REPRAP_DISCOUNT_SMART_CONTROLLER

 - 수정후 : #define REPRAP_DISCOUNT_SMART_CONTROLLER (// 만 삭제)

// The RepRapDiscount Smart Controller (white PCB)

// http://reprap.org/wiki/RepRapDiscount_Smart_Controller

//#define REPRAP_DISCOUNT_SMART_CONTROLLER

* 소스코드 라인 562 [ 12864 LCD 모듈 사용시 ]

​ - 수정전 : //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

 - 수정후 : ​#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER (// 만 삭제)

// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)

// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller

//

// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib

//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

* 소스코드 라인 688-689 [ 12864 LCD 모듈 사용시 ]

​ - 수정전 : #define LCD_WIDTH 20

#define LCD_HEIGHT 5



​ - 수정후 : #define LCD_WIDTH 128

#define LCD_HEIGHT 64

#ifdef DOGLCD // Change number of lines to match the 128x64 graphics display

#define LCD_WIDTH 128 // was 20

#define LCD_HEIGHT 64 // was 5

#11 - 마를린 펌웨어 업로드

* ​아두이노 보드를 USB 케이블을 이용하여 PC와 연결 확인

* 툴 >> 보드 / 프로세서 / 포트 를 위에 설명한 내용과 같이 아두이노 보드에 맞도록 설정확인​

* 마를린 펌웨어 수정 ​확인

* 아래 그림과 같이 [ 스케치 >> 확인 / 컴파일 ] 메뉴를 눌러 수정한 소스코드를 컴파일 진행

* 컴파일 완료시 아래 그림 화살표 위치에 [ 컴파일 완료 ] 라고 상태확인 메시지 발생됨​

​ * 몇몇 메시지들이 발생될 수 있으나 [ 컴파일 완료 ] 메시지만 뜨면 됨 (메시지 내용이 궁금하면 별도 검색할 것)

* 아래 그림과 같이 [ 스케치 >> 업로드 ] 메뉴를 눌러 수정한 소스코드를 아두이노 보드에 업로드

 * 업로드 완료시 아래 그림 화살표 위치에 [ 업로드 완료 ] 라고 상태확인 메시지 발생됨​

#12 - 마를린 펌웨어 업로드 확인

​ * 가급적 회로의 변경을 할 경우 전원공급을 중단 후 설치/분해 할 것​

* 아두이노 보드와 PC 연결용 USB 케이블 제거​

* ​마를린 펌웨어 업로드 후 아두이노 보드에 LCD 모듈 설치 (미리 설치하여도 무관)

* 아두이​노 보드와 PC 연결용 USB 케이블 설치 (통신 목적이 아닌 전원공급 목적임)

​ * USB 케이블을 통하여 전원공급 후 아두이노 보드에 업로드 된 마를린 펌웨어 부팅확인 (LCD 창 확인)

여기까지 잘 따라했다면 아두이노 보드에 연결된 LCD 창에서 마를린 펌웨어가 부팅된 화면을 만날 수 있답니다.

다만 일반적으로 구매하는 제품들이 비슷해보여도 속을 뜯어보면 여러모로 차이나는 제품들이어서 잘 따라해도 오작동하는 경우도 생길 수 있지요.

다음 포스팅에서는 '똑같이 했는데 이상해요~' 하시는 분들을 위해서 제가 겪은 에러들을 정리해보려합니다.

한번에 쭉~ 가면 좋겠지만 여기저기 다니면서 첨부하는 자료들이 많아져서 작성하는 시간도 매우~ 오래 걸리네요. ㅎㅎㅎ

도움이 되었다면 응원의 댓글~ 아시죠?

감사합니다.

Poisoning
Poisoning IT·컴퓨터

이것저것 만들기를 좋아하는 지구인임!!