(우리 홈페이지를 찾는 많은 사람들이 로봇 코딩에 크게 관심을 가지지는 않는 것 같다. 내용도 지루하거나 좀 어렵기도 하다. 하지만 간혹 코드를 보내 달라고 하는 사람들도 있고, 오랜 시간이 지나면 기억이 잘 나지 않기도 해서 여기에 기록을 남기고자 한다.)
다음 단계는 로봇이 어떤 과정을 통해서 길을 찾을 것인지를 계획하는 것이 좋다. 화이드보드에다이아그램을 그리는 것도 좋다. 내가 택한 방법은 순서도 (플로우 차트: flow chart)를 그리는 것이다. (예전에 고등학교 수학시간에 배운 적이 있는데 요즘도 가르치는지 모르겠다. 그리고 다른 코딩 클래스에 쓰는지 궁금하다.) 아래의 순서도를 그려서 아이들이랑 공유했다.
플로우 차트를 보면 전체를 파악할 수 있게 되어 도움이 된다.
간단히 단계별로 설명을 하면,
- 프로그램이 시작되면, 센서와 모터를 초기화 한다.
- 경우에 따라서는 코딩에 사용되는 변수를 초기화 한다.
- 프로그램이 끝나는 경우는 로봇이 빨간 선에 도착했을 때이다.
- 센서 2 (세 개 중 가운데 센서)가 빨강색을 인식하면 프로그램을 종료한다. 빨강색이 아니면 계속 작동을 한다.
- 매 순간 세 개의 센서가 방향을 결정한다.
- 센서가 인지한 방향에 따라서, 좌회전, 우회전, 직진, 180도 회전을 한다.
- 4~6을 과정을 중앙 센서가 빨강색을 인식하면 프로그램을 종료한다.
위의 단계들 중에서, 빨강색을 인식하거나 선을 따라서 직진하거나 방향을 결정하는 부분은 무리 없이 작동되었다.
남은 과정은 좌회전, 우회전, 180도 회전 등을 코딩했다 그 다음엔 이 모든 기능들을 결합했다.
대체로 원만하게 작동이 되었지만, 회전을 하고 나서는 길을 잃어버리는 일이 자주 발생했다. 아마도 그 이유는 레고 로봇의 모터가 아주 정확하지 않기 때문인 것 같다. 자주 길을 잃고 계속 180도 회전하는 일이 발생을 하면 아이들이 좌절을 느끼기에, 해결할 방법을 찾아야 했다.
회전을 할 때마다 생기는 문제여서, 로봇이 일단 회전을 하면 무조건 약 0.5초 동안은 다시 회전을 못하고 직진하면서 길(검은선)을 찾도록 했다. 이렇게 했더니, 회전 후에 길을 놓치더라도 다시 회전하는 일이 없이 길을 찾아서 무한히 도는 일이 없어져서 아무탈 없이 경로를 찾았다.
사족: 글을 써 놓고 비디오와 사진을 찍어서 올려야지 하다가 시간이 너무 흘렀다. 이미 프로젝트는 끝났는데 글을 못 올리고 있다보니… 아무튼 다음 글에 계속.