WROOM 02(ESP8266)でソケットサーバを建てる

がいよう

WROOM02は650円で買える結構ハイスペなWiFi内蔵マイコンモジュール。
http://akizukidenshi.com/catalog/g/gK-09758/
こいつで宅内のWiFiに接続し、ローカルネットワーク内に固定IPのサーバーを建てる話。
オリジナルのソースを読めば一発で分かる話だが、備忘録として残す。
やってる事は「TCPソケットでメッセージを受ける」だけで、想定としてはネットワークにぶら下がったPC等から自作デバイス(WROOM02)を操作するみたいな感じだ。

ぜんぶん

#include <ESP8266WiFi.h>

/**************************/
/*wifi static configration*/
/**************************/
char ssid[] = "WiFiのSSID";
char pass[] = "WiFiのパスワード";
IPAddress ip(192, 168, 1, 111);
IPAddress gateway(192,168,1,255);
IPAddress subnet(255,255,255,0);
WiFiServer server(11111); //port

/////////////////
const int led = 2; //status led pin

void beginConnect() {
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(200);
  }
  server.begin();
  digitalWrite(led, HIGH);
}

/************************/
/***  main functions  ***/
/************************/
void setup() {
  pinMode(led, OUTPUT);
  WiFi.config(ip,gateway,subnet);

  //use for debug
  Serial.begin(115200);
  Serial.println("\nbegin");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    WiFiClient c = server.available();
    if (c) {
      while(c.connected()){
        if(c.available()){
          char str[64]={0};
          c.read((uint8_t*)str,63);
          Serial.println(str);
        }
      }
    }
  }
  else {
    beginConnect();
  }
}

かいせつ

Wroom02のWiFiライブラリは、ArduinoオリジナルのWiFiクラスに概ね準拠している。
そのためArduino公式のリファレンスを見ればサンプルとしては十分機能する。
https://www.arduino.cc/en/Reference/WiFi

躓きポイントとして、WiFi.config(ip,gateway,subnet);がある。
オリジナルではWiFi.config(ip);のみで動作するが、WROOM02ではgatewayとsubnetを省略出来ない仕様である。
それさえ指定してやれば固定IPでネットワークにぶら下げられる。

またこれは本家ライブラリの躓きポイントなんだが、loop()内でネットワークのリクエストを捌く仕様上、while(c.connected())で処理を固める必要がある。
whileを活用しないとブロックを抜けてしまい、コネクションが即座に断たれてしまう。
…loop関数の存在が前提のArduinoと、割り込み的に発生するリクエストの処理は本質的に相性が悪い気がする…。

カテゴリー: IT, 電子工作 | コメントする

GBA用ROM吸い出し機を使ってBIOSも吸い出す

gaiyou

https://drroot.page/wp/?p=158
ハードウェア的には前回のこれと同一。
ようはBIOS欲しいけどネットから落とすと微妙にグレー度が上がるし自前で吸いたいなーみたいな時に使える(?)。

続きを読む

カテゴリー: 電子工作 | コメントする

GBA用ROM吸い出し機を大体2000円弱くらいで自作する

がいよう

例のスタンガン配信は思いっきりエミュでのプレイなので、ROMの引っこ抜きどうやってんのって話をする。
その際LPC1768用のROMダンパをもっと安いLPC11u35に移植出来たので折角だから記事にした。
割と雑に移植したら動いたみたいな感じなので全権利は元のファーム製作者にある事だけ注意。

続きを読む

カテゴリー: 電子工作 | コメントする

AOM-5024L-HD-Rを使って高音質なバイノーラルマイクを作る

がいよう

前回中々使える奴と判明した5024くんを使って、SN比重視のバイノーラルマイクを作った。
本当はメイキングを動画で挙げたかったのだが、編集が一向に終わらんので先にこっちを投稿だ。

