무선조종 RC카 만들기

[테크월드=박진희 기자] 마이크로비트(Micro:bit)는 영국의 BBC에서 제작한 코딩교육용 교구다. 비슷한 제품으로는 아두이노가 대표적인데, 아두이노와 달리 마이크로비트는 크기가 더 작고 센서와 LED, 버튼을 내장하고 있어 좀 더 쉽게 사용할 수 있다

또한, 마이크로비트 웹사이트에서 블록을 이용해 코딩하고, 바로 컴파일할 수 있다는 것이 장점이다. 마이크로비트 웹사이트의 코딩은 https://makecode.microbit.org/# 에서 가능하고 한번 접속한 적이 있는 경우 웹에서 저장해 오프라인상태에서도 블록코딩을 할 수 있고, 블록코딩 이외에도 자바스크립트로 변환해 타이핑으로 코딩을 할 수 있다.

또한, 안드로이드, IOS환경에서의 어플리케이션도 정식 지원하며 모바일로도 코딩 및 블루투스를 이용한 업로드가 가능하다.

마이크로비트 무선조종 RC카 만들기

최근 코딩교육시장에 마이크로비트 키트 제품들이 많이 출시되고 있다. 특히나 마이크로비트를 이용해 만들 수 있는 RC카 제품이 인기를 끌고 있다. 이번 달에는 마이크로비트와 Ring:bit car를  이용해 RC카를 만들어 보자.

우선 마이크로비트로 무선 조종 RC카를 만들기 위해서는 마이크로비트가 2개가 필요하다. 이 2개는 리모컨, 자동차에 각각 하나씩 들어가며 자동차에는 모터드라이버, 모터, 바퀴, 건전지(보조배터리) 등을 필요로 한다. 보통은 기성품 제품을 많이 이용하지만 각각의 부품을 하나씩 구입해 직접 DIY로 만드는 사람도 있다. 우선 기존에 있는 기성품을 기준으로 리모컨, 자동차 2가지로 나누어 알아보자.

① 리모컨 코딩 만들기

[그림 1]

우선 리모컨의 경우 라디오 통신 블록을 활용해 [그림1]처럼 코딩을 만들어 준다.

[그림 2]

[기본]탭을 시작하면 실행 블록을 꺼낸 후 [라디오]탭의 [라디오 그룹을 (0)로 설정] 블록을 꺼내 숫자를 2로 바꿔준다.[그림 2] 이 블록은 라디오 숫자를 설정해 자동차의 마이크로비트에 명령을 내리는 동작을 수행할 수 있도록 라디오 주파수를 맞추어 주는 블록이다.

[기본]탭의 [무한반복 실행]블록을 꺼낸 후 [논리]탭의 [만약(if)]블록을 꺼낸 후 +버튼과 –버튼을 이용해 아래 그림처럼 만들어 준 후 [라디오]탭의 [라디오 전송: 수(0)] 블록을 4개 만들어 그림처럼 2,3,4,0의 숫자를 그림처럼 넣어준다. 그리고 [계산]탭의 [A 눌림 상태] 블록을 3개 꺼내 [그림3]과 같이 만들어 준다. 마지막으로 [기본]탭의 [일시중지 (100)mx]블록을 [그림 3]처럼 넣어준다.

[그림 3]

이 코딩은 리모컨 동작을 할 수 있는 코딩으로 라디오 주파수를 2로 맞춰 마이크로비트의 A버튼을 누르면 좌회전, B버튼을 누르면 우회전, A+B버튼을 누르면 전진, 아무 버튼도 안 누를 경우 정지하는 동작을 수행하는 코딩이다.

[그림 4]

② 자동차 코딩 만들기

[그림 5]

자동차 본체의 코딩도 라디오통신과 고급 탭의 확장 기능을 이용해서 만들어 보자. 먼저 확장기능을 통해 센서나 키트 등 제조사에서 제공하는 새로운 블록을 사용한다. 먼저 [고급]탭을 클릭 후 나온 새로운 메뉴 중에서 [확장]탭을 클릭한다.

[그림 6] 같은 창이 나오면 “ringbit”을 타이핑하여 검색 후 아래 나오는 그림을 클릭해준다.

[그림 6]

클릭을 했다면 몇 초간의 로딩 후에 [RingbitCar]라는 탭이 새로 생긴 것을 볼 수 있다. [그림 7]

[그림 7]

[그림 7]이 RC카 코딩의 자동차 부분 완성 코딩이다.

[그림 8]

우선 [기본]탭의 [시작하면 실행]블록을 꺼낸 후 [라디오]탭의 [라디오 그룹을 (0)로 설정]블록을 꺼내와 숫자를 2로 바꿔 준다[그림 8].  그리고 확장 기능을 이용해 생성한 [RingbitCar]탭의 [set left wheel at pin P1 right wheel at pin P2] 블록을 꺼내 [그림 9]와 같이 만든다.

[그림 9]

다음으로는 [기본]탭의 [무한반복 실행]블록을 꺼낸 후 [논리] 블록의 [만약(if)]블록을 꺼내 +버튼과 –버튼을 이용해 [그림 10]의 청록 블록과 같이 만들어 준다. 그리고 [논리]탭의 [(0)=(0)]블록 즉 비교연산 블록을 꺼내 변수에서 item변수를 만들어 준 후 아래 블록처럼 2, 3, 4 숫자와 item변수가 비교 되도록 만든다.

마지막으로 [RingbitCar]탭의 [move forward], [turn left], [turn right], [brake] 블록을 각각 꺼내 [그림 10]처럼 만들어 준 후 [변수]탭의 [item 에 0 저장]블록을 그림의 블록 순서처럼 만들어 준다.

[그림 10]

[라디오]탭의 [라디오 수신하면 실행: receivedNumber]블록을 꺼낸 후 [변수]탭의 [item 에 receivedNumber 저장]블록을 [그림 11]처럼 만든다.

[그림 11]

[그림 12]의 코딩은 마이크로비트의 자동차 역할을 하는 코딩이다. 먼저 리모컨과 같이 라디오 주파수를 2로 맞춘 후 확장 기능을 이용한 [RingbitCar]탭을 이용해 자동차의 모터를 제어하는 블록을 [조건]탭의 블록을 통해 [그림 12]처럼 만들어 준 후 [라디오]탭의 [라디오 수신하면 실행: receivedNumber] 블록을 통해 리모컨에서 명령을 숫자로 입력 받아 전진, 좌회전, 우회전, 정지 동작을 할 수 있도록 코딩을 만들었다.

[그림 12]

[그림 13]처럼 마이크로비트 2개와 링빗 카 제품을 이용하여 RC카를 만들어 보았다. 이 이외에도 다양한 센서를 부착한 RC카 키트를 이용해 라인 트레이싱, 장애물 감지, 자율주행 등 여러 가지 방식의 예제를 체험할 수 있어 코딩을 처음 접하는 초보자들이 배우기에 좋은 제품이다.

[그림 13] 완성된 무선조종 RC 카

글 : 전자 엔지니어 전문몰 아이씨뱅큐

 

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지
이 기사와 관련된 기사