2016年2月25日木曜日

スイッチサイエンスからESP-WROOM-02 Arduino互換ボード発売

スイッチサイエンスからESP-WROOM-02開発用ボードの新型が発売

ESP-WROOM-02 Arduino互換ボード

パッと見arduino leonardoっぽい

今回のウリはArduinoとピン形状(≠ピン配置)を揃えたところ
Arduino Uno用シールドを装着可能

ただしATMega328とESP8266ではピンアサインが異なるため、スケッチの修正が必要となる
また、そもそものIOピン数が少ないため、一部シールドは動作自体ができない

DCジャックが付いているのでAC電源からの給電が可能



参考/ArduinoUnoとのピン配置比較
上はArduinoUnoとのピン配置比較
デジタルIOピンの並びが異なる点と、アナログIOピンの数が少ないことがわかる
また、一部のピンはジャンパによる選択方式となっている

目当てのシールドがある場合を除いてあまり用途が見つからない感じ
むしろDCジャックからの安定給電できるメリットの方が大きいかもしれない

どちらも必要なければ現行機種でいいかと






2016年2月22日月曜日

aitendoのキットスタジオで迷った

aitendoが新店舗を作ったというので行ってみた

直営店の入っているビルの1Fと聞いていたのだが

ストリートビューより
1Fはいつもどおりの駐車場で新店舗が影も形もない…
ありゃこれは期間限定オープンだったか?と直営店(3F)で買い物がてら聞いてみたのだが

枠内が新店舗/誘導する表示が欲しいね!
横に長いビルでしたというオチ

キットスタジオという名前のとおり、arduinoやIchigoJam、アンプキット等がこちらにまとまっている
うさんくさいパーツ類が無いからか売り場がずいぶんスッキリとした印象を受けた

オープン記念なのか売り場を埋めるためなのか一部のキットは組み立てられて販売されていた
はんだも上手で値段も据え置きだったので目当てのキットがあれば買ってもいいかも

2016年2月9日火曜日

EPS-WROOM-02サンプルプログラムのメモ(ESP8266SSDP)

前回の続き

EPS8266SSDP:

 SSDP(Simple Service Discovery Protocol)のライブラリ(ESP8266SSDP.h)のサンプルプログラム

・SSDP

 SSDPプロトコルを用いてフィリップスのIoT照明機器hueを制御するスケッチ…らしいが
 いかんせんhueもブリッジも現物が無いので動作確認ができない

 このプロトコルを用いたWebサービスを使うときのためにSSDPって言葉だけ頭の片隅に残しておこう

2016年2月8日月曜日

ESP-WROOM-02サンプルプログラムのメモ(ESP8266mDNS)

前回の続き

サンプルスケッチ呼び出し方法


ESP8266mDNS:

 マルチキャストDNSライブラリ(ESP8266mDNS.h)のサンプルプログラム

・DNS_SD_Arduino_OTA

 無線(OTA:Over The Air)経由でESP-WROOM-02のファームアップデートを行うスケッチ
 (※ArduinoIDEからOTA経由のアップデートを行う場合はセットアップが必要(ここでは割愛))

 接続したい無線アクセスポイントのssidとpassにソースを修正すること

 OTA経由で別のスケッチにアップデートした場合、OTA経由でアップデートする機能は失われる
 (当たり前だが)
 

・mDS_Web_Server

 ウェブサーバのサンプルスケッチ
 接続してきたクライアントに対して簡単なhtmlを生成して返す
 接続したい無線アクセスポイントのssidとpassにソースを修正すること

 起動後、シリアル出力にて割り当てられたipアドレスを表示するので
 同一ネットワーク上に接続されたPC(あるいはスマホ等)のブラウザにこのアドレスを入力する

 ブラウザに
   Hello from ESP8266 at 192.168.XXX.YYY
 という表示がされたら成功

 html形式に変換するだけで自由に出力可能なので使い道が多いサンプルスケッチ
 ブラウザで接続するだけなのでアクセスも簡単 

2016年2月5日金曜日

ESP-WROOM-02サンプルプログラムのメモ

Arduino for ESP8266環境ではArduinoIDEからESP-WROOM-02の開発が可能
そしてArduino同様にESP-WROOM-02のサンプルプログラム(スケッチ)が多数収録済である

以下はこのサンプルプログラムに関するメモ


使用方法:
 
 ArduinoIDEからサンプルプログラムを使う方法
 (Arduinoでの使用方法と同じなので読み飛ばしてもよい)

 
ArduinoIDEでのスクショ
1.ArduinoIDEの上部メニューから『ファイル』→『スケッチの例』→『(分類)』→『(スケッチ名)』を選択

 2.新しいウィンドウに選択したサンプルプログラム(サンプルスケッチ)がロードされる

 3.変更が必要な個所を修正したのちビルド

  (※スケッチを保存する場合は別名で保存すること)


