드론의 비행원리와 드론을 이용한 학습자료 개발

*드론 코딩 수업 문의 : 정영진 (☎ 02-955-1074, tojin@onnurynet.co.kr)

I. 드론의 비행원리

 드론이란 사람이 타지 않고 무선 전파의 유도에 의해 비행하는 비행기나 헬리콥터 모양의 비행체인 ‘무인항공기’를 가리키는 말이다. ‘드론(drone)’이라는 영어 낱말은 원래 벌이 내는 웅웅거리는 소리를 뜻하는데, 작은 항공기가 소리를 내며 날아다니는 모습에 이런 이름이 붙었다.

 드론은 날개의 형태에 따라 고정익기, 회전익기 그리고 두 가지 방식이 혼합된 복합형으로 나뉜다. 고정익기는 사람들이 일반적으로 생각하는 보잉747 같은 비행기의 형태이다. 이 형태의 비행체는 날개가 고정되어 있다고 해서 고정익이라 불리는데, 이 고정익이 기체를 하늘로 띄우는 결정적인 역할을 한다.

 흔히 ‘헬리콥터’로 알려져 있는 회전익기는 프로펠러라고도 불리는 로터가 회전하면서 양력을 발생시킨다. 회전익기는 어떤 형태이냐에 따라 구분이 되는데 크게 단일로터(헬리콥터), 멀티로터(콥터)로 구분할 수 있다. 프로펠러의 숫자에 따라 바이콥터(2개), 트리콥터(3개), 쿼드콥터(4개), 헥사콥터(6개), 옥토콥터(8개)로 분류한다. 이 중 근래에는 쿼드콥터가 가장 주목받고 있기에 쿼드콥터에 대해서 알아본다.

 1. 멀티콥터 비행의 기초

 멀티콥터는 2가지의 기본 원리(양력, 회전력)를 사용하여 비행한다.  헬리콥터의 경우 하나의 로터(메인 로터)가 동력장치의 회전력을 받아 회전하면서 양력을 발생시켜 상승한다. 뉴턴의 운동 제3법칙 ‘작용과 반작용의 원리’를 헬리콥터에서 볼 수 있는데 [그림 I-2]처럼 프로펠러가 회전하면 기체는 프로펠러가 회전하는 반대 방향으로 돌아가는 힘을 받는다. 따라서 단일로터 기체는 기체의 회전을 막기 위해 작은로터(테일로터)를 기체의 꼬리 부분에 만들어, 메인로터에 의해 생기는 회전력을 상쇄시켜야 한다.

 비행기는 가로, 세로, 수직의 3가지 운동축을 가진다. 이 세 축을 중심으로 비행기는 롤링(rolling), 피칭(pitching), 요잉(yawing)의 회전운동을 한다. [그림 I-3]에서 비행기의 동체가 x축을 중심으로 회전하는 것을 롤링, y축을 중심으로 회전하는 것을 피칭, z축을 중심으로 회전하는 것을 요잉이라고 한다. 즉, 비행방향을 중심축으로 회전하는 것이 롤링(횡전), 상승 또는 하강을 위해 기수를 치켜들거나 내리는 것이 피칭, 선회를 위해 좌우 지향점을 바꾸는 것이 요잉이다. 롤링, 피칭, 요잉은 항공기의 3대 기본운동이다.

 2. 쿼드콥터의 요잉

 쿼드콥터는 [그림I-4]에서 프로펠러 1과 3은 같은 방향으로 회전하지만 2와 4는 반대 방향으로 회전한다. 2쌍씩 서로 다른 방향으로 회전하기 때문에 헬리콥터처럼 반토크를 막기 위한 꼬리날개 같은 장치를 만들 필요가 없다.

[그림I-4]에서 2,4의 프로펠러 회전속도가 1,3의 프로펠러 회전속도보다 빨라지면 반작용의 균형은 무너지고 무너진 반작용의 균형은 쿼드콥터를 반시계방향으로 회전시킨다.

3. 쿼드콥터의 이동

 [그림I-5] 피치 제어는  쿼드콥터를 전진, 후진하게 하는데 뒤쪽에 위치한 프로펠러 2개의 회전속도를 증가시키면  뒷부분이 앞부분에 비해 상대적으로 위로 들리면서 쿼드콥터를 앞쪽으로 기울게 하고, 이 자세의 기울기에 의해 앞쪽으로 진행하는 추진력이 발생되어 쿼드콥터가 전진하게 된다.  후진이나 좌‧우로의 이동도 모두 전진과 같은 원리이다. 쿼드콥터의 상승과 하강은  프로펠러를 모두 같은 속도로 빠르게 회전시키거나 느리게 회전시키면 간단히 해결된다.