結論から言うとやっぱ音質にクセがある。またソースフォロアをそのまま出力しているので、どっかでゲインを稼ぐ必要がある。
ファンタムを吐けるレコーダー、編集時のEQなんかは必須だと思う。
また、今回は動作させられる最低限の状態、いわゆる「バニラ」なので、使い勝手を求める場合は更に工夫の余地がある。

その代わり5000円でお釣りがくるくらい安い。購入品と購入先のリストは末尾に記載する。

続きを読む

カテゴリー: 電子工作, 音響関係 | 2件のコメント

マイクカプセル「AOM-5024L-HD-R」試食会

期待の超新星

AOM-5024L-HD-R、以下AOM5024。
エレクトレットコンデンサマイクのカプセルで、おひとつ350~500円ほど。
~数個で買うなら送料を考えるとマルツが安いかな。単位大きいならDigikeyとかが安い。
https://www.marutsu.co.jp/pc/i/27039172/

こいつは個人が買えるカプセルの中で最高のSN比80dBを誇る。
これは数値だけなら3dio Freespace、通称白耳に搭載されているEM-172と同等の性能だ。
しかしPrimoの野郎はこれら高品質なカプセルを一般向けに卸していない為、SN比80dBを叩き出すならこの製品しか無いということになる。

ネットで探してもこのAOM5024を使った例は無かったため、ざっくり触ってみたレポを書いてみる。

続きを読む

カテゴリー: 電子工作, 音響関係 | 3件のコメント

PC連動型USBスタンガン制作の裏側

馬鹿↓

制作の裏側

PCと連動して動くスタンガンはどう制作したかの話。
スタンガンはUSBから電源を取ってるので威力は大したこと無いが、それでも全く電気を知らない人が扱うのは危ないので手順レベルでの詳細は書かない。
勿論一切の責任は取れない。

続きを読む

カテゴリー: 電子工作 | コメントする

パナ改を用いないファンタム式ECM駆動回路のすすめ

日本ではファンタム電源に繋ぐECM駆動回路がパナ改くらいしか見当たらないので、
海外フォーラムでよく見かける回路を紹介しようと思う。選択肢が増えれば幸い。

続きを読む

カテゴリー: 電子工作, 音響関係 | コメントする

Shinさんの「ファンタム式パナ改~」をもうちょい初心者向けに噛み砕く記事

タイトルのとおりである。

アマチュアマイクツクラーに向けて

例えばバイノーラルマイクなんかを作ろうとする。
バイノーラルマイクなんてのは所詮2つのマイクを同時に動かすわけで、すると自作マイクに行き着く。
大体日本人で自作マイクを調べるとShinさんのパナ改に一回は行き着く。

1925 :ファンタム式パナ改、fetⅡを自作される方に大切なお知らせ (前編)
つい先程更新された、パナ改のこれまでが書かれているわかりやすい記事である。
ただし、丸っきりの初心者や、これからマイク制作を始めようかと思う人に向けて、もう少しこの記事を噛み砕いて説明しようと思う。

というのも、この記事、もといパナ改シリーズはある程度「製品」としての側面を持つからだ。
プロが使うような環境で、スタジオで、電気技師ではない人が使えるマイクとして設計されている。
そのような前提を理解しないでこの記事を読むのは少しもったいないよ、という話である。

続きを読む

カテゴリー: 電子工作, 音響関係 | コメントする

BizHawkエミュからSocketを飛ばす方法

やりたいこと

統合エミュであるBizHawkから、Luaスクリプトを介してSocketを発信する。
これができると、例えばゲーム内のメモリデータをダンプし、Luaを介して別アプリにSocket送信ができるので、Luaでは出来ないOSの機能をいくらでも使えるようになる。

続きを読む

カテゴリー: IT | コメントする

PlatformIOでLPC11u35にUSBDeviceを乗せる

もくひょう

PlatformIOでUSBSerialライブラリを載せたコードを書きLPC11u35向けにビルドする。
ここで使うLPC11u35は一個前の記事でも取り上げた秋月の裸マイコンだ。

続きを読む

カテゴリー: 電子工作 | コメントする