何でも実習生の実習日誌

電子工作、模型スチームエンジン工作など、何でも工作が大好きです。
手持ちの工作機械は卓上ボール盤だけ、全て手作りです。

不要な文字?がやっと消せた。 ー ESP-WROOM-02どうしのUDP通信実験 ー

2020-07-06 18:44:50 | 電子工作
2020/07/06 (月曜日) 雨

先日からESP- WROOM-02をサーバー、クライアントにしてその間をWiFi規格の無線LANで
接続してUDP通信を行う実験をしている。
クライアントにはアナログ(電圧)信号をデジタルに変換してサーバーに送信する機能を、
サーバーには受信したデータを液晶ディスプレイ(LCD)に表示する機能を持たせてある。
そしてサーバー、クライアント間はUDP通信によるデータの送受を行うのだ。
今までもESP-WROOM-02をWiFiで接続してデータを送受信する実験をしたことはあるが、
パソコンに接続したルータに取り付けてある無線LANアダプタ(WiFi親機)を経由した接続で
WiFi親機がない環境では実験ができない。
そこでWiFi親機を介さないESP-WROOM-02どうしの接続はどうするのか?と思ってWebに
アップされた記事を検索してみたところ、2,3の参考記事が見つかった。
さっそくそれらを参考に(真似して)工作を始めた。



       (以上前置き 相変わらず前置きが長いね(笑い))

参考記事には通信機能だけでアナログ・デジタル変換や液晶表示はない。
それは今までの実験の成果を応用してみることにした。
その基本回路での実験は案外すんなりとうまくいった。
ところが液晶表示器(LCD)に文字を表示する段になってちょっと問題がでてきた。
サーバーのLCDにはクライアントが得た電圧値を数値で表示するのだが、その数値以外に
何だか制御符号のような文字?(記号)も表示されてしまう。



その記号のような文字を調べてみると「1101・・・・」 「1010・・・・」という4bit並びになっている。
ちなみに数値は「0」は「110000」(HEX表示では「30」、「1」は「110001」(同じく「31」、「2」は「110010」
(「同じく「32」)、小数点は「1001110」(同じく「2E」・・・・というお馴染みの文字コードだ。
「1101」とか「1010」は文字コードではないので処理するのはなかなか難しいだろう?。

もし、同じ桁位置に表示されるのならその桁を消去するという方法もあるが、データの数値によって桁位置が
上下するのでそれはできない。
仕方がないから(オイらの考え付くのはこれくらい)一文字(一桁)ごとに「0」~「9」の文字、小数点「.」と比べて
一致すればその数値を保存、一致しない文字は「数値ではない」と判断して無視することにしてみた。

これをプログラムにするにはいろいろな方法があると思うけどオイらは一番単純な「switch-case」制御文を
使ってプログラムを組んだ。
コンパイルも正常にできた。
さぁ、うまく動作するかな? 心を弾ませてRUNさせてみると・・・・・
ガっビーン!!! 変なメッセージが表示された・・・



何度やっても同じメッセージが出てきておかしな動きになる。

‟Exception (28):” って何だろう? 辞書で調べてみると「例外、除外、異議」という意味らしい。
>>>stack>>>なんていう文字もみえる。 stackなんてシステムが使う用語だ。
これは何だかバグなんかとは違う、もっと重要なトラブルかもしれない。

もしかすると書き込んだコードが長ったらしくてメモリーが不足しているのかな?
(フラッシュメモリは4MBだから書き込みエリアは十分だろう。)
RAMは36KBしかない・・・
プログラム走行で得た情報やデータはRAMに書き込まれるはずだからやたらとエリアを使うプログラムは
エラーになるのかもしれない。
試しに、追加した部分を削除すると正常に動作した。

さぁ、処理を簡略化して、余分な定義は削除して身軽なプログラムにしなくっちゃ・・・
(これが大変・・・基礎がないオイらにはとても難しい作業になる。)
マニュアルを見ては基礎的なプログラムで試行錯誤を繰り返し、3歩進んで2歩下がる・・・を繰り返す。

これでどう?・・・・ダメだ!
これではどうだ?・・・・ダメだ!
これではどうですか?・・・・おっ、動いた! やったよー 
思わず拍手してしまったよ(オイらは単純だよねぇ)。



今日で3日目、やっと動いてくれた。
その動画をご覧くださいませ。



「それを何に使うの?」 ですかぁ・・・・・・

何に使うか? って聞かれても別に使う予定はありません。
ただ、動かしてみる・・・・ただそれだけ。

「なーんだ、バカみたい・・・」

そうです。 バカみたいです。 でもそれが面白いんです。
なかなか動作してくれないものが苦労してやっと動いてくれたときの嬉しさ・・・
ただそれだけです。
さぁ、次は何をしようかな?









コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

UDP通信とかいうものの実験

2020-07-04 19:16:21 | 電子工作
2020/07/04 (土曜日) 雨のち曇り

昨年の6月頃、電子工作雑誌で「ESP8266」というマイコンのことを知り、その工作に
取り掛かってからもう1年以上が過ぎた。
最初はマイコンに取り付けたLEDをプログラムで点滅させるような工作をして次は
センサーを動作させてデータを読み取るなどと少しずつ進歩してきた。(つもり・・・)
この「ESP8266(ESP-WROOM-02ともいうらしい)」はWiFi規格の無線通信
機能が付いており、これを利用して「無線LAN」を活用するのが本来の使用目的らしい。
そんなわけで最近はこのWiFiでWROOMー02を接続する工作に取り組んでいる。
インターネットのサイトにはWiFiで接続して何かを処理するというような記事が沢山アップ
されているのでそれらを参考にして(真似してが正しい(笑い))工作をして過ごしている。

            以上前置き・・・相変わらず前置きが長いね。


2個のESP-WROOM-02をWiFiで接続してクライアント、サーバーとして何か処理を
するという工作は一応できた。
クライアントのスイッチを押すとサーバーが反応して該当のランプを点灯させるという
いわゆるリモコンでなんとかうまくいった。
しかしこれはパソコンに接続しているWiFiアダプタ(親機)を介しての接続でESP-W
ROOM-02が直接、通信しているというわけではなかった。
なんとかESP-WROOM-02同志が直接通信してデータを受け渡しするような実験が
してみたかった。
ネットをあれこれ検索していると「これだ!」というサンプルが見つかった。
そのサンプルを参考に工作してみた。



実験の様子。



クライアントとサーバーはWiFiで接続されていてUDPとかいう方式で通信するんだとか・・・


実験はうまくいった。
クライアントとサーバは安定に接続される。
クライアントのアナログデータもきちんと送信されてサーバーのLCDに表示される。
しかし、問題があった。
表示されるデータに余計な文字がある。
うーん、これはまずいなぁ・・・・・



そんな実験の様子を動画でご覧ください。


この余分な文字はUDP通信で付加された何かの制御符号だろう。
この文字だけを削除してしまえばいいんだけど、どうしたらいいかわからない。
また試行錯誤を繰り返さなくてはならないなぁ・・・
まぁ、いいかぁ・・・ここまで来ただけでも御の字だ。  ガンバローっと!

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする