'rc카'에 해당되는 글 2건

  1. 2015.11.01 비트브릭 RC카 ver.1.2 1
  2. 2015.10.11 비트브릭 교재없이 5강 수업 진행

비트브릭과 3D프린터를 이용한 출력물로 비트브릭 RC카를 만들자라는 생각에

이미 완성했던 모델은 아래 링크와 같다.

(링크 : 3D 프린터 출력물 이용 비트브릭 자동차 키트 만들기(1차))


이 1차 모델로 6학년 11명과 미로 탈출 미션을 이미 수행했다.  그 수업 후기는 나중에 ...

수업 진행 후에 든 생각이 일단 

차체가 필요 이상으로 크다는 점. 

그리고 모서리가 각이 져서 벽에 걸렸을 때 방향 전환에 방해를 준다는 점...

또, 바퀴와 모터 혼을 일체형으로 만들면 분리형으로 만들었을 때 모터혼과 바퀴의 유격에 의한 바퀴 흔들림이 없지 않겠는가라는 생각에서

나름 업그레이드를 시킨 것이다.


그리고 궁극적으로 지향하는 것,

약 5~10분 이내에 아주 어린 학생들도 간단히 조립을 해낼 수 있도록 해 보자는 목표는 그대로...

(차체를 학생들 스스로 구성해서 만드는 것도 좋은 SW교육의 한 목표라고 한다. 하지만 40분 수업으로 진행해야 하는 상황에서는 코딩에 집중하기로 하였고, 그에 맞추어 구조물 조립에 시간을 줄이자는 취지에서 구안한 것이다.) 



아쉬운 점은 있어서 몇 가지 고민은 해봐야 하겠지만... 나름 업그레이드 버젼이 잘 나왔다고는 생각한다. 

사실 현재 모델의 모태는 비트브릭 팀의 자동차 모델이다. 레이져 커팅으로 압축 종이를 잘라 만든 것...

그걸 흉내내며 우드락으로 만들어 본 것이 출발이다.

(링크 : 비트브릭팀의 '비트브릭 자동차' 흉내내기)


비트브릭 RC카를 만들기 위해 사용한 3D 출력물과 조립과정

3D 프린터 출력물

1. 레고판을 모델로 한 차체

2. 모터 혼과 일체형으로 만든 두께 10mm 바퀴

3. 볼캐스터 바퀴

4. DC모터 고정 파츠와 핀


1. 레고판을 모델로 한 차체

  전면에는 레고를 이용하여 각종 센서와 LED 등을 달 수 있도록 레고 블록을 만들었다.

  기존 레고들과도 호환이 잘 된다. 이곳에 센서를 부착한 예는 이 글 첫 부분에 있었던 비트브릭 자동차 초기모델 사진들을 보면 쉽게 이해될 듯...

  양쪽 긴 구멍은 DC모터를 파츠에 끼워 고정핀을 위로 밀어 넣을 수 있도록 만든 구멍이다. 

  파츠를 끼워 고정핀을 꼽아 고정할 수 있도록

  뒷 부분의 레고 블록은 비트브릭 메인보드를 고정할 수 있도록 했다.

  뒷 부분 홈은 DC모터 데이터 케이블을 고정할 수 있도록 했다. 

  가운데 넓은 사각형 홈은 전지끼우개를 양면테입으로 고정해서 자리를 잡을 수 있도록 한 것이다.

  자세한 것은 조립과정에서...


2. 모터 혼과 일체형으로 만든 두께 10mm 바퀴

  두께 10mm의 바퀴로 모터와 바로 연결할 수 있도록 모터혼 부분을 만들어 일체형으로 만들었다.

  만들고 나서는 좀 고민 요소가 남았다. 모터혼 연결부와 바퀴를 분리하는 것이 더 나을 수도 있겠다는 생각이 든다.


