投稿

ESP-01 (ESP8266) 2個使いAPとクライアントにして通信する手順

イメージ
IoTに不可欠なwifiの基本的な使い方のメモです。 ESP-01は技適マークなしで、日本国内では電波法違反になる可能性があります。 電波暗室を使う、技適マーク取得済のESP-WROOM-02しか使わない、などの注意が必要です。 ESP8266を2つ用意し、ATコマンドを利用し、1つをアクセスポイントとして親機の設定、もう1つを子機クライアントにしてwifi接続をします。 初めてESP-何チャラを買ってきたときに、まず試してみる手順です。 用意するもの ESP-01 2個 USBアダプタ 2個 パソコン(usb端子があるもの) 1~2台 共通の設定 シリアル: 115200 (8n1) 改行コード: <CR>(受信)、<CR><LF>(送信) 親機 子機 AT+CWMODE=2 (AP modeに設定) OK AT+CWMODE=1 (Station modeに設定) OK AT+CWSAP="ESP8266","0123456789",11,3 (SoftAP設定 SSID, password,  channel, encryption ) OK AT+CIPMUX=1 (マルチコネクションモード設定) OK AT+CIPSERVER=1,8888 (サーバー設定 mode, port) OK AT+CIPAP="192.168.99.1" (AP=自分のIP設定) OK AT+CIPAP? (APのIP確認) +CIPAP:ip:"192.168.99.1" +CIPAP:gateway:"192.168.99.1" +CIPAP:netmask:"255.255.255.0" OK AT+CWJAP="ESP8266","0123456789" (APへ接続する) WIFI CONNECTED WIFI GOT IP OK AT+CIPSTA="192.168.99.2" (Station=自分のIPの設定) OK AT+C

SSD1306 トラブルシューティング

イメージ
OLEDの使用 中華パーツで、送料込みで300円以下の入手可能なOLEDは便利な表示装置ですが、思い込みから間違えた使い方をする場合があります。 その代表例が、SH1106をSSD1306と間違えるパターンです。 0.96インチ・128x64から、そのまま1.3インチの似たような見た目のパーツに取り換えた場合、次のような表示になります。 一部の表示エリアは表示されているようですが、大部分がノイズです。 中華製ということもあって、壊れていると誤解しました。 3つ購入して3つ共なのでがっかりしたのですが、ちょっと調べると同じ症状はすぐに見つかりました。 http://luma-oled.readthedocs.io/en/latest/troubleshooting.html Using the SSD1306 driver on a display that has a SH1106 controller can result in the display showing a small section of the expected output with the rest of the display consisting of semi-random pixels (uninitialized memory). これ、SSD1306じゃないんですね。 まったく気にしていませんでした。 それをAdafruitのssd1306サンプルで動かしたので、不完全な動作をしたわけです。 早速、U8g2をインストール後、sh1106のコメントアウトをはずしてテストすると、見事に動作しました。 安心。 ちなみに、今回は二足歩行ロボットをモノアイ化するためで、結局使ったのはSSD1306の方でした。 ちょっと見た目のバランスが悪いので、もう少しデザインは詰めるとして、モノアイ自体は使えそうです。 雑魚っぽさと言う意味では狙った通りです。

Maple Mini PWM出力ピン

イメージ
ネットに出回っているMaple Mini(茶色いボード)のピンアサイン画像を信じて配線を済ませた後、スケッチを書いても一向にPWM出力されないということがありました。 あるいはリマップすれば使えるのかもしれませんが、これを教訓に面倒な手続きなしにArduino環境で使えるPWMのピン配列を図にしてみました。 PWM使用可能ピン ポイント1 D24はUSBとつながっているので、制約がある。 ポイント2 D33はオンボードLEDにつながっている。 ポイント3 D32はオンボードボタンにつながっていて、どうしても足りないときは配線すれば使える。 回路図ではGNDに10kΩ、VCCに1kΩ抵抗が入っているので、PWMとして使用中にボタンを押してもショートが原因で壊れる心配は少なそうです。

Maple Mini 3.3Vで2SK2232を駆動できない件

イメージ
Arduino Nanoは5V動作なので、手元に大量にあるMOS-FETの2SK2232が直接駆動できました。 3.3Vでは駆動できない2SK2232 同じ感覚でMaple Miniから2SK2232をドライブしようとしても、全然動きませんでした。 一部のネット情報では3.3Vでも動作するような書き込みがあったのですが、Aliexpressの格安ルートで購入した製品は、東芝製とは違うのかもしれません。 結論として、3.3Vで2SK2232は使えません。 そんな理由で、扱える出力はずっと小さくなりますが、2SK4017(Q)を使うようになりました。 3.3Vで駆動できる2SK4017 値段も秋月で@30円ぐらいなので、安全領域の12Vで1A程度までは使いやすいです。 (より低電圧なら5Aまで)  恐らく同じ経験をお持ちの方がいると思いますが、 鉄道模型のエレクトロニクス工作 (ホビーテクニック (49)) この本を読まれて実際にトランジスタコントローラーを作ったことのある場合、 2SD560というトランジスタがスタートになります。 鉄道模型で好まれた2SD560 手元にも30個ほど余っていますが、このまま使わないかもしれません。 時代に合わせてトランジスタも変わる MOS-FET化で2SK2232に、OPアンプによるPWM化で発熱がなくなり、コンピュータ化でPWMの特性も簡単に制御まで可能になると歴史が続いた後、3.3V化で、またトランジスタ選びの岐路に立っている感じがします。

Maple Mini 互換機

イメージ
2017年、ja.aliexpress.com で Maple Mini 互換機が400円弱の頃、Arduino-idk環境でstm32を使って忘れたくないことをメモする目的で、ブログを開設します。

Maple Mini ウォッチドッグタイマー

Maple-mini でウォッチドッグタイマーを使う際のメモ #include<libmaple/iwdg.h> void  iwdg_init ( iwdg_prescaler  prescaler, uint16 reload) void  iwdg_feed (void) Arduino環境でavrとは異なるので、調べるのに手間取りました。 日本語の資料が少なかったので、メモ。 ウオッチドッグタイマーは勿論存在して、動きました。 iwdt 独立型ウォッチタイマーとなっていますが、私のようなホビー用途では、単にウォッチドッグタイマーと言えばこれのことです。 基本的にはMaple IDEと同じなので、 http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/libmaple/api/iwdg.html 使い方はこれのままです。 以上が本題です。 そしてこれを使うことになった理由ですが、MAX7219とSerial2系統を同時に使っていると、コンフリクトしてメインループが止まってしまう事があったためです。 (でもタイマー割り込みの呼び出しルーチンは生きていました。) 根本的な解決にはならないのですが、リセットで急場はしのげるのでウォッチドッグタイマーへ逃げることにしました。