햄스터 로봇 & 터틀봇을 이용하는 방법은 컴퓨터를 이용하는 방법과 패드를 이용하는 방법도 가능하다.

 

스마트 패드(안드로이드)에서 이용할 때에는

로보이드 런쳐라는 어플 내에 스택이라는 어플을 설치하여 활용가능하다.

 

그에 대한 설치, 이용에 관한 메뉴얼을

박찬규 선생님이 e북으로 제작하셨기에 교육 자료로 활용하기 위하여 링크...

 

 

http://www.srook.net/kfcman/636702238791581600

Posted by 창석쌤
,

햄스터로봇 산책하기

 

'2001 미래의 로봇 113가지 -10년이 지난 지금' 이라는 게시글...의 67번 산책로봇

 

그리고 햄코 교재의 '햄스터 산책하기 미션'을 참고하면서 계획하게 된 활동 아이디어...

 

목표>

1. 햄스터 4대를 패드 1대로 조종한다.

2. 앞의 물체를 따라 자유롭게 방향을 조절하며 한줄로 움직이도록 한다.

3. 앞의 물체와 부딪히지 않도록 너무 가까워지면 멈춘다.

4. 앞의 물체를 감지하지 못하면 멈춘다.

 

원하는 결과물은 이렇다.

 

 

이 미션을 학생들과 함께 하기 위해 만든 PPT

 

 

햄스터로봇 한줄로산책하기 from Changsuk Hyoun

 

잘 짜여졌는지는 모르겠지만... 암튼... 나름의 수확을 거두었음에 만족하며...

 

 

 

<수업 적용>

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.  패드로 간략히 코딩한 캡쳐 파일 올림.

 

안드로이드 > '로보이드' 런처 설치 + '스택' 설치

 

Posted by 창석쌤
,
햄스터스쿨 자료에 있던 내용들 중에 비슷한 내용이 있었던 것 같아서 수업시간에 적용...

햄스터로봇의 바닥센서로 할 수 있는 것이 무엇일까? 
라는 질문을 학생들에게 했었다. 영상 속의 원형 그림을 보여주며

한 학생이 장난처럼 '햄스터를 검정색 원안에 가둘 수 없을까요?'라는 말을 했고
아이들의 동기유발이 자동으로 되었다.

그에 맞추어
옳다쿠나 하고 실시한 첫 미션은

직진하며 검정색 선을 감지하고 '삐' 소리 내기와 LED 불 켜기
그리고 나서
검정색 안에서 직진하다가 검정색 선을 감지하면 삐 소리를 내며 후진, 돌기, 그리고 다시 앞으로 전진
이를 반복...

몇몇 친구들이 코딩을 완료하였는데
대부분이 검정색 선에 바퀴가 넘어가기도 했다.
이에 대한 해결책을 찾지 못하는 듯하여
한 학생에게 '넘어가지 않는다는 말은 다른 의미로 어떤 의미가 있을까?'라고 질문을 던졌더니
'정지하기' 블록을 사용하였다.
그렇게 완성하기 시작하더니
한 두 명씩 슬슬...

이건 실제 코딩한 것을 좀더 업그레이드 해보려고 한 영상이다.
원안에서 햄스터가 자유롭게 움직이도록 하기 위하여 
난수 발생으로 바퀴 속도를 조절하고 움직이도록 하려 했다.
거기에 회전을 위해 지정하는 시간초도 1~5 사이의 난수를 발생시켜 방향을 쉽게 조절할 수 있도록 하려 했다.

하지만 패드 코딩(로보이드)에서는 이에 음수를 집어넣을 방법이 없어서.... 바퀴의 속도 조절은 아쉽아쉽...
0~100으로 난수를 발생시키도록 했지만 움직임으로 볼 때
거의 양쪽 바퀴 속도가 같은 난수로 지정되어 발동하는 듯 했다.

  수정: 학교에서 아이들과 같이 해 볼 때에는 왼쪽과 오른쪽 바퀴 각각에 다른 난수가 발생하여

           햄스터로봇이 좌,우회전 하는 경우도 있었음. 이를 볼 때 같은 난수값이 지정되는 것은

           아닌 듯....(11.2.밤 수정) 


암튼...


Posted by 창석쌤
,