[버섯] Smart Controller 12864 LCD 액정 & 사용법 Ver 1.2 - 12864 Display LCD 3D Printer Controller + Adapter For RAMPS 1.4 Reprap Mende본문 길이 제한으로 적당히 내용 수정했으며 파일은 용량 제한으로 첨부하지 못하니 원문을 참고하세요.
Modified Date: 2017.04.28 revision 1.2 들어가며.. 안녕하세요 버섯돌이 유재성입니다. 포스팅 후에도 틈틈이 내용을 다듬다 보니 수정이 잦네요.^^ 원문 수정 시 공유한 곳의 글 들도 함께 수정하려고 노력합니다만 수정이 쉽지 않습니다.^^;;;
이 강좌는 알리의 구매 정보를 비롯하여 제품의 스펙 및 제어 방법 등의 세부 내용을 포함하고 있습니다. 혹시라도 최저가 구매 정보만 필요하신 분은 글의 후반부인 구매정보를 참고하세요.
제품 수령.. 이 제품은 지난달에 열심히 이것저것 찾으면서 월초에 질러서 1~2주 전에 수령했습니다.^^ RAMPS 보드와 연결하기 위한 어댑터가 포함된 제품이라서 12864 액정하고 어댑터가 함께 들어있습니다. 12864 LCD는 이름에서 알 수 있듯이 가로 128 * 세로 64 도트를 출력할 수 있는 그래픽 LCD입니다. 이 제품의 정식 명칭은 RepRapDiscount Full Graphic Smart Controller입니다. http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller 좌측 하단 기판에 레이블이 보이죠^^ (ㅋㅋㅋ 흡사... RepRap 할인~ 으로 생각되겠습니다.) 사실, 아두이노만 고려한다면 12864 액정만 따로 구매하면 가격이 저렴하지만... 3D 프린터에도 바로 사용할 수 있고 사용하기 편하도록 어댑터와 케이블 등의 부가 제품이 있어서 이 제품으로 구매했습니다.^^
제품을 자세히 보면 12864 액정에 리셋 스위치와 스피커및 볼륨 조절 버튼처럼 생긴 로터리 스위치가 달려 있습니다. 또한, SD 카드도 처리할 수 있도록 설계되었으며, 로터리 스위치는 푸쉬 버튼 기능이 있어서 메뉴 등을 선택할 수도 있습니다. 즉, 3D 프린터에서는 이 녀석 하나면 굳이 PC와 연결하지 않아도 3D 프린터를 사용할 수 있도록 만들기 위한 필수 제품이죠.^^ 그래서 굳이 3D 프린터가 아니어도 다양하게 활용 가능할 것 같아서 이 제품으로 선택했습니다.*^^*V
뒷면을 자세히 보면 SD 카드로부터 데이터를 읽어 들일 수 있도록 되어 있으며... 전압 처리를 위한 레벨 시프트로 74HC4050 버퍼 IC가 사용되었습니다. RepRapDiscount Full Graphic Smart Controller... 가장 쉽게는 Ramps 보드와 아두이노 메가에 연결하면 Marlin 펌웨어를 올려서 바로 사용할 수 있지만.... RAMPS 보드와 무관하게 아두이노에서 직접 제어할 필요도 있어서 제품에 대해서 다양하게 찾아 봤습니다.
아래 RePrap wiki 페이지에 이 보드에 대한 자세한 설명이 있습니다. http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
제 경우 아두이노에서 직접 제어할 필요가 있어서 각 포트가 어떻게 연결되어있는지 살펴보았습니다. 제가 사용 중인 아도브 리더 프로그램의 문제인지 모르겠지만 아무리 확대해도 MOSI 등 일부 글자가 겹치네요... 폰트를 바꾸거나 PDF 리더 프로그램을 바꾸려다 귀찮아서 Pass~하며 PDF 파일은 본 글에 첨부했습니다. 아래는 전체 스키마입니다. 역시 PDF 파일은 본 글에 첨부했으며, 이미지는 조금이나마 편하게 볼 수 있도록 원본 사이즈로 첨부했습니다.
회로도의 중앙은 SD 카드와 관련되어 있고 상단 중앙은 피에조... 상단의 좌측이 제 관심사인 액정과 관련되어 있군요.
ㅋㅋㅋ.. 돌아 서면 잊어 버리기 때문에 나중에 필요할 때 좀 더 편하게 보기 위해 필요한 부분만 다시 캡처했습니다. 스키마를 보면 128*64 액정은 KXM12864M-3 디스플레이 모듈이 사용되었군요. 액정과 연결된 부분은 EXP1 커넥터의 3(LCDE), 4(LCDRS), 5(LCD4)번 핀하고 9(GND), 10(VCC) 전원핀 뿐이군요. 엄청난 편집의 귀차니즘을 뒤로하고... 아두이노 소스 쪽에서 다시 한 번 더 자세하게 정리하겠습니다.
KXM12864M-3(128*64) 액정 정보.. 아두이노로 액정을 제어하기 위해 KXM12864M-3 디스플레이 모듈의 자세한 정보를 찾아 봅니다. 역시 KXM12864M-3모듈의 Datasheet도 받아서 이 글에 첨부합니다. (KXM12864M-3-ETC.pdf) Datasheet 출처 : http://www.datasheetspdf.com/datasheet/KXM12864M-3.html KXM12864M-3 디스플레이 모듈의 제원 정보입니다. (이미지를 클릭하면 좀 더 크게 볼 수 있습니다.) 내공이 딸려서 지금은 필요는 없지만... 직접 제어하거나 할 때에는 중요한 정보라 훗날을 위해 첨부해 놓습니다.^^ (사진을 클릭하면 아주 조금 더 크게 볼 수 있습니다.)
제품 구동에 중요한 정보입니다.*^^* 만약, KXM12864M-3 디스플레이 모듈이만 구매해서 직접 제어하실 분들은 참고하셔야겠군요. 내공이 엄청 딸리는 저한테 제일(?) 중요한 블럭 다이어그램입니다.
좌측 상단에 보면 제일 중요한 LCD Controller LSI로 ST7920 IC가 사용된다고 나와있습니다. 아두이노나 다른 MCU로 제어하기 위해서는 ST7920 LCD 드라이버에 대한 정보가 필요합니다. 잠깐 찾아 보니 ST7920은 Chinese Fonts built in LCD controller라고 나오는군요.
역시 훗날을 위해 ST7920 LCD 드라이버의 Datasheet도 받아서 첨부합니다. (ST7920.pdf) Datasheet 출처 : http://www.hpinfotech.ro/ST7920.pdf
지금은 간단하게 아두이노의 라이브러리를 이용할 예정이라 ST7920의 세부 정보까지는 알 필요 없고... 어떤 라이브러리를 이용해야 하는지만 알면 되니 ST7920이라는 이름만 기억해 놓습니다.*^^*V 제가 제품을 구매할 때마다 가장 어려워하는 부분입니다.*^^* 제품을 구매하면 어떤 핀을 아두이노에 어떻게 연결해야 하는지~ 너무~ 너무~ 어렵죠~? 초반부의 스키마 그림에서 살펴봤듯이 Smart Controller에 연결된 핀은 빨간색으로 표시한 4,5,6번 핀입니다.
4번 핀 RS(CS)는 High 일 때 Data를 Low 일 때 명령 코드를 처리하는군요. 5번 핀 R/W(SID)는 High 일 때 Read를 Low 일 때 Write를 처리하고 6번 핀에서는 Enable signal을 처리합니다. 아직은 뭐가~ 뭔지~ 모르겠지만~ SPI 정도로만 생각하고 Pass~
아두이노에서 KXM12864M-3(128*64) 액정 처리.. Smart Controller 위키에 나와있듯이 Marlin펌웨어에도 U8glib를 사용하고 있습니다. http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller 따라서, 아두이노에서의 제어는 편하게 U8glib 라이브러리를 이용합니다. https://code.google.com/archive/p/u8glib/wikis/u8glib.wiki https://code.google.com/archive/p/u8glib/ https://github.com/olikraus/u8glib
참고로, U8glib의 개발은 종료되고 u8g2를 개발하는 것 같네요. u8glib의 자세한 사용법은 아래 위키를 참고하세요. https://github.com/olikraus/u8glib/wiki
그리고 아리 위키 페이지에 아두이노 보드와의 연결 방법에 대한 튜토리얼이 있습니다. https://github.com/olikraus/u8glib/wiki/tdisplaysetup
Smart Controller 제품의 위키 페이지 링크에 있는 u2g 라이브러리는 v1.14 버전이고, 최신 버전은 1.19.1이더군요. 그래서 일단 두 버전 모두 이 글에 첨부는 했습니다. u8glib_arduino_v1.14.zip U8glib_Arduino-1.19.1.zip
강좌는 최신 버전인 U8glib_Arduino-1.19.1.zip으로 진행합니다. 라이브러리 설치는 아두이노 IDE에서 라이브러리 추가 기능으로 다운로드한 파일을 불러오면 됩니다.
그리고 아두이노 상단 메뉴의 "파일>예제>U8glib>HelloWorld"를 선택하면 샘플 예제를 실행할 수 있습니다.
ㅋㅋㅋ.. 쉽게 끝내려다 여기서 며칠 삽질 좀 했었습니다.^^;;; 역시~~ 급해도 마음을 비우고 돌아가는 게 최선입니다.^^;;; 지금까지 하나씩 설명드렸으니~ 여러분은 쉽게 하실 수 있을 거라 봅니다.
"HelloWorld" 샘플을 실행하면.. 샘플 소스를 사용하는 사람이 어떤 액정을 대상으로 실행하는지 알 수 없기 때문에.. 지원 가능한 무수히 많은 액정의 종류별로 사용하기 쉽도록 주석 처리되어 있습니다.
그중에서 우리는 아까 위에서 이름을 기억하라고 했었죠~ 네~ LCD 드라이버로 ST7920이 사용된다고 했었습니다. 그리고 저희는 128*64 액정이기 때문에 ST7920을 사용하면서 128*64인 생성자는 아래의 3개만 나옵니다.
끝으로, 저희가 구매한 제품은 LCD의 4,5,6번의 3개 핀만 연결되어 있습니다. 따라서, SPI를 사용하는 빨간색으로 표시한 생성자의 주석을 제거하면 되겠습니다.
이제 제일 중요한... 해당 생성자와 아두이노 핀과의 관계입니다. 주석을 보면 SPI에 대해서 아래처럼 설명되어 있습니다. // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17
해당 핀을 아두이노와 Smart Controller 제품과 어떻게 연결해야 할까요? 이해를 돕기 위해 지금까지 나온 것들을 모두 조합해서 편집해 봅니다. (원본 사이즈로 첨부해서 클릭하면 약간 더 커집니다.)
일단 커넥터의 경우 EXP1이 LCD와 관련되어 있으니 아두이노와의 연결은 EXP1 커넥터에 연결해야 합니다. 참고로, 제가 구매한 제품은 커넥터 방향이 사진처럼 보드 안쪽을 바라보고 있지만.. 다른 제품의 경우 커넥터가 반대 방향(바깥쪽)으로 연결된 제품도 있는 것 같으니 참고하세요. 따라서, 구분하실 때에는 커넥터의 홈이 파인 부분을 바라봤을 때 좌측부터 1번 핀입니다. 최대한 사진에 숫자 등으로 표기했으니... 적절히 참고하시기 바랍니다.
사진을 보면 알 수 있듯이 LCD와 최종 연결된 핀은 EXP1 커넥터의 3,4,5번 핀입니다. 그리고 EXP1 커넥터의 가장 우측인 9번 핀은 아두이노의 GND에 연결하고, 그 위의 10번 핀은 5V에 연결하면 됩니다.
그럼 이제 마지막 남은 EXP1 커넥터와 LCD 드라이버와 아두이노 소스와의 SPI 관계를 살펴봅니다. 샘플 소스의 주석을 보면 아래처럼 설명되어있습니다. // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17
RAMPS 보드는 아두이노 메가용 쉴드지만 아두이노 메가를 다른 용도로 사용 중이고... 새로 주문한 메가 보드는 아직 배송 중이라서 아들꺼 아두이노 우노로 테스트합니다.^^;;
SPI 통신을 위해 아두이노 우노가 지원하는 SPI 핀 번호를 확인하기 위해 UNO의 스펙을 살펴봅니다. https://www.arduino.cc/en/Main/ArduinoBoardUno
UNO의 경우 10,11,12,13번 핀이 SPI를 제공한다고 나와있네요.
ㅎㅎㅎㅎ... 하지만 핀 번호에 적혀있는 설명과 소스에 나온 설명이 조금 다르죠~? // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17
워낙 용어들이 다양하게 사용되기 때문에 다시 저것과 매핑하려니~ 또 머리가 아파오는군요~~ ㅋㅋㅋ.. 사실.. 요즘 기억력이 3초라서... 저걸 보고 다시 아두이노 핀을 보면 까먹습니다.ㅠㅠ
너무 쉽죠잉~?^^;; 테스트한 김에 그래픽 예제도~ 도움이 될지 몰라서 영상 하나 첨부합니다. 네이버 자체 영상은 본문 내용 변경시 카페 글에 반영하면 영상이 날아가서 유튜브에 업로드 해 놓습니다.ㅠㅠ
어차피... 자주 사용할 듯싶으니... 언제가 될지 모르겠지만 필요하면 나중에 따로 글 쓰겠습니다.^^
참고 자료.. RepRapDiscount Full Graphic Smart Controller Wiki http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
u8glib의 https://github.com/olikraus/u8glib/wiki
ST7920 LCD 드라이버 Datasheet http://www.hpinfotech.ro/ST7920.pdf
KXM12864M-3모듈의 Datasheet http://www.datasheetspdf.com/datasheet/KXM12864M-3.html
아두이노 UNO 스펙 https://www.arduino.cc/en/Main/ArduinoBoardUno
12864 Graphics LCD library - Arduino LCD playground http://playground.arduino.cc/Code/LCD12864
LCD Smart Controller - RIGID WIKI http://rigidtalk.com/wiki/index.php?title=LCD_Smart_Controller
아두이노 프로젝트를 위한 최상의 액정 5종 - Top 5 Arduino Displays
아무래도 액정이 크면 다양한 것을 표현할 수 있죠.*^^* 제품 구매하기 전에 찾은 정보 중 웨더 스테이션의 멋진 GUI도 있었는데... 안 보이네요.ㅠㅠ 강좌는 자세히 작성해 드렸으니.. 대충... 이런 것들을 할 수 있구나...하면서 참고만 하세요.
출처 : https://youtu.be/KO68r9L93gQ Arduino e Cia: LCD 128x64 e RTC DS3231 Arduino Weather Station - ESP8266, SI4432, DS1307, 128x64 LCD 출처 : https://youtu.be/I3FN-ci5o44 Arduino GLCD Demo ChibiMo: Arduino + KS0108 graphics LCD = USB Monitor Matrix keyboard and graphic LCD GLCD 128x64 with Arduino PIC microcontroller with GLCD( lcd homephone 128x64) u8glib MOD for G LCD JHD12864F screen + RAMPS 1 4 + Arduino Mega 2560 R3 for LCD screen and kit test 구매정보.. $9.44 - http://s.click.aliexpress.com/e/BaURBAe 저는 이곳 애니큐빅에서 구매했는데 등기우편으로 배송되어서 빨리 받아 볼 수 있었습니다. Anycubic 12864 Display LCD 3D Printer Controller +Adapter For RAMPS 1.4 Reprap Mendel GM $4.92 - http://s.click.aliexpress.com/e/aeEimMv 이건 스마트 컨트롤러가 아닌 액정입니다. 1pcs/lot LCD Board 12864 128X64 5V blue screen display ST7920 LCD module 100% new original $17.19 - http://s.click.aliexpress.com/e/VnEIAAQ 3D Printer Reprap MKS 12864OLED Intelligent Controller 0.96" 128x64 OLED Display 이 제품은 크기가 작은 OLED 타입으로 SD 카드 사용이 편하다고 내써팝의 3D프린터 고수님께서 추천해 주셨습니다. 제품 설명은 http://s.click.aliexpress.com/e/uFEMRny 이 판매자가 조금 더 자세합니다. OLED라 크기가 작고 예쁘장하니 기존의 3D프린터 액정이 크셨던 분들은 고려하셔도 좋을 것 같네요.
$13.15 - http://s.click.aliexpress.com/e/RRzBEMR $13.15 - http://s.click.aliexpress.com/e/r3vFqvb $13.55 - http://s.click.aliexpress.com/e/Jm2vNvb 이 제품도 크기가 작은 MINI LCD 타입으로 SD 카드 사용이 편하다고 내써팝의 3D프린터 고수님께서 추천해 주셨습니다. 크기가 작고 예쁘장하니 기존의 3D프린터 액정이 크셨던 분들은 고려하셔도 좋을 것 같네요. 참고로, Arduino Mega2560하고만 호환되는 보드입니다.
$2.59 - http://s.click.aliexpress.com/e/bEAMZVr Electronic kit Circuit Board 0.96 Inch SPI OLED Display Module 12864 LED For Arduino 2.7 x 2.8cm Resolution 128 x 64 3D 프린터와 무관하게 바로 위의 제품에서 OLED 타입의 액정도 사용되기에... 순수하게 아두이노에서 사용하는 128*64가 지원되는 OLED 액정만 하나 찾아 봤습니다. 참고로, 3D 프린터에서 사용하려면 버튼 및 SD 카드 등이 없기 때문에 손봐야합니다.
아두이노 메가2560 Rev3 호환 보드(LOGO) - USB 케이블 포함 Free shiping !!! Mega 2560 R3 Mega2560 REV3 ATmega2560-16AU Board + USB Cable Compatible Good Quality Low Price $2.91 - http://s.click.aliexpress.com/e/Fm2B6ay USB 케이블 없음 One set TENSTAR ROBOT New 2016 - UNO R3 ATmega328P/CH340G MicroUSB. Compatible for Arduino UNO Rev 3.0 (hei)
$2.95 - http://s.click.aliexpress.com/e/vjIaAaq USB 케이블 없음 2016 high quality One set UNO R3 (CH340G) MEGA328P for Arduino UNO R3 (NO USB CABLE) $3.42 - http://s.click.aliexpress.com/e/B6Qfaqz TENSTAR ROBOT UNO R3 MEGA328P CH340G for Arduino UNO R3 + USB CABLE
가격보다는 배송 속도와 제품의 품질이 더 중요하신 분들은 국내에서 구매하세요.^^ 메카솔루션은 5.1~5.7까지는 배송비가 무료입니다..*^^*
마치며.. 알리마스터 커뮤니티도 잘 활용하시기 바라며 별 내용은 없지만 조금이라도 도움이 되었길 바랍니다.^^ 알리 제품 구매 관련 자료.. 알리마스터 커뮤니티 http://cafe.naver.com/alimaster : 알리익스프레스 최저가 제품의 목록과 제품 검색 및 사용기와 강좌 등의 정보 공유 특화 커뮤니티
[목차] 버섯돌이와 함께하는 3D 프린터 기초 http://blog.naver.com/dev4unet/220881452573 : 3D 프린터 기초 강좌및 3D 프린터와 관련된 정보 목록
[추천] 대형 사이즈 출력용 Full metal profile 3D Printer 최저가 제품들 [추천] Kossel Delta 3D Printer 최저가 제품 [목차] 버섯돌이와 함께하는 아두이노(Arduino) 기초 목차 [목차] 버섯돌이의 최저가 전자 부품(제품) 목록 [목차] 알리익스프레스 (AliExpress) 쇼핑 방법 정리 [알리마스터] 최저가 전자제품(&부품) 조회및 검색 [알리마스터] 전자제품을 제외한 최저가 제품 조회및 검색 : LEGO 등의 장난감 및 드릴 날 등의 전자제품을 제외한 최저가 제품들의 조회및 검색 [목차] 버섯돌이의 최저가 장난감 구매 정보 목록 아두이노 센서 제품들 : 먼지 센서 / 가스 센서 / 비접촉 온도 센서 / 전압 측정 센서 / 컬러 센서 / 날씨 센서 / 자기 센서 / Etc 최근 구매 관심 제품 목록 - 2017.03.27 : 구매하려고 정리 중인 센서/3D 프린터 / CNC / ETC 등의 최저가 제품들 라즈베리파이용 HDMI 터치액정들 + GPIO 확장 보드 - 라즈베리파이 액정 알리 회원가입 및 100$ 쿠폰 팩 받기 |
최신댓글