4. 멀티콥터 피드백 제어

멀티콥터는 자이로,가속도등의 센서와 조종자 명령의 입력으로 모터를 제어할 때 피드백 제어를 한다. 피드백 시스템은 제어하고자 하는 대상의 출력값(output)을 측정하여 이를 원하고자 하는 참조값(reference value) 혹은 설정값(setpoint)과 비교하여 오차(error)를 계산하고, 이 오차값을 이용하여 제어에 필요한 제어값을 계산하는 구조로 되어 있다.

 위의 그림에서 멀티콥터의 고도가 원하는 고도보다  낮으면 설정된 고도값과 실제 고도값의 차이는 플러스가 될 것이고 모터 회전 속도를 증가시켜서  멀티콥터를 상승시킨다.

멀티콥터는 기체 구조가 대칭적이어서 각 프로펠러의 속도제어만으로 충분히 방향 전환이 가능해 헬리콥터보다 구조적으로 휠씬 단순하다. 또한 기체 자체를 제어하기가 쉬워 누구나 날리기 편하고 다양한 용도의 사용이 가능하다.

멀티콥터가 최근에 여러 분야에서 사용이 가능해진 것은 2000년 이후에 멀티콥터에 사용되는 부품이나 전자소자들이 작아지고 가격이 낮아졌기 때문이다. 멀티콥터를 안정적으로 비행하기 위해서 각각의 모터 회전속도를 제어하는 것은 조종자가 할 수 없고 자이로, 가속도등의 센서와 컴퓨터(비행 제어 보드)가 있기 때문이다.

II. 드론을 이용한 학습자료 개발

학생들이 드론을 제어하기 위한 프로그램을 배울때 얼굴 표정이 밝아 보인다. 드론은 컴퓨터 프로그램을  가르치고 STEM(Science, Technology, Engineering and Math) 요소를 생활속에 적용해보는데 좋은 도구이다. 학생들이 코딩하여 드론을 제어해 볼 수 있고 현실 세계의 문제를 해결하기 위해 컴퓨터 프로그램을 사용할 수 있다.

1. 드론을 사용하는 이유

 드론은 구체적인 문제를 해결하고 실질적인 활동으로 실험하여 배울 수있는 기회를 제공하고 있기 때문에, 학생들은 자연스럽게 호기심을 갖고 실험을 재미있게 한다. 학생들은 드론을 이용하여 STEM 요소를 재미있게 배울 수 있어서 기술을 창의적으로 적용해보고, 서로 협업하여  아이디어를 실현해보고 즐거움을 공유하게 할 수 있다. 현실의 문제에 대한 해결책을 찾기 위해, 수업 시간에 배우는 내용을 사용할 수 있다는 것을 보여 줄 수 있다.

 

2. 미니드론 프로그래밍 하기

  가. Tickle 소개

 Tickle(https://tickleapp.com/)은 어린이들도 컴퓨터 프로그램을 만들 수 있도록 도와주는 쉽고 간단한 프로그래밍 도구이다. 블록을 쌓아 프로그래밍하는 방식을 도입하여 그래픽 기반 환경을 통한 직관적인 인터페이스로 누구든 프로그래밍 과정을 쉽게 이해할 수 있다.

  나. Tickle 기본 기능 배우기

먼저 Tickle프로그램을 다운받아 실행하여 기본적인 사용방법과 약간의 프로그램 명령을 배우게 한다.

3. 드론 제어 실습 예제

  가. 미니드론의 기초 비행

   1) 개요

미니드론을 이륙시키고, 여러번 회전하고, 착륙시키는 프로그램 코딩하기

   2)목적

비주얼 프로그래밍에 익숙해진다.

기본 동작 명령을 사용하여 드론을 비행하게 한다.

프로그램 코딩의 반복 명령을 배운다. 즉 코드가 반복적으로 실행 될 수 있도록 반복을 지정하기위한 제어문을 익힌다.

   3)단계

    가) 드론 프로젝트 만들기

 프로젝트를 관리하는 “MY PROJECTS”에서 프로젝트 생성( New Project )을 클릭하여 드론 프로젝트를 만든다. 여러가지의 모델중에 갖고 있는 미니드론 탬플릿을 선택한다.

 

    나) 미니 드론 연결

 미니드론에 전원을 켜고 30초 정도 기다리면 미니드론의 녹색 LED에 불이 들어온다.

 

    다) 미니드론 날리기

