M5Stack PR

M5Stack(Arduino)とPC(Python)でUDP通信する方法 -雛形ソースコードあり-

M5Stack(Arduino)とPC(Python)でUDP通信
記事内に商品プロモーションを含む場合があります

こんにちは。

現役エンジニアの”はやぶさ”@Cpp_Learningです。

前回、M5StackとスマホをUDP通信するアプリの作り方・使い方の記事を書きました。

M5Stackでスマホの各センサ値を取得する -加速度・ジャイロ・GPSまるっとGET-
M5Stackでスマホのセンサ値を取得
【M5Stack】無線通信でスマホの各センサ値を取得する -加速度・ジャイロ・GPSまるっとGET-M5Stackとスマートフォン(iPhone/Android)を無線通信(UDP)で接続して、スマホの各センサ値(加速度・ジャイロ・GPSなど)を取得する汎用的なアプリを作りました。アプリの使い方やソースコードを公開するので、自由な発想で楽しんでほしいです。...

今回は、スマホではなくPCとUDP通信するM5Stackアプリを作りました。

深層学習などの負荷が大きい演算はPC(Python)にやらせて、演算結果をM5Stackに送信して、ごにょごにょ…

みたいなことが出来ると面白そうなので、送信側のソースコードはPythonで作成しました。

本記事で、受信側(Arduino)と送信側(Python)の両ソースコードを紹介します。

UDP通信用ネットワーク

今回、通信テストのために構築したネットワークの概要は以下の通りです。

ネットワークやIPアドレス

ホームルータやスマホなどをアクセスポイントとしたネットワークを構築し、UDPで通信します。

【ネットワーク概要】

  • アクセスポイント:ホームルータまたはスマホ(※1)
  • UDPデータ送信側:Python環境構築済みPC
  • UDPデータ受信側:M5Stack(※2)

(※1)ホームルータおよびiPhoneXのテザリングでテストしました
(※2)M5Stack Grayを使いました

M5Stackアプリのソースコード -UDPデータ受信-

M5StackでUDPデータを受信するアプリについては、以下の記事で説明しています。

M5Stackでスマホのセンサ値を取得
【M5Stack】無線通信でスマホの各センサ値を取得する -加速度・ジャイロ・GPSまるっとGET-M5Stackとスマートフォン(iPhone/Android)を無線通信(UDP)で接続して、スマホの各センサ値(加速度・ジャイロ・GPSなど)を取得する汎用的なアプリを作りました。アプリの使い方やソースコードを公開するので、自由な発想で楽しんでほしいです。...

この記事のソースコードをシンプルに通信のみを行うコードに改良します。

これが『M5StackでUDPデータを受信ときの雛形コード』になります。

シンプルな雛形コードは、様々なアプリに組み込み易いので、とても便利です。

スポンサーリンク

Pythonソースコード -UDPデータ送信-

PythonでUDP通信するソースコードについては、以下の記事のコードがそのまま使えました。

この記事で送受信のコードを紹介していますが、今回使うのは送信側のコードのみです。

このコードを”udpy.py”というファイル名で保存しました。

M5StackとPCのUDP通信テスト

以下の手順でM5StackとPCの通信が行えます。

【M5Stack-PCのUDP通信の手順】

  1. 「UDP通信アプリ」をインストールしたM5Stackの電源ON
  2. PCのターミナルからudpy.pyを起動
  3. ターミナルにキーボードから文字入力

私が通信テストしたときの様子が以下です。

【応用】おしゃべり代行アプリ(UDP版)を作る

雛形コードの紹介だけだと、あまり面白くないので…ちょっとだけ応用を考えてみます。

以前、Telnet通信を使った「おしゃべり代行アプリ」を作りました。

M5Stackアバターにキーボード入力した文字を読んでもらう
M5Stackおしゃべり代行アプリ
M5StackとPCの無線通信による「おしゃべり代行アプリ」を作るM5Stack(Wifiサーバ)とPC(クライアント)をTelnetで無線通信して、PCのキーボードから入力した文字をM5Stackアバターが読み上げる「おしゃべり代行アプリ」を作りました。アプリの使い方はもちろんソースコードも公開しています。遊んでくれたら嬉しいです。...

今回は、TelnetではなくUDPで「おしゃべり代行」を実現してみます。

UDPデータ送信用のPythonソースコードは同じものを使います。

通信方式が違うだけで、やってることは「おしゃべり代行」なので、前回の記事で紹介した動画を改めて紹介。

M5StackとPCやスマホを通信させるの楽しいですね!

我が家の環境だとTelenetよりUDP通信の方が安定します。。なぜだろう?

まとめ

M5Stack(Arduino)とPC(Python)でUDP通信する『雛形ソースコード』を紹介しました。

また、雛形コードを使った応用として「おしゃべり代行アプリ」を作ってみました。参考になれば嬉しいです。

冒頭にも書きましたが、深層学習などの負荷が大きい演算はPC(Python)にやらせて、演算結果をM5Stackに送信して、ごにょごにょ…

みたいなことを実践する人が現れたら最高に嬉しいです。

はやぶさ
はやぶさ
本記事のソースコードは好きに改良してOKです!

自由な発想でプログラミングを楽しんでくださいね(*・ω・)ノ♪

M5Stack Faces(9軸IMU搭載、各種カバー付き)
スイッチサイエンス

M5Stack
【M5Stack入門】初心者におすすめしたい情報まとめこんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。 先日、Maker Faire Tokyoや趣味T...
M5Stack Avatar Talk
【M5Stack入門】アバターおしゃべりアプリの作り方 -PlatformIO IDE for VSCode編-こんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。 前回『M5Stack初心者におすすめしたい情報ま...
M5Stackおしゃべり代行アプリ
M5StackとPCの無線通信による「おしゃべり代行アプリ」を作るM5Stack(Wifiサーバ)とPC(クライアント)をTelnetで無線通信して、PCのキーボードから入力した文字をM5Stackアバターが読み上げる「おしゃべり代行アプリ」を作りました。アプリの使い方はもちろんソースコードも公開しています。遊んでくれたら嬉しいです。...
M5Stackでスマホのセンサ値を取得
【M5Stack】無線通信でスマホの各センサ値を取得する -加速度・ジャイロ・GPSまるっとGET-M5Stackとスマートフォン(iPhone/Android)を無線通信(UDP)で接続して、スマホの各センサ値(加速度・ジャイロ・GPSなど)を取得する汎用的なアプリを作りました。アプリの使い方やソースコードを公開するので、自由な発想で楽しんでほしいです。...

 

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python