전체 글

전체 글

    C++를 사용할 수 있는 GUI 라이브러리 모음

    C++를 사용할 수 있는 GUI 라이브러리 모음

    C++ 언어를 사용할 수 있는 GUI 라이브러리가 어떤 것들이 있는 지 얼마나 알고 계시나요? 저는 기껏해야 Windosws 환경에서 사용할 수 있는 MFC, 크로스 플랫폼을 지원하는 Qt와 GTK 그리고 wxWidgets 정도만 알고 있었습니다. 혹시 위에서 얘기한 라이브러리가 아닌 다른 것들을 찾고 있다면 아래 사이트를 꼭 참고해보시기를 바랍니다. 무려 40여 가지나 되는 C++ GUI 라이브러리를 소개한 페이지입니다. https://philippegroarke.com/posts/2018/c++_ui_solutions/ 윗글을 정리한 사람이 간단하게나마 각 라이브러리의 특징과 사용할 수 있는 운영체제 그리고 라이선스까지 적어두었습니다. 장단점도 적혀있는데 작성자의 개인 의견이기 때문에 참고만 하시면 ..

    Git push 하려는데 나타나는 403 에러 해결하기

    나의 시간과 코드가 날아갔다 어제 반나절 동안 작업한 코드를 날리고 말았습니다. 저장도 제대로 했고, 기능 구현을 마칠 때마다 git commit도 잘했는데 말이지요. 문제는 원격 저장소에 push를 하려는데 자꾸만 실패하는 것입니다. 원격 저장소 주소 설정도 제대로 되어있고 계정도 문제가 없습니다. 서버 문제도 아니고요. 그런데도 코드가 올라가지 않았습니다. 퇴근 시간은 다가오고, 마음은 급해져서 이리저리 git 명령어를 입력해봅니다. 그러다 그만 오늘 작업한 이력을 잃어버리고 말았지요. '어떻게 그럴 수 있지?' 라고 생각하실 수도 있지만... 이 글은 '커밋 이력을 날리는 법'이 아닌 403 에러를 해결하는 법을 설명하는 글입니다. 문제 상황 작업을 마치고 git 서버에 push 하려는데 에러가 났..

    리눅스 커널 빌드를 위한 셸 스크립트 분석

    리눅스 커널 빌드를 위한 셸 스크립트 분석

    시작하기에 앞서 이 글에서 다루는 셸 스크립트는 2장에 소개된 것입니다. 이 스크립트가 제대로 동작하기 위해서는 책에 설명된 환경이 갖춰져 있어야 합니다. 여기서는 커널 빌드 과정이 아닌 커널 빌드를 위한 셸 스크립트에 어떤 내용이 담겨있는지를 분석하는 글을 참고하셔서 읽어주시기를 바랍니다. 먼저 분석하고자 하는 예제 스크립트를 살펴본 다음에 셸 스크립트 문법을 딱 필요한 만큼만 알아보겠습니다. 그리고서 예제 스크립트를 한 줄씩 해석해보도록 하겠습니다. 커널 빌드를 위한 셸 스크립트 책에 소개된 셸 스크립트는 아래와 같습니다. 저자가 공유한 예제 스크립트는 이곳을 클릭하시면 확인하실 수 있습니다. #!/bin/bash echo "configure build output path" KERNEL_TOP_PA..

    영문 윈도에 설치된 프로그램의 한글이 깨져보일 때

    영문 윈도에 설치된 프로그램의 한글이 깨져보일 때

    최근 노트북 OS를 영문 윈도 11로 업그레이드하면서 회사에서 개발하는 프로그램에 문제가 생기는 일이 있습니다. 프로그램 실행은 되는데 상단 메뉴를 누르는 순간 프로그램이 그냥 꺼져버리는 문제였죠. 처음에는 윈도10과 윈도11의 호환성 문제일 거라고 생각했습니다. 하지만 자세히 보니 프로그램 대화창의 한글이 깨져있는 것을 발견하였습니다. 그래서 언어 문제라는 생각이 들었습니다. 하지만 저는 개인적으로 영문 OS를 사용하는 것이 익숙해서 운영체제의 표시 언어는 영어로 유지하면서 이 문제를 해결하고 싶었습니다. 그래서 열심히 인터넷을 뒤져본 결과 아래와 같은 방법으로 문제를 해결하였습니다. 문제 프로그램을 실행했는데, 한글 표기가 안 된다. 메뉴에 한글이 포함된 경우, 메뉴 버튼을 누르는 순간 프로그램이 종..

    STM32 최소 회로를 구성하기 위한 문서

    STM32 최소 회로를 구성하기 위한 문서

    스텝모터 제어 보드에 사용할 MCU로 STM32G030F6P6를 선정했다. 이제 최소 회로를 구성해야 한다. 그런데 데이터 시트를 찾아봐도 최소 회로에 대한 내용이 없다. ST 홈페이지에서 문서 자료를 뒤져보니 적절한 Application note를 찾았다. 문서 제목은 "Getting started with STM32G0 Series hardware development"이고 문서 번호는 AN5096이다. 문서 구하는 방법 ST 공식 홈페이지(https://www.st.com)에%EC%97%90) 접속한다. 상단 검색창에 AN5096을 입력한다. 검색 결과에 나타난 링크를 클릭하면 곧바로 PDF 파일을 다운받을 수 있다. 요약 이 문서에는 STM32G0 시리즈의 전원 공급, 클록 관리, 리셋 제어, 부..

    MCU를 선정하다.

    MCU를 선정하다.

    MCU는 ST사의 STM32G030F6P6로 선택하기로 했다. 아래와 같은 이유로 적당한 제품이라는 생각을 했다. 현재 기준으로 재고가 충분함 (digi-key) 값이 저렴함: $1.68 2개의 UART: 하나는 UUB와 통신용, 다른 하나는 모터 드라이버와 통신용 1개의 Advanced Timer, 4개의 General purpose Timer: PWM 생성할 때 필요함 17개의 GPIO: 여유롭지는 않지만 부족하지 않을 듯함 64MHz CPU: UART 파싱과 PWM 출력을 하기에는 충분하지 않을까 생각한다. ST 홈페이지를 뒤져보면 스텝 모터 제어에 추천되는 제품군을 소개한 것을 찾을 수 있다. 그중 가장 기본이 되는 라인이 64MHz의 CPU를 가지고 있다. 그렇다면, 괜찮지 않을까? 다음은 MC..

    Motor Driver를 선정하다.

    Allegro사의 A4988과 비슷한 수준의 드라이버를 사용하기로 한다. 참고로 Allegro사는 일본의 Sanken사가 미국에서 세운 자회사이다. Sanken사의 모터 드라이버 정보를 알아보다가 알게 되었다. 모터 드라이버 IC는 독일의 Trinamic사의 TMC2226으로 선택했다. Allegro의 A4988과 유사한 스펙을 가졌다. 값도 저렴한데 재밌어 보이는 기능이 많이 포함되어 있다. 모터 동작 소음을 최소화하는 기능 (StelthChop2) 고속동작에서 정밀하게 전류 제어 가능 (SpreadCycle) 1/256 스텝의 마이크로 스텝 제어 가능 (MicroPlyer) 소모 전류 효율을 높이고 발열도 줄이는 기능 (CoolStep) 센서 없이 Homing하고 부하를 감지하는 기능 (StallGu..

    [책] 손에 잡히는 Vim

    [책] 손에 잡히는 Vim

    처음 Vim을 접하게 된 것은 2013년도 즈음이다. 아마 라즈베리파이와 함께 리눅스를 처음 접하게 되면서였던 걸로 기억한다. 그 당시 나에게 Vim은 무슨 키를 쳐야 글이 써지는지도 모르겠고 종료시키는 방법도 알 수 없는 투박하고 불친절한 편집기였다. 그래서 그때는 '이것은 못 써먹을 도구다'라고 생각했다. 그러다 Vim에 매료되기 시작한 계기는, 2016년도에 이름을 대면 알만한(?) 개발자가 진행하는 파이썬 강연을 듣게 되면서이다. 처음 접한 파이썬이 신기하고 재밌기도 했지만, 그 자리가 즐거웠던 요소 중의 하나는 그 강연자가 Vim을 다루는 모습을 지켜보는 것이었다. 어떻게 하면 저렇게 빠르고 우아하게 코드를 칠 수 있을까 생각하며 시간을 보냈었다. 지금 나는 Vim을 무척 좋아한다..