디버깅의 예술이라는 책을 소개하면서(관련 글) 적절한 디버깅 방법에 대해서 공부한 적이 있었는데, 꽤나 오래 전의 일이다. 4월 5일에 작성된 글이니 두 달이 훨씬 넘었군. 그러고보니, 당시에는 전 여자친구가 이런 저런 개발 고군분투를 들어주면서 내가 다른 관점에서 살펴보도록 도와줬었는데, 이제는 혼자서 해내야 한다. 후, 난감하군.
당시에 글을 쓰면서 가장 하지 말아야 할 것으로 "Bruteforce" 방식을 들었다. 생각나는 모든 것을 시행하는 방법인데, 근 3주간을 이 방법만 하면서 보냈던 것 같다. "내일은 제대로 한 번 분석해봐야지" 싶다가도, 내일까지 미룰게 무엇이랴. 오늘 당장 해봐야지 싶었다.
문제 1) Teensy 보드로 UART 통신과 I2C 디스플레이를 동시에 사용할 수가 없다.
확정적인 현상:
- UART 통신은 문제없이 구현 가능하다.
- I2C 디스플레이도 문제없이 구현 가능하다.
- 둘을 동시에 작동시키려고 하면 UART 에서 노이즈가 너무 많이 섞이며 사용 불가 상태가 된다.
잠재적인 문제점:
- I2C 디스플레이의 라이브러리가 정확히 맞지 않는다(SSD1309 디스플레이에 SSD1306 라이브러리를 사용 중)
- UART 와 I2C의 통신 방법이 애초에 잘 안 어울리는 것일지도 모른다.
현재 해결 방안:
- UART의 통신 속도(Baudrate)를 2400으로 낮추어 사용 가능하지만, 0.5 초 정도의 딜레이가 발생한다.
문제 2) 다양한 센서를 결합시킨 상태에서 UART 통신이 작동하지 않는다.
확정적인 현상:
- 센서보드와 모터보드 모두 정상 작동한다
- UART를 통해 센서보드 / 모터보드 간 통신이 이뤄지지 않는다.
잠재적인 문제점:
- 센서보드의 송신이 안되고 있을 수 있다.
- 모터보드의 수신이 안되고 있을 수 있다.
- 서로 다른 방식으로(통신 속도 등) 송/수신 하고 있을 수도 있다.
현재 해결 방안:
- 센서보드의 송신이 정상 작동하는지, 새로운 수신 코드를 사용해서 확인해본다.
- 모터보드의 수신이 정상 작동하는지, 새로운 송신 코드를 사용해서 확인해본다.
- 통신에서 핵심은 Position 값이고, 보드의 핵심은 모터 제어이므로, 해당 값을 먼저 수신하도록 한 뒤, 모터 보드의 기능을 추가하고, 센서보드의 기능을 추가한다.
다른 관점에서 생각해보기
- 사실 통신이 필요없진 않을까? 아두이노 우노와 메가에서 인터럽트가 많아지며 다양한 에러가 발생했지만, 20배 빠른 틴지라면...? 어쩌면 하나의 보드로 몽땅 할 수 있지 않을까...?
내일은 저녁에나 연구실에 갈 수 있을텐데, 또 주말에 쉬어줘야 평일에 힘을 내서 할 수 있을 터라 고민이 된다. 내일은 쉬어? 말어?
'트렌드 한눈에 보기 > 학계 트렌드' 카테고리의 다른 글
한국 정부에서 1600억을 들여 개발 중인 아이언맨 슈트 - 마무리 (0) | 2021.06.22 |
---|---|
Teensy 여정의 마무리: 통신을 쓰는 경우는 최대한 피하자 (0) | 2021.06.14 |
투자한 시간 대비 성과가 나오지 않는 답답한 상황에 대해 (0) | 2021.06.11 |
웨어러블 연구실의 야외실험...피크닉이라고 생각하면 어떨까? (0) | 2021.06.10 |
기계 비전공자가 기계를 만들면서 생기는 노하우 (0) | 2021.06.09 |