본문 바로가기

전체 글32

아두이노로 PC 실시간 대시보드 만들기 (확장편) PC 대시보드를 확장해서 모두 5개 정보를 뿌려줍니다. CPU, 메모리, 인터넷 전송속도, GPU, 디스크정보 파이썬 소스코드는 몇줄이 추가 되었습니다. 이상으로 이 프로젝트도 끝입니다. 2021. 6. 18.
자동차 RPM 인디게이터 레이싱 게임이나 경주용 차량에는 기어변속 구간을 알려주는 RPM 인디게이터라는게 있습니다. 어느분의 요청으로 제작을 하게 되었는데, 간단히 소개합니다. 먼저 차량에서 RPM 정보를 가져와야 하는데, 이것은 기존에 차량용 대시보드 제작때 사용했던 ODB2 아답터를 사용합니다. RPM정보를 아두이노로 받게되면 이를 LED에 출력해서 변속 시점을 알려주면 되는데요. 제작하고자 하는 인디게이터를 LED 60발로 제작할 계획이어서 neopixel strip을 사용할 예정입니다. 아두이노 micro pro와 조도센서(오른쪽에 살짝 있는) 2개와 네오픽셀 스트립으로 하드웨어 구성을 끝납니다. 조도센서는 낮과 밤에 운전시에 밝은 LED불빛이 방해가 될 수 있기 때문에 LED밝기를 조절하기 위해서 포토다이오드를 달아 주.. 2021. 5. 29.
아두이노로 PC 실시간 대시보드 만들기 (2편) 1편에서는 주로 소프트웨어적인 부분을 기술하였습니다. 2편에서는 하드웨적인 부분을 적어보도록 하겠습니다. 처음에는 PCB에 회로를 남땜해서 만들생각이었습니다. 그런데 제가 제일 싫어하는 작업이 남땜작업이고, 어차피 모니터 뒷편에 숨길거라서 회로는 그냥 브레드보드에 듀폰케이블로 꽂아서 구성하였습니다. 회로가 구성된 브레드보드는 모니터 뒤편에 부착하였습니다. 그리고 액정 3개만 앞으로 빼내서 모니터 베젤부분에 살짝 양면테입으로 붙였습니다. 전면에서 보면 깔끔하게 OLED액정 3개만 보입니다. 크기도 거슬리지 않을 정도로 적당하고 눈높이에도 맞춰나서 가끔씩 쳐다보기에 적당합니다. PC에 USB케이블만 꽂으면 하드웨어 세팅은 끝납니다. PC가 켜지면 자동으로 켜지기 때문에 온/오프도 필요 없습니다. 작동은 아주.. 2021. 5. 22.
아두이노로 PC 실시간 대시보드 만들기 (1편) PC를 사용하다보면 이 고가의 장비를 사 놓고 어느정도의 자원을 활용하는지 궁금할때가 있습니다. 그래서 아래 사진과 같은 대시보드를 직접 제작하였습니다. 시스템을 모니터를 하는 방법은 주로 작업관리자를 통한 것입니다. 저는 언제부턴가 이러한 시스템 사용률을 모니터 할 수 있는 대시보드를 만들어보고 싶었습니다. 처음 구상했던것은 AIDA64를 활용하는 방법이었는데, 일단 추가 소형모니터를 준비해야하고 프로그램 구매가격이 년간 구독하는 형식이어서 비용이 지속적으로 발생하는 문제가 있어서 이번에 아두이노로 직접 구형하여 만들게 되었습니다. 먼저 이것을 구현하려면 PC에서 실시간 데이터를 아두이노로 넘겨주어야 합니다. 이게 가장 어려운 점인데요. 일반적으로 시스템 사용률을 모니터하는 프로그램은 여러가지가 있는데.. 2021. 5. 22.
모닝용 GPS 대시보드 확장 이전 글에서 모닝용으로 제작한 액정3개짜리 대시보드를 소개해 드렸습니다. 이번 글은 이 대시보드에 액정 1개를 추가하여 확장한 것을 소개해 드리겠습니다. 기존 액정에서는 1. 방향 2. 속도, 거리, 3. 고도, 속도차트 이렇게 3개의 정보를 표시하고 있었습니다. 4개로 확장한 것은 1, 2번은 그대로 이며 3번의 고도, 속도만 분리해서 2개의 액정에 나눠 표시하였습니다. 먼저 하드웨어 확장을 위해 아두이노1, 액정1개로 회로를 구성한 후에 기존 대시보드에 이어 붙였습니다. 감쪽같다고는 말할수 없지만 이어붙인게 크게 티가 나진 않습니다. 프로그램을 올려서 실행시킨 화면도 정상적으로 잘 표시가 됩니다. 1번 방향, 2번 속도, 주행거리, 3번 속도 차크, 4번 고도차트 입니다. 3번과 4번이 차트인데, 4.. 2021. 2. 14.
freematics 아답터를 활용한 대시보드 제작 회로 제 글에 댓글로 요청하셨던 대시보드 제작회로를 간단히 그려보았습니다. UART 시리얼 통신을 위한 회로입니다. ODB2 아답터를 1번 아두이노의 8, 9번으로 연결합니다. (하드웨어 시리얼로 연결안하고, 소트트웨어 시리얼로 연결) 8, 9번을 통해서 차량 정보를 1번 아두이노가 받습니다. 1번 아두이노가 신호를 처리 후 2, 3, 4번 아두이노에 동시에 보냅니다. 1번 아두이노의 16, 10번핀을 rx, tx로 사용하고, 나머지 아두이노들은 8,9번핀을 사용합니다. 그림처럼 연결한다면 1번 아두이노 16번핀 rx, 10번핀 tx로 선언하면 되고, 나머지 아두이노들은 8번핀 tx, 9번핀 rx로 선언해 주면 되겠습니다. 이렇게 softwareserial로 선언해주면 1번 아두이노가 보내는 정보를 나머지 아.. 2021. 1. 21.
모닝용 대시보드 코드편 모닝용으로 제작한 GPS 대시보드의 소스코드를 요청하신분이 있어 공개합니다. 이전 투싼용 OLED 8개짜리와 큰 차이는 없습니다. 첫번째 코드는 GPS신호에서 방향값에 따라 NEWS 방향을 표시하고 각 통계를 내서 가로바 그래프 행태로 그리는 코드입니다. u8glib 라이브러리를 사용하는데, 화면에 원하는 디자인을 표시하다보니 아주 복잡한 코드가 되었고, 코드의 해석보다는 본인이 원하는 스타일로 하나하나 디자인 하시는게 좋지 않을까 생각되네요. #include "U8glib.h" #include "SoftwareSerial.h" #include "TinyGPS.h" U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); TinyGPS gps; Sof.. 2020. 10. 21.
모닝용 자동차 대시보드 제작 한달전쯤 출퇴근용 모닝을 입양해 오게 되었는데 가만두질 못하겠네요. 큰차였던 투싼에는 OBD2아답터, GPS, 자이로센서까지 달아서 OLED 8개가 들어가는 버전으로 만들었으나, 모닝은 가벼운 출퇴근용이고 차량 크기도 있고해서 GPS만 달아 OLED 3개만 장착한 버전으로 만들었습니다. 액정 첫번째는 차량 진행방향과 차트 두번째는 운행거리, 운행시간 세번째는 고도, 속도 차트를 뿌르고 있습니다. 사용된 부품은 아두이노 마이크로 프로 3개, OLED 3개, 그리고 GPS 수신기가 사용됩니다. 모두 알리에서 주문해서 2만 5천원 정도 부담없는(?) 가격으로 제작이 되었습니다. 브레드 보드로 실주행 테스트하면서 코드 수정한 후에 최종 PCB에 납땜을 해서 작업을 마쳤는데, 역시나 작은 PCB 납땜 작업은 언제.. 2020. 10. 10.
자동차 대시보드 확장 - 2편 자동차 대시보드 확장 - 2편 처음에 4개로 시작해 6개까지 확장하였던 대시보드를 다시 욕심을 부려 액정 2개를 추가하여 최종 8개로 제작하였습니다. 기존 6개에서 새로 추가된 것은 위쪽열 3번째 액정에서 표시하고 있는 엔진부하(Engine load)와 아래열 4번째 액정 차량 기울기입니다. 차량 기울기를 측정하기 위해 3축 기울기센서를 회로에 추가해 주었습니다. 제일 윗부분 왼쪽에 얹혀져 있는게 GPS수신기이며, 오른쪽이 3축 기울기센서입니다. PCB에 회로 납땜해 놓은 상태에서 테스트하는 화면입니다. 윗열 1번 아두이노에서 나머지 7개 아두이노에 software시리얼로 정보를 일괄로 뿌리는 구조를 가지고 있습니다. PCB 작업하기 전에 아두이노간에 통신이 잘 되고 있는지 확인하고 있습니다. 위에 적은.. 2020. 1. 1.
자동차 대시보드 확장 - 1편 자동차 대시보드 확장 - 1편 처음 제작된 대시보드는 총 4개의 액정으로 완성이 되었습니다. 이후 다소 욕심이 생겨 2개의 액정을 추가하여 다시 제작을 하였습니다. 이번에는 GPS수신모듈을 추가로 연결하였고, GPS신호를 직접 파싱하여 현재 진행하고 있는 방향과 고도를 표시하도록 하였습니다. (왼쪽 상단) 그리고 진행방향에 대한 막대 그래프도 표시하도록 디자인 하였습니다. (GPS 신호 파싱에 대해서는 이전 글을 참고하세요) https://clemencyking.tistory.com/9?category=310596 그리고 또 추가된 것은 차량 주행거리와 엔진가동시간을 표시하는 액정입니다. (왼쪽 하단) 주행거리는 차량속도를 0.5초마다 한번씩 체크하도록 하여 계산값으로 구했습니다. (생각보다 오차가 크지.. 2020. 1. 1.
아두이노 디지털 게이지 디자인 아날로그 게이지 디자인 기본과 응용에 대해서는 아래 포스트에 작성하였고, 내친김에 디지털 게이지 디자인도 올려 드리겠습니다. 디지털 게이지는 아날로그 게이지에 비하면 너무 쉬어서 크게 설명할 부분이 없습니다. 게이지바가 그려지고 게이지값이 상단에 표시되는게 다 입니다. #include "U8glib.h" U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // 데이터 처리 변수 int val; //그래픽 처리 변수 int level; void setup(void) { } void Disp() { level = map(val, 0, 100, 0, 120); // 레벨박스크기 u8g.firstPage(); do { u8g.drawLine(3, 40,.. 2019. 9. 11.
아두이노 아날로그 게이지 디자인 응용 이전 글에서 아날로그 게이지를 나름 예쁘게 디자인해 보았습니다. 이번 글에서는 약간 응용하여 변화를 주도록 하겠습니다. 먼저 디자인 결과물은 이렇게 표시됩니다. 변경된 것은 게이지 원의 크기가 작아졌고, 바늘침이 원을 넘어서 표시되도록 하였습니다. 값 표시도 작은 글씨로 하였고 바늘침 기준점도 살짝 위로 올렸습니다. 이 디자인의 스케치입니다. #include "U8glib.h" U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // 게이지를 그리기 위해 필요한 변수들 int px1=64, py1=50; // 바늘침의 시작 위치 int px2, py2; // 바늘침의 그려지는 위치 int circle, pin; // 게이지 큰원, 바늘침 길이 i.. 2019. 9. 11.