3. 볼캐스터 바퀴

  두 바퀴를 달면 차체가 앞으로 박힌다. 이를 막기 위해 받침대겸 앞바퀴로 활용할 수 있도록 만든 볼캐스터

  이건 직접 모델링 한 것인 아니라, 같은 아이디어 작업을 하는 김병석 쌤의 작품을 지원받은 것...


4. DC모터 고정 파츠와 핀

  DC모터 고정 파츠는 DC모터를 차체에 고정하기 위하여 만든 부품이다. 


가장 먼저 조립한 것이

DC모터를 모터 파츠에 끼우는 것!


DC모터를 모터 파츠에 끼워 차체에 연결한 모습

차체 위로 나온 부분에 핀을 꽂아 DC모터를 차체에 고정하는 모습

사실 핀을 꽂지 않아도 모터 파츠가 차체에서 빠지지 않는다. 구멍 폭이 좀 빡빡하게 모델링 되어 있어서...


DC모터 연결 후 바퀴 달기 전에 일단 전지끼우개를 본체에 연결


이후 모터와 연결부를 맞대어 바퀴를 끼운다. 이 때 DC모터 본체를 잡고 바퀴를 끼우는 것이 좋다.


바퀴를 끼워 넣은 모습으로 

초기 모델에서는 차체 윗 부분의 무게 때문에 가운데 부분이 눌려 바퀴가 한자의 팔자 모양으로 휘는 경우가 있어서 보강할 방법을 찾다가... 고무줄을 걸어 넣는 것으로 해결하기로...


위 사진에서 모터 앞쪽으로 볼캐스터를 앞바퀴 역할을 하도록 부착하는 모습

구슬을 사용하는 것은 바퀴의 움직임에 따라 자연스럽게 움직일 수 있도록 하기 위한 것.


차체 뒷 부분의 홈에 모터에서 나온 선을 클립처럼 고정할 수 있도록 만들었다. 

그렇지 않으면 연결선이 이상하게 쓸리거나 고정이 안되어 바퀴에 감길 수 있으니... 이를 막기 위하여


비트브릭 메인보드를 차체 위에 고정할 수 있도록 레고 1핀 블록을 4단씩 네 군데 세운다.


1핀 블록 위에 비트브릭 메인보드를 올려 고정한 모습

고정했다고는 했지만 사실 그리 튼튼하진 않다.

하지만 1차 모델에서는 1핀 블록 대신 대를 세워 바로 올릴 수 있도록 했지만 그 바가 쉽게 망가지는 단점이 있어서 이를 1핀 블록으로 대체...


본체 뒤쪽에서 볼 때 왼쪽 모터를 B포트에 오른쪽 모터를 C포트에 연결하였다.

물론 B, C포트 이외에도 다른 곳에 꽂아도 된다.

그런데 비트브릭 팀에서 제작해서 공유하는 앱인벤터 앱과의 통신을 위해서는 그렇게 연결하는 것이...

아래 사진은 급하게 모터 연결선을 정리하기 위해서 고무줄을 이용하여 고정한 모습이다.


아래 사진은 데이터 연결 선을 주변에 감아서 정리하는 형태로 구성한 것이다.

사실 깔끔해 보이기는 하지만 이 모습보다는 고무줄 정리 모습이 오히려 간단해 보인다.


이렇게 해서 앱인벤터로 제작된 조종기로 조종하는 모습이 맨 윗 부분의 동영상이다.


=============


페북에 올린 사진을 보고

3D 모델링 자료를 공유해 달라는 분이 계셔서...

파일 공유합니다.


1. 차체

RCCbody-1024.stl

 

2. 바퀴

wheel-horn-1024.stl

 

3. DC모터 파츠와 핀

DC-Parts.stl

4. 볼캐스트(큐보 볼)

Cubo_boll4.gco

  * 다른 분이 제작한 파일이라서 그리고 블로그 첨부파일 1개당 10MB용량 제한으로... ㅠㅠ

    애석하게도 G-Code 파일로만 올림을 양해 바랍니다.

 