サンプルスケッチのメモ:
 
 以下はサンプルスケッチの解説メモ
  動作確認はすべてスイッチサイエンス製ESP-WROOM-02開発ボード

esp8266:

 ・Blink
  毎度おなじみLED点滅スケッチ
  LEDが接続先のBUILTIN_LEDピンはTXDピン(ピン番号1)
  
  スイッチサイエンスのボードはUSB-シリアル変換が接続されているため挙動は以下のようになる
   ・PCとUSB接続している場合はRX_LEDが点滅する
    (※TX/RXでクロス配線されているため/シリアルターミナル等で接続する必要は無い)
   ・USB経由で給電のみ行う場合はRX_LEDは消灯したまま

  よってUSB接続前提ならばオンボード上のLEDがコントロール可とわかる
   (通信時のLED点滅は抑制できないが)
  USB-シリアル変換機が働いていないと駄目っぽい

  同様にRXDピン(ピン番号3)を指定すればTX_LEDが光るのでは?と思ったがこれは失敗


 ・BlinkWithoutDelay
  millis()を用いたLED点滅スケッチ
   (※millis()/起動してからの経過時間をmsec単位で取得する関数)


 ・CallSDKFunctions
  ESP-WROOM-02のホスト名を取得するテストプログラム
   (※wifi_station_get_hostname()/ホスト名を取得する関数)
  ホスト名はMACアドレスから自動生成される

  生成されるホスト名:
   ESP_XXYYZZ (XXYYZZはMACアドレスの下位3バイト)

  サンプルにはないがwifi_station_set_hostname()関数でホスト名の変更が可能
  
  ホスト名の変更方法:
   以下の関数を実行
   この情報は保存されないため、ホスト名はリセットすると再度自動生成される

   wifi_station_set_hostname("hostname");


本日ここまで

2016年2月3日水曜日

あちゃんでいいの新型が発売

aitendoから『あちゃんでいいの』の新型が2製品発売

 あちゃんでいいの(USB)

 あちゃんでいいの(DC)

コネクタはマイクロUSB/給電のみ

arduinoと同じ内径2.1ミリ、外径5.5ミリDCジャック


『あちゃんでいいの』はaitendoのAVRマイコン単体動作用キットのシリーズ
USB-シリアル変換などを取り外した最小構成のArduinoとして使用できる

今回の新型では5V給電用にマイクロUSBコネクタ or DCジャックをマウントしている
 ・使っているLDOのスペックを見る限りはArduino用のACアダプタをそのまま流用可能
 ・USBは給電専用でファーム書き込みには使用不可

従来製品では抵抗/コンデンサが表面実装されていたが、すべて通常のタイプに変更となった

ESP-WROOM-02開発ボードのメモ

スイッチサイエンス製ESP-WROOM-02開発ボード(分かり辛いので適当な製品名を付けて欲しい)のメモ

スイッチを間違いやすい

ボードの特徴:

 ・ESP-WROOM-02モジュールとUSB-シリアル変換ICを同じ基板上にマウントしたボード

 ・5V→3.3Vレギュレータを備えているのでUSB給電で動作可能

 ・ファームウェア書き込みに必要な設定ピンがプルアップ/プルダウン済
   (IO2:H IO15:L)

 ・タクトスイッチによってファームウェア書き込みモード(ダウンロードモード)に切り替え可能
   (プルアップしたIO0にタクトスイッチを接続/デフォルトがHでスイッチを押すとL)

 ・タクトスイッチによってリセット可能
   (プルアップしたRESETピンにタクトスイッチを接続/押すとリセット)


ボードのTIPS:

 ・IO0スイッチを押しっぱなしの状態でRESETスイッチを1回押すとダウンロードモードで起動
   (もしくはIO0スイッチ押しっぱなしでUSB接続開始)
   (外観からはモードの判別不可)

 ・起動後のIO0スイッチはユーザーが自由に使用可能
   (ピン番号0番のデジタルピン扱い/デフォルトがHで押すとL)

 ・3つあるLEDは実質ユーザーコントロール不可(状況により勝手に光る)
           →条件付きでコントロール可 Blink項目参照

   TX   :USB-シリアル変換ICのTXポートに接続
   RX   :USB-シリアル変換ICのRXポートに接続
   POWER:レギュレータの3.3Vに接続

   ※Serial.println()とかで空出力したらTXLED光るのでは?と思ったが失敗
    ターミナル等とシリアル通信が確立していない状態では空出力してもTXにデータが流れない


IO0ピンのスイッチを自由に使えるので、スイッチ1個のみのプロジェクトならば工作の必要無し

以前のプロジェクトもピン番号とピンのレベルを変更するだけで使用可
 
 ESP-WROOM-02プログラミング:ボタンを押したらツイート

  →KEY_PINを5から0に変更
   キー入力時のレベル判定を == HIGH から == LOW に変更
   (※この判定を修正しないとものすごい勢いでツイートを連打してしまうので注意)