macsbug

Just another WordPress.com site

Archive for the ‘ESP8266’ Category

Try ESP8285

leave a comment »

ESP8285 WeMos D1 mini Lite を試しました。         2017.03.24

WeMos D1 mini Lite は ESP8285 を搭載し 価格は $3 です。
ESP8285 は 1MBのフラッシュメモリを搭載(内蔵)した ESP8266 です。
( D1 mini V2.x : 外部4MB Flash,  D1 mini Pro plus : 外部16MB Flash )


.
購入:WeMos Electronic から WeMos D1 mini Lite が販売されています。
価格:$3.00 ( 335円 ), 送料=$1.76
輸送期間:9日。

Noduino ESP8285 mini WiFi module と言う 超小型のモジュールがあります。
価格:Aliexpress で 1個 $9 です。

Small ESP8285 USB Board


.
Arduino IDE 開発環境の構築:
使用環境:iMac 27 OSX Mountain Lion + Arduino IDE 1.8.0 ( 1.8.1,1.8.2 :2017.03.23 )。

WEMOS Electronics の Get started in Arduino 「Using git version」を参照し
_ ターミナルでインストールします。
_ メモ:Arduino フォルダーの中に hardware フォルダーが無い場合は
_    事前に hardware フォルダーを作成しておきます。

1:例:ユーザー名が imac の場合。
cd Users/imac/Documents/Arduino/hardware
mkdir esp8266com
cd esp8266com
git clone https://github.com/wemos/Arduino_D1.git esp8266

2:
cd esp8266/tools
python get.py

結果:
1:Arduino / hardware フォルダーの中に ESP8266com フォルダーが作成されます。
2:tools フォルダーの中に esptool, mkspiffs, xtemsa-lx106-eif フォルダーが
_ 作成されます。

Arduino IDE:ツール / ボードに WEMOS D1 mini Lite が追加されました。

Arduino IDE:ボード WEMOS D1 mini Lite を選択します。


.
WeMos D1 mini Lite レイアウト:


.
Lチカ動作:
ボード上にある LED は GPIO_2 です。通常のLチカ スケッチで問題なく動作しました。
_ USB 5V 消費電流は 78mA でした。


.
参照:
WIKI:ESP8266(英語)、 ESP8266(日本語)

WIKI :PFS-85 ( ESP8285 )

WIKI:Noduino NODEC

ESPRESSIF:ESP8285 Datasheet version 1.2 Copyright @ 2017

OSAKANA TAROのメモ帳:USBコネクタサイズに収まるESP8285搭載ボード

ESP8266 Community Forum :ESP8285 ENVIROMENTAL SENSOR

tindle:ESP8285 Development Board

Microne : High Speed LDO Regulators:レギュレーター

ROHM:EMH3 dual digital transistor:自動書き込み用トランジスター


.
感想:
WEMOS D1 mini Lite V1.0.0:
_ 2017年3月7日に WEMOS CC Store から販売開始されました。
_ 価格:$3.00 で 送料が$1.76 で 総額 $4.76 です。5個で 1個$4 になります。
_ Aliexpress や ebay では 最近 送料がかかり業者があり総額の計算が必要です。

IOT とサイズ:
_ ESP32 ボードで ADC, DAC 等が可能な高機能化の道が開けてきました。
_ しかし ESP-WROOM-32 Dev Board は サイズが大きく ケースはどうするの
_ と言う感じです。IOT は小型化である事が重要で USB や 電源コンセントには
_ 入りません。この点 ESP8285 は 小型で装置内部に組み込みが可能です。
_ ただし、この ESP8285 は TELEC がなく 難題があります。

Noduino ESP8285 mini WiFi module:
_ Noduino ESP8285 mini WiFi module は 注文中ですので 入手後にトライして
_ みたいと思います。

TELEC:
_ WithOUT TELEC です。私は主に電波を使用しない装置作りが殆どです
_ ので 小型化が必要な装置にと考えています。


 

Written by macsbug

3月 23, 2017 at 6:16 pm

カテゴリー: ESP8266

USB ISOLATOR

leave a comment »

iMac の USB を 保護する為に USB ISOLATOR を使用しています。  2017.03.01
USB ISOLATOR は USB インターフェース を遮断するアダプターです。
電源は 外部電源から供給され 電子工作に集中する事ができます。

通常 USB の最大電流は 500mA で 電子工作で 使用する ESP8266 や ESP32
ESP-WROOM-32 は 消費電流 や 突入電流 が 非常に大きいとの話を聞いています。
場合によっては 接続している iMac の USB が壊れるかも知れません。
基板 中央の16pin IC で iMac 側と ESP 側が完全に遮断され 信号のみが伝わります。
消費電力の大きい ESPの電源は AC アダプター から供給され 安全になります。
技術的な理解はともかく 高価な iMac を壊さない為に使用し安心です。


.
ESP32 ( ESP-WROOM-32 ) の 消費電流 の 調査と分析:
_ 電源の波形解析や詳細な調査をされ対策も記載されている記事があります。
_ 何度も読み直す程の内容があり 多大な努力に驚嘆しています。感謝!!
_ 是非、「ねむいさん」氏 と「mgo-tec」氏 の記事をお読み下さい。
_ その辺の技術書より 遥かに面白く 読み応え充分です。

ねむいさんのぶろぐ:
ESP-WROOM-32を使ってみる2 -そんな電源で本当に大丈夫か-
_ 丁寧な波形測定と解説は見事で改善策のデバイスの選択も素晴らしい。
:
mgo-tec電子工作:
ESP-WROOM-32 ( ESP32 )の消費電流を電流プローブ無しで測定してみました
ESP-WROOM-32 (ESP32) の 電流 測定 その2
_ 前回にも増して波形測定に工夫をされ のめり込む程の内容に驚きます。


.
保護回路:
iMac の USB回路の入力には ポリスイッチ と言う保護素子がついています。
過大な電流が流れると 動作して オープン になり後段の回路を保護します。
記憶能力があり電源を切っても しばらく オープン状態 を保持しています。
この為に 再起動すると動かない場合があり 電源を切り 30分とか1時間後
とかに復帰し 起動が可能になります。

知らずとUSB端子をショートする場合もありますので良いかと思います。
周囲からのノイズ やスパイクを取り除き オーディオには効果があります。

古くは FireWire ポートの話もあります。
RATOC:Macの本体標準 FireWire ポートのご使用に関して


.
購入:条件 は 電源が別 である事。
_ ebay:ADI ADUM4160 USB Isolator:価格:GBP 15.99、2235円。
_ 上記画像の製品は どのくらいの性能があるか評価はしていません。
_ 別電源が無い低価格の物は 使用しない事。
_ 下記の「USB Isolator USB-01」と比べるとかなり見劣りします。

