본문 바로가기

전체 글215

아두이노와 한글 -#9 한글을 표현하기전에 먼저 출력장치에 대해서 알아보자. 아주 많은 출력장치들이 있다. 그중에서 싸고 간단하게 출력하는 장치중에 OLED 디스플레이가 있다. 네이버 검책해서 바로 나온다. 3,5천원 정도 수준이니. 몇개 구매해서 연습해 보는것도 좋을것 같다. 일단 시작하게전에 개념을 공부하고 가자. 이것은 아두이노 입장에서 출력장치이다. 그러면 1. 출력모듈로 봐야 한다. 그렇다 본인이 초보라면 그냥 출력 모듈로 보기 바란다. 2. 출력모듈이라는것을 이해 했다면 이것은 또하나의 기기, 아두이노라고 봐도 무방하다. 왜냐하면 우리는 이것과 통신을 할것이다. 출력전용아두이노에게 통신으로 정보만 전달하면 원하는것을 출력해 준다. 그렇다 지금까지 모듈로 생각해 왔던 모든것은 다 아두이노인것이다. 통신을 통해서 전달하.. 2020. 10. 31.
아두이노와 한글 -#8 이전에는 5x8이라는 도트의 한계로 인하여 여러가지 어려움이 있었다. 그리고 지금까지 공부한것을 바탕으로 도트에서 픽셀로 넘어가자 OLED는 픽셀을 개념을 기본적으로 하기 떄문에 표현에는 좀 더 자유롭다. 앞으로 이것으로 좀 더 공부를 하자. 2020. 10. 26.
아두이노와 한글 -#7 선언부를 보면 한글에 대한 정의가 있다. 지난번에 https://mikeyancey.com/hamcalc/lcd_characters.php 사이트에서 한글 한자를 정의 한것 처럼, 초성,중성,종성 각각 정의 한다. LCD의 크기에 맞게 5x8의 도트에 맞게 정의 되어 있다. 이것만 하면 끝날것 같지만 영어와 한글은 근본적인 차이가 있다. 글자의 크기가 다르다. 예를 들어 가와 각의 'ㄱ'의 크기의 차이가 다르다. 세로의 길이도 다르며, 가로의 폭도 다르다. 우리가 문장을 출력할떄 세로는 대충 출력한다고해도 가로의 폭은 정확하게 계산하기 정말 어려울수가 있다. 그래서 라이브러리 만든분이 몇글자씩 출력하는 미완성으로 끝난것일수도 있다. 어쨰던 근본적으로 어려운일 일수도 있다. LCD 도트의 한계로 인하여 안.. 2020. 10. 26.
아두이노와 한글 -#6 코딩을 하다보면 남의 소스를 분석하는일이 종종발생한다. 그러면 남의 코딩의 분석할때 어떻게 분석하는것이 효률적이냐는 물음에 봉착 할 수가 있다. 잘짜여진 코드는 .h로 되는 선언부와 .cpp로 되는 정의부로 나누어 진다. 코드를 분석하는 입장에서는 우선 .h의 선언부를 분석한다. .cpp는 코드를 수정하지 않는다면 볼 필요조차가 없다. .h만 보고도 모든것이 파악된다고 봐도 무방하다. 혹시 본인이 코딩을 잘하고 싶다면 선언과 정의를 분리하는 습관을 가지기 바란다. //YWROBOT #ifndef LiquidCrystal_I2C_Hangul_h #define LiquidCrystal_I2C_Hangul_h #include #include "Print.h" #include #include "Arduino.h.. 2020. 10. 26.
아두이노와 한글 -#5 저번에 이어 좀더 구체적으로 공부하는것으로 해보자. 일단 인터넷에 공개된 라이브러리를 통해서 공부하는것이 좋을것 같다. https://blog.naver.com/junwha0511/221529144374 위 블로그에 한글에대한 라이브러리가 있다. 실제로 설치해서 사용하면 한글이 나오기는한데, 그닭 잘만들어진것 같지는 않다. 그래도 소스를 보면서 공부할것이 많은것 같다. 일단 아두이노 라이브러리 검색을 해서 설치하는방법과 https://github.com/junwha0511/LiquidCrystal_I2C_Hangul 깃협 사이트에서 ZIP을 받아서 설치하는방법이 있는데, 깃협이 더 최신 버전인것 같다. 블로그에 있는 설치방법이 오래된 버전 같은 느낌이니 참고 하시기 바란다. 2020. 10. 26.
아두이노와 한글 -#4 저번에 UFT8과 16에 대해서 공부 했다. 약간의 개념만 잡았다면 성공한것이다. 그리고 초성중성종성을 분리 할 수 있다면 거의 이해한것이다. 초성중성종성을 분리하기 전에 먼저 점과 폰트에 대해서 이해를 해야 한다. 글자한자에 대한 점들로 구성되어져 있고 그것들이 만들어진것이 폰트이다. 일단 점으로 글자를 만들어 보자. 이전에도 많이 사용했던 LCD를 이용해보자. 분명이 한계도 있고 쓰기에 많이 불편하지만, 그레도 한글 한자를 표현함으로써 어떤식으로 구현하는지를 이해 하자. https://mikeyancey.com/hamcalc/lcd_characters.php 위사이트에서 글자를 만들어 보자. LCD는 5x8해서 가로 5칸, 세로 8줄이다. 그것을 만들어 출력하는것이다. 자동으로 만들어 주고 있지만, .. 2020. 10. 24.
아두이노와 한글 -#3 지금까지 UTF, 유니코드에 대한 설명없이 그냥 시작했다. 그러기에는 기초지식이 너무 부족한게 사실이다. 그래서 아래링크를 읽어 보면 조금더 이해가 갈것 같다. 상세한 내용보다는 기본개념만 잡고 가기 바란다. 출처: https://studyforus.tistory.com/167 https://onlywis.tistory.com/2 https://sleepyeyes.tistory.com/3 https://kaspyx.tistory.com/37 https://kcal2845.tistory.com/34 2020. 10. 19.
아두이노와 한글 -#2 현재 UTF-8이 통일을 하고 있는 추세이다. WEB도 거의 표준이고 나머지 공개소프트웨어들도 대부분 기본적으로 UTF8을 사용한다. 그러면 우리는 딱히 공부할 필요가 없다. 그러나 현실은 꼭 그렇지만 않다. UTF16도 있고 CP949도 있고 다양하게 많다. 그중에 하나가 원도우다. 마이크로소프트는 그들이 가지고 있는 강력한 지워권을 통해서 반기들 들고 있다. 그래서 우리가 사용하는 원도우 시스템과 통신을 하거나 전달 할때는 다른것도 공부해야 하는것이다. 아두이노 보드에서 원도우 컴퓨터의 아두이노 시리얼모니터로 한글을 보낼때, 둘다 UTF8이기 때문에 한글이 잘 출력된다. 그러면 아두이노 보드에서 원도우 컴퓨터의 다른 소프트웨어로 보낸다고 할때 잘 출력된다는 보장은 없다. 그소프트웨어가 UFT8을 사용.. 2020. 10. 19.
아두이노와 한글 -#1 사실 공학하는 사람은 한글을 잘 다루지 않는다. 본인도 프로그래밍은 오래 했지만 한글을 다루거나, 어려움이 없었다. 그냥 잘되니까.... 사실 우물안에 살다 보니 그런것이다. 보통사람들은 우물안에 산다고 했을때 하수 아닌가? 이런 생각도 하술 있지만, 전혀 아니다. 그만큼 프로그래밍의 영역이 방대하기 떄문이다. 잡담은 그만하고 본론에 들어가서 아두이노의 작년 버전만해도 한글이 출력되지 않았다. 안되었다기 보다는 조치를 취해죠야 되었다는 표현이 정확하였다. 그런데 최신버전은 한글을 그냥 잘 지원해 준다. 아두이노 끼리 시리얼 전송으로 전송해도 잘가고 다른 시리얼 소프트웨어 putty나 테라템에도 잘 전달이 된다. 그래서 딱히 모르고 살아도 문제는 없다. 왜...? 같은 우물에 살고 있기 떄문이다. 정확하게.. 2020. 10. 19.