3D 모델링은 연수받은 오토데스크 123D로 했습니다.

3D 출력파일로만 올립니다.

Posted by 창석쌤
,

최근 바쁘다는 핑계와 검증 후 자료를 정리하겠다는 생각에

WorkBook 작업 없이 수업을 막 진행해버린 듯 하다.

그러다 보니 벌써 2블록 1회 수업만을 남겨둔 상황이 되어 버렸다.


다음 시간을 기약하면서

바로 직전 수업, 그러니깐 10월 2일 금요일에 있었던 수업을 이제야 복기해 본다.


========


두 블록 수업을 진행하면서

학생들의 떨어진 흥미를 좀더 끌어올리기 위해서

비트브릭으로 자동차 만들기 활동을 진행하였다.


수업 진행 시 주요 목적으로 둔 것은 다음과 같다.

1. 제시된 구조체를 조립하여 완성된 자동차 구조물을 만들 수 있다.

2. 조립된 자동차에 명령 블록을 이용하여 키보드로 조정할 수 있는 간단한 자동차 프로그래밍을 할 수 있다.

3. 호출 명령의 개념을 이해하고 활용할 수 있다.


이를 위해 활동은 요소별로 아래와 같은 과정을 거쳐서 할 수 있도록 진행해 보았다.

1단계> 구조체 조립하여 자동차 구조물 만들기

2단계> DC 모터의 작동 블록 기능 익히기

3단계> 자동차의 전진, 후진, 좌회전, 우회전, 정지

4단계> 키보드의 화살표키로 조종하는 자동차 프로그래밍 완성하기


사실 이 수업에서 위와 같은 단계의 구분은,

모든 과정을 차근히 진행하기 위한 단계이기 보다 학생들이 자동차를 프로그래밍하기 위해서 거쳐야 하는 사고의 과정, 그리고 그 과정에서 찾아내야 할 해결책이 있는 일련의 중간 과정이라고 이해하는 것이 타당할 것이다.


========


두 시간에 하는 활동이고, 자동자 완성물 견본과 조립블록을 3D 프린터로 출력하여 제시하기 때문에

쉽게 될 것이라는 생각도 했지만...

혹시나 하는 생각에 괜한 욕심이나 기대는 접고 시작했다.


하지만 키보드로 조종하는 자동차를 만든다는 생각이어서인지 학생들의 반응이 뜨거웠다.

그리고 나름 결과물도 괜찮았다.


수업 환경은 모둠별 활동을 전제로 하였다. 생각해 보면, 모둠별 활동이 현명한 방법이기도 하다는 생각이 든다. 이에 대한 이유는 이 글 마지막 부분에 부연설명하기로 하고...


1단계> 구조체 조립하여 자동차 구조물 만들기

http://chsuk74.tistory.com/174 게시글에 제시하였던 모형(모터 마운트, 본체 기판, 구슬바퀴, 모터혼과 바퀴 등)을 일단 3세트 출력하여 1모둠당 1세트씩 배부하였다.

그리고 완성된 견본품 하나를 교실 전면에 제시하여 혹시나 구조를 잘 이해하지 못할 경우 참고할 수 있도록 하였다.

수업에서는 각 부분들의 모양, 연결 방법을 간략한 수준에서 5분 정도 안내하고 바로 학생들에게 만들도록 하였다. 모르는 부분은 견본품을 참고하도록 하여 이해한 수준에서 또 보이는 수준에서 쉽게 조립할 수 있도록 하였다.

불량이 난 부품과 좀 다듬어야 할 부분들이 있어서 이것을 정선하고 전 모둠이 자동차 모형을 모두 만드는데에는 그리 길지 않은 시간이 소요되었고, 조립을 완성하면서 왜 그러한 부품들이 나오게 되었는지 질문하고 응답을 유도해 보았다. "왜 선생님이 그런 모양으로 만들었을까?"라는 질문에 나름 적절한 응답들이 나와서 만족했다는... '이건 모터 마운트를 고정하기 위한 거죠?', '좌우로 방향을 바꿀 때 쉽게 움직일 수 있도록 하기 위해 구슬바퀴를 달았다.' 등 적절한 응답들이 나왔다.


