햄스터로봇 산책하기
'2001 미래의 로봇 113가지 -10년이 지난 지금' 이라는 게시글...의 67번 산책로봇
그리고 햄코 교재의 '햄스터 산책하기 미션'을 참고하면서 계획하게 된 활동 아이디어...
목표>
1. 햄스터 4대를 패드 1대로 조종한다.
2. 앞의 물체를 따라 자유롭게 방향을 조절하며 한줄로 움직이도록 한다.
3. 앞의 물체와 부딪히지 않도록 너무 가까워지면 멈춘다.
4. 앞의 물체를 감지하지 못하면 멈춘다.
원하는 결과물은 이렇다.
이 미션을 학생들과 함께 하기 위해 만든 PPT
잘 짜여졌는지는 모르겠지만... 암튼... 나름의 수확을 거두었음에 만족하며...
<수업 적용>
2001년 미래의 로봇 113가지 글을 같이 살펴보며 로봇이 주는 편리함에 대해 이야기 나눔...
이후 67번 산책로봇을 살펴보며, 이런 로봇이 있다면 어떤 점이 좋을까 이야기 나눔
수업에 적용은 못하였지만... 이런 산책로봇을 다른 어떤 분야에 적용할 수 있을지 이야기를 나누는 것도 의미있을 듯하다.
아마도 이런 것을 탐색하고 의견을 나누는 것이 더 SW교육적이지 않을까?
(마트에서 직접 끌지 않는 카트... 다둥이 엄마 아빠를 위한 다둥이 유모차... 암튼... 움직이는 주인을 따라다니는 캐리어 등으로도 응용이 가능하지 않을까? 싶다... 대충 생각해 본 것들...)
암튼 이후 상황을 제시하는 이야기글을 제시하고
그 이야기글의 문구에 맞추어 코딩 요소를 찾도록 하였다.
물론 근 20시간의 햄스터 로직을 적용하긴 하였지만... 거의 교사 주도형인지라...
SW적 마인드가 적은 상황이라서 하나씩 같이 찾아가는 형식으로... 진행하였다.
만약 시간이 좀더 주어지는 상황이라면 코딩요소 탐색 과정을 1차시로 배정하여 분석적으로 다루며 이야기를 세세히 나누어 보면 코딩요소를 많이 찾아내고 좀더 학생 스스로 코딩을 찾아낼 수 있지 않을까 싶다.(갑작스런 동료장학에 햄스터 로봇을 다루며 무엇인가 미션을 수행한다고 보여주어야 한다는 압박에... ㅠㅠ)
코딩요소를 5분정도 찾아보도록 모둠별 활동으로 주고 난 후,
전체활동을 하나씩 이야기 나누면서 만들어가는 과정을 진행하였다.
먼저, 앞의 물체에 따라 햄스터가 물체 방향으로 회전을 하거나 앞으로 가는 알고리즘을 만들었다.
위 PPT 슬라이드의 11번, 12번 슬라이드에 나온 것 처럼
햄스터로봇의 왼쪽 / 오른쪽 근접센서의 감지에 따라 그 값을 상관관계를 갖는 햄스터 로봇 바퀴 속도로 지정하여 문제 해결...
물론 물체가 가까워지면 해당하는 센서 쪽 값이 상승하고
물체가 감지된 방향으로 햄스터로봇이 방향을 틀려면 방향을 틀려는 반대 쪽 바퀴에 속도를 높여야 한다.
즉... 물체가 감지된 쪽 센서값을 물체 감지 반대방향 햄스터 바퀴 속도로 지정하면 충분히 해결....
이 부분은 나보다는 코딩 실력이 좋은 한 학생의 앞 미션(라인트레이서) 해결 과정에서 제시하면서 학생들이 이전 학습 내용을 바탕으로 쉽게 이해할 수 있는 상황이 되었다.
이를 위해 학습 소재로 제작한 동영상은...
이를 패드로 코딩하면 다음 화면과 같다.
이를 실제로 코딩하여 학생들이 직접 경험해 보도록 하며 앞에서 '이러면 될 것이다.'라는 것을 직접 확인하는 과정을 거쳤다.
이 후에 해결해야 할 알고리즘은
3. 앞의 물체와 부딪히지 않도록 너무 가까워지면 멈춘다.
4. 앞의 물체를 감지하지 못하면 멈춘다. 내용으로...
앞의 물체를 감지하지 못하면 멈추고 감지하면 움직이며,
또 앞의 물체와 너무 가까우면 부딪히지 않도록 멈추도록 조건문을 달아 조절하는 것...
물체를 감지한다는 것을
햄스터의 왼쪽 또는 오른쪽 근접센서의 값이 10이상이 되는 것으로 하고
물체와 너무 가깝다는 것을
햄스터의 왼쪽 또는 오른쪽 근접센서의 값이 50~60...(햄스터의 감지 능력에 따라 조종) 이상이 되는 것으로 일단 값을 주어 테스트...
이 때 이중 조건문을 사용하게 되는 터라...
학생들에게는 위 PPT의 16번 17번 슬라이드와 같이
이중조건문을 통한 알고리즘 내용을 제시하여 적절한 값을 스스로 찾아 넣도록 함...
물론 알고리즘의 구조가 왜 이런 이중조건문이 되었는지는 설명...
이를 패드로 코딩하면 다음의 두 화면과 같다.
위 두 화면의 내용을 보면 알겠지만 첫 번째 코딩 내용이 이후 2, 3, 4번의 햄스터에도 똑같이 적용이 된다.
예시 동영상을 만들기 위해서 먼저 1대의 패드로 4대의 햄스터를 조종할 때에는 위 화면과 같이 코딩하여 실행시킨 후 4대의 햄스터가 한줄로 움직이는 영상을 촬영했다.
학생들과 수업할 때에는 1대의 햄스터 코딩을 다른 햄스터에도 같이 코딩하고 수치들만 조정하여 1패드 1햄스터가 되도록 하여 3~4명이 1조로 하여 미션을 완성하도록 하였다.
그 때에는 아래 화면에서 첫 번째 '클릭했을 때'에 딸린 명령만을 코딩하면 충분하다.
이 내용을 40분에 소화하겠다고 한 것 자체가 무리였는지는 모르겠지만...
그래도 기본적인 알고리즘을 제공하면서 경험한다는 생각에서 진행하니... 그럭저럭 40분에 소화는 가능했었다.
그래서 완성된 학생들의 결과물... 다소 장난스럽게 말하면서도 나름 잘 완성되어 목소리에는 힘이 들어간 듯 하다.
<수업 적용 후기>
#1.
1차시 40분 수업이 아닌 2차시 분량으로 1차시에는 코딩요소 찾기 / 2차시에는 학생들 스스로 코딩해 보기 활동으로 한다면 더 SW교육적인 수업에 가깝지 않았을까 싶다.
#2.
위와 같이 코딩한 경우 햄스터를 급하게 회전하는 경우(회전각이 큰 경우)에는 앞 햄스터와 충돌이 발생하는 경우가 있다.(특히 예제 동영상에서 중간 부분 쯤에...) 이는 어쩔 수 없는 듯...
해결책이 있는지 좀더 탐색이 필요할 듯 하다.
#3.
앞에 가이드하는 손을 너무 빨리 움직이면 근접센서 값의 급작스런 변화 만큼 햄스터가 반응하지 못하는 경우에는 자꾸 손을 놓치고 제자리에 멈추는 경우가 있다. 이는 아마도 물체 감지 센서의 값을 10보다 더 많이 30~40 대로 올렸을 때 더 자주 그런 경우가 나타났다. 이에 대해서는 학생들 스스로 적절한 값을 찾도록 해야 할 것이다.
# 전반적으로...
나름 만족스런 결과를 얻었고 40분이라는 시간에 해냈다는 생각에 더 만족스럽다.
하지만 거의 숟가락으로 떠 먹여준 형태의 수업이라 그 만큼 '좀 더 SW교육 스럽게 할 수 있었는데' 하는 아쉬움은 남았다.
이전까지 짜잘하게 진행하던 햄스터 미션들을 이런 식으로 총 정리할 수 있다고 한다면...
내년에는 좋은 자료가 될 것 같다. ㅠㅠㅠㅠ.... 언제할꼬....
==============
update 2017.11.29. 패드로 간략히 코딩한 캡쳐 파일 올림.
안드로이드 > '로보이드' 런처 설치 + '스택' 설치
'200.SwEdu' 카테고리의 다른 글
거북이로 평면도형 그리기 아이디어 모으기 (0) | 2017.07.05 |
---|---|
거북이 탐험대 활동 개시! (0) | 2017.07.05 |
검정선 안에 갇혀있는 햄스터로봇 (2) | 2016.10.14 |
햄스터로봇 - 라인트레이싱 관련 (0) | 2016.10.14 |
[스크랩]SW교육 교재 9종 공유 링크 (0) | 2016.10.02 |