国内販売: 以下の製品が理想的です。この製品は他の回路を圧倒しています。

アナログ回路のおもちゃ箱:USB Isolator USB-01:完成品:6.640円
_ 電源アダプターは 別途 用意されています。
_ 外部電源 (+6VDC) 供給時 は 低雑音LDO の ADP3338 から クリーンな
_ 5V・1Amax.を出力。
_ USBのデータ・ラインには サージ対策 及び ノイズ対策。
_ GNDパターンやレイアウト、部品点数を見ると細かな配慮がされています。
_ メモ:以下の基板のGNDパターンの作り方に注目してください。

日本アマゾンで他の製品を調べると 数万円と高いです。


.
「アナログ回路のおもちゃ箱」:

_ 「アナログ回路のおもちゃ箱」氏の 技術力は 超ハイレベルです。
以下の記事は今回の電源問題やUSBの件で詳細に分析され設計・製作もされています。

アナログ回路のおもちゃ箱:
USB Isolator:PCのUSBポートと接続される周辺機器を絶縁します。

USBコネクターからの電源供給(1):外部からクリーンな電源をDACに供給。

USBコネクターからの電源供給(2):TPS7A4700内蔵USBコネクター。

USB Isolator for Analog Discovery:Analog Discoveryでスペクトラム観測。

突入電流制限可能なHigh Side P-Ch MOSFET Switch:突入電流を抑える実験。

USB コネクター と 線の長さ:「アナログ回路のおもちゃ箱」氏の 話では
_ USBケーブルで最も良いのは 一番古い 四角いコネクター との事。
_ 理由は コネクターによって 電流容量 が違うとの事です。
_ USB の線の 太さや 長さ は重要で 太く短い物 を使用する必要があります。
_ Analog Discovery を使用する時は ISOLATOR の件もありますが 10cm 程の
_ 長さで iMac 本体に直接接続すると良いとアドバイスしています。

ESP8266 最強の電源:
_ 氏からは ESP8266の最強の電源 を設計製作、計測する方法を教わりました。
_ 測定方法は 氏のページにもありますが SMA Connector を直付けし最短距離。
_ にする事です。試してみると その通りでした。
_ 


.
感想:
USBケーブル:ESP8266 や ESP32 を接続するには USB ワイヤーは 太く短い
_ ケーブルを使用する事が大切です。例として消費電力が大きい場合は 百均
_ の細いUSBケーブルでは 動作しなくなる事を経験しています。
_ ワイヤーの太さ(抵抗値) が如何に電力に影響があるか解ります。
_ オームの法則:V= I * R で R(抵抗)があり I(電流)が大きいと影響が大です。

USB ISOLATOR: 価格が気になりますが iMac 本体価格よりも安いです。
_ 過去に iMac が再起動しなくなり 3時間とか半日於いて起動すると復帰した
_ 経験があります。原因はいろいろありますが結果的にポリスイッチが動作
_ した為と判断しています。iMac は高価ですから USB 入力端子を壊して
_ 修理すれば マザーボード交換 か 新規購入 しか手だてはありません。
_ それを考慮すると少しは高価でも USB ISOLATOR を接続する方が
_ 20〜30万の費用削減になると思います。

ESP32 ボードの設計:
_ 国内でアダプターボードや開発基板を設計・開発されている時期ですが
_ 「ねむいさん」氏 と「mgo-tec」氏 が示す 技術的検討を充分されて
_ 進めて頂きたいと希望しています。特に GND が如何に重要かですね。
_ 3月現在までの国内販売のアダプターボードを見ると まさかと思う位の
_ 悲惨な設計内容です。
_ 是非、技術力を高め 海外にも販売できる高性能な製品を期待しています。

注目するESP32開発ボード:「魔法の大鍋」ESP-WROOM-32のブレイクアウトボード
_ Make Faire Tokyo等で「超小型ドローン」を展示し各社の開発陣に販売する
_ 程の有名な「魔法の大鍋」氏が microSD付の ESP-WROOM-32の両面実装
_ ブレイクアウトボード を製作中です。氏は多層基板や超小型部品の基板も
_ 製作できるハイレベルの方です。現在 設計変更を含めた前段階で 完成までの
_ ツメの方法を熟知しています。なんと秋月でESPが販売されて直ぐ取りかかっ
_ たとの事でスピード感も素晴らしい方です。


Written by macsbug

3月 1, 2017 at 8:20 am

カテゴリー: Apple, ESP32, ESP8266

Weather meter on iPad

leave a comment »

iPad を気象計にしました。                                                         2017.01.29
構成は ESP8266 + BME280 + iPad Pro + TouchOSC です。


.
費用は 既に ハードをお持ちでしたら TouchOSC アプリのみで 600円 です。
構成は ESP8266(881円) + BME280(442円) + TouchOSC(600円) で総計1923円です。
ESP8266 に接続した BME280 温度、湿度、気圧センサーの値を iPad へ表示します。

左上:緑のLEDは TouchOSC が受信し処理中を示しています。
右上:時刻表示。その左:バッテリー量。その左:表示装置のテストボタン。
左下:スライドバーで ESP8266 に接続している LEDランプの明るさを変えます。
_  下にあるトグルスイッチは 出力を スライドバーか温度に切り換えます。
_  温度の場合は ESP8266 に接続している LED の明るさが温度で変化します。
中央:温度、湿度、気圧は デジタル表示とロータリーのアナログ表示にしました。


.
TouchOSC
iPad や iPhone , Android のタッチインターフェースを利用して トグルスイッチ、
プッシュスイッチ、フェーダー、ロータリーフェーダー、XYパッド、ラベル、LED
などを、様々な大きさで、いくらでも画面に配置し、ESP8266 と連携させ 表示装置
や コントロール装置を 楽しく容易に作る事ができます。
双方向通信: iPad Wifi と ESP8266 Wifi 間で 双方向通信 が可能です。
.
TouchOSC Editor:iPad の画面作りをします。
ご自身のデザインで「世界で1つだけのパネル」が作れます。
画面のデザインは iMac の TouchOSC Editor で行います。( Win, Linux 用もあります)
以下の画面にある部品が用意されておりドラッグ&ドロップで作ります。
「部品配置」と「部品名称」と「動作数値」を入力するのみで「プログラムは不要」。
ESP8266 は今回のサンプルで短時間に作り、デザインに時間をかけると見事なパネル
が出来ます。奇麗な仕上がりは 楽しく美しさが出てきます。
素敵な「上島珈琲」や「スタバ」で 優雅な気分で過ごせます。


