본문 바로가기

연구 노트/개발일지

(13)
AstroNvim 설치와 Go언어 패키지 구성 AstroNvim은 Neovim에서 사용할 수 있는 기능 확장 구성이다. 단순히 기능만 확장되는 것이 아니라 겉보기도 다소 삭막한 vim 인터페이스를 현대적으로 바꿔준다. 이런 류의 구성으로 LazyVim, NvChad 등이 있다.0. MacPorts를 이용한 패키지 설치macOS에서 사용할 수 있는 대표적인 패키지 관리자로 homebrew가 있다. 보통 맥용 패키지 설치 방법을 설명할 때 homebrew 중심으로 설명하곤 한다. 그런데 homebrew는 최신 macOS 위주로 지원하기 때문에 오래된 macOS를 사용하고 있다면 설치가 잘 안 될 수 있다. 실제로 얼마 전에 어떤 패키지를 설치하는데 하루종일 기다려도 진행이 안 되는 문제가 있었다. 그래서 나는 그 이후로 homebrew 대신 또 다른 패..
2024년 11월 4주 회고 페어 프로그래밍 2페어 프로그래밍은 아주 잘 되고 있다. 혼자서 하는 것보다 둘이서 하는 것이 훨씬 진도가 잘 나간다. 언듯 보면 둘이서 1인분의 시간을 낭비하는 것 같지만 그렇지 않다. 둘이서 프로그래밍을 하다가 이렇게 하면 어떨까? 하는 아이디어가 나오면 바로 적용하게 된다. 혼자서라면 고민하다 시간을 끌고 적용을 안 하게 될 수도 있는 사안이었다. 머릿속으로만 생각만 하다 넘겨버릴 수 있는 아이디어도 실제 행동으로 옮겨졌다. 그래서 결국은 더 나은 효율을 낼 수 있었다. 그래서 만족한다. 동료가 조금 더 우리 코드에 익숙해지고 시스템을 이해하기 시작한다면 직접 수정도 가능해 보인다. 그때는 훨씬 더 높은 효율을 낼 수 있을 거라 기대한다.   2분명 좋은 내용인 것은 맞는데, 책 내용이 머리에 들어..
2024년 11월 3주 회고 페어 프로그래밍해보고 싶었던 페어 프로그래밍을 해볼 기회가 생겼다. 지금 진행하고 있는 프로젝트에 새로 합류한 동료와 함께하게 되었다. 누가 시켜서 한 것은 아니고 내가 페어 프로그래밍을 해보자고 했다. 빨리 동료에게 프로젝트를 이해시키면서 해야 할 일도 처리하기 위해서다. 예상대로 코드를 수정하는 데 드는 시간이 많이 들긴 했다. 하지만 혼자서 일할 때보다 코드를 더 면밀하게 살펴보며 짜게 되었다. 혼자 했으면 대충 이해하고 갔을 것을 하나하나 설명하며 하다 보니 당연히 그럴 수밖에 없었다. 코드를 빠르게 추가, 수정하지 못하니 처음에는 답답하다가도 불필요한 걱정을 하는 일이 줄어 오히려 좋기도 했다. 혼자 고민하느라 시간을 보냈을 것 같은 상황이 여러 번 있었다. 하지만 함께하던 동료가 그 고민은 나..
2024년 11월 2주 회고 테스트 코드테스트 코드가 절실한 한 주였다. 부끄럽게도 주도하고 있는 프로젝트에 테스트 코드가 없다. 그 대가를 톡톡히 치른 한 주였다. 테스트 코드가 없다면 수동으로라도 충분히 테스트해야 했다. 하지만 늘 그렇듯 시간이 문제였다. 일정에 맞추려니 딱 수정한 기능만 확인하고 SQA팀에 수정 버전을 넘겼다. 운이 좋으면 넘어가겠지만, 이번에는 그러지 못했다.iup-go는 이제 그만...사내용을 만든 프로그램 GUI로 iup-go를 사용하고 있다. Golang으로, 크로스 플랫폼을 지원하는 네이티브 GUI라는 점이 마음에 들어 사용했다. 하지만 이제는 슬슬 그만 놓아줘야 할 것 같은 생각이 든다. Windows에서는 문제가 없지만 Ubuntu에서는 알 수 없는 문제가 생겼다. 해결해 보려고 노력했지만, 끝내..
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는 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..
재고 부족 디바이스마트로부터 재고 부족 전화, 결국 Mouser 선택 디바이스마트에 주문한 다음날 재고가 없다는 전화를 받았다. 아무래도 RS측에서 재고량 업데이트가 안되어서 그런듯하다. 그래서 결국 가장 빠르게 받을 수 있는 Mouser에 주문했다. 부품값은 USD 25.09에 배송비는 USD 16로 합이 USD 41.09이다. 한화로 대략 47,000원 정도. 이번에는 취소되지 않길!