2단계> DC 모터의 작동 블록 기능 익히기

DC모터는 앞 과정에서 언급만 했었지 실제로 실습을 통해 그 블록을 활용해 보는 것은 사실상 처음이다.

그래서 그냥 "조립된 자동차가 '전진'하기 위해서는 어떤 명령을 써야 할까?"라는 질문만을 던지고 프로그래밍을 해 보도록 했다.

학생들의 반응에서는 

먼저 두 모터에 방향 설정 없이 속도 만을 지정하여 실행 => 결국 제자리를 뱅글뱅글 도는 자동차 만듦.

'왜 저렇게 될까?'라는 질문을 던지고 모둠에서 해결해 보도록 했다.

그랬더니 두 모터의 '방향'이 문제가 된다고 이야기하며

방향을 설정하는 DC모터 블록을 활용, 4개의 블록으로 전진 명령을 찾아냈다.

하지만 "블록을 2개만 사용해도 충분히 가능하다. 어떻게 하면 될까?"라는 질문을 던지고 유도해 보았다.

하지만 초등 6학년이 '정수' 개념도, '벡터'의 개념도 없는 애들에게

속도에 '-' 기호를 붙이면 방향을 조절할 수 있다는 사실을 찾아내기는 쉽지 않을 터...

궁리해 보도록 하다가 그냥 학생들에게 안내해 주었다. 속도 숫자 앞에 '-'를 붙이면 DC모터의 회전 방향을 조절할 수 있다고... 


3단계> 자동차의 전진, 후진, 좌회전, 우회전, 정지

앞의 활동을 바탕으로 학생들에게 전진 1초, 후진 1초, 좌회전 1초, 우회전 1초 후 정지하는 

자동차 프로그래밍을 해보라고 미션을 제시하였다.

모둠별로 '관심있는' 몇 친구들의 주도로 그리 어렵지 않게 프로그래밍을 진행하였다.

부가적인 미션으로 "좌회전, 우회전할 때 90도로 회전하기 위해서는 어떻게 해야 할까?"를 제시하였다.

몇 가지들을 해보더니 한 모둠에서 '시간조절로 맞추어야 할 것 같다.'는 이야기가 나왔고...

각 모둠별로 테스트해 보라고 하니 모둠별로 지정해야하는 시간이 달랐다.

이는 각 모둠의 자동차의 전원 출력에 의해 모터의 속도가 다르고 그에 따라 지정해야 하는 시간이 달라지는 것이라고 말해주고 다음 활동을 진행하기로 하였다.


4단계> 키보드의 화살표키로 조종하는 자동차 프로그래밍 완성하기

이 활동에서는 '키보드를 누르면 그에 맞는 동작을 한다.'라는 식의 것은

'호출명령'으로 코딩이 가능하다는 것을 이해하고 

좀더 적은 수의 블록으로 조정 자동차를 만들도록 함과 동시에 

다음 차시에서 진행할 '블루투스 자동차 만들어 미션수행하기'와 연계되도록 하기 위한 단계이다.

호출명령은 프로그램 진행 중 특정 키가 눌리거나 특정 조건이 만족되었을 때

별도로 작성되어 있는 명령 블록을 호출(불러와서)하여 실행되는 구조임을 설명하고

간단하게 '스페이스바를 눌렀을 때 모터가 모두 멈추도록'하는 명령을 같이 작성하고 

3단계의 프로그래밍 중간에 스페이스바를 눌러 자동차가 멈추도록 하는 것으로 

사용과 작성 설명을 대신하였다.

이후 시간을 주어 모둠별로 키보드의 화살표키 조작을 통하여 조종가능한 자동차를 만들도록 미션을 주었다.