.
準備:ESP8266 + BME280 + TouchOSC で 1923円。
1. ESP8266 with TELEC:881 円。
2. BME280センサー:ebay で 442円。
3. LED:必要に応じて装着。D1 mini は 本体に LED が着いています。
4. iPad pro, iPad, iPhone, Androide:既にお持ちの物を使用します。0円。
5. github:CNMAT / OSC:ダウンロードしライブラリーへ入れる。Adrian Freed氏に感謝。
6. iPad アプリ:TouchOSC:600円。
7. TouchOSC Editor:Mac OS X。0円。マックの編集アプリです。上記 TouchOSCに記載。
_  
ESP8266 + BME280 のハードの構成は 以下を参照ください。
macsbug:ESP8266+BME280+OLED+BOX
macsbug:ESP8266 + AE-BME280 + ThingSpeak
macsbug:ESP8266+BME280+IR LED+Air Con+ThigSpeak
macsbug:Environmental Sensor (環境センサー)


.
TouchOSC Editor:
参考:hexler.net:TouchOSC | Editing layouts
_  YouTube:OSC Tutorial #1
iMac TouchOSC Editor で作成した レイアウト は WiFi (LAN経由) で iPad ( Layout, add )
_  へ 即 転送できます。


.

信号の流れ:

①:I2C で計測を要求。 ②:計測。 ③:計測値を I2C で送る。
④:ESP8266でOSC信号に変換する。 ⑤:WiFi UDP で直接通信する。
⑥:OSC:名前から Control interface を選択し 数量表示 又は 文字表示する。

UDP通信: ESP8266 と iPad 間の 直接通信を 行います。
_ macsbug:Communicate ESP8266 and iPad directly with UDP を参照してください。

ライブラリー:

#include <OSCMessage.h>
#include <ESP8266WiFi.h>
#include <WiFiUDP.h>

TouchOSC:受信する方法。
_ 1. OSCMessage mIN
_ 2. udp.parsePacket())>0 で受信。
_ 3. mIN.route ( 部品名, サブルーチン);
_ 4. 部品毎の操作を行う。 トグルスイッチ や LEDの操作方法 を参照の事。

#include <OSCMessage.h> 

OSCMessage mIN;
int size;
if((size = udp.parsePacket())>0){
 while(size--)
  mIN.fill(udp.read());
   if(!mIN.hasError()){
    mIN.route("/1/push1", test);              // ** iPad -> ESP8266 **
    mIN.route("/1/fader", led_fade);          // ** iPad -> ESP8266 **
    mIN.route("/1/toggle",led_temp);          // ** iPad -> ESP8266 **
   } 
} 

TouchOSC:送信する方法。
_ 1. OSCMessage msg ( 部品の名前 );
_ 2. msg.add ( 数値 又は 文字 );
_ 3. UDP 送信。

OSCMessage msg(c);                             // c = name
msg.add(d);                                    // d = value
udp.beginPacket(udp.remoteIP(),txp);           // udp
msg.send(udp);                                 // udp
udp.endPacket();                               // udp end 
msg.empty();                                   // OSC end

トグルスイッチの操作方法:

mIN.route("/1/toggle",led_temp); 

void led_temp(OSCMessage &msg, int addrOffset){  // toggle
  int ledState = (boolean) msg.getFloat(0);      // get state of toggle
  if ( ledState == 1 ){ ind = 1;}                // fader switch on
  if ( ledState == 0 ){ ind = 0;}                // fader switch off
}                                                //

フェーダーの操作方法:

mIN.route("/1/fader", led_fade); 

void led_fade(OSCMessage &msg, int addrOffset){  // fader
  ledValue = msg.getFloat(0);                    // get value of fader
  if (ind == 1){analogWrite(led, ledValue);}     // BUILTIN_LED controll
}                                                //

LEDの操作方法:

led_sw( "/OnOff/led9", "ON");

void led_sw(char led[], String sw){
  float v;
  if ( sw == "ON" ){ v = 1.0 ;}
  if ( sw == "OF" ){ v = 0.0 ;}
  OSCMessage msg(led);
  msg.add(v);
  Udp.beginPacket(Udp.remoteIP(),txp);
  msg.send(Udp);
  Udp.endPacket();
  msg.empty();
}

ESP8266 スケッチ:
上記の様に モジュールを コピー&ペースト すると 短時間に簡単 に出来ます。


.
参考:
1. h e x l e r . n e t | TouchOSC:TouchOSC の 本家です。
2. github:CNMAT / OSC:OSCライブラリーがあります。
3. facebook:TouchOSCでプロジェクションマッピングもできています。
4. TouchOSCとOSCuino:丁寧に説明しているサイト。
5. YouTube:Controlling a dc motor with ESP8266-12E + TouchOSC:リスト未公開。
_  ESP8266 でモーターコントロール:今回の送受信の方法で可能です。
6. YouTube:esp8266 OSC spotlight:リスト未公開。
_  ESP8266 でロボットコントロール:今回の送受信の方法で可能です。
7. YouTube:controlling an Arduino with an iPad:Fader が高速で動き
_  アナログアナライザーが出来ています。
8. fabifiess / NodeMCU_OSC
9. Tuna Knobs
_ 


.
感想:
1. 過去の記事:以下では TouchOSCでの 受信方法が不明で 出来ませんでした。
_  macsbug:ESP8266 for Arduino ことはじめ。
_   ESP8266 で受信方法を公開されているサイトは見つかりませんでした。
_   YouTube:受信し画面表示している例があり可能な事が判明しました。
_   ただし YouTube では リストは公開されていません。
_   最も丁寧に説明されているサイトがありました。TouchOSCとOSCuino
_  この記事を基に 林 伸夫氏が UDP方式変換とOSCを連結し動作が可能になりました。
_  林 伸夫氏に感謝!
2. 表示装置:現在 ESP8266で実現している TFT解像度は 340×240 が限界です。
_   iPad Proなら 2048×2732 の高解像度を電子工作で利用できる訳です。
3. 工作時間:パネルのデザインをするだけで表示装置が完成します。
_  これをHTMLで記述する事は恐らく無理です。
4. メモ:BME280 ライブラリー:
_   BME280_MOD_1022.h と BME280_MOD-1022.h とがあり注意が必要。
_   – が使用され Arduino IDE のバージョンによりエラーが出る時があります。
5. ライブラリー:受信の メッセージ ライブラリーを作り始めました。
_   少し出来て動き始めましたが、これではダメな事に気づきました。
_   ライブラリーは OSCMessage だけでは無く 他の機能も必要です。
_   実際 github:CNMAT / OSCを見ると OSCBundle, OSCData, OSCMatch, OSCTiming 等
_  の機能が必要である事。よって 上記のOSCライブラリを使いこなす事ですね。
6. 事例:ESP8266 に接続している LED を PWM コントロールできる装置、
_   XL4001(387円)。秋月:LEDドライバモジュール (140円) を使用して 部屋
_  のライト等をコントロールする事ができます。
7. UDP直接通信:
_   照明器具をネット経由で操作するものがありますが ふと疑問に思います。
_   「何故 目の前のライトをネット経由で操作する必要があるのか」
_   手で直接操作するか UDPで直接通信すれば良いのではと思っています。
_   温度変化をネット経由でグラフ化できる ThingSpeak も経験してみました
_   が 日常生活では さほどグラフを見る必要性が無い事を体験しています。
8. 美しさ:
_  電子工作の完成品は 見た目 奇麗でない場合が多いですが、表示を iPad や
_  iPhone にして素敵なデザインをすると 見事に奇麗なものが出来ます。
_  機能も大切ですが デザインはそれ以上に大切かと思っています。 


