Slide 1

Slide 1 text

TelloをIoT化して遠隔操作 2021.5.13 IoTLT 第75回資料 ⽵のしん

Slide 2

Slide 2 text

⾃⼰紹介 ⽵のしん • 仕事:半導体設計 • (株)KAMAKEのすすめ/技術⽀援フェロー http://kamake.co.jp/ • ブログ:⽵のしんのテック⽇記 https://take6shin-tech-diary.com/ • YouTube:⽵のしんの「ものづくり」チャンネル https://www.youtube.com/channel/UCiWsCRWOpmpjlng_M4TQGyQ • Twitter:@tak6uch1 ものづくり関連の情報発信をしています

Slide 3

Slide 3 text

Telloの普通のあそびかた タブレットやパソコンから操作 Wi-Fi基地局 Telloが⾒える範囲内で使うのが普通

Slide 4

Slide 4 text

TelloをIoT化 無料のクラウドサーバー を介して遠隔から操作 https://test.mosquitto.org/ paho-MQTT (Python) Pygame Mac Mac 遠く離れた場所からTelloを操縦

Slide 5

Slide 5 text

動画 https://www.youtube.com/watch?v=bK-JexSZuT8&t=242s

Slide 6

Slide 6 text

Videoの送り⽅ • Tello側:テキスト情報base64にエンコードしてMQTT Publish • 操縦側:MQTT Subscribeで受け取ったbase64をデコード self.frame = self.tello.read() if self.frame is None or self.frame.size == 0: continue else: self.frame = cv2.resize(self.frame, dsize=(160, 120)) _, buf = cv2.imencode('.jpg', self.frame) jpg_as_text = base64.b64encode(buf) self.client.publish("Tello-Video/jpg-image", jpg_as_text) def on_message(client, userdata, msg): global frame img = base64.b64decode(msg.payload) # converting into numpy array from buffer npimg = np.frombuffer(img, dtype=np.uint8) tmp_frame = cv2.imdecode(npimg, 3) # Convert RBG to BGR for opencv image frame = cv2.cvtColor(tmp_frame, cv2.COLOR_RGB2BGR)

Slide 7

Slide 7 text

まとめ • 無料のクラウドMQTTブローカー test.mosquitto.orgを利⽤ • MQTT通信はpaho-MQTT(Python)使⽤ Videoはbase64でテキスト化して送る • ゲームコントローラーF710はPygame(Python)で操作 案外リアルタイムで操作できる!!!