미션 해결 과정에서 3단계에서 모터 조작 내용 중 '1초'동안 작동하도록한 내용을 그대로 가져다 사용하는 통에 키보드 누름 시간에 비해 반응이 늦거나 건너뛰는 현상이 있었다.

문제해결책은 시간 설정을 빼는 것...

시간 설정을 빼고 프로그램을 실행시켰을 때 '전진'화살표를 눌렀다 떼면 자동차가 '계속 전진'하는 상황이 벌어졌다. 이를 위해서 '스페이스바를 누르면 멈춤'이라는 명령이 필요...


학생들의 흥미를 좀더 높이고 프로그래밍에 대한 이해나 소질이 좀 덜한 친구들에게도 흥미를 더 불러들이기 위해 나머지 시간은 완성된 자동차 조정하면 자유활동하기 시간으로 주었다.

이 과정에서 학생들의 민원은...

"선생님! USB선 때문에 멀리 못가요!"


그래서 다음 시간에는 USB 연결 모드가 아는 블루투스 연결모드로 프로그래밍을 다시 해 보자는 것으로 수업을 마무리 하였다.


다음 차시의 주된 내용은

미로를 제시하고 블루투스로 자동차를 컴퓨터와 연동시켜 화살표키로 미로 탈출하도록 하는 일종의 경기를 진행하는 것으로 진행하여 마무리 지으려고 할 계획이다.


=============


학생들은 확실히 자신의 손으로 무엇을 조작하는 것을 좋아한다.

특히나 자신이 만든 것으로 자신이 조정하는 것은 더 좋아한다. 

이 사실을 다시금 확인할 수 있는 시간이었다.


지난 4강 재도전 시간과 5강 시간을 통하여 느껴지는 바 하나는...

모든 학생에게 비트브릭 또는 여타의 무엇이든 피지컬 컴퓨팅 또는 프로그래밍에 대해 

모든 학생이 잘 할 것이라는 생각을 하는 것은 교사의 오판일 것이요...

그리고 이런 활동이 조작활동을 베이스로 하니 모든 학생이 즐겁고 적극적으로 참여할 것이라는 기대는 교사의 일종의 '자만', '과대망상'이라는 생각까지도 하게 되었다.

이러한 이유로 사실 개별 미션 진행보다는 '모둠별' 진행을 선택한 것이 현명하다는 생각이 들었다.

오히려 소질이나 흥미가 없는 친구, 또는 이해도가 잘 되지 않은 친구들에게는 스트레스 일 것이다.

하지만 모둠별로 진행을 하면 스스로 좀 뒤로 물러서기도 하고, 흥미있는 부분에는 오히려 모둠 친구들에게 물어보며 자기도 참여하는 모습을 관찰할 수 있었다. 그것도 교사가 일괄적인 설명을 하거나 또는 일일이 찾아다니면서 조절하지 않아도 말이다.

이러한 측면에서 보면 2인 1모둠이 가장 이상적인 구조인 듯 하다.

모든 사람이 활동을 하도록 유도하면서도 부담을 줄이는 조정이 가능한 구조라는 생각이 든다.


아무튼 학생들에게 이 활동을 제시하면 학생들이 모두 좋아하겠지?

라는 생각은 교사의 '자만'이라는 생각을 몇 가지 학생 관찰을 통하여 확인하는 계기도 되었던 수업이었다.


학급 내에서 가장 '지적'인 활동에서 선두적이라는 학생의 입에서 '흥미없어서 별루...'라는 말이 나왔으니...

그런데 이 친구의 이런 말에 대해서는 좀 생각해 보아야 하겠다. 지적 활동의 호기심이나 흥미가 정말로 없는지? 혹시나 사춘기적인 부분의 영향으로 뒷전으로 서려는 것인지...

아무런 의미 없는 말에 내가 너무 민감하게 반응하는 것인지도 모르겠지만...

암튼 의아한 반응이었다.

Posted by 창석쌤
,