.
TouchOSC のリスト:GitHub を使用していない為、リストアップできません。
以下を参考に「素敵なデザイン」を組み上げてください。
右上の Tx は TouchOSC の送信ランプ、Rx は受信ランプです。
Tx は送信時「緑」に点灯、Rx は受信時「赤」に点灯します。

左上から右下に Control interface の内容を列記します。

LED:led,0,1
Label V:Color=Brown,Text="Temp,,,",Size=32
Push Button:Name=push1,Color=Gray,Value Range=0 To 1
Battery V:Color=Green,Outline,Size=24
Time V:Color=Orange,Outline,Size=24
Label V:Name=disp,Color=Gray,Size=24
fader V:NAme=fader,Color=Brown,Value Range=1023 To 0
Toggle Button:Color=Brown
Rotary V:Name=tr,Color=Red,Value Range=0 to 40
Label V:Text="Temp,,",Color=Brown,Size=32
Label V:Name=t,Color=Red,Text=88,Size=66
Label V:Text="Humi,,",Color=Brown,Size=32
Rotary V:Name=hr,Color=Green,Value Range=20 to 60
Label V:Name=h,Color=Green,Text=88,Size=66
Label V:Text="Pres,,",Color=Brown,Size=32
Rotary V:Name=pr,Color=Blue,Value Range=990 to 1030
Label V:Name=p,Color=Blue,Text=88,Size=66
Label V:Color=red,Text=0,Size=24

.
ESP8266 スケッチ:
1. SSID は各自好みの名前にしてください。
2. ESP8266 に接続する LED のピン番号は 各自の使用GPIOにしてください。
_  int led = BUILTIN_LED;
3. ESP8266 に接続する BME280 のピン番号は 各自の使用GPIOにしてください。
_  Wire.begin(SDA, SCL);
_  5sec 毎に送信します。必要に応じて 初期値の rm = 5000 を変えてください。
4. UDP送受信の PORT 番号は好みの数値に変更可能です。
_  ESP8266 と iPad TouchOSC の outgoing と incoming を合わせてください。
.

// ESP8266 + BME280 + TouchOSC + iPad            // 2017.01.29 macsbug
// BME280 : Temperature,Humidity,Pressure Sensor //
// UDP communication
// ESP8266(ip:192.168.4.1,port:9000) transmit ---|
// ipad   (ip:192.168.4.2,port:9000) receive  <--|
// ipad   (ip:192.168.4.2,port:8000) transmit ---|
// ESP8266(ip:192.168.4.1,port:8000) receive  <--|
#include <BME280_MOD_1022.h>                     // BME280_MOD-1022.h
#include <Wire.h>                                //
#include <OSCMessage.h>                          //
#include <ESP8266WiFi.h>                         //
#include <WiFiUDP.h>                             //
static WiFiUDP udp;                              //
const char *ssid = "a10";                        // SSID
const char *pass = "";                           // password
#define rxp 8000                                 // ESP Rx Port:TouchOSC=outgoing
#define txp 9000                                 // ESP Tx Port:TouchOSC=incoming
IPAddress ESP8266_IP;                            // ESP8266 IP = 192.168.4.1
IPAddress ipad_RX_IP;                            // iPhone  IP = 192.168.4.2
long ta =  -5.3;                                 // temperatue adjust
long ha = +16.7;                                 // humidity   adjust
long pa =  +3.5;                                 // press      adjust
int rt,count,rm = 5000,ind = 0;                  // time count, 5sec
int led = BUILTIN_LED;                           // 15 BUILTIN_LED
float ledValue = 1023;                           // led fader

void setup(){                                    //
  pinMode(led, OUTPUT);                          // GPIO Conttroll
  analogWrite(led, 1023);                        // LED Illuminance OFF
  Serial.begin(115200);Serial.println();         //
  //---------------------------------------------// BME280 setup
  Wire.begin(D6, D7); delay(10);                 // SDA, SCL 12,13
  BME280.readCompensationParams();               // read the NVM param
  BME280.writeOversamplingTemperature(os1x);     // 1x over sampling
  BME280.writeOversamplingHumidity(os1x);        // 1x over sampling
  BME280.writeOversamplingPressure(os1x);        // 1x over sampling
  //---------------------------------------------// WiFi setup
  WiFi.mode(WIFI_AP);                            // AP setup
  WiFi.softAP(ssid, pass);                       //
  ESP8266_IP = WiFi.softAPIP();                  // 192.168.4.1  localIP
  udp.begin(rxp);                                // iPad -> ESP8266 Rx Port
  rt = millis();                                 // save time
}                                                //
 
void loop(){                                     //
  OSCMessage mIN;                                //
  int size;                                      //
  if((size = udp.parsePacket())>0){              //
   while(size--)                                 //
    mIN.fill(udp.read());                        //
     if(!mIN.hasError()){                        //
      mIN.route("/1/push1", test);               // ** iPad -> ESP8266 **
      mIN.route("/1/fader", led_fade);           // ** iPad -> ESP8266 **
      mIN.route("/1/toggle",led_temp);           // ** iPad -> ESP8266 **
     }                                           //
  }                                              //
  count = int( millis() - rt );                  // read time
  if ( count > rm ){                             // time check
    sensor();                                    // ** ESP8266 -> iPad **
    count = 0; rt = millis();                    // reset time
  }                                              //
}                                                // 

void tx(String s, float f, int t ){              // OSCMessage + UDP
  char c[12];                                    // char
  int len = s.length() + 1;                      // string length
  s.toCharArray(c, len);                         // c = string to char 
  OSCMessage msg(c);                             // name
  msg.add(f);                                    // value
  udp.beginPacket(udp.remoteIP(),txp);           // udp
  msg.send(udp);                                 // udp
  udp.endPacket();                               // udp end 
  msg.empty();                                   // OSC end
  if ( t != 0 ){ delay(t);}                      // delay
}                                                //

