오픈 버스킹봇 강좌 시작 – 로봇 소개

버스킹봇

안녕하세요, 행복물건개발자 박은찬입니다. 이렇게 버스킹봇을 소개해 드릴 수 있어서 영광입니다. 버스킹봇은 저의 진행중인 꿈입니다. 저는 사람들을 행복하게하는 물건을 만드는 것을 좋아합니다. 이런 행복한 물건으로 사람들이 행복을 느끼고 나서, 그 사람들이 자신도 즐거운 물건을 만들고 싶다는 생각이 들도록 하는 것이 제 인생의 미션입니다. 타인을 행복하게 하는 마음과 행동이 세상에 퍼져나가서 좀 더 따듯한 세상이 되기를 소망하며 로봇 버스킹 프로젝트를 진행하는데요, 로봇과 함께 길거리 공연을 하면서 기술의 행복한 쓰임에 대한 메시지를 전달하고 싶습니다. 로봇이 인간과 함께 음악을 연주하면서 사람들에게 즐거움을 주는 프로젝트, 함께 하시지요!  (본 강좌는 버스킹봇 open 버전으로 진행됩니다.)

본 강좌는 로봇을 만들기만 하는 매뉴얼 형식으로 진행되지 않습니다. 로봇을 왜 그렇게 만들었는지, 부품은 왜 그 부품을 선택했는지, 왜 그런 방식으로 코딩을 했는지 등등을 자세하게 설명할 것입니다. 로봇을 만들고는 싶은데 어떤 식으로 로봇을 설계하고 부품을 선택하고 진행해야 하는지 막막하실 분들을 위해서 자세하게 짚고 넘어가도록 하겠습니다.

버스킹봇을 어떻게 만들어요?

이 로봇은 하드웨어와 소프트웨어로 구성됩니다. 각각 어떻게 구성되어 있는지 알아보겠습니다. 모든 구성에 대한 설명에 이어서 어떤 부품을 사용하면 되는지 아래에서 알아보도록 하겠습니다. 하드웨어란 딱딱한 것, 즉, 하드웨어 프레임이나 회로, 배터리 등을 뜻하고 소프트웨어는 눈에 보이지는 않지만 로봇이 어떻게 동작할 지 결정하는 동작매뉴얼을 말합니다.

하드웨어 – 아두이노, 블루투스, 서보모터, 배터리, 안드로이드 스마트폰, 프레임

아두이노는 손바닥 컴퓨터입니다.

로봇의 두뇌가 될 예정이지요. 불과 10년 전까지만 하더라도 이런 로봇을 만드는 데에 전자적 지식이 많이 필요했지만 이제는 깊은 지식 없이도 쉽게 손바닥 컴퓨터를 이용하여 다른 전자 장치들을 제어할 수 있게 되었습니다. 아두이노에 관련된 정보들은 인터넷에 아주 많이 있습니다. 책들도 시중에 100권 이상은 있습니다. 이 강좌에서는 아두이노를 심도있게 다루지 않습니다. 그냥 아두이노가 필요하고 그 것을 가져다가 부품을 어디 어디에 꽂으면 된다는 정도로만 언급할 것입니다. 손바닥 컴퓨터에 USB케이블을 꽂고 소프트웨어 프로그램을 집어 넣으면 소프트웨어 프로그램대로 아두이노가 동작하게 됩니다. 가장 중요한 것은 이 아두이노가 로봇 하드웨어의 두뇌를 담당한다는 것이지요.

블루투스는 통신 장치입니다.


로봇이 로봇 바깥 세상과 소통하기 위해서는 통신 장치가 필요합니다. 전선으로 연결하는 방식도 있겠지만 무선으로 전송하기 위해서는 무선 장치가 있어야 하는데요, 안드로이드 스마트폰과 통신할 예정이기 때문에 이 로봇은 블루투스 장치를 사용합니다. 이 강좌에서는 HC06 이라는 블루투스 모듈을 사용합니다.

서보모터는 각도를 제어할 수 있는 모터입니다.

보통 모터는 전원을 공급하면 빠르게 회전하는데요, 이 로봇은 회전보다도 각도 조절이 가능한 모터가 필요합니다. 왜냐하면 드럼을 연주하는 로봇이기 때문이지요. 보통 휴머노이드같은 관절형 로봇들은 각도 조절이 가능한 모터들을 사용합니다. 각도 조절이 가능한 모터는 여러 종류가 있지만 이번 버스킹 로봇에서는 RC 서보모터를 사용할 예정입니다. RC서보모터란 리모컨 자동차에 주로 사용되는 모터로써 자동차의 좌 우 회전을 위한 조향 모터로 사용됩니다. 사용이 간편하고 가격도 저렴합니다.

배터리는 전원을 공급하는 역할을 합니다. 이번 강좌에서는 스마트폰을 충전하는 휴대용 USB 배터리를 사용합니다.

