본문 바로가기

Edu/Flipped Lap

[로꾸꺼연구소] #39 2018-4 (실과6) 로봇 라인트레이서 워크숍

[로꾸꺼연구소] #39

2018년도 네 번째 모임

- 실과6. 로봇 라인트레이서 워크숍 -


2018.06.22.(금)

지난달 워크숍에서 로봇을 활용한 융합수업에 사용하는 레고위두2.0 교구를 살펴보고, 간단한 기어비를 이용한 엔지니어링 수업도 체험해보았다. 교구에 대한 기본적인 이해를 끝냈기에, 이번 모임에서는 실제로 교과수업시간에 활용할 수 있는 방법을 함께 고민해보기로 하였다.



[실과6] (4)생활과 전기전자 - 2.로봇의 이해

이 단원은 총 6차시로 구성되어 있다. (교과서 출판사에 따라 조금씩 차이가 있다.) 일상생활에서 사용되는 로봇의 구성과 작동 원리를 이해하고, 센서를 장착한 간단한 로봇을 체험해보는 내용이다.

(1-2차시) 생활 속 로봇의 이용

(3-4차시) 로봇의 구성과 작동 원리: 다양한 센서들

(5-6차시) 생활 속 로봇 체험하기: 선택1, 2, 3


성취기준으로 수업을 계획한다면, 1~4차시로 진행하는 지식적 접근보다 곧바로 간단한 로봇을 만들어보며 진행하는 수업흐름이 더 좋지 않을까 생각한다. 일단 센서를 사용하는 로봇을 만들어보는 것이다. 교과서에도 제시되어 있듯이 센서를 활용한 <라인트레이서>를 수업에서 직접 만들어본다.



(1) 라인트레이서가 뭐지?

https://youtu.be/CYdbmbec9jA


위 동영상에서 보듯이 라인트레이서란 바닥에 있는 선을 따라 이동하는 로봇을 말한다. 이미 공장이나 물류센터에서는 바닥의 라인을 따라 이동하며 정해진 동작을 하는 로봇들이 아주 많이 사용 중이다. 내부 공간에서 로봇이 부딪히지 않고 자유롭게 이동하려면, 내부 지도를 읽고, 자신의 위치를 스스로 파악하며 이동하여야 한다. 또는 사람의 눈과 같은 카메라로 들어오는 엄청난 시각 데이터를 매우 빠른 속도로 분석하여 판단할 수 있는 인공지능이 가능해야 한다. 바닥의 선을 따라 이동하도록 하는 로봇은 현재의 기술로 구현이 가능한 가장 간단한 알고리즘이라는 것이다.



(2) 라인트레이서 알고리즘

그렇다면, 라인트레이서는 어떻게 바닥의 선을 따라 이동할 수 있을까? 로봇의 눈에 해당되는 센서가 필요하다. 레고위두에서는 '동작센서'가 그 기능을 해줄 수 있다. 동작센서는 한쪽에서 빛을 내보내고, 다른 한쪽에서는 빛을 받아들여 정보를 파악한다. 검정색은 빛을 흡수하기 때문에 내보낸 양보다 돌아오는 양이 매우 적다. 반대로 흰색은 빛을 대부분 반사하기 때문에 내보낸 양이 다시 돌아온다. 이러한 특징을 이용하여 바닥의 라인을 읽어낼 수 있다. 



(3) 라인트레이서 만들기

라인트레이서의 기본은 왼쪽 바퀴와 오른쪽 바퀴가 상황에 따라가 각각 작동하며 좌우로 회전하여 앞으로 이동하게 해준다. 레고위두2.0 교구의 치명적인 단점은 바로 '모터가 하나'라는 것이다. 조립해서 만드는 교구가 아닌 라인트레이서 완제품으로 판매되는 제품에도 모터를 좌우 2개를 사용한다. 레고위두2.0에서 라인트레이서를 만들기 위해서는 모터 하나가 왼쪽 바퀴를 돌렸다가 오른쪽 바퀴를 돌렸다가 번갈아가며 동작을 해주어야 한다.


(4) 라인트레이서 코딩하기

레고위두2.0의 동작센서에 흰색과 검정색을 가져갔을 때 화면에서 측정되는 숫자가 달라지는 것을 확인할 수 있다. 흰색 위에서는 평균적으로 '0'값을 보여준다. 하지만 검정색 위에서는 '1' 부터 '10'까지 정해진 숫자를 보여주지 않았다. 장소의 조명과 그림자에 따라 숫자가 달라지는지, 표면의 거친 정도에 따라 달라지는지 변수가 많아 정확하게 판단되지 않았다.



레고위두2.0의 기본적인 블록코딩 방식은 순차진행으로 한방향으로만 코딩하는 것이 일반적이다. 조건에 따라 각각 진행하는 구조로 코딩하려면 특별한 <코딩블럭>을 활용할 수 있어야 한다. 바로 '메세징' 기능이다. 특정 숫자가 검출되었을 때 그 숫자에 해당되는 곳으로 가서 입력해둔 명령을 진행하게 만들어야 한다. (자세한 코딩 방법은 동영상에서 슬쩍 남겨두었으니 확인해보시길)



라인을 벗어나지 않게 디버깅하기!

레고위두 앱에서 코딩을 해보면, 센서에서 수치가 입력되는(전달되는) 딜레이(지연)가 약간 있고, 각 블럭코딩이 순차적으로 진행되면서 발생하는 딜레이가 있다. 그 딜레이로 인해 검정색 선을 지나쳐버리는 상황이 발생하면 정해진 코스를 이탈하게 된다. 그래서 그러한 딜레이를 해결하기 위해 적절한 모터속도를 테스트해서 디버깅해주어야 한다. 코스를 이탈하지 않는 최적의 속도를 각자 찾아보시면 좋겠다.



라인트레이서 경기장?


하얀색 바탕을 위해 4절 도화지 2장을 연결하여사용했다. 라인을 그리는 것보다는 검정색 종이테이프를 사용하면 쉽게 만들 수 있다. 또는 검정색 절연테이프를 사용해도 좋다. 검정색 종이테이프를 사용할 때는 얇은 폭보다는 2cm 정도되는 폭을 사용하는 것을 추천한다.


내부 워크숍으로 역량 키우기!

아직 연구 중인 교구이고, 연구 중인 로봇 모델들이다. 많은 선생님들 앞에서 워크숍을 열기 전에 연구소 선생님들과 조용하게 먼저 실습을 해보며 다양한 오류들을 해결해보는 중이다. 이렇게 축적된 경험들을 잘 모으고 정리해서 곧 여러 선생님들께 워크숍을 공개하여 함께 나누는 자리를 마련하고 싶다.


IF NOT US, WHO?

IF NOT NOW, WHEN?