void txchr(String s, String f, int t ){          // OSCMessage + UDP
  char c[12], d[40];                             // char
  int len = s.length() + 1;                      // string length
  s.toCharArray(c, len);                         // c = string to char 
  len = f.length() + 1;                          // string length
  f.toCharArray(d, len);                         // c = string to char 
  OSCMessage msg(c);                             // name
  msg.add(d);                                    // value
  udp.beginPacket(udp.remoteIP(),txp);           // udp
  msg.send(udp);                                 // udp
  udp.endPacket();                               // udp end 
  msg.empty();                                   // OSC end
  if ( t != 0 ){ delay(t);}                      // delay
}                                                //

void sensor(){                                   //
  //---------------------------------------------// BME280 sensor
  BME280.writeMode(smForced);  delay(50);        // chip goes back to sleep
  while (BME280.isMeasuring()){delay(50);}       // BME280 check
  BME280.readMeasurements();                     // read out the data
  float t = BME280.getTemperature()+ta;          // Temperature
  float h = BME280.getHumidity()   +ha;          // Humidity
  float p = BME280.getPressure()   +pa;          // Pressure 
  int   c = int(millis()/1000);                  // count
  //---------------------------------------------// 
  tx( "/1/led",    1 , 300 );                    // LED ON
  tx( "/1/t",  int(t), 300 );                    // Temperature digital
  tx( "/1/h",  int(h), 300 );                    // Humidity    digital
  tx( "/1/p",  int(p), 300 );                    // Presuure    digital
  tx( "/1/tr",     t , 300 );                    // Temperature roter
  tx( "/1/hr",     h , 300 );                    // Humidity    roter
  tx( "/1/pr",     p , 300 );                    // Presuure    roter
  if (ind==0){analogWrite(led,1023-t*1023/40);}  // temp -> led
  if (ind==1){analogWrite(led,ledValue);}        // temp -> led
  tx( "/1/led",    0 , 300 );                    // LED OFF
  //---------------------------------------------//
}

void test(OSCMessage &msg, int addrOffset){      //
  txchr("/1/disp", "Indicator Test",50);         //
  for(int i=   0;i<=  41;i++){tx("/1/t" ,i,50);} //
  for(int i=  40;i>=   0;i--){tx("/1/t" ,i,50);} //
  for(int i=  20;i<=  60;i++){tx("/1/h" ,i,50);} //
  for(int i=  60;i>=  20;i--){tx("/1/h" ,i,50);} //
  for(int i= 990;i<=1030;i++){tx("/1/p" ,i,50);} //
  for(int i=1030;i>= 990;i--){tx("/1/p" ,i,50);} //
  for(int i=   0;i<=  40;i++){tx("/1/tr",i,50);} //
  for(int i=  40;i>=   0;i--){tx("/1/tr",i,50);} //
  for(int i=  20;i<=  60;i++){tx("/1/hr",i,50);} //
  for(int i=  60;i>=  20;i--){tx("/1/hr",i,50);} //
  for(int i= 990;i<=1030;i++){tx("/1/pr",i,50);} //
  for(int i=1030;i>= 990;i--){tx("/1/pr",i,50);} //
  txchr("/1/disp", "",50);                       //
}                                                //

void led_fade(OSCMessage &msg, int addrOffset){  // fader
  ledValue = msg.getFloat(0);                    // get value of fader
  if (ind == 1){analogWrite(led, ledValue);}     // BUILTIN_LED controll
}                                                //

void led_temp(OSCMessage &msg, int addrOffset){  // toggle
  int ledState = (boolean) msg.getFloat(0);      // get state of toggle
  if ( ledState == 1 ){ ind = 1;}                // fader switch on
  if ( ledState == 0 ){ ind = 0;}                // fader switch off
}                                                //

Written by macsbug

1月 29, 2017 at 1:56 pm

カテゴリー: Apple, ESP8266

Raytracing with ESP32

with 2 comments

ESP32 で レイトレーシング を試しました。         2016.12.27
ESP32 の 速度は どの位でしょうか?
ESP32 DEVKIT V1 と 2.4 inch 320×240 TFT SPI Display を使用しました。

結論:速度は ESP8266 160MHz の 2.5倍です。価格は ESP8266 の6倍です。
条件:「SPI接続」と「Adafruit_ILI9341.h」(速度が遅い) を使用。



.
抽画速度の比較。ESP32 は 14sec。ESP8266 160MHz は 33secです。


.
準備:
1. ESP32 DEVKIT V1:1720円 。 その後2800円台と非常に高いです。
_  メモ:ESP32 DEVKIT と NANO32 の 購入時は 電波が出ない状態になっています。
2. 2.4 inch 320×240 TFT Display:1125円 。
3. スケッチ: TFT22_raytracecbm80amiga氏に感謝。
_  スケッチの変更:GPIOの端子番号を接続したTFT の端子と合わせます。
_          #ifdef ESP8266 , #endif は不要ですので削除してください。

// CS,DC,SDI,SCK,RESET,SDO  // ESP32 Dev Module
Adafruit_ILI9341 display = Adafruit_ILI9341(13,14,27,26,12,25);

.
参考:YouTube
Raytracing on ESP8266 and ILI9341 LCD display ESP8266:今回の参考場所
Arduino raytracer rendering on 8 bit micro : Arduino 10min
Raytracing on Arduino and STM32 – speed comparison:Arduino vs STM32
Generic STM32 vs Arduino Pro Mini/Nano speed :STM32 vs Arduino


.
測定結果の数値:
条件:「SPI接続」と「Adafruit_ILI9341.h」(速度が遅い) を使用。
_   Raytracing は 1 Passを使用。

Type    sec
    ESP32      @ 160MHz  13
    ESP8266  @ 160MHz  33
    ESP8266  @  80MHz  65
    STM32     @  72MHz  52
    ATMEGA328         @ 16MHz  293
    Arduino Pro Mini  @ 16MHz  293

追記:2016.12.30 Arduino IDE ESP32 を Update 。
_  14sec が 13sec にアップ。ESP8266 160MHz との対比は 2.3 から 2.5倍
_  boards.txt に記載されている nano32.build.f_cpu=160000000L は
_  nano32.build.f_cpu=240000000L に変更されました。
.


表示を変える方法:球の個数や位置、素材等を変えられます。追記:2016.12.30
raytracer.h

 
#define NUM_SPHERES 4    // 球の個数
static const float spheres[] PROGMEM = {
// center, radius, material // center : 球の位置
  5,15,8,  5,  0,
 -6,12,4,  3,  0,
  1,10,2,  2,  1,
  0, 9,5,  1,  2
};

.
追記:2017.1.4: STM32F7 Raytracing が 0.62sec を達成し世界一最速です。
このサイトへの訪問者 clemente氏は、このRayTracing を STM32F7 を使用し
_ C++ と C に置き換えたとの事。そしてその速度は 320×240 で 0.62sec と
_ いう驚異的な結果が出ています。素晴らしいですね。是非 以下のサイト
_ をご覧ください。clementeさん ありがとうございました。
The Embedded Notes Blog:RayTracing per ESP32 e STM32F7!

