1. 텔로드론으로 실시간 비디오 스트리밍 받아오기
- tello_stream.py 코드 작성
from djitellopy import tello
import cv2
from time import sleep
me = tello.Tello()
me.connect()
print(me.get_battery())
me.streamon()
while True :
img = me.get_frame_read().frame
img = cv2.resize(img, (360, 240))
cv2.imshow("Image", img)
cv2.waitKey(2)
2. 키보드로 실시간 드론 제어하기
1) KeyPressModule.py 파일 만들기
import pygame
def init():
pygame.init()
win = pygame.display.set_mode((400, 400))
def getKey(keyName):
ans = False
for eve in pygame.event.get(): pass
keyInput = pygame.key.get_pressed()
myKey = getattr(pygame,'K_{}'.format(keyName))
print('K_{}'.format(keyName))
if keyInput[myKey]:
ans = True
pygame.display.update()
return ans
def main():
print(getKey("a"))
# if getKey('LEFT'):
# print('Left key pressed')
#
# if getKey('RIGHT'):
# print('Right key Pressed')
if __name__ == '__main__':
init()
while True:
main()
2) tello_stream_key.py
from djitellopy import tello
import KeyPressModule as kp
import time
import cv2
kp.init()
me = tello.Tello()
me.connect()
print(me.get_battery())
global img
me.streamon()
def getKeyboardInput():
lr, fb, ud, yv = 0, 0, 0, 0
speed = 50
if kp.getKey("LEFT"): lr = -speed
elif kp.getKey("RIGHT"): lr = speed
if kp.getKey("UP"): fb = speed
elif kp.getKey("DOWN"): fb = -speed
if kp.getKey("w"):ud = speed
elif kp.getKey("s"): ud = -speed
if kp.getKey("a"):yv = -speed
elif kp.getKey("d"): yv = speed
if kp.getKey("q"): me.land(); time.sleep(3)
if kp.getKey("e"): me.takeoff()
if kp.getKey('z'):
cv2.imwrite(f'Resources/Images/{time.time()}.jpg',img)
time.sleep(0.3)
return [lr, fb, ud, yv]
while True:
vals = getKeyboardInput()
me.send_rc_control(vals[0], vals[1], vals[2], vals[3])
img = me.get_frame_read().frame
#img = cv2.resize(img, (360, 240))
cv2.imshow("Image", img)
cv2.waitKey(1)
[추가 과제]
키 '1' 을 누르면 앞으로 플립
키 '2' 를 누르면 뒤로 플립
키 '3' 을 누르면 위 아래 왔다갔다 2회
키 '4' 를 누르면 사각형 비행 (앞 -> 오른쪽 -> 뒤 -> 왼쪽으로 사각형 그리기)
를 프로그래밍 하시오.
'Python > 파이썬 프로젝트' 카테고리의 다른 글
파이썬 API 활용의 기초 2 - 나이스 OPEN API 활용 (0) | 2023.07.13 |
---|---|
파이썬 API 활용의 기초 1 - 카카오 메세지 API 활용 (1) | 2023.07.12 |
Python Tello Drone 기본 동작 제어. (2) | 2021.09.07 |
카카오 api 토큰 발급 (4) | 2021.04.14 |
[모듈 2-13] 파이썬 웹크롤링(급식정보 디스코드 봇 만들기) (3) | 2020.12.21 |