안드로이드 스마트폰은 로봇과 통신을 하는 역할을 합니다. 안드로이드는 큰 화면과 각종 통신 장치들이 기본적으로 탑재가 되어 있습니다. 거의 모든 안드로이드 스마트폰에는 블루투스 기능이 있는데요, 이 블루투스를 통해서 로봇에게 명령을 전달할 예정입니다.

프레임은 3d 프린터나 레이저 커터를 이용해서 제작합니다.

최근 3d 프린터나 레이저 커터를 곳곳에서 찾아볼 수 있습니다. 비전문가도 쉽게 프레임을 제작할 수 있습니다. 그런데 더 궁금한 건 아마도 어떻게 설계를 하는가 일 것입니다. 자신만의 외형을 설계해서 자신이 만족할 수 있도록 하고싶을 땐 3d Cad 설계 툴을 배워서 그 툴을 활용해서 설계를 하면 됩니다. 3d Cad 설계 툴은 컴퓨터용 소프트웨어입니다. 틴커캐드, 솔리드웍스, 인벤터 등 많은 3d cad 설계 툴이 있습니다. 이 툴로 자신이 원하는 형상을 가상의 공간에 만들 수 있고 그 형상을 3d 프린터로 출력할 수 있는 것이지요. 이 강좌에서 공개된 프레임을 조금씩 변형해서 자신만의 개성을 살린 로봇을 만들어 보는 것도 좋겠습니다.

소프트웨어

아두이노용 프로그램 (C언어 라는 언어로 작성됨)


아두이노는 로봇의 뇌 역할을 한다고 위에서 언급했습니다. 하지만 이 뇌에 아무런 것도 들어있지 않는다면 로봇은 아무런 일도 하지 않을 것입니다. 로봇에게 어떤 상황에서 어떤 행동을 할 지 알려주는 동작 매뉴얼을 가르쳐 줘야 합니다. 바로 그 동작 매뉴얼이 아두이노용 프로그램입니다. 아두이노용 프로그램은 어떤 말로 쓰여져 있을까요? 바로 C 언어라는 말로 쓰여져 있습니다. 예를 들어 어떤 요리법이 한국인을 위해서 쓰여져 있다고 가정해 보겠습니다. 그럼 그 요리법은 어떤 말로 쓰여져 있을까요? 네, 맞습니다. 바로 한국어로 쓰여져 있을 것입니다. 로봇도 로봇이 이해할 수 있는 말이 있는데요, 이 로봇은 아두이노를 사용하기 때문에 아두이노가 이해할 수 있는 언어로 행동 매뉴얼을 작성해 주어야 합니다. 아누이도가 이해할 수 있는 언어는 바로 C 언어입니다. 이 C 언어로 작성된 매뉴얼을 우리는 일반적으로 소스코드, 줄여서 코드 라고 부릅니다. 버스킹봇의 소스코드는 어떤 언어로 작성되어 있을까요? 바로 C언어 입니다. 본 강좌에서는 소스코드를 모두 공개합니다. 소스코드를 로봇에 입력하는 방법도 안내해 드릴텐데요, 일단 로봇을 움직이는 방법을 배우고 나서 그 뒤 조금씩 소스코드를 바꿔가면서 동작이 어떻게 변하는지 관찰해 보세요. 이해가 좀 더 쉽고 빠르게 될 것입니다.

안드로이드용 프로그램 (전문가용 : Java 라는 언어로 작성됨 / 초보용 : 블록 코딩 방식 이용)

그렇다면 안드로이도 C 언어로 동작할까요? 안드로이드는 Java 라는 언어로 작동이됩니다. Java 와 C 는 약간 다릅니다. 왜 안드로이드는 로봇 만드는 사람 귀찮게 C언어가 아닌 Java 로 작성되었을까요? 수 많은 이유가 있지만 본 강좌에서는 넘어가도록 하겠습니다. 간단히 말씀 드리자면 범용성입니다. 본 강좌에서는 안드로이드 어플리케이션을 그냥 다운 받아서 사용할 수 있습니다. 하지만 진짜 자신이 원하는 기능을 넣어보고 싶으시다면 제공된 소스코드를 살짝씩 수정해 보면서 응용해 가면 되겠습니다.
또한 MIT 에서 제작한 앱 인벤터 라는 아주 훌륭한 안드로이드 앱 개발 툴이 있습니다. 앱 인벤터는 브라우저에서 손쉽게 안드로이드 앱을 제작할 수 있습니다. 너무 쉽고 간단하게 만들 수 있어서 이번 강좌에서는 앱 인벤터를 사용할 예정입니다.

버스킹봇의 부품을 알려주세요

버스킹봇을 만들기 위한 하드웨어 부품 표입니다. 부품 구매 링크는 <http://happythingsmaker.com>에 업데이트 예정입니다.

모델명수량
서보모터2
500pcs 3mm*200mm Nylon cable ties17
아두이노 나노1
아두이노 나노 Expantion1
USB케이블1
HC-051
dupont cable 100mm2
dupont cable 100mm4
2000uF 10v 캐패시터1

 

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *