전체 글
-
[C++] LiquidCrystal_I2C_PICO라즈베리파이 피코 2023. 2. 22. 19:06
아두이노의 LiquidCrystal_I2C를 라즈베리파이 피코 용으로 구현해보았다. 모든 기능을 다 구현하진 않았고, 내가 아두이노에서 썻던 주요 기능만 구현하였다. (텍스트 스크롤 같은 기능은 배열을 이용해서도 충분히 구현가능하다.) PCF8574 IIC I2C가 변환모듈로 사용되고, 4행 이하의 LCD면 호환이 될 것이다. 참고 https://github.com/johnrickman/LiquidCrystal_I2C GitHub - johnrickman/LiquidCrystal_I2C: LiquidCrystal Arduino library for the DFRobot I2C LCD displays LiquidCrystal Arduino library for the DFRobot I2C LCD displ..
-
VScode 라즈베리파이 피코 Windows C/C++ 개발환경 구축개발환경 구축 2023. 2. 20. 23:22
라즈베리파이 피코에 대해 검색하면 대부분 마이크로파이썬 자료이고, 그나마 C/C++ 자료를 찾더라도 윈도우 자료는 부족하였다. 이 글이 피코를 C/C++로 코딩하려는 사람들에게 조금이라도 도움이 되면 좋겠다. 참고 데이터 시트: Getting started with Rasberry Pi Pico https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf 다운로드 CMake Python 3.10.x Git (다운 안하더라도 직접 Github에 들어가서 다운 받으면 됨) make(BuildTool for Visual Studio가 설치되었다면 nmake를 사용하면 되니 설치안해도 됨) ARM GNU Toolchain make.exe https..
-
윈도우 콘솔 시리얼 통신개발환경 구축 2023. 2. 20. 00:51
VScode로 AVR 개발환경을 만들고 보니, 시리얼 모니터가 아쉽다. 시리얼 모니터를 사용하자고 아두이노 IDE을 열자니, 2.0으로 올라오면서 은근 여는데 시간이 오래 걸린다. 윈도우에서도 리눅스처럼 콘솔로 간단하게 시리얼 출력을 볼 수 있으면 좋겠다고 생각을 해서 처음으로 window 프로그램을 코딩해보았다. https://playground.arduino.cc/Interfacing/CPPWindows/ Arduino Playground - CPPWindows Interfacing... Arduino and C++ (for Windows) As I found it pretty hard finding the good information, or an already working code to hand..
-
VScode AVR 개발환경 구축개발환경 구축 2023. 2. 16. 20:22
아두이노는 c++11표준을 따르며, 컴파일러는 avr-gcc 7.3.0로 상당히 옛날 버전을 사용하고 있다. Microchip Stdio 설치하는데도 한참 걸리고, UI도 그렇게 맘에 들지 않는데 이번 기회에 높은 버전의 avr-g++도 사용해볼 겸, VScode AVR 개발환경을 구축해볼 것이다.(gcc 컴파일러 다운로드하면 g++도 포함되어있다.) 아두이노의 컴파일러를 사용할 것이라면 아두이노 IDE 폴더를 열고 hardware/tool/avr/bin에 있는 컴파일러를 사용하면 된다. 설치 AVR-GCC 다운로드 https://github.com/ZakKemble/avr-gcc-build/releases Releases · ZakKemble/avr-gcc-build Contribute to ZakKe..
-
윈도우 C/C++ 개발 환경 구축개발환경 구축 2023. 2. 14. 22:50
1.컴파일러 설치 https://sourceforge.net/projects/mingw-w64/ 여기에서 minGW -w64를 다운 받아 설치하려고 하니 이렇게 자꾸 오류가 떠서 수동으로 설치하였다. 저 프로그램은 컴파일러 통합 설치 프로그램에 불과하니 안에 있는 컴파일러를 수동으로 설치해도 상관없을 것이다. https://www.mingw-w64.org/ MinGW-w64 www.mingw-w64.org 공식 사이트 좌측 탭에 다운로드를 클릭하고, 페이지를 쭉 내려보면, SourceForge라 적혀있는 하이퍼링크를 누른다. 다시 스크롤을 많이 내리면 이렇게 수동으로 다운로드 할 수 있는 링크가 있다. 언제가부터 win10 이면 모두 64비트가 되었으니 64비트 컴파일러를 다운받으면 된다. 가장 일반적으..
-
아두이노 스마트 포인터 구현아두이노 2023. 2. 10. 01:44
스마트 포인터가 아두이노에 있으면 편리할 것 같아 구현해보았다. 아두이노는 일반적인 컴퓨터에 비해 렘과 저장공간이 부족하므로 메인기능과 약간에 플러스 알파만 구현하였다. unique_ptr: 하나의 포인터만 객체를 참조할 때 사용 shared_ptr: 하나의 객체를 여러 포인터가 참조할 때 사용(레퍼런스 카운트가 0이되어야 할당이 해제된다.) week_ptr: share_ptr이 가르키는 것을 공유하지만 레퍼런스 카운트는 증가시키지 않음 *shared_ptr이 서로를 참조하면, 카운트가 절대 0이 되지 않기 때문에 계속 메모리에 남아있게 된다. shared_ptr A를 선언하고, 선언한 shared_ptr을 복사한 week_ptr B을 선언한 다음, shared_ptr A를 가르킬 일이 있을 때 대신 w..
-
아두이노 로터리 인코더로 UI 컨트롤 하기아두이노 2023. 2. 5. 14:30
사진처럼 노브를 돌려 커서를 움직이고, 눌러서 선택하는 이런 인터페이스는 여러 전자제품에서 볼 수 있다. 버튼을 여러개 만드는 것보다 로터리 인코더를 사용하는 것이 포트를 적게 사용할 수 있기 때문이다. 다른 프로젝트를 할 때 많이 사용할 수 있을 것 같아 만들어 보았다. 로터리 인코더 참고 https://elecs.tistory.com/181 [로터리 엔코더] 엔코더의 작동 원리 및 사용 방법 모종의 일로 엔코더를 접하게 된 기회가 생겨 관련 내용을 조사해 보았는데 엔코더를 완전히 처음 접하게 되는 저의 입장에서 인터넷 상에 올라온 엔코더에 대한 정보를 이해하는데 상당히 많 elecs.tistory.com A와, B는 Vcc에 연결되어있고, C는 그라운드에 연결되어있다. 만약 시계방향으로 돈다면 A가 ..
-
아두이노 오실로스코프아두이노 2023. 1. 31. 17:40
오실로스코프는 나름 고가에 해당하는 계측기기로, 신호의 파형을 관찰하는 데 사용한다. 여러번 측정하여 전압의 평균값을 보여주는 멀티미터와 다르게, 작은 노이즈까지 볼 수 있기때문에 무언가를 개발할 때 있으면 편리하며, 정밀한 회로를 만든다면, 켈리브레이션에 꼭 필요한 장비이다. 밀리세컨드 단위에 시간동안 일어나는 일을 직접 눈으로 보고 이해한 쪽과 그렇지 못한 쪽은 차이가 크다. 저렴하게 만들려고 기획한 것이라 오실로스코프의 모든 기능을 다 넣지는 못하였지만, 그럭저럭 간이로 쓸만하게 만들어 보았다. 객체지향적인 설계를 자세히 보여줄 생각인데, 단순히 인터넷의 자료를 보고 따라하는 단계를 넘는데 도움이 되면 좋겠다. 이번에 OLED를 처음 사용해보았는데, 예제만 잘 보면 사용하는데 크게 어려움이 없었으니..