1. 디자인 초안 고민
일단은 기본적으로 Serial Port를 설정하는것을 생각했다. 내 PC에서만 동작하는 것이 아니기 때문에 각 사용자가 맞게 Serial Port를 설정할 수 있어야 한다. 이 부분은 ComboBox와선택 Button Box면 해결 될 것 같다. 일단 말로 설명하는 것 보다 내가 생각한 디자인을 보여주는게 빠를 것 같다.

보낸 데이터들을 ID별로 분류해서 사용자가 원하는 방식으로 표시를 할 수 있도록 하고 싶다. 숫자로 보는게 편한 데이터라면 숫자 형태로, 그래프로 추세를 보고 싶다면 그래프 형태로 띄워서 볼수 있게 할 예정이다. 게이지 같은 경우에는 개인 취향이다. 뭔가 게이지를 넣으면 있어보이는 느낌.. 사실 추후 RC카 조종하는 프로젝트에서 가져다 쓸 계획도 있어서 미리 만들어 볼 예정이다.
PyQt5를 이용하여 설계할 예정인데, 기본 제공하는 UI중에 게이지를 표현해주는 것이 없어 난관에 봉착했다. 오픈소스를 좀 찾아보니 영어로 된 Github에 올라온 몇몇 코드 들이 있었다. Python이 익숙치가 않아서 그런지 이해하기 매우 어려웠다. 특히 GUI환경에서 PyQt5를 이용해(?) 설계하는 Tool에서 사용할 수 있도록 만든 라이러리들이라 어려웠다. 최대한 따라해보며, 나에 맞춰서 새로 재구성을 했다. Paint Event를 활용한 것인데, 색 입히는 것부터 해서 애를 많이 먹었다… 특히 원을 그리고 작은 눈금들을 그리는데 찌그러지는 현상이 발생했다. 물론 지금도 고치진 못했다. 대략 예상되는 원인은 픽셀은 소수점 단위로 찍을 수가 없다. 하지만 원을 그리고 동일한 간격의 눈금을 그리려면 결국에는 삼각함수 방정식이 들어간다. 여기서부터 소수점 연산이 생기고 내가 계산한 작은 눈금의 좌표는 정수형으로 변환하면서 정확한 값이 되지 않는다. 즉, 계산 결과를 근사값으로 픽셀을 찍다보니 중간중간 찌글어진 눈금들이 보인다. 이 부분에 대해서는 고민을 좀 해보고 수정할 예정이다. GUI 코드를 하나하나 설명하는 것은 일일거 같으니 다음 글에서 굵직 굵직한 내용들을 다뤄보도록 하겠다.
2. To Do
- 대략적인 GUI 틀 구성
- Serial 통신을 통한 데이터 송수신
- Gauge GUI 설계
- Data Packet 라이브러리 설계 (Protocol 정립)
…
해당 코드는 내 Github에 올라와 있으며 주소는 아래에 있다.
(사실 꽤 개발은 진행이 된 상태이다)
https://github.com/DongjinJ/Arduino_Monitor
GitHub - DongjinJ/Arduino_Monitor: 아두이노 Data를 시각화 하는 GUI
아두이노 Data를 시각화 하는 GUI. Contribute to DongjinJ/Arduino_Monitor development by creating an account on GitHub.
github.com
임베디드 외주 제작 문의: https://open.kakao.com/o/sp32L9ke
구름이님의 오픈프로필
임베디드 외주 제작
open.kakao.com
'프로젝트 일지 > 임베디드 모니터' 카테고리의 다른 글
[임베디드 모니터] Arduino Demo Code 구현 (0) | 2023.04.06 |
---|---|
[임베디드 모니터] GUI 개발 (0) | 2022.06.08 |
[임베디드 모니터] Serial 통신 & 데이터 무결성 - 2 (0) | 2022.01.18 |
[임베디드 모니터] Serial 통신 & 데이터 무결성 - 1 (0) | 2021.12.14 |
[임베디드 모니터] 개발 계획 (0) | 2021.09.06 |
1. 디자인 초안 고민
일단은 기본적으로 Serial Port를 설정하는것을 생각했다. 내 PC에서만 동작하는 것이 아니기 때문에 각 사용자가 맞게 Serial Port를 설정할 수 있어야 한다. 이 부분은 ComboBox와선택 Button Box면 해결 될 것 같다. 일단 말로 설명하는 것 보다 내가 생각한 디자인을 보여주는게 빠를 것 같다.