YouTube:STM32F7 RayTracing:この速度を是非ご覧ください。
_ 一瞬で終わります。素晴らしいです。


.
感想:
ESP8266 を始めた理由:Arduino は速度遅くメモリーが少ない為 始めました。
_ Arduino Pro mini に対し 21倍、ESP8266 160MHz に対し 2.4倍でした。
_ この点では ESP8266 を選択した意味がありました。
_ ESP8266 に対し ESP32 は 少し 速くなり少々満足。でも160MHzしかない。
_ そして ESP32 の価格は ESP8266 の6倍で使用する価値は無くなりますね。
.
費用対効果:ESP32 は 2016年12月現在 2800円台です。 ESP8266は $5
_  という触れ込みから始まりましたが ESP32 は非常に高い価格です。
_  ebayやAliexpress を見ると一時的に安くなる業者もありますが
_  その後 並べた様に 高い価格になっています。これは価格を操作している
_  様にも見えます。
.
ラズパイと2.2 inch 320×240 TFT Display:ラズパイではSPI接続でビデオを
_ 表示する事が出来ています。
_ Learn on the fly:Quickly test an IL9341 2.2 inch 2.2″ SPI TFT display
.
条件:今回のスケッチは cbm80amiga氏の記事を使用した物です。これは
_ Arduino や STM32 でも比較できるハードとライブラリーという条件です。
_ 方法は「SPI接続」で ライブラリーは「Adafruit_ILI9341.h」を使用して
_ います。SPI接続である事と 速度がかなり遅いAdafruitのライブラリーを
_ 使用しています。 ESP32は SPI以外に HSPI、VSPI端子がある事や
_ DMA parallel 方式があり速度の向上が期待されます。
_ Espressifのアナウンスに「C.3D Game on ESP32」と言う項目があり
_ 「DMA via the parallel mode of the I2S controller」を使用するとの事。


Written by macsbug

12月 27, 2016 at 2:30 am

カテゴリー: ESP32, ESP8266

2.4 Inch TFT Display For ESP32

leave a comment »

ESP32 で TFT Display を使用する方法。              2016.12.17
ディスプレー は 2.4 inch 240×320 SPI TFT LCD ILI9341 を使用し
ESP32DEVKIT V1NANO32 を使用しました。

費用は 3337円です。( ESP32ボードD1 mini  の約5倍です )

2016.04.16 に ESP8266 + 2.4 inch TFT Display の記事を記載しました。
ESP8266と同じ内容ですが ESP32とライブラリーの動作を試しました。
ライブラリーとスケッチは Adafruit ILI9341 graphicstest です。


.
DEVKIT V1 ( with TELEC ):ESP32 Development Board。

NANO32 ( without TELEC )
Font Converter (squix : Daniel Eichhor) による文字は奇麗です。

Adafruit の フォント表示。”Group” の文字は 5倍してギザギザです。


