04.
04.
파이썬 드론 조종 응용하기! 🚀
파이썬(Python)을 사용해 드론을 조종해 보았습니다.
배운 함수들을 활용하여 조금 더 난이도 있는 동작을 해봐요!
앞으로 이동하면서 옆으로 같이 이동하거나,
앞으로 이동하면서 위로 이동하면 대각선으로도 움직일 수 있겠죠!
drone.sendControlPosition(X, Y, Z, 속도, 회전각, 회전속도)
X, Y, Z에서 본인이 움직일 축으로 2개 이상의 값을 넣기
from time import sleep # sleep 함수 불러오기
from CodingRider.drone import * # 코딩라이더 패키지 불러오기
from CodingRider.protocol import *
#메인 실행 부분
if __name__ == '__main__':
drone = Drone() # 드론 객체 생성
drone.open("드론과 연결된 포트") # 드론과 연결된 포트 열기
print("이륙!") # 이륙! 메시지 출력
for i in range(5) :
drone.sendTakeOff() # 이륙하기
sleep(5) # 5초 기다리기
print("오른쪽 앞으로 이동 좌표 : (1, -1, 0)")
for i in range(5) :
drone.sendControlPosition(1, -1, 0, 0.5, 0, 0) # 오른쪽 앞으로 이동
sleep(5)
print("왼쪽 위로 이동 좌표 : (0, 1, 1)")
for i in range(5) :
drone.sendControlPosition(0, 1, 1, 0.5, 0, 0) # 왼쪽 위로 이동
sleep(5)
print("착륙!")
for i in range(5) :
drone.sendLanding() # 착륙하기
sleep(5)
drone.close() # 열었던 드론 포트 닫기
✅ 예제 코드 사용 영상
드론이 일정 고도를 유지하면서, 일정 속도로 원을 그리는 비행을 원주비행이라고 해요.
일정한 회전속도로 회전하면서, 직선운동을 동시에 진행하면, 원주비행을 할 수 있어요!
drone.sendControlPosition(X, Y, Z, 속도, 회전각, 회전속도)
X, Y축 중 한개와 회전각, 회전속도에 필요한 값 넣기
from time import sleep # sleep 함수 불러오기
from CodingRider.drone import * # 코딩라이더 패키지 불러오기
from CodingRider.protocol import *
#메인 실행 부분
if __name__ == '__main__':
drone = Drone() # 드론 객체 생성
drone.open("드론과 연결된 포트") # 드론과 연결된 포트 열기
print("이륙!") # 이륙! 메시지 출력
for i in range(5) :
drone.sendTakeOff() # 이륙하기
sleep(4) # 5초 기다리기
print("원주가 4미터인 시계방향 원주 비행")
for i in range(5) :
drone.sendControlPosition(4.0, 0, 0, 1, -360, 90) # 시계방향 원주 비행
sleep(6)
print("원주가 4미터인 반시계방향 원주 비행")
for i in range(5) :
drone.sendControlPosition(4.0, 0, 0, 1, 360, 90) # 반시계방향 원주 비행
sleep(6)
print("반원의 둘레가 4미터인 시계방향 반원 비행")
for i in range(5) :
drone.sendControlPosition(2.0, 0, 0, 1, -180, 90) # 시계방향 반원 비행
sleep(6)
print("반원의 둘레가 4미터인 반시계방향 반원 비행")
for i in range(5) :
drone.sendControlPosition(2.0, 0, 0, 1, 180, 90) # 반시계방향 반원 비행
sleep(6)
print("착륙!")
for i in range(5) :
drone.sendLanding() # 착륙하기
sleep(5)
drone.close() # 열었던 드론 포트 닫기
✅ 예제 코드 사용 영상
드론에 불빛(LED)을 켜고 색깔을 바꿀 수 있어요! 🎨
이번에는 불빛이 일정한 밝기로 켜져있는게 아닌, 불빛이 밝아졌다 어두워졌다를 반복하는 명령을 배워보아요.
기존에는 밝기였던 값이, 주기로 변경되었어요!
주기가 짧을수록, 불빛의 강도가 빠르게 변해요
drone.sendLightModeColor(모드, 주기, 빨강, 초록, 파랑)
기존 모드(LightModeDrone.BodyHold를 LightModeDrone.BodyDimming으로 변경하기)
from time import sleep # sleep 함수 불러오기
from CodingRider.drone import * # 코딩라이더 패키지 불러오기
from CodingRider.protocol import *
#메인 실행 부분
if __name__ == '__main__':
drone = Drone() # 드론 객체 생성
drone.open("드론과 연결된 포트") # 드론과 연결된 포트 열기
print("느린 빨간색 불빛") # 메시지 출력하기
# 주기 5, 빨강 255, 초록 0, 파랑 0으로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyDimming, 5, 255, 0, 0)
sleep(5) # 3초 대기하기
print("느린 파란색 불빛")
# 주기 5, 빨강 0, 초록 0, 파랑 255로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyDimming, 5, 0, 0, 255)
sleep(5)
print("빠른 빨간색 불빛")
# 주기 1, 빨강 255, 초록 0, 파랑 0으로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyDimming, 1, 255, 0, 0)
sleep(5)
print("빠른 파란색 불빛")
# 주기 1, 빨강 0, 초록 0, 파랑 255로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyDimming, 1, 0, 0, 255)
sleep(5)
drone.close()
✅ 예제 코드 사용 영상
✅ 드론을 움직이려면?
1️⃣ 센서 초기화 → drone.sendClearBias()
2️⃣ 이륙 → drone.sendTakeOff()
3️⃣ 이동 → drone.sendControlPosition(X, Y, Z, 속도, 각도, 회전속도)
4️⃣ 착륙 → drone.sendLanding()
5️⃣ LED 색상 변경 → drone.sendLightModeColor(모드, 밝기, R, G, B)
이제 파이썬 코드로 드론을 자유롭게 조종해 보세요! 🚀✨