보낸 데이터들을 ID별로 분류해서 사용자가 원하는 방식으로 표시를 할 수 있도록 하고 싶다. 숫자로 보는게 편한 데이터라면 숫자 형태로, 그래프로 추세를 보고 싶다면 그래프 형태로 띄워서 볼수 있게 할 예정이다. 게이지 같은 경우에는 개인 취향이다. 뭔가 게이지를 넣으면 있어보이는 느낌.. 사실 추후 RC카 조종하는 프로젝트에서 가져다 쓸 계획도 있어서 미리 만들어 볼 예정이다.
PyQt5를 이용하여 설계할 예정인데, 기본 제공하는 UI중에 게이지를 표현해주는 것이 없어 난관에 봉착했다. 오픈소스를 좀 찾아보니 영어로 된 Github에 올라온 몇몇 코드 들이 있었다. Python이 익숙치가 않아서 그런지 이해하기 매우 어려웠다. 특히 GUI환경에서 PyQt5를 이용해(?) 설계하는 Tool에서 사용할 수 있도록 만든 라이러리들이라 어려웠다. 최대한 따라해보며, 나에 맞춰서 새로 재구성을 했다. Paint Event를 활용한 것인데, 색 입히는 것부터 해서 애를 많이 먹었다… 특히 원을 그리고 작은 눈금들을 그리는데 찌그러지는 현상이 발생했다. 물론 지금도 고치진 못했다. 대략 예상되는 원인은 픽셀은 소수점 단위로 찍을 수가 없다. 하지만 원을 그리고 동일한 간격의 눈금을 그리려면 결국에는 삼각함수 방정식이 들어간다. 여기서부터 소수점 연산이 생기고 내가 계산한 작은 눈금의 좌표는 정수형으로 변환하면서 정확한 값이 되지 않는다. 즉, 계산 결과를 근사값으로 픽셀을 찍다보니 중간중간 찌글어진 눈금들이 보인다. 이 부분에 대해서는 고민을 좀 해보고 수정할 예정이다. GUI 코드를 하나하나 설명하는 것은 일일거 같으니 다음 글에서 굵직 굵직한 내용들을 다뤄보도록 하겠다.
2. To Do
- 대략적인 GUI 틀 구성
- Serial 통신을 통한 데이터 송수신
- Gauge GUI 설계
- Data Packet 라이브러리 설계 (Protocol 정립)
…
해당 코드는 내 Github에 올라와 있으며 주소는 아래에 있다.
(사실 꽤 개발은 진행이 된 상태이다)
https://github.com/DongjinJ/Arduino_Monitor
GitHub - DongjinJ/Arduino_Monitor: 아두이노 Data를 시각화 하는 GUI
아두이노 Data를 시각화 하는 GUI. Contribute to DongjinJ/Arduino_Monitor development by creating an account on GitHub.
github.com
임베디드 외주 제작 문의: https://open.kakao.com/o/sp32L9ke
구름이님의 오픈프로필
임베디드 외주 제작
open.kakao.com
'프로젝트 일지 > 임베디드 모니터' 카테고리의 다른 글
[임베디드 모니터] Arduino Demo Code 구현 (0) | 2023.04.06 |
---|---|
[임베디드 모니터] GUI 개발 (0) | 2022.06.08 |
[임베디드 모니터] Serial 통신 & 데이터 무결성 - 2 (0) | 2022.01.18 |
[임베디드 모니터] Serial 통신 & 데이터 무결성 - 1 (0) | 2021.12.14 |
[임베디드 모니터] 개발 계획 (0) | 2021.09.06 |