ESP32の速度:ESP8266 の 2.2 倍高速です。
_ 条件は 同じ回路 及び 同じスケッチ(Adafruit ILI9341 graphicstest
_ で速度を比較。ただし ESP8266 は 周波数は160MHz にする事と
_ Wdt Error を出す為に 多数の yield(); を入れています。
_ ESP32=37.8sec, ESP8266=84.2msec。


.
準備:
費用=3337円 ( without Touch Panel ):
費用=4497円 ( with      Touch Panel ): 価格は円レートで変動します。
販売業者によっては価格を上げる所があり都度 最低価格を探します。

No.  Nomen  Link  Price  Memo
1  ESP32: DEVKIT V1  ebay 1742円  1個
 2a  2.4 inch TFT Display  ebay   811円  1個
 2b  2.4 inch TFT Display + Touch  ebay  1125円  タッチ機能あり
3  Breadboard  ebay   483円  10個 483円
4  Breadboard Jumpre Cable  ebay   301円  1箱 140 pcs
 ———- ライブラリ———-
5  Adafruit_GFX  GFX  microbuilder氏に感謝
6  Adafruit_ILI9341  ILI9341  ladyada氏に感謝
———-   フォント ———-
7  Font Converter  squix  Daniel Eichhor氏に感謝
—– ESP32 開 発 環 境 —–
8  espressif/arduino-esp32  esp32  espressif TEAMに感謝
9  Setting Up ESP-IDF  Toolchain   Mac OS用

02a:Touch Panel 無し:タッチパネル不要の場合。
02b:Touch Panel 有り:タッチパネル必要の場合。

ライブラリーと ESP32 対応:defined(ESP32) の記述。
Adafruit_ILI9341 は「defined(ESP32)」が追加され ESP32 で動作します。
ESP8266 の SPIの記述 は ESP32では使用出来ない様です。


.
配線:TFT基板の画像は裏側で 「配線表」は表側からの並びです。
_  TFTの端子と ESP32のGPIO端子が 最短で直結できる配置にしました。

TFT Display 裏側 端子名。

  TFT    基板表側 配線表
SDO LED SCK SDI DC RESET CS GND VCC

メモ:RESET は 3V3 へ接続でも可能です。


.
DEVKIT V1 配線:ミニブレッドボードを4連結。配線8本。

  DEVKIT  GPIO   ,    TFT    基板表側 配線表
GPIO D26 D27 D14 D12 D13 GND  VIN 3V3  3V3
TFT SCK SDI DC RESET CS GND LED  VCC



メモ:GPIO端子は D25表示(例) ですが スケッチでは  25 を記載します。


.
NANO32 配線:ミニブレッドボードを3連結。配線8本。

  NANO32  GPIO   ,    TFT    基板表側 配線表
GPIO 12 13 00 9 10 11  GND 3V3  3V3
TFT SCK SDI DC RESET CS GND LED  VCC



メモ:GPIO : 9=SD2, 10=SD3, 11=CMD(SCS). RESET=3V3 でも可能。


スケッチ:
Adafruit の Graphics Test の GPIOは 以下の様に設定します。
GPIO 端子は 全ての端子を設定します。CS, DC のみの設定は動きません。

DEVKIT V1

//                                      CS,DC,SDI,SCK,RESET,SDO);
Adafruit_ILI9341 tft = Adafruit_ILI9341(13,14, 27, 26,   12, 25);

NANO32

//                                      CS,DC,SDI,SCK,RESET,SDO);
Adafruit_ILI9341 tft = Adafruit_ILI9341(10, 0, 13, 12,    9, 14);

部品:ディスプレーは ebayで購入します。
_ 以下の条件にあったディスプレーは国内には無く 又 類似品の価格は約4倍
_ 程高い為に ebayで購入します。
_ 条件:240×320、3.3V、2.4″、SPI、TFT、ILI9341、Touch Panel、SD Slot。
_ 他の部品も国内は高いです。 例:ミニブレッドボードは 国内で 1個130円 や
_  216円(送料を含まない価格)ですが ebayは 1個49円です。

フォント:Adafruit_ILI9341 + Adafruit_GFX ではフォントを拡大するとギザ
_ ギザになります。奇麗なフォントを使用する方法は  Font Converter
_  ( Daniel Eichhor氏 ) を使用しフォントを作成します。
_  例:Library version は Adafruit GFX Font を選択し Roboto_plain_18.h を
_    作成します。それを自分のスケッチフォルダーの中に入れます。
_    スケッチでは #include “Roboto_plain_18.h” と宣言し
_    tft.setFont(&Roboto_18); tft.println(“Hello World,”); で表示します。

メモ:
_ DEVKIT  :購入時は電波は出力しない設定になっています。
_ NANO32:購入時は電波は出力しない設定になっています。
_      このままの状態で使用すると TELEC は不要になります。


.
参考:
Watch the ESP32 board:Arduino IDE へ ESP32 の開発環境を再構築する。
ESP32 with TELEC will be released.:初めての ESP32。


.
感想:
1. 費用:ESP32 の価格が高い為に 高額です。WeMos D1 mini の約5倍です。
_  今回の表示程度ならば WeMos D1 mini  (365円)で充分です。
_  さらに安価な ESP32 や TFT を探すのもポイントと思います。Daniel Eichhor
_  氏は この辺を丁寧に探しています。

2. TFT ライブラリー:squix : Daniel Eichhor のライブラリーは 高速性と表示の
_  奇麗さで最高峰ですが SSD1306 用である事と ESP8266 内部を使用している
_  為 現時点では ESP32 ではエラーがでて使用できません。
_  Adafruitのライブラリーは かなり遅いです。3D Cube のスケッチは 遅くて
_  使い物になりません。速度に見合った使い方になり ライブラリー次第で
_  高速抽画ができると思っています。
_  ESP8266 は 周波数を160MHzにしないと Wdt Reset の発生は大きくなります。
_  さらに Wdt Reset を軽減する為に yield(); を入れますが これは なんだと
_  思うくらいの妙な記述で ESP8266のバグではないかと 思うくらいです。
_  ESP32 では この yield(); の記述は不要になり 使用するとエラーがでます。

3. ESPRESSIFの戦略:ESP32 の1つに GAME を目標に DMA +パラレル方式を
_  掲げています。現在  ESP-WROVER-KIT 開発ボードを製作し SPI 方式で
_   安価な TFT を動かしています。ただし SPI方式では これ以上のピクセル数
_   は難しく パラレル方式が期待されます。Arduinoでは既に完成されています。

4. 大きさ:DEVKIT と NANO32 は大きく ブレッドボードを使用する時に少々
_  勝手が違います。ブレッドボードは試験用で使用時はケースに入れますので
_  取り付け基板が必要になるかと思います。それにしても WeMos D1 mini より
_  も かなり大きなケースになりそうです。

5. TFT 接続基板:2.4 inch TFT 基板と D1 mini を接続する基板があると 容易
_  に作る事ができます。そこで Daniel Eichhor氏は TFTと D1 mini pro の
_  接続基板を作られました。TFT + 接続基板+ D1 mini proをハンダ付けし
_  て直ぐ出来る素晴らしい方法です。
_  これを基に私は 接続基板を使用せず  VCC=3V3, GND=GND, CS=D7,
_  RESET=D6, DC=D5, SDI=D0 を直付けし GND=D8, SCK=D2 を2本の
_  ワイヤ−配線で作りました。これで基板を作る手間が不要な事や厚さを
_  薄くする事が出来ます。ただし少し上側にスペースが必要になる事と
_  タッチセンスの配線は省略しています。
_          
_  


 

Written by macsbug

12月 16, 2016 at 10:46 pm

カテゴリー: ESP32, ESP8266

ESP32 Development Board with TELEC Memorial photograph

leave a comment »

ESP32 Development Board 到着記念写真。             2016.12.12

ESP-WROOM-32 ,  211-161007

DOIT/SmartArduino 「ESP32 Development Board with TELEC」
注文先:AliExpress の Store:iHardware $21.05
輸送機間:12月3日に注文し12日に届く速さ。

DEVKIT V1 と書かれています。


ESP32 Development Board :ブレッドボードは 2つ必要。I2C は離れている(黄と緑)。
NANO32:3V3 以外は I2C OLED を直付けできる。
nodeMCU ESP8266:I2C OLED を直付けできる。

.
USB 5V の消費電流:
ESP32 Development Board with TELEC:80mA
NANO32:70mA
.
3D Cube Demo Report :2016.12.13 版 arduino-esp32 開発環境。
_ ESP32 Development Board:時間を於くと停止する。
_ NANO32:時間を於くと停止する。初回の開発環境は正常に動作し続ける。
_ nodeMCU ESP8266:正常に動作し続ける。
2016.12.14 に I2C の Rev があり UPDATE 後6時間モニターしOK。2016.12.14

その後 15日の朝も動作中を確認。arduino-esp32 ではこの間に3回の Rev あり。
開発メンバーの方々 ご苦労様でした。
その後 継続して I2C の Revision が続けられています。
.
いわゆるTELECとは:高速無線LAN情報局より抜粋。
特定無線設備(無線LANや携帯電話などの電波通信機器)の基準認証制度のことを、
俗にTELECといいます。昔、登録証明機関が財団法人テレコムエンジニアリング
センター(TELEC)のみであったことからそう呼ばれています。認証番号
(証明番号)はTELEC番号などと呼ばれます。
.
TELEC 211-161007:211 は 登録番号で登録証明機関の
Bay Area Compliance Laboratories Corp です。登録外国適合性評価機関
最新のリストは平成28年08月31日で12月現在まだ リストには掲載されていません。


 

Written by macsbug

12月 12, 2016 at 2:59 pm

カテゴリー: ESP32, ESP8266

Watch the ESP32 board

leave a comment »

2016年12月現在の ESP32 Development Boards の一覧表です。     2016.12.09

最新情報:2016.12.22
質問:技適対応の ESP-WROOM-32 with TELEC(モジュール) は 販売されているか?
答え:この記事投稿前から現在まで何処にも販売されていません。

質問:最低価格の技適対応 ESP32は?
答え:2016.12.22:
_ ebay:最低価格 $11.39 は Contact付きです。他 21日は販売業者無し。
_ ebay:3つの業者が出てきました。価格が変動しています。
_ ebay:EUR 14.59, USD 18.99, USD 23.99。
_ Aliexpress:販売されています。価格は $24.85 〜28.99 です。

この経緯から何かが操作されているように見えます。


12月現在の espressif / arduino-esp32 によると ESP32 開発環境 の Arduino IDE には
7つのボードが設定されています。
boards.txt の build.f_cpu は 160MHz から 240000000L (240MHz) になりました。
WeMos の ESP32 版 LoLin32 が期待される中で 設定にはあるものの まだ未販売です。

WeMos LoLin32:
_ Blink Community の hutje氏が 11月5日 に
_ WeMos is currently working on the WeMos LoLin32! と答えています。
_ 16日 github.com/espressif/arduino-esp32 に “WEMOS LoLin32” が追加されました。


追記:2017.04.21 WeMos Lolin32:2017.04.20 販売開始

Nomen Shop Cost $ Picture
WeMos LoLin32 WeMos 6.90
+
Tax 1.76
Widora-Air Taobao 7
ESP32
Development Board
with TELEC
ebay
with contact
11.39
ESP32-Bit Taobao 11.6  
AnalogLamb
ESP32
Development
Board
AnalogLamb 12.50  
Noduino
Quantum
Taobao 13.25
ESP32
Development Board
with TELEC
ebay EUR
14.59
Widora-Air AliExpress 15
Espressif
ESP32-DevKitC
(“Core Board”)
Adafruit 15
Espressif
ESP32
Core Board
Olimex 17
Watterott
ESP-WROOM32
-Breakout
Watterott Electronics 17.95
Ai-Thinker
NodeMCU-32S
Banggood 18
ESP32
Development Board
with TELEC
ebay 18.99
PyCom
WiPy 2.0
pycom 19.95  
AnalogLamb
Maple ESP32
AnalogLamb 20
SparkFun
ESP32 Thing
SparkFun 20
Gravitech/
MakerAsia
Nano32
Gravitech US 20
ESP32
Development Board
with TELEC
Banggood 21.12
SparkFun
ESP32 Thing
Digi-Key 21.25
ESP32-Bit ebay 21.42
Ai-Thinker
NodeMCU-32S
AliExpress 22  
DOIT/
SmartArduino
ESP32 DevKit
with TELEC
SmartArduino 22.87
DOIT/
SmartArduino
ESP32 DevKit
with TELEC
AliExpress 23.36
ESP32
Development Board
with TELEC
ebay 23.99
Official DOIT
ESP32
Development Board
AliExpress 24.00
Ayarafun/
LamLoei
Node32S
Gravitech Thai 24.75
Gravitech/
MakerAsia
Nano32
Gytron 24.75
Gravitech/
MakerAsia
Nano32
Gravitech Thai 24.75
ESP32
DEvelopment
Board
tindle 24.95
PyCom  LoPy pycom 29.95
PyCom  SiPy pycom 35.95

メモ:
1. ESP32 (ESP-32S, ESP-WROOM-32) の チップのピン数は 38 pin。
2. ESP32-Bit で使用されている ESP32 の チップのピン数は 30 pin。
3. ボードのピン数は 38 か40 pin。最小ピン数は 28 pin。
4. ESP-WROOM-32 with TELEC チップの単体販売はされていません。


余談:
以下は WeMos の LoLin ですが ESP8266 版で ESP32版 ではありません。
WeMos LoLin V3 NodeMcu Lua WIFI Development Board


ESP32-DevKitC:espressif 公開の ESP32 ピン配置。 espressif / arduino-esp32  doc


.
Nano32 ピン配置(自作)。

ESP32 SoC Packegae Identifier Explained

ESP32 Demo Board V2

ESP-WROVER-KIT
ESP-WROOM-32 with TELEC + 3.2″ 320×240 TFT SPI ILI9341 (Z320IT010)


開発環境の構築:arduino-esp32 の更新による再構築。
新しい arduino-esp32 の Installation : Instructions for Mac の指示通りに
_ ターミナルで実施しましたが arduino-esp32.git でエラーがでました。
_ この辺のレベルになると 私は どうしたらいいか解りません。
.
_ 以下の手順で使用できる様にしました。
_ 1. ダウンロードZIP をダウンロードし フォルダー名を esp32 に変更。
_ 2. 新しいフォルダー hardware と espressif を作り フォルダーは
_    hardware / espressif / esp32 という階層にします。
_ 3. esp32 の中の tools には xtensa-esp32-elf (マック用) を入れます。
_    ESP-IDF Getting Started Guide:2Page:2. Getting Started
_     2.2.1. Downloading the Toolchain:MacOS です。
_    又は「ESP32 Beginning」を参照してください。
_ 4. hardware フォルダーを user / document / Arduino の中に入れます。
_ これで 新しい開発環境でボードが表示され実施できます。

2016.12.25 追記:ターミナルで arduino-esp32 の Installation ができました。
出来なかった理由は git や他のものがインストールされていない為です。
手順は省きますが 幾つかの入っていない物をインストールしました。
結果 arduino-esp32 の Installation の指示通りにインストールできました。


追加された機能:analogRead が増えました。これは嬉しいです。
_ これまで ESP8266は 1個のアナログ入力しかありませんでしたが 16個
_ にもなりました。A0〜A19 までの動作を試して動きました。
_ これでアナログ分野も自由に複数使用できる事になり ホットしました。
_  DAC1, DAC2 ( variants / nano32 / pins_arduino.h に記載) も使用できる
_ ようで 興味津々です。

Things that work:

  • pinMode
  • digitalRead/digitalWrite
  • attachInterrupt/detachInterrupt
  • analogRead/touchRead/touchAttachInterrupt
  • ledcWrite/sdWrite/dacWrite
  • Serial (global Serial is attached to pins 1 and 3 by default,
    there are another 2 serials that you can attach to any pin)
  • SPI (global SPI is attached to VSPI pins by default and
    HSPI can be attached to any pins)
  • Wire (global Wire is attached to pins 21 and 22 by default and
    there is another I2C bus that you can attach to any pins)
  • WiFi (about 99% the same as ESP8266)

状況把握:
espressif / arduino-esp32 の Commits に現状の問題点と対応が
書かれています。


I2Cライブラリが動作しない:解決方法。
_ 常に最新版を使用する事で解決できます。この記事の記載時には動きませんでしたが
_ その後 再度ダウンロードし動く様になりました。


感想:
新しい開発環境の設定がいまいち解らない。何故 arduino-esp32.git でエラーがでるのだろうか。
今回の方法で Lチカは動くが OLED 接続での動作はしない。、、これは後に解決する。
.
espressif / arduino-esp32 於ける comment は 12月12現在で 108 の comment がある。
まだ開発途上なので 動かない物が多いようで 1つ1つ動作を確認し動かない物は保留した方が
いいようだ。ESP8266 で優秀なライブラリーはESP8266 の内部を熟知して高速化した物もあり
ESP32 ではエラーがでて使用できない。


 

Written by macsbug

12月 9, 2016 at 10:48 am

カテゴリー: ESP32, ESP8266