"오늘은 정신 없겠군" 각오는 했건만, 이렇게까지 험난할 줄은 몰랐다. 하지만 그럼에도 불구하고 하교길에 친구와 이야기를 하다보면 "오늘 뭐 한다고 그렇게 시간을 보냈지?" 라는 질문이 자연스레 나오게 된다. 의자에 앉아 생각하는 것에 사로잡혀 있던 것이다. 책상 위로는 단 한 번도 올라가지 않았다.
오늘 했던 것은 Teensy를 쓰는 것이었다. 기존에 아두이노로 개발해둔 것을 Teensy로 교환해줘야 한다. 그런데 그냥 마구 바꾸면 당연히 고장나고, 조심스레 살펴보며 옮겨야 한다.
기존의 상황과, 개선하고자 하는 모습은 대략 위와 같다. 아두이노를 틴지로 교체하고, PWM으로 통신하던 구조를 UART로 바꿔주려는 것이다. 놀랍게도 UART는 이전에 제품 데모를 보기 좋게 실패하게 했던 원인(관련 글) 중에 하나다. 그 시행착오를 고새 까먹고 슬금슬금 다시 도전해보려는 것이다.
물론 이유가 있다. 현재 적용된 PWM 방식의 통신은 그렇게 정확하다고 말하기는 힘들다. 언젠가는 제대로 된 통신의 영역(UART, I2C 등)으로 넘어가야 했었는데 그 때가 온 것이다. 틴지는 아두이노보다 성능이 좋으니까 기대를 좀 했었다.
그럼 아두이노를 틴지로 교체하는 이유는 무엇일까? 센서 & 스위치에서 정보를 받아내는 속도가 아두이노에서는 무척 느리기 때문이다. 반면에 틴지는, 간단한 실험에서도 보였듯이(관련 글) 못해도 두 배 정도는 빠르다.
근데 과연 그럴까?
1. 문제점 1번 - 속도가 동일하다
오늘 삽질한 내용을 복기해보자면, 우선 아두이노를 틴지로 교체해서 센서 & 스위치로부터 값을 받아오는 속도를 비교해보았다. 결론부터 말하자면 아두이노와 똑같았다. 아두이노의 성능이 떨어져서 속도가 느렸던 게 아니라 코드 자체가 느리다는 뜻이다.
이 때부터 식은땀을 흘리기 시작했다. 음, 그럼 지금 아두이노를 틴지로 바꾸는 의미가 몽땅 사라지는 건가? 아니지, 통신이 잘 된다면 한결 나은 제어가 가능할 테야. 게다가 오류도 좀 덜 난다면 말이지.
2. 문제점 2번 - 통신이 잘 안 된다
두 번째 문제는 UART를 활용한 통신이 원활히 이뤄지지 않는다는 것이다. 아, 말을 수정하자면 틴지끼리의 통신은 그래도 원활히 되었다. 다만 디스플레이를 연결하려고 했더니 모종의 이유로 잘 작동하지 않았다. 해결하고 하교하려니 답이 안 나와서 일단 덮어두고 내려와버렸다.
아두이노도 그렇고 틴지도 그렇고, 통신이 가지는 문제점은 코드 전체를 망가뜨린다는 것이다. 내부에서 "사장님, 저쪽에서 뭐라 하는지 잘 모르겠습니다" "음 그럼 일단 하던 거부터 해봐. 내가 해결해볼게" 하는 식이 아니라, "야 어떡하지? 일단 멈춰봐!" 하고 회로가 몽땅 중지된다. 이걸 또 영리하게 바꿔주는 방법이 없지는 않겠지만, 일단 "저 쪽에서 뭐라하는지" 잘 듣는 것부터가 우선이다.
코드 자체가 먹통이 되고 보니, 틴지를 리셋해야 하는데 틴지는 외부 버튼으로 리셋이 되지 않는다. 아두이노에 리셋버튼이 항상 달려있던 것을 생각해보면 아쉬울 따름이다. 결국 코드 에러가 날 때마다 케이블을 뽑았다가~ 다시 코드를 업로드 했다가~ 아주 댄스를 춘다.
그럼 이제 어떡하지? 어떡하긴 계속 테스트 해봐야지. 하교길에 친구와 이야기하며 처음으로 책상 위에 올라갈 수 있었던 것은 "틴지 그거 그냥 아두이노랑 똑같은 거 아닌가?" 하는 친구의 질문 덕분이었다. 내가 너무 지레 겁먹고 마음을 조급하게 먹고서, 에러가 떴을 때 "아 이건 노답이다" 하는 마음으로 틴지를 대했을지도 모른다. 그냥 아두이노 대하듯이 차근차근 코드를 뜯어보면 금세 잘못된 부분을 찾을 수 있을지 누가 알겠는가? 일단 나는 모른다만...
추가 관련글
1) 책상 위에 서서 생각하기
'트렌드 한눈에 보기 > 학계 트렌드' 카테고리의 다른 글
아두이노보다 20배 빠른 줄 알았던 Teensy의 배신 (1) | 2021.06.07 |
---|---|
사람들이 움직이는 게 신기하고 말고 - MIT Hogan의 분석 (0) | 2021.06.05 |
걸으면서 전기를 만들어내는 슈트의 개발 (0) | 2021.06.02 |
아두이노보다 20배 빠른 개발 보드 - Teensy 보드 (0) | 2021.05.28 |
강화학습(SAC)을 활용한 코로나 대응 정책 만들기 - Sony AI (0) | 2021.05.23 |