처음 상상했던 것과는 차이가 있지만, 자유 미션을 하면서 생각해보고, 이것저것 많이 해본 거 같다. 마퀸 플러스와 허스키렌즈 마퀸 메카닉 자체가 간단하고, 사용하기 쉬운 게 너무나 좋았다. 젤다의 전설 가디언 종이 접기가 시간도 오래 걸리고 어려웠다.
필수 미션과 다른 R/C CAR 조종 방식
1) 필수 미션은 R/C CAR 조종은 불편하고, 중간중간에 조종기에서 왼쪽으로 되어 있는데, 마퀴 플러스는 다른 동작을 하는 문제가 있다. 조종 방식을 조종기 상태를 실시간으로 전달하는 방법으로 변경했다. 블록들이 늘어났지만, 반응 속도가 상당히 좋아졌다.
2) 5가지 동작(제스처)에서 9가지 동작으로 변경했다. 덕분에 앞으로 가면서 자연스럽게 오른쪽 왼쪽으로 꺾을 수 있게 됐다.
다양해진 랜덤 효과
이 부분이 제일 아쉽다. 메이크코드로 작성할 수 있는 프로그램의 크기가 있는데, 마퀸 플러스와 허스키렌즈 확장 프로그램을 추가하면서 줄었다. 그래서 LED, RGB LED, 음악 부분은 다 뺐다.
허스키렌즈로 TAG가 인식 되면,
2배 속도로 달리기
느리게 달리기
정지
뺑글뺑글 돌기
카트 게임의 필수 랜덤 효과를 만들었다.
라인 트레킹 센서를 이용한 2배 속도로 달리기
모든(6개) 라인 트레킹 센서가 반응할 때(특정 지역을 지나갈때) 2배 속도로 달릴 수 있도록 했다.
조종기 A, B 버튼을 이용한 Loader 동작 하기
이벤트 생성] 블록을 이용하여 간단하게 구현했다.
집중해서 봐야 할 블록 코드
자유 미션에는 변수를 많이 사용했다. 그리고 반응(이벤트) 방식 블록코딩을 적극적으로 사용했다(원래 반응 방식이지만). [라디오 수신하면 실행], [무한반복 실행] X 2 블록에서 정해지지 않은 순서대로 실행 된다. 이 부분을 신경써주지 않으면 의도한 대로 프로그램이 동작되지 않는다. 이 부분을 유심히 본다면 어렵지 않게 블록 코드를 이해할 수 있다.
자유 미션을 하면서 아쉬웠던 점
1) 혼자 마퀸 카트를 가지고 해야 한다. 마퀸 카트가 달릴 트랙(?)도 혼자 만들어야 하고, 혼자 만든 트랙(?)을 혼자 달려야 한다.
2) 마이크로비트의 한계이지만, 교육용이라지만, 차기 마이크로비트는 원하는 만큼 블록 코드를 작성되게 해 주면 좋겠다.
마퀸 플러스 & 마퀸 메카닉 & 허스키렌즈의 좋은 점
가격은, 기본 구성으로 꽤 많은 것들을 할 수가 있다. 그것보다는 생각한 아이디어를 어느 정도 선에서 구현을 할 수 있다는 게 좋은 점이다. 특히나 핸드폰과 게임에 많이 노출된 친구들에게 시시한 LED 불 켜기(?) 보다는 다양한 동작(복잡한 동작)과 쉬운 블록 코딩을 하게 해 줄 수 있는 것도 좋은 점이다.
좋은 소식
나도 메이커 유튜브 채널에서 '마이크로비트 마퀸으로 배우는 AI세상' 책으로 라이브 방송을 진행 예정이다. 제품을 가지고 있거나, 구매 예정이거나, 관심이 있다면 라이브 방송에 참여하면 좋을거 같다.
나의 자유 미션 주제는 마퀸 카트를 만드는 것이다. 어느 것이 되고 안되는지 확인해 봤다. 결론은 다이어트를 많이 해야 한다.
다이어트 대상들
1. 제품을 받기 전엔 작은 아기자기한 마퀸 카트를 생각했다. 그런데...... 마퀸 메카닉으로 2개의 기능을 가진 기구를 만들어 봤는데, 커도 너무 컸다. 그래서 마킨 카트엔 Loader 기구만 달기로 결정했다.
2. 조금은 안타까운 소식이다. 맘껏 블록을 붙여서 이것저것 만들었는데, '오류 : program too big......' 오류가 난다. 아무래도 마퀸 플러스 & 허스키렌즈 확장 프로그램이 큰 용량을 차지하는 거 같다. 라인 트레킹 센서를 이용한 기능도 생각했는데, 어쩔 수 없이 뺐다. 그럼에도 불구하고 음악 연주는 몇 개만 가능하다.
구현해야 할 필수 기능들
업그레이된 R/C CAR 기능
5가지 동작에서 -> 9가지 동작으로 늘렸다. 좀 더 부드럽게 움직인다.
허스키렌즈로 TAG 인식하여 랜덤 효과 만들기
1. 2배 빠르게 동작하기와 느리게 동작하기 - 처음엔 값들을 숫자로 직접 적었는데, 변하는 부분을 전부 변수 처리했다. 어렵지 않게 구현됐다.
2. 연주하기 - 연주는 가능하나, 용량이 부족하여 제대로 된 연주를 못할 거 같다.
3. 정지하기 - 차라리 음악 연주 부분을 빼고, 이 효과를 넣을까 고민 중이다. 카트니까 연주되신 정지하기를 넣어야겠다.
4. RGB LED 표시 하기
5. 카트 춤추기
라인 트레킹 센서로 부스터 모드 효과 만들기
특정 지역에 가면(검은색 패드가 있는 곳) 정해진 시간 동안 2배의 속도로 달리는 기능이다. 랜덤 효과에도 있는 기능이다.
블록으로 다 구현은 했는데, 다 넣으면 오류가 난다. 마지막까지 해보고 마퀸 카트에 어울리는 아이들이 흥미를 느낄 수 있게 기능들을 잘 선택하자.
가속도 센서를 감지하면 실행 블록 사용하여 간단하게 구현을 할 수 있다는 장점은 있다. 대신 빠르게 동작(제스처)을 하다 보면 조종기와 R/C CAR가 다를게 동작한다. 예를 들자면 조정기는 왼쪽 기울기 동작을 하고 있는데 R/C CAR는 오른쪽을 동작을 한다. 이유는 이벤트 감지 시 딱 한번 이벤트를 실행하기 때문이다. 또한 한 동작 구현이 5가지로 제한되어있다.
업그레이드된 R/C CAR 구현하기
기존 5가지의 동작에서 대각선 방향이 추가된 9가지 동작을 구현했다. 한번 더 업그레이드 한다면 방향의 크기를 구현할 생각이다. 여기까지 하면 해야 할 것들이 많아져서 자유 미션은 9가지 동작으로 할 것이다.
코드 비교
FC(앞으로) , FL(왼쪽 앞으로), FR(오른쪽 앞으로), CL(외쪽), BL(왼쪽 뒤로), BC(뒤로), BR(오른쪽 뒤로), CR(오른쪽), CC(정지) 9가지 동작(제스처)에 맞게 R/C CAR에서 구현해 주면 된다. 특이한건 boundray 변수를 이용하여 가속도센서가 반응하는 크기를 조절한다. 보통 boundary과 -boundary을 코드로 표현할 때는 그대로 사용하면 되는데, 블록은 [0 빼기(-) boundary] 로 해야 한다.
아마도 처음 프로그램을 배우는 사람들은 뭔 소리야 할 것이다. 왜냐면 숫자 또는 문자만 넣은 것만 봤기 때문일 거다. 하지만 배열에 다 넣을 수 있다. 그래서 블록에서는 할 수 없어서 자바스크립트 에디터에서 해봤다. 된다.
문제는??
문제는 블록 에디터로 변경할 경우 에러가 난다. 어쩌고 저쩌고, 무시하고 블록 에디터로 변경하면 함수 이름들이 다 바뀐다. 원하지 않은 코드들이 추가된다.
왜 배열에 함수를??
자유 미션이 마퀸 카트를 만드는 것이다. R/C CAR 기능에 마리오 카트처럼 중간중간에 허스키렌즈로 아이템을 인식하면 랜덤으로 효과를 적용하는 것이다. 그 효과를 적용하기 위해서 여러 개의 함수를 만들어 배열에 넣고 랜덤으로 실행하려고 했다. 새로운 효과가 추가되면 함수 만들고 배열에 넣으면 끝이다. 이렇게 하지 않을 경우 함수를 만들고, 제어문을 추가하고, 자잘한 코드를 추가 또는 수정을 해야 한다.
|| 필수 미션 : 마퀸 플러스가 정지선 앞에 정지하여 정해진 TAG가 인식되면, 경적을 울리고 전진하기
틈틈히 마퀸플러스 & 허스키렌즈 튜토리얼 문서를 보고 연습한 끝에 필수 미션을 할 수 있게 되었다. 영어로된 문서이지만, 그림들만 봐도 의미는 대충 알 수가 있다. 최근에 아이씨뱅큐에서 '마이크로비트 마퀸으로 배우는 AI세상' 책을 출판했다. 한글로 된 책이 필요하다면 '마이크로비트 마퀸으로 배우는 AI세상'이 제격인거 같다.
처음에는 복잡해 보였지만 필요한 기능을 정리해 보니 몇 개의 블록으로 간단하게 필수 미션을 완료하게 되었다. 필수 미션 시작하자!
|| 준비물
TAG : apriltag
허스키렌즈에서 인식 할 수 있는 TAG는 apriltag중 tag36h11이다. 어느 정도의 흰색 바탕이 필요하다. 프린터로 출력하여 여백을 충분히 주고 자른다. 사진에서는 TAG를 고정하기 위해 샤오미 배터리와 USB LED램프롤 사용 했다. TAG를 고정할 수 있는 것이면 어떤것이든 좋다.
마퀸 플러스, 허스키렌즈
최신 펌웨어 버전 V0.53은 tag 인식이 안되는 부분이 있어 V0.51로 사용한다.
마이크로비트 V1, V2, 휴대용 배터리
정지선
검정패드를 이용하여 정지선으로 사용한다.
|| 전체적인 프로그램 구상을 순서도로 표현하기
반응 프로그램(이벤트)을 순서도로 표현하기에는 조금 부족한다. 프로그램을 순서도로 그리는게 함정이지만(힘들지만)^^ 순서도 대로 프로그램을 작성하니 헤매지 않고 좋다.
| 주행
2개의 마이크로비트를 가지고 라디오 기능을 이용하여 R/C CAR 프로그램을 작성한다. 가속도 센서의 'XXX 감지하면 실행' 블록을 사용하여 '앞으로', '뒤로', '왼쪽으로', '오른쪽으로', '정지' 기능을 리모트 컨트롤에 구현하고 '라디오 수신하면 실행' 블록을 이용하여 마퀸플러스에 구현한다.
| 정지선인식
마플 플러스에 있는 적외선 센서(2개 이상)를 이용하여 정지선(검은색 패드)을 인식한다.
| 정지
| TAG 인식
아래의 블록을 이용하여 TAG가 인식되었는지 알 수 있다.
| 경적 울리기
도솔도레미레도솔 라파라도파미레도 시솔시레솔파미레 미솔레솔도~ 이걸로 정했다. 서울메트로 승강장 내 열차 진입음이다.
|| 마퀸 플러스 & 허스키렌즈 & 마이크로비트 조립하기
초음파 센서 자리에 허스키렌즈를 조립한다. 그리고 I2C포트에 색을 맞춰서 꽂는다.
|| 메이크코드로 블록코딩 하기
순서도에 맞게 하나씩 하나씩 만들어 보자.
| R/C CAR 블록코딩
조종기 블록코딩
1) 새 프로젝트 만들기
'마퀸조종기' 이름으로 새 프로젝트를 만든다. 조종기는 '라디오 그룹을 '1'로 설정하고, '가속도 센서 감지하면 실행' 블록만 사용한다. '무한반복 실행' 블록은 필요 없으니 삭제 한다.
2) 앞으로, 뒤로, 왼쪽으로, 오른쪽으로, 정지 이벤트에 대한 블록코딩 하기
각각의 이벤트에 맞게 '가속도 센서 감지하면 실행', 'LED 출력' , '라디오 전송 문자열' 블록을 이용하여 블록코딩을 한다. 실제 동작을 해보면 반응이 느리다. LED 출력 블록의 갱신 주기(400ms)가 있어서다. 반을을 빠르게 하려면 갱신 주기를 0 또는 LED 출력을 사용하지 말이야 한다. 블록 편집기에서는 할 수 없기 때문에, 그 부분은 자바스크립트 편집기에서 추가하여 갱신 주기를 0으로 만든다.
블록 편집기에서 자바스크립트 편집기로 변경하고 ', 0'을 basic.showLeds 함수에 추가한다.
마이크로비트 시뮬레이터로 테스트를 한다. 이상 없이 화살표가 표시 되면 마이크로비트에 다운로드를 한다.
마퀸 플러스 블록코딩
1) 새 프로젝트를 만들기
'마퀸카트' 이름으로 새 프로젝트를 만든다.
2) 마퀸 플러스 & 허스키렌즈 확장 프로그램 추가하기
고급 > 확장 메뉴를 이용하여 마퀸 플러스와 허스키렌즈 확장 프로그램을 추가한다.
3) I2C 및 라디오 기능 초기화
마퀸 플러스 & 허스키렌즈를 사용하기 위해 I2C 초기화를 하고, 허스키렌즈 알고리즘은 Tag Recognition로 설정한다. 마이크로비트 통신을 위한 라디오그룹을 1로 설정한다.
4) 주행을 위한 마퀸 플러스 블록코딩하기
'라디오 수신화면 실행' 블록을 이용하여 forward(앞으로), backwards(뒤로), left(왼쪽으로), right(오른쪽으로), stop(정지) 수신문자열에 동작할 수 있게 블록코딩을 한다. 각각의 동작은 빈 함수로 만들어 놓는다.
5) 앞으로, 뒤로, 왼쪽으로, 오른쪽으로, 정지 함수 블록코딩
'LED 출력' 블록을 추가하여 화살표를 그린 후 자바스크립트 편집창에서 ', 0'을 추가하여 LED 표시 갱신 주기를 0으로 만든다.
6) 정지선 인식 블록코딩
* 라인트레킹 센서 L2, R2를 이용하여 검은색이 인식되면(정지선)
* 마퀸 플러스 모터의 동작을 멈춘다.
* 허스키렌즈를 이용하여 정해진 Tag를 인식하면 경적을 울리고 앞으로 전진한다.
이것을 findStopLine 함수로 만들어 '무한반복 실행' 블록에 추가한다.
7) 경적 울리기 블록코딩
'도솔도레미레도솔 라파라도파미레도 시솔시레솔파미레 미솔레솔도' 음계만으로 이 노래가 무엇있지 않다면 대단! 들으면 누구나 알 수 있는 노래다. 처음에 음악 블록에 있는 '다다둠'을 사용했다. 그러나 'program too big by' 오류가 났다. 마퀸 플러스 & 허스키렌즈의 차지하는 용량이 꽤 되는거 같다.
8) 완성
|| 완성된 블록코드
드디어 완성했다. 부족한 부분이 있어 채우면 좋지만, 어렵게 하는 것 보다 단순한 편이 더 좋은 것 같다.
드디어 무상체험단 제품이 마퀸 플러스(Maqueen Plus)와 마퀸 메카닉(Maqueen Mechanic) 제품이 집으로 도착했다. 3주 동안 개봉기를 시작으로 필수 미션과 자유 미션을 할 책상 위에 올려 봤다.
앙증맞은 사이즈에 내용물을 잘 보여주는 심플한 표지 디자인이 눈에 들어왔다. 괜찮은 느낌이 들었다. 라떼는 피지컬 컴퓨팅 코딩 교육이란 것 자체가 없었다. 사고력을 키우는 과학상자(요즘 나오는 과학상자와 많이 다름)가 있었지만 이 범주에 속하지 않는다. 요즘 잘나가는 코딩 교구 중 하나인 마퀸의 형쯤 되는 마퀸 플러스와 마퀸 메카닉의 개봉기를 시작해 보자.
| 먼저 마퀸 플러스 박스
박스를 열면 마퀸 플러스 유저 가이드와 라인 트레이서 용 맵이 있고 그 밑에 기본 부품들인 마퀸 플러스 보드, 바퀴, 서포트 판 & 서포트 & 볼트, 초음파 센서가 있다. 뭔가 하는 기분 좀 낼겸 벽면에 맵과 일정표를 걸어 두었는데, 기분 좋다^^.
| 유저 가이드를 참고하여 마퀸 플러스 조립하기
스펙 사항을 알아보기 전에 생각의 흐림대로 유저 가이드를 참고하여 조립했다.
마퀸 프러스 보드에 1) 배터리를 설치하고, 2) 지지대를 이용하여 판을 설치하고, 3) 바퀴를 설치하고, 4) 초음파 센서를 설치하고, 5) 마지막으로 마이크로비트를 꽂으면 된다.
가지고 있는 18650 배터리가 보호형이라서 길이가 70mm다. 손으로 끼고 빼고 하는게 힘들다. 이 부분은 65mm짜리 보호형 배터리를 사용하는 것이 좋다.
| 마퀸 라이트 VS 마퀸 플러스
동생 라이트보다 형 플러스의 좋은 점을 알아 보자.
배터리면 배터리, 모터 성능이면 성능이 플러스가 많이 좋아졌고, 라인 트레킹 센서가 2개에서 6개로 늘어 나면서 교자로에서 진행 방향을 선택 할 수 있게 되었다. 라인 트레이서 로봇으로는 부족함이 없다. 거기에 허스키렌즈 AI 카메라 설치 지원을 해서 인공지능 관련 학습 또는 프로젝트를 간편하게 맛 볼 수 있다.
| 마퀸 플러스를 한층 더 멋지게 해줄 마퀸 메카닉 개봉
마퀸 메카닉은 기대를 안했지만, 그래서인지 부품 퀄리티에 놀랬다.
마퀸 메카닉 박스를 열면 설치 메뉴얼 그리고 드라이버와 많은 부품들이 들어 있다. 뿐만 아니라 기본 부품들로 다양한 형태의 모양을 만들 수 있게 메뉴얼을 제공 한다.
메뉴얼에 소개된 것은 1)Loder 2)Bulldozer 3)Forklift 4)Mechnical Beetle 5)Pan-tilt-zoom Mechanical Beetle 6)Pan-tilt-zoom Forklift 7)Pan-tilt-zoom Loader 8)Loading Truck 9)Rotating Forklift 10)Multi-Purpose Engineering Vehicle(MPEV) 11)Liftable Mechanical Beetle 이다.
마퀸 메카닉 부품들 자체가 고급 스럽지만 연결 부분에 저항없이 부드럽게 움직일 수 있게 볼베어링이 있는 것을 눈으로 보고 많이 놀랬다. 실제 조립하고 동작해보면 그 만족도는 높다. 마퀸 메카닉 부품들과 같이 쓸 수 있을까 싶어서 당근을 통해 과학상자 6호를 당근한 것을 비교해 보고, 과학상자 6호를 멀리 멀리 밀어 놨다.
| Liftable Mechanical Beetle 조립하고 설치 하기
Liftable Mechanical Beetle를 만들기 위해서는 Forklift와 Mechanical Beetle를 만들어 조합해야 한다.
| Forklist 조립하기
서보 모터와 같이 동봉된 동그란 것과 결합하기가 조금은 힘들다. 꽉꽉 눌러서 끝까지 들어가게 해야 한다.
| Mechanical Beetle 조립하기
| Liftable Mechanical Beetle 설치 하고 허스키렌즈 AI 카메라 추가 하기
드디어 필수 미션과 자유 미션에 사용할 마퀸카트가 완성 됐다. 그런데 그런데 ㅠㅠ 생각한건 아기자기 하고 작은걸 생각했는데, 마퀸 메카닉 2 종류를 조합해서 만들었더니 정말 많이 커졌다. 젤다의 전설 가디언 종이인형을 붙혀 줄려고 했던 계획도 불가피 하게 수정해야 한다.
| 개봉기 및 조립 후기
크기 때문에 원래 계획들이 수정을 해야 하는 상황이다. 그럼에도 불구하고 마퀸 플러스 & 마퀸 메카닉 너무나 매력적인 제품이다. 마퀸 라이트에서 업그레이드 된 마퀸 라이트로 확장된 라인트레이싱 프로젝트를 만들 수 있게 되고, 좀더 강하고 오래 사용 수 있다. 허스키렌즈를 더하면 AI관련 제품 프로젝트도 가능하다. 마퀸 메카닉으로 기존 프로젝트를 업그레이드 할 수 있다는 생각이 들었다. 마퀸 메카닉은 보는 느낌도 좋고, 조립하는 느낌도 좋고, 살짝 동작을 해봤지만 동작하는 느낌도 좋다.
조카들이 오면 마퀸 플러스와 마퀸 메카닉으로 미끼로 쓸 재미난거 만들어 코딩을 알려줄 예정이다. 아직 라인 트레이싱과 허스키렌즈 관련 경험이 많이 없어서 3주 동안 좌충우돌 하겠지만, 3주 동안 마퀸 플러스와 마퀸 메카닉으로 재미있는 시간을 보낼 수 있다는 생각에 기분이 좋다.
개봉기 및 조립은 여기서 마무리 하고 필수 미션인 '마퀸 플러스로 바쿠드/QR코드 인식해서 정해진 값이 맞으면 경적 울리고 전진하기'를 열심히 준비 해야 겠다.