1. Demo Code 구현 현재까지 구현된 코드 기반으로 Arduino Sensor 값을 한번 띄워 봅시다. ADC를 활용하여 3개 정도 붙여서 한번 테스트해볼게요. Arduino Code에서는 매우 간단할 거 같네요. ADC 센서에서 값을 읽은 뒤 패키징해서 보내면 끝이니까요! Data Packet 관련해서 궁금하신 분들은 이전 글을 참고해 주세요. (https://enginbear.tistory.com/16) #include void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: packet tx_dat..
1. Widget 배치 원래 FM 개발 순서가 어떻게 되는지는 모르겠지만, 우선적으로 나는 GUI를 배치하고 시작한다. 사실 정식으로 배워본 적은 없어 구글링을 기반으로 개발을 진행했다. 구글에 ‘Python PyQt5 ~~’로 검색을 하면 많은 정보를 얻을 수 있다. 이런저런 정보를 찾다 보니 Widget 위치 배열은 Layout으로 하는 것이 맞다고 한다. 자세히는 모르지만 픽셀 기준으로 Widget을 배열하게 되면 Window Size를 조절할 때, Widget 은 고정된 채 여백만 늘어나는 것을 볼 수 있다. 그런 것을 생각하면 Layout을 기반으로 배치해야 하는 것이 맞으나 자유롭게 배치하기를 원하기 때문에 픽셀 기반으로 배치를 한 뒤, Window Size를 고정시키기로 했다. setFixe..
1. 데이터 무결성 통신에 있어서 가장 중요한 건 내 생각엔 ‘이 데이터가 유효한 데이터인가?’이다. 유선통신이던 무선 통신이던 송신 측에서 10이란 값을 보냈다면 수신 측에서 10이란 값을 정상적으로 받았는지는 아무도 알 수가 없다. 알고자 또다시 통신한다면 그때 주고받은 데이터는 유효한지 누가 보장해주는가? 이러한 문제들 때문에 패킷에 정보를 담아 주고받을 때는 이 데이터가 이상 없이 전달되었다는 검증이 필요하다. 대표적으로 Checksum 방식이나 Crc 방식 등이 있다. Checksum방식의 경우 사용자가 정의하는 Byte 단위로 모든 데이터를 더하면 된다. 예를 들어 아래와 같이 3 Byte 데이터가 있다고 가정하자. Checksum을 1 Byte로 계산한다고 해보자. 그럼 앞서 전송하고자 하는..
1. Serial 통신 개발 임베디드 개발 경험이 있다면 가장 먼저 접하는 개념일 것이다. 간단하게 설명하면, Serial 통신은 선 2가닥으로 1대 1 통신을 하는 방식이다. 좀 더 디테일한 내용은 임베디드 개념 정리 글에서 다루는 게 맞는 거 같아 여기서는 길게 늘어두지 않겠다. > Serial 통신에 대한 설명은 아래 링크를 참고해주세요. https://enginbear.tistory.com/25 암튼, 가장 먼저 접하기도 하면서 다른 통신보다 접근성이 높기에 Serial 통신을 채택했다. 무엇보다 앵간한 모든 아두이노는 USB를 통해 Serial 통신이 가능하기에 채택했다. 처음 글에서도 얘기했지만 사실 가독성이 떨어지더라도 Serial 통신을 이용해 “Data: xx” 이렇게 ASCII로 보내도..
1. 디자인 초안 고민 일단은 기본적으로 Serial Port를 설정하는것을 생각했다. 내 PC에서만 동작하는 것이 아니기 때문에 각 사용자가 맞게 Serial Port를 설정할 수 있어야 한다. 이 부분은 ComboBox와선택 Button Box면 해결 될 것 같다. 일단 말로 설명하는 것 보다 내가 생각한 디자인을 보여주는게 빠를 것 같다. 보낸 데이터들을 ID별로 분류해서 사용자가 원하는 방식으로 표시를 할 수 있도록 하고 싶다. 숫자로 보는게 편한 데이터라면 숫자 형태로, 그래프로 추세를 보고 싶다면 그래프 형태로 띄워서 볼수 있게 할 예정이다. 게이지 같은 경우에는 개인 취향이다. 뭔가 게이지를 넣으면 있어보이는 느낌.. 사실 추후 RC카 조종하는 프로젝트에서 가져다 쓸 계획도 있어서 미리 만들..