미니드론 프로그램에 사용되는 블록은 다음과 같다.

 블록에 연결되는 블록은 실행 버튼을 누른 후 실행을 시작한다.   

    

미니드론을 이륙시킨다.

            

앞방향으로 360도 회전하기

            

드론을 착륙시킨다.

미니드론이 비행할 수 있는 2m의 공간을 확인하고 [그림II-3]에서 해당 블록을 오른쪽 화면으로 옮기고 프로그램을 시작하는 녹색 실행 버튼을 클릭한다.

 

    라) 미니드론의 360도 회전을 5 회 실시

[그림II-4]처럼 회전(플립) 블록을 5개 추가한다. 실행 버튼을 클릭하면 미니드론이 이륙후에 5번 360도 회전한다. 회전블록 사이의 1초 대기 하는 블록은 회전후 드론의 자세를 안정적으로 유지하게 하는 역활을 한다.

 [그림II-5]는 5개의 회전 블럭을 사용하는 대신에 1개의 회전 블럭을 5번 반복 실행하도록 할 수 있다. 컴퓨터 프로그래밍에서, 루프(loop)는 코드가 반복적으로 실행되도록 하는 제어문이다. 반복적으로 실행하는 블록 제어문에는 실행 횟수를 지정하는 “repeat”블럭과 무한히 반복하는 “forever” 블럭이 있다.

  나. 비행시간, 속도, 거리의 상관관계

   1)개요

 미니드론을 이륙시켜서 지정된 시간 동안 특정 속도로 앞으로 비행하게 하고 다시 뒤로 이동하여 이륙지점에 착륙하도록 미니드론을 프로그래밍한다.

   2) 목적

특정 거리를 비행하기 위해, 서로 다른 속력과 지속 시간 설정으로 미니드론을 프로그래밍한다.

관련된 물리학 원리 :

속력, 시간 및 거리 사이의 선형 관계

속도는 방향과 속력 값을 나타내는 벡터

   3) 단계

    가) 드론 프로젝트 만들기

 프로젝트를 관리하는 “MY PROJECTS”에서 프로젝트 생성( New Project )를 클릭하여 드론 프로젝트를 만든다. 여러가지의 모델중에 갖고 있는 미니드론 탬플릿을 선택한다.

    나) 미니드론의 전진, 후진 비행

 이륙 후 비행 속력을 설정하려면 모션 카테고리에 있는 스피드 설정 블록에 숫자를 입력하여 사용한다. 숫자 값을 눌러 속도를 변경할 수 있다.

 [그림II-8]의 모션 카테고리의 이동(move) 블럭은 이동 방향과 비행 지속 시간을 설정할 수 있다. 이동 방향은  전진, 후진, 왼쪽, 오른쪽 비행이 가능하며  풀다운 메뉴에서 방향을 선택한다.

 이제 미니드론을 이륙시켜서 앞으로 전진하여 360도 회전시키고 다시 뒤로 이동하게 해본다. 미니드론은 모든 명령을 실행 한 후 원래 시작 위치로 돌아가는 것을 볼 수 있다. 이 프로그램은 다음과 같이한다.

 

    

다) 속력, 시간, 거리 사이의 관계 설명

 특정 거리를 비행하기 위해서 미니드론의 속력(speed)과 비행 시간을 변경시킬 수 있는데 비행 거리를 두배로 하기 위해서 속력을 두배로 하면 된다. 예를 들어 50%에서 100%로 변경한다.  또 다른 방법은 동일한 속력를 유지하면서 비행 시간을 두배로 한다.

    라) 도전 과제

착륙지점을 표시하고 그 지점까지 미니 드론이 비행하도록 프로그램해보자. 비행 속력을 25%와 50%로 설정할 때 착륙지점에 도착하기 위한 비행 시간을 계산해보자.

토론 : 착륙지점까지의 비행 시간을 절반으로 하려면 비행 속력을 얼마로 설정해야 하는가?

*위 글은 부산과학 2015년 제20호에 기고한 글입니다.

“드론의 비행원리와 드론을 이용한 학습자료 개발” 에 대한 1의 댓글

  1. 핑백: 드론을 프로그램으로 제어하는 방법 – 지니코딩

댓글 남기기