03.
03.
파이썬으로 드론 조종하기 🚀
드론을 프로그래밍으로 조종하는 방법을 배워볼까요?
이제부터 파이썬(Python)을 사용해 드론을 움직여 보겠습니다!
드론이 안정적으로 비행하려면 센서를 초기화하는 것이 중요해요.
센서를 초기화하면 드론이 기울어지지 않고 똑바로 날 수 있어요.
⚠️ 꼭! 평평한 바닥에서 초기화해야 해요!
기울어진 곳에서 초기화하면 드론이 정상적으로 비행할 수 없어요.
💡 drone.sendClearBias() → 드론의 방향 감지 센서를 초기화해요!
** 드론 센서 초기화 (sendClearBias) 사용 예제 코드
#sleep 함수 가져오기
from time import sleep
#코딩라이더 패키지 가져오기
from CodingRider.drone import *
from CodingRider.protocol import *
#메인 실행 부분
if __name__ == '__main__':
drone = Drone() # 드론 객체 생성
drone.open("드론과 연결되어있는 컴포트") # 드론과 연결된 컴포트를 열어주기
print("센서 초기화") # 콘솔에 센서 초기화라는 문구를 출력
drone.sendClearBias() # 드론의 자이로센서, 가속도 센서를 초기화
sleep(1) # 1초 대기
drone.close() # 드론과 연결했던 컴포트 다시 닫기
✅ 예제 코드 사용 영상
드론을 띄우고, 내리는 방법을 배워봐요!
drone.sendTakeOff() → 이륙
drone.sendLanding() → 착륙
** 드론 이착륙 (sendTakeOff / sendLanding) 사용 예제 코드
from time import sleep # sleep 함수 가져오기
# 코딩라이더 패키지 가져오기
from CodingRider.drone import *
from CodingRider.protocol import *
# 메인 실행 부분
if __name__ == '__main__':
drone = Drone() # 드론 객체 생성 후 drone 변수에 저장
drone.open("드론과 연결되어 있는 컴포트") # 시리얼 포트 연결
sleep(1)
print("이륙하기") # TakeOff 메세지 출력
for i in range(5) :
drone.sendTakeOff() # 드론 이륙
sleep(5) # 5초 대기
print("착륙하기") # Landing 메세지 출력
for i in range(5) :
drone.sendLanding() # 드론 착륙
sleep(5) # 5초 대기
# drone 포트 닫기
drone.close()
✅ 예제 코드 사용 영상
드론을 앞으로, 옆으로 이동하고 방향을 회전시킬 수도 있어요!
drone.sendControlPosition(X, Y, Z, 속도, 회전각, 회전속도) → 이동
각 값의 입력 범위는 다음과 같습니다.
-5 <= X, Y, Z <= 5 (단위 : m)
-1 <= 속도 <= 1 (단위 : m/s)
-360 <= 회전각 <= 360 (회전 각도)
0 <= 회전 속도 <= 180 (초당 회전 각)
** 드론 이동 (sendControlPositon) 사용 예제 코드
✅ 예제 코드: 전진, 우측 이동 후 착륙
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미터 이동")
for i in range(5) :
drone.sendControlPosition(1.0, 0, 0, 0.5, 0, 0) # 전방으로 1m 이동
sleep(5)
print("오른쪽으로 1미터 이동")
for i in range(5) :
drone.sendControlPosition(0, -1.0, 0, 0.5, 0, 0) # 오른쪽으로 1m 이동
sleep(5)
print("90도 회전")
for i in range(5) :
drone.sendControlPosition(0, 0, 0, 0, -90, 90) # 시계방향 90도 회전
sleep(5)
print("착륙!")
for i in range(5) :
drone.sendLanding() # 착륙하기
sleep(5)
drone.close() # 열었던 드론 포트 닫기
✅ 예제 코드 사용 영상
드론에 불빛(LED)을 켜고 색깔을 바꿀 수 있어요! 🎨
drone.sendLightModeColor(모드, 밝기, 빨강, 초록, 파랑) → LED 변경!
각 값의 입력 범위는 다음과 같습니다.
0 <= 밝기, 빨강, 초록, 파랑 <= 255
** 드론 LED 변경 (sendLightModeColor) 사용 예제 코드
✅ 예제 코드: 색깔 바꾸기
from time import sleep # sleep 함수 불러오기
from CodingRider.drone import * # 코딩라이더 패키지 불러오기
from CodingRider.protocol import *
#메인 실행 부분
if __name__ == '__main__':
drone = Drone() # 드론 객체 생성
drone.open("드론과 연결된 포트") # 드론과 연결된 포트 열기
print("약한 빨간색 불빛") # 메시지 출력하기
# 밝기 30, 빨강 255, 초록 0, 파랑 0으로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyHold, 30, 255, 0, 0)
sleep(3) # 3초 대기하기
print("약한 파란색 불빛")
# 밝기 30, 빨강 0, 초록 0, 파랑 255로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyHold, 30, 0, 0, 255)
sleep(3)
print("강한 빨간색 불빛")
# 밝기 255, 빨강 255, 초록 0, 파랑 0으로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyHold, 255, 255, 0, 0)
sleep(3)
print("강한 파란색 불빛")
# 밝기 255, 빨강 0, 초록 0, 파랑 255로 LED를 변경
for i in range(5) :
drone.sendLightModeColor(LightModeDrone.BodyHold, 255, 0, 0, 255)
sleep(3)
drone.close()
✅ 예제 코드 사용 영상
✅ 드론을 움직이려면?
1️⃣ 센서 초기화 → drone.sendClearBias()
2️⃣ 이륙 → drone.sendTakeOff()
3️⃣ 이동 → drone.sendControlPosition(X, Y, Z, 속도, 각도, 회전속도)
4️⃣ 착륙 → drone.sendLanding()
5️⃣ LED 색상 변경 → drone.sendLightModeColor(모드, 밝기, R, G, B)
이제 파이썬 코드로 드론을 자유롭게 조종해 보세요! 🚀✨