[아두이노#169] LCD에 한글을 사용해보자! 녹칸다의도전 SD카드모듈&2.4인치 LCD쉴드(SPDF5408)(녹칸다/포로리야공대가자)
프로그래밍/아두이노 호작질 2020. 12. 8. 00:11
*169편 후반에 실패했던 사물인터넷 보드 wemos d1r1에서 lcd(ili9341)에 한글 띄우는 부분은 170편에서 간략하게 보충하며 마무리 하였습니다~~~!
LCD에 한글을 사용해보자! 녹칸다의도전 SD카드모듈&2.4인치 LCD쉴드(SPDF5408)
-(초고난이도)이번 내용은 강의라기 보다는 녹칸다의 개인적인 도전이다!
-향후 강의에서 LCD화면에 한글이 나왔으면 좋겠는데 아직 개인적인 예제를 가지고 있지 않기에 한번 구현해보도록 한다!
-다양한 방식이 있겠지만 그냥 녹칸다만의 아이디어를 이용해서 구현해볼 계획이다!
-일단 대략 살펴보기로 아두이노에서 한글을 3bytes UTF8로 인코딩 하는 것 같다!
-즉 한글 하나의 문자가 3bytes를 차지하게 되는데 3bytes hex code를 파일명으로 해서 SD카드에 txt파일을 만들어볼 생각이다!
-한글 하나의 문자에 대해서 txt파일이 하나씩 만들어지게 될것이고 파일안 내용은 해당 한글을 표현하기 위한 mono bitmap이 들어갈 예정이다!
-임의의 한글 string이 입력되었을때 문자를 하나씩 쪼개고 hex code로 변환한다음 SD카드에 해당되는 bitmap을 lcd에 드로잉하는 것이 목표이다!
녹칸다 예제의 중간 결과물~~!
녹칸다가 만든 한글폰트~~~!(16x16, 24x24)
한글폰트에 자음(ㄱ,ㄴ,ㄷ....ㅍ.ㅌ.ㅎ) 단모음(ㅏㅑㅓㅕ....ㅡㅣ) 추가한 폰트파일(2021.01.14)
예제169-1 2.4인치 LCD쉴드(SPFD5408)에 한글을 띄워보자!(버전1)
* 마이크로 SD카드모듈을 내장하고 있으므로 SD카드에 녹칸다 폰트를 집어넣고 활용하면 됩니다~~!
* 속도가 시원찮긴 한데 녹칸다 만의 방식으로 한글을 디스플레이 하는 것을 목표로 합니다~~!
* 버전1 예제에서는 한글을 sram에 저장해놓고 쓸때 string으로 간단하게 활용하는 예제입니다!
* 생각을 못하고 이후에 개선해서 버전2개 만들어졌는데 그냥 같이 예제 코드로 업로드 합니다~~!
예제169-2 2.4인치 LCD쉴드(SPFD5408)에 한글을 띄워보자!(버전2)
* 한글 mono bitmap을 sram에 올려놓고 쓸때 byte array로 저장하는 방식입니다!
* 버전1 대비 저장공간이 1/2로 줄어드는 효과가 있습니다~!
예제 169-3 온습도센서가 달려있다고 가정하고 데이터를 디스플레이해보자!
* 한글을 불러오는데 시간이 꽤나 걸리므로 setup에서 배경화면처럼 띄워놓고 화면에서 변경되는 값인 온도와 습도값만 클리어하면서 한글을 다시 띄우는데 필요한 시간을 최소화 하는 예제~!
예제 169-4 한글에서 아주 소량의부분에 한해서 계속 다시 그려질 필요가 있을때 적용할만한 예제!
* 예제는 온습도센서가 있다고치고 구현함!
예제 169-5 한글을 sram에 올려놓고 쓸때 메모리 최대 범위를 확인해보는 예제!
* 16x16폰트는 12개쯤 사용할 수 있고 24x24폰트는 8개쯤 사용가능한 것 같다!
* 그러나 최적화는 하지 않았기에 조금만 신경쓰면 더 가능할 것 같다!
관련라이브러리(SPFD5408)