M5stackでTelloを制御

M5stackでUDPが使えるから、Telloのコマンド制御もできるよねと思いましが、既に先人のコードができてます。

https://qiita.com/Mitsu-Murakita/items/b86ad79d3590adb3b5b9

TelloのSSIDだけを追加すれば動きましたが、動作がイマイチもっさり、というのはスイッチの反応が遅くて多少長押ししないとtake offもしない。

で時間待ちの500msを150msにするとほぼイメージ通りに動きますが、疑問点が一つ。

wasPressed()関数って、ボタン押されたことを記憶できる関数のはずなのになぜ長押ししないといけないか?

loop()の中でボタン機能の確認コードを作って確認してみると、どうもdelay()中にボタンを押してもwasPressed()には反映されない模様です、だからdelay()で設定した時間以上にボタンを押していないといけないようです、仕様として変だと思いますが。

~~~
  if ( M5.BtnA.wasPressed() ) {
    Serial.println("BtnA.wasPressed() == TRUE");
  }
  //Serial.println("loop");

  delay(300);
~~~

 

あとフリップ動作は、イマイチスイッチを押すタイミングとM5stackを傾けるタイミングが掴めない。

 

admin

オランダの320Kbpsラジオ局

ベートーベン・チャネルとは言ってますが、正確にはベートーベン同時代古典派の作曲家の曲を流すと言った方が正確でしょう。間違ってもロマン派とかイタリア、ロシアの作曲家の曲は流れてきません。

MozartやHydnも流れてきますが、画像にあるようにオランダオーケストラの曲で時々のアナウンスでもNetherlandからと言ってます。おおむねどこのラジオ局でもラジオ局が属する国の楽団の演奏を流すのは、自国の文化の宣伝という意味のほかに著作権料でも優遇されるからなのかも知れません。

 

admin

Nodeと関連技術

Nodeに関連して検索したサイトと自分用のメモです。

 

○ WebSocketのURL形式

通信時に指定するURLは、

ws://www.sample.com、あるいはセキュア接続ならwas://www.sample.com

明に使うことはあまりないだろうけども

 

○ Node.jsでソケット通信

<socket.ioのインストール>(アプリを作成するディレクトリで)

% npm install socket.io 

もはやdgramはインストール不要らしい

 

○ websocket動かすには

Node.jsとExpressの他にwsライブラリのインストールも必要、本当?

<HTTP serverとclientサンプル>

socket.ioを使った、

以下の二つはGitHubのサンプル動かしているのでセット

https://qiita.com/kouji0705/items/cf16044c7d825d09d707

https://github.com/neroneroffy/webSocketDemo

https://ai-soldier.work/websocket-node-ws/#

これ動かしてみたけど、ラズパイでも軽快に動く

 

○ Express

<documents>

https://expressjs.com

<解説>

https://qiita.com/mml/items/3cc90479df033c0998e4

https://qiita.com/ganyariya/items/85e51e718e56e7d128b8

<起動>

$ npm start

 

○ pug(HTMLテンプレート)について

<pugの概要>

https://and-ha.com/coding/what-is-pug/

こんなこともできる(markdownをincludeしてHTML出力)

https://ytyaru.hatenablog.com/entry/2018/05/01/000000

<pugの拡張>

https://qiita.com/zenno04/items/d16f881170170b567b16

Template Inheritance

https://pugjs.org/language/inheritance.html

 

○ wsサーバーの起動

Express serverとWebSocket severそれぞれ別に起動で良い

$ node ws_server.js

実際の運用は起動スクリプトに書くから個別起動で問題ない

 

○ Javascript(chart.js)でグラフ作成

json使いましょう

https://www.web-development-kb-ja.site/ja/javascript/chartjsでjsonデータを表示する/833307193/

 

○ JSからEJSへ

https://fukuno.jig.jp/2819

use strict : ESM(ES module)有効なら指定不要だったよね

 

admin

ラズパイでWebSocket通信(その3)

 

https://isehara-3lv.sakura.ne.jp/blog/2022/11/29/ラズパイでwebsocket通信(その2)/

の続編で、

① M5stackからラズパイにUDPでデータ送信して、

② ラズパイとクライアント間でweb_socket使ってリアルタイムのデータ更新(今は5秒毎にM5stackから送信)、

③ 受信データをchart.js使ってグラフ化(データ最大5回分)、

します。

WebSocketで送られるデータ形式は汎用性考慮してjson形式を使っています。

全体のコードは、

M5stack側、

https://github.com/chateight/multi_sensor_udp_comm

ラズパイ側、

https://github.com/chateight/web_socket

となります。現状、測定値を送信するのはthermo_sensorのコードだけですが、他のセンサーでも同じルーチン(udp_loop(String))呼び出せば送信できます。

web_socketはセッションが有効な時しか働かないので、セッションが切れればデータは更新されません。

ブラウザ画面の表示はこちらを、

m5stack_ws – 720WebShareName

 

admin

Davide of mimic

これもネットラジオ曲ですが、イギリスからの高音質(320Kbps)のラジオ。

https://www.davideofmimic.com

しばらく中断していましたが、再開されてます。

広告なしでどうやって運営してるのかは気になるところ、オペーレーティング費用の他に著作権料の支払いも必要なわけだし。ドネーションだけで全て賄ってる?

無料のspotifyは音質イマイチで広告入るから最近あまり使わない。サブスクするまでも無さそうだし、

 

admin