BlueNinja BSPの新バージョン”RELEASE_160615”を公開

BlueNinjaのソフトの中の人、組み込みソフトウェアエンジニアの奥原です。

今回はBlueNinjaの開発環境、BlueNinja BSPのバージョンアップのお知らせです。

前バージョン(RELEASE_151021)との違いは

対応するTZ10xx BSP(TOSHIBA.TZ10XX_DFP)のバージョンにVer. 1.39.0が追加になりました。
Ver.1.39.0では、BluetoothLEのプロトコルスタックBLELibでセントラルデバイスとして動作させることができるようになりました。
HyouRowGanのようなBLEペリフェラルからの接続待受が可能になります。

更新手順は

BlueNinjaのサイトの「開発環境アップデート手順」を参照ください。
今回のバージョンでは、更新処理を簡単に行えるようにバッチファイルを用意しました。

セントラルデバイスとしての動かし方は

BlueNinjaサイトの事例紹介「BlueNinjaをBLEセントラルにする」を参考にしてください。
GitHubのリポジトリでソースコードも公開していますのでプログラム作成の参考になさってください。

「出発進行」の声でおもちゃの電車を動かそう!Nゲージを声でコントロール [Listnr開発者モード事例]

こんにちは。Listnrのアプリケーションソフトを担当している中村です。
ListnrはWi-Fi経由のインターネット接続機能とマイクを搭載したデバイスです。
乳児の声を録音し、その音声を解析サーバーにアップロードして、泣き、笑いといった感情を判断するという機能をご提供しています。

実は、この感情を判断する機能は、Listnrの活用例としてご提供しているもので、ベースの機能であるインターネット接続マイク機能をハックすることができるようになっています。具体的には、音声のアップロード先を自由に変えて、録音した音声を活用することが可能となっています。
今回は、その一例として、おもちゃの電車、Nゲージを声でコントロールできるようにし、運転士になった気分を味わえるようにしてみたいと思います。

システム構成

s 2016-04-12 12.56.59

大まかな流れは以下のようになります。

  1. Raspberry PiでListnrからの音声アップロードを受け付けるサーバーを構築する
    • Raspberry Piで受け取った音声ファイルをIBM BluemixのSpeech to Textサービスに送り、認識結果のテキストを受け取る
  2. Raspberry PiでNゲージ線路の電圧を制御して電車の走行方向とスピードを操作できるようにする
  3. Listnrの音声アップロード先をRaspberry Piに設定する

1. Raspberry PiでListnrからの音声アップロードを受け付けるサーバーを構築する

Raspberry Piに Raspbian をインストールします。インストールは INSTALLING OPERATING SYSTEM IMAGES などを参考に行ってください。

インストールができたら、Raspberry Pi上で作業します。キーボードとディスプレイをRaspberry Piに繋いで作業していただいてもよいですし、sshでRaspberry Piにログインして作業していただいても構いません。
Raspbianのデフォルトのユーザー名は pi で、パスワードは raspberry になっています。(参考: LINUX USERS

サンプルコードが以下にありますので、Raspberry Pi上にダウンロードします。
https://github.com/cerevo/listnr-server-sample-py

git clone https://github.com/cerevo/listnr-server-sample-py.git

ダウンロードできたら、speech_to_text_n_scale ディレクトリに移動します。

cd listnr-server-sample-py/speech_to_text_n_scale/

必要なライブラリをインストールします。

sudo pip install -r requirements.txt
sudo apt-get install flac

サーバーを起動します。

python server.py

以下の様なログが表示されれば起動されています。

Bottle v0.12.9 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:8080/
Hit Ctrl-C to quit.

一旦、Ctrl-C でサーバーを終了します。

IBM Bluemix Speech to Text サービスを利用できるようにする

ここで、音声ファイルのテキスト認識をするためのサービスを利用するため、IBM Bluemixのフリートライアルの申し込みを行います。
ちなみに、IBM Bluemixでは、テキスト認識だけでなく、音声合成や画像認識などいろいろ試せます。
Raspberry Piではなく、普段お使いのブラウザで申し込み作業を行ってください。

以下を開き、上部右側にある「登録」ボタンを押して、アカウント登録します。
Speech to Textの機能は無料トライアル終了後も1,000分/月まで無料で利用可能です(2016/04/11現在)。ただし、無料トライアル終了後に継続して利用するにはクレジットカードの登録が必要です。

https://console.ng.bluemix.net/

登録後、再度上記ページを開き、上部右側にある「ログイン」ボタンからログインします。
ログイン後にダッシュボードから、「サービスまたはAPIの使用」を押し、次の画面で「Speech To Text」を選択します。
右側の「サービスの追加」フォームで、以下のように入力して、「作成」ボタンを押します。

  • スペース: dev
  • アプリ: アンバインドのまま
  • サービス名: Speech To Text
  • 資格情報名: Credentials-1
  • 選択済みプラン: 標準

作成が完了したら、左側メニューから「サービス資格情報」を選択します。すると、passwordやusernameが表示されるはずです。
このpasswordやusernameをRaspberry Piでダウンロードしたサンプルプログラムの設定ファイルに書き込みます。
設定ファイルは、 listnr-server-sample-py/speech_to_text_n_scale/config.ini です。

vi config.ini
# ibm_bluemix_speech_to_text セクションのusername, passwordの部分に書き込んでください。

[ibm_bluemix_speech_to_text]
username=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
password=xxxxxxxxxxxx

サーバーを起動して、テストしてみます。まずはサーバーを起動します。

python server.py

別のターミナルを開き、サンプルプログラムのディレクトリ以下にあるサンプル音声のディレクトリに移動し、音声ファイルをアップロードしてみます。

cd listnr-server-sample-py
cd audio_sample
curl -H "Transfer-Encoding: chunked" -X POST http://localhost:8080/wave -F "file=@sample.r16;type=application/octet-stream"
# OK と表示されれば送信完了です。

サーバーを起動したターミナルを再度開き以下の用に表示されれば、テキスト認識成功です。

127.0.0.1 - - [08/Apr/2016 11:05:23] "POST /wave HTTP/1.1" 200 2
IBM Speech Recognition thinks you said こんにちは

2. Raspberry PiでNゲージ線路の電圧を制御して電車の走行方向とスピードを操作できるようにする

Raspberry PiとI2Cで接続できるモータードライバ DRV8830 を使って、ブレットボードなどで以下の様な回路を作ります。

s 2016-04-11 12.58.55

こうすることで、Raspberry Pi –(I2C)–> DRV8830 –> D.C フィーダー N –> Nゲージの線路 –> 電車 という風に接続され、Raspberry PiでNゲージ線路の電圧を制御して電車の走行方向とスピードを操作できるようになります。

Raspberry PiでI2Cを使えるようにします。

  • /boot/config.txt の dtparam=i2c_arm=on の行のコメントアウトを外します
  • /etc/modules に i2c-dev の行があるか確認します
  • reboot します
  • 再起動後、lsmod を実行して、i2c_bcm2708 と i2c_dev の行があることを確認します
    lsmod

    Module Size Used by
    cfg80211 407532 0
    rfkill 16036 1 cfg80211
    i2c_bcm2708 4920 0
    snd_bcm2835 19802 3
    snd_pcm 73474 1 snd_bcm2835
    snd_timer 18848 1 snd_pcm
    bcm2835_gpiomem 2860 0
    bcm2835_rng 1763 0
    snd 50779 9 snd_bcm2835,snd_timer,snd_pcm
    uio_pdrv_genirq 2944 0
    uio 7753 1 uio_pdrv_genirq
    i2c_dev 5671 0
    fuse 80630 3
    ipv6 340825 36

  • 必要なライブラリをインストールします
    sudo apt-get install python-smbus

Raspberry PiからI2CでDRV8830に指示を送るプログラムは i2c_motor_driver.py というファイルに書いてあります。上記の回路をテストするには、以下を実行してください。電車が動き始め、加速・減速し、その後逆方向に進むといった動作をすれば成功です。

python i2c_motor_driver.py

3. Listnrの音声アップロード先をRaspberry Piに設定する

Listnrの音声アップロード先は、専用アプリ(Android版, iOS版)から変更可能です。開発者向け情報ページの「Listnrの音声アップロード先サーバーを変更する」セクションを参考に変更を行います。
音声アップロード先URLは、 http://{Raspberry PiのIPアドレス}:8080/wave に設定します。
Raspberry PiのIPアドレスは ifconfig コマンドなどで確認してください。

運転士になってみる

以上の準備ができたら、Raspberry Pi上のサーバーを起動して、Listnrに声を聞かせて見ましょう。

python server.py

サンプルプログラムでは以下の様なコマンドを用意しています。変更するには、server.py を編集してください。
声を聞かせるときの注意として、Listnrは大きな音を検出したら録音を開始するため、コマンドをいきなり発声すると最初の部分を取りこぼしてしまいます。最初にListnrのマイクに息を吹きかけて風切り音を入力してからコマンドを言うと拾いやすくなります。

動作 コマンド
出発 出発進行, スタート, 発車, 出発
停車 止まれ, ストップ, 停車
折り返し バック, リバース, リターン, 折り返し
加速 加速, アップ, アクセル
減速 減速, ダウン, ブレーキ

ちなみに、社内で試したときは、音声認識の対象言語を英語にして、rightで出発、lightで停車という風に設定したところ、英語の発音練習大会に発展し大変盛り上がりました。rightが得意な人、lightが得意な人、両方きっちり発音できるネイティブの人という格付けまでされていました。コマンドの設定次第でいろいろと遊べるかもしれません。

まとめ

Listnrを使えば、Wi-Fi経由で音声を録音できるようになりますのでアイディア次第で様々な応用が可能だと思います。例えば、Raspberry Piではなく、インターネット上のレンタルサーバーに音声をアップロードして、認識した音声を元にSNSへ投稿するなどの応用例も実現可能かと思います。何かおもしろい応用例を思いつかれた場合や、実装された場合はぜひ教えてください。

ESP8266 SDK環境での開発に挑戦 Wi-FiでPWM制御(技適済みWi-Fiモジュール「ESP8266」で始めるIoT入門)

「ESP8266」で始めるIoT入門シリーズはこちらからお読みいただけます

IMGP1636
IMGP1602

前回に続き、SDKの解説です。
予告していたI2Sまでは、ハード的にはSRAMの追加が必要であったり、ソフト的にもかなり複雑なので、今回はPWMをスマホからコントロールする作例を説明します。

機能としてはArduino IDEでもできますが、SDKで試してみて、違いに慣れていただければと思います。

作例は簡単で実用的なものを用意しました。具体的には、スマホやPCでRGBの値をスライダーで設定、ESP8266がそれぞれの値を受信して、その値に応じてLEDを調光します。レーザー刻印したアクリル板を使って、調光式フォトスタンドを作成します。

・作成したファイル
前回のuserフォルダの
user_webserver.c
user_main.c
を変更しました。GitHubには念のためappファイダを丸ごといれてあります。
https://github.com/cerevo/techblog_ESP8266_8th
buildやESP8266への書き込みの手順は前回の記事と同じです。

・PWMの記述説明
software PWMのAPIが解説されていますので、2C-ESP8266__SDK__Programming Guide__EN_v1.3.0.pdfの7.4. PWM Relatedや、espressifサイトの[ESP8266] PWM Demo等( http://bbs.espressif.com/viewtopic.php?f=31&t=1378 )を参考にしてください。
まず、どのGPIOをPWMに割り当てるか設定します。
¥VM¥Share¥esp_iot_sdk_v1.5.2¥include¥eagle_soc.h
ファイルを参照しながら、PWM*にGPIO割り付けます。
pwm_init()で初期化します。
pwm_set_periodで周期設定、
pwm_get_dutyでH期間を設定します。
設定範囲は最小0から、最大:周期 * 1000 /45が設定値なので、1kHzの場合は、22222となります。Arduino IDEより、細かな設定が可能です。
pwm_startでpwm制御を開始します。周期はtimerが共通なので全PWM同じ設定となりますが、dutyは個別に設定可能なので明るさは各ch毎に制御できます。

さらにこれらを使った、user_light()関数が用意され便利に使用できます。
user_light()では、あらかじめPWM 5ch設定されており、PWM0-5はGPIOとモジュールpinの対応は以下になります。

ch GPIO pin num
PWM0 GPIO12 pin 4
PWM1 GPIO15 pin 6
PWM2 GPIO13 pin 5
PWM3 GPIO14 pin 3
PWM4 GPIO05 pin 14

周期1kHzでよければ
user_light_init()で初期化
user_light_restart();だけでpwm開始します。
明るさを変えるためにdutyを変えた場合は、その度に
pwm_start()する必要があります。
下記のように記述し、3chにLEDを繋ぐと同じタイミングで徐々に明るく光ります。

user_light_init();
user_light_restart();

for(;;){
num++;

if(num >= 22222){
num = 0;
}

user_light_set_duty(num, 0);
user_light_set_duty(num, 1);
user_light_set_duty(num, 2);
pwm_start();

os_delay_us(100);
}

・WebServer
user_webserver.cを参照ください。簡単に関数を説明します。
user_webserver_init関数
softAPの設定とブラウザからアクセスされるポートは80番ポートなので、80番ポートを受 信可能としてます。SERVER_SSL_ENABLE を定義すると無線LANにパスワードがかけれます(今はcerevo)

webserver_recv関数
TCPの80番ポートにアクセスされると、webserver_recv関数にコールバックされます。
SWITCH文でGETか、POSTの分岐があります。ブラウザからアクセスされた場合、GETメソッドなので先ほど記載したHTMLを返すようにしています。POSTの場合は、スライダーの値をURLエンコードする形でPOSTするように記載していますので、HTTPのボディ部のパースをしています。
・HTMLの記述
コード内ではわかりにくいので、HTML(ESP_SLIDER.html)をGitHubに用意しました。

https://github.com/cerevo/techblog_ESP8266_8th

コード上ではあくまで文字列として扱うので1行毎に””で囲うなどの加工が必要です。
コード上と比べてみてください。
注意点は、PCとESP8266がWi-FIに繋がるので、ESP8266から送信したHTMLに外部参照があると受信できません。そのため、JQeryなどは使えないことになります。
今回は、HTML5標準のスライダー機能を使ってブラウザ上のUIを表現しています。3つのスライダーを用意して0−1023で可変し、ESP8266にPOSTするときは、httpのホディ部に silder1 = xx & silder2 = xx & silder3 = xx、のように入ります。この方式をURLエンコード方式といいます。

シリアルでも通信内容を出力しているので、動作時にシリアルモニターで確認ください。
pict02
pict03

・簡単な処理の流れ
主な処理は、user_webserver.cで行っています。また、サンプルコード流用のため、使っていない機能もありますのでご了承ください。

はじめに、スマートフォンからESP8266にWi-Fi接続してください。接続情報は以下の通りです。
SSID:ESP_Cerevo
PASSSWORD:なし

その後、URL:192.168.4.1にアクセスするとESP8266が上述のHTMLを出力し、ブラウザがGETします。ブラウザのスライダーの値に変化があった場合、値を読み込み、ESP8266に一続きの文字列としてPOSTします。ESP8266は”&”をキーに文字列を解釈して分離し、slider*numに数値として格納します。
slider*num範囲は0−1024なので、dutyの範囲の0−22222に対応するよう22倍します。
pwm_set_duty(silder*_num, PWM_CHANNEL);で、duty 3ch分設定し、
pwm_start();で調光します。

user_main.cでは、
user_webserver_init()の呼び出しと、
pwmの初期化だけ行ってします。
user_light_init();
pwm_set_duty(10000, 0);

・注意点
LEDを3つ接続するとWi-Fiの消費電流に加えて多くの電流が流れるため、LDOを外付けしててもUSBバスパワーの500mAを超えてしまう可能性と、ESP8266全体のIOに流せる電流値を超えてしまう場合があります。まずはLED1個から試して、別電源か電池駆動にして3ch以上を試してください。

手元の作例では、3灯でUSBバスパワー+LDO3.3Vではリセットが掛かって動作しないこともありました。安定化電源3.3V使用時、定常的に3灯MAXで130mA程度流れていました。参考にしてピークやLEDの制限抵抗や電源設計してください。
pict04

・作例
冒頭は、娘が母親のためにデザインしたフォトフレームを自分が具現化したものです。
透明プラ板やアクリルに、レーザーカッターで刻印してライトを当てると刻印が浮かび上がるので、お手軽に楽しめます。カードゲームのお気に入りのキャラクタを飾ってエンブレムを刻印して、スマートフォンでパーソナルカラーを調光するなどもできるかと思います。
回路は単純にESPにLEDをつなぐだけですが、LEDを複数点灯する場合は、デジタルトランジスタなどをポートに追加して電流を流せるようにと、全体の電流仕様を満たす電源構成にしてください。電子工作用の汎用的なLEDであれば、単三電池2本でも3灯くらいは問題ないかと思います。

スター付き画像

pict05

スマートアラーム cloudiss を myThings の各種トリガーから鳴らす

cloudiss

はじめに

弊社ではcloudissという大音量の目覚ましアラームを製造・販売しております。目覚まし、というコンセプトでの製品ではありますが、発売後の社内からは「遠方にいる通知をなかなか見ない人などに、ポケベルのように鳴る機能がほしい」という声がちらほら聞こえました。実際、展示会等でアメリカにいる宣伝チームからの相談を、東京にいる開発チームに伝える場面で使えるといいねという話も聞いています。アメリカの昼は日本の夜なので、現地で問題がない限り東京の開発チームはできれば寝ていたいわけです。

上記以外にも、音量が大きめなので、気付いてほしいちょっとした通知に使えるかもしれません。昨年末のアドベントカレンダーに投稿した内容を利用し、簡易ではありますが、そのような場面にも使えるような仕組みを考えました。Yahoo! JAPANのmyThingsをトリガーとしてcloudissのブザーを鳴らします。

準備

用意するもの

  • cloudiss
  • Intel Edison
  • Yahoo! JAPANのアカウント (myThingsの利用のため)
  • IDCFクラウドのアカウント (myThingsトリガーの受け皿のため)

通信のおおまかな流れは下記の図を参照ください。トリガーが発生するとmyThingsサーバが反応し、IDCFクラウドの仮想マシンに通知します。仮想マシンはcloudissのそばにいるEdisonと接続しているので、トリガーに合わせたアクションを実施するようEdisonに知らせます。Edisonはその通知によってBLE通信を行い、cloudissを鳴らす、という仕組みです。

cloudissは基本的にあらかじめ鳴動時刻を設定して使うものですが、今回はトリガーを受けたらすぐに鳴ってほしいのでブザー音確認モードで代用します。

動作の流れを描いた図

IDCFクラウド

myThingsのトリガーの受け皿として、IDCFクラウドの仮想マシンを使用します。IDCフロンティアさんの用意している手順書に従って、仮想マシンを用意します。

Edison

IDCFクラウドの待ち受けとBLEの通信を、Node.jsを使って行います。cloudissはBLEのみの通信なので、インターネットに直接接続し通信することはできません。インターネットとBLEとの橋渡しとして、Edisonに待機してもらいます。

Edisonは各種Linuxディストリビューションがありますが、いずれもNode.jsはバージョンがかなり古いので、ndenvを使って新しいバージョンを利用できるようにします。ndenvの設定まではQiitaのこの記事を参照ください。

Edisonは”x86で動くLinux”にあたるので、Node.jsが配布しているビルド済みバイナリがなんとそのまま動きます。便利ですね。

Node.jsのコード部分はGitHubを参照ください。BLE対応でnobleが、IDCFクラウドとの通信でMeshbluがそれぞれ動いています。cloudissのサービス・キャラクタリスティックの詳細は、近日中に公開をできればと考えております。

myThingsのトリガー

myThingsに登録されているものならなんでもトリガーになります。この記事では、せっかくなので弊社の製品Hackeyを使います。Hackeyにささっているカギをひねると、cloudissのブザーが鳴ります。

動作

この場合は、Hackeyのカギをひねったあとおおよそ1分後にブザーが鳴ります。インターネット経由なので若干の遅れはありますが、実用の範囲内ではないでしょうか。

最後に

今回の例ではトリガーにHackeyを使用しましたが、myThingsはいろいろなWebサービスをトリガーにできます。connpassならイベントがあったら強くブザーを鳴らしてできるだけ早く参加枠を確保するとか、ヤフオク!なら特定のキーワードを含む商品の出品があったときとか、人に知らせて動く必要があるタイミングでの通知に使えそうです。

myThingsの15分に1回ルール

IDCFクラウドに限らず、myThingsのトリガーは指定した時間または15分おきの動作となります。時間指定を行った場合はその時間までに、未指定の場合は15分おきにトリガーとなる動作が起こったかどうかを確認し、起こっていれば対応したアクションを実施します。つまり、時間未指定の場合は、トリガーの発生したタイミングによってはアクションの実施まで15分弱の間隔が空くことになります。

myThingsのチャンネル一覧とトリガーを見るに、リアルタイムを要求されそうなものはそれほど多くないと感じました。位置情報トリガーは、移動中にひっかかった場合、というよりは自宅や職場などの(移動していない)落ち着いた場所で使うためのものと読めます。リアルタイムで急ぐよりも、そこそこの頻度で確実にとりこぼしなく実行するための設計、そしてこのちょっと便利になる仕組みでかえって急かされることのないようにYahoo! JAPANは考えているのだろうと思いました。

ESP8266 SDK環境での開発に挑戦(技適済みWi-Fiモジュール「ESP8266」で始めるIoT入門)

 「ESP8266」で始めるIoT入門シリーズはこちらからお読みいただけます
 IMGP9683
「俺はガ○マのために働いている。完璧な世界を作るために!」と息子に宣言してから一ヶ月以上経ちました。
某ヒーロー番組で弊社入居ビルが敵勢力に支配された為なのですが、一向に主人公が助けに来てくれません……。
さて、ESP8266の記事の続きです。
これまではArduino IDE、Luaと、導入しやすい開発環境の紹介をしてきましたが、CPUの性能をより発揮するためには、純正SDKでの開発環境が必要になります。
今回は、espressifが用意しているSDKの環境構築に挑戦します。firmwareの書き込みも専用ツールを使い、Lチカをビルドして書き込むところまで記載し、次回はI2Sでの音声再生など、より高度なことに挑戦したいと思います。
できる方はこの記事を読まなくても既にやられていると思うので、比較的導入しやすいWindows環境でのインストールについて説明します。Macでも、bootcampでWindowsを使っている場合は同じです。
以下の5つのファイルをダウンロードします。
開発環境込みのLinuxのdiskイメージが開発元で用意されているので、
VirtualBoxの仮想環境でSDKを動作させます。
A)必要なファイル
     1)VirtualBox
     2)VirtualBoxのdiskイメージ
     ESP8266_lubuntu_20141021.ova
     3)IOT_SDK
   現状最新と思われるV1.5.2
  4)LED BLINK Sample
   user_main.c
   5)ESP_DOWNLOAD_TOOL_V2.4
1)は、OSに合ったものをダウンロードして下さい。
2)は、開発元公式ツールなのですが、baidu cloudにupされています。手順がやや煩雑ですが、baiduかQQアカウントを作ってダウンロードしてください。
3)4)はGitHubからダウンロードしてください。
B)SDK環境のインストール
1)Dドライブを用意します。
パーティションを区切るか、USBメモリなどをDドライブに割り当てても可能です。
 Dドライブの中にVMフォルダを作って下さい。
 D:¥VM\Share
2)VirtualBOXをインストールして下さい。
 詳細は割愛します。
3)環境設定のデフォルトの仮想マシンフォルダーを設定
 1)のD:¥DMを選んでください
SnapCrab_NoName_2016-2-25_20-50-47_No-00
SnapCrab_NoName_2016-2-25_21-9-7_No-00
4)イメージのインポート
 フォイル>仮想アプライアンスのインポートで
   ESP8266_lubuntu_20141021.ova
 を選択してインポートして下さい。
pict03
pict03
pict05
pict06
VMフォルダに、vboxとvmdkファイルがコピーされる
pict07
ESP_Lubuntuの設定で
pict07
共有フォルダーにD:\VM\Shareを設定します
pict09

Windows上で

D:\VM\ShareフォルダにSDKをコピーします。
pict10
SDKのappフォルダに、
D:\VM\Share\esp_iot_sdk_v1.5.2\examples\IoT_Demo
の中身を
D:\VM\Share\esp_iot_sdk_v1.5.2\app
にコピーします。
pict11
pict200
さらに、
D:\VM\Share\esp_iot_sdk_v1.5.2\app\user
の”user_main.c”を
4)のファイルと差し替えます。
 pict13
5)ESP8266_lubuntuを起動する
pict20
user name : “ESP8266”, password : “espressif”.です
起動後画面。
pict21
LXTerminalを起動して、
“./mount.sh”と入力し、Enter
pict22
passwordを聞かれるので、”espressif”と入力し、Enter
pict23
フォルダがWindowsと共有される。
pict24
”cd /home/esp8266/Share/esp_iot_sdk_v1.5.2/app”と入力し、Enter。
appのフォルダに移動する。
pict24
キーボードの割り当てが異なるので
” _ “は、shift + ” – “、” = “は、” ^ ”キーを押すと入力できる。
./gen_misc.sh”と入力し、Enter.
STEP1: choose boot version (0=boot_V1.1, 1=boot_v1.2+, 2=none)     =>2
STEP2: choose bin generate (0=eagle,flash.bin+eagle.irom0text.bin, 1=user1.bin,2=user2.bin) =>0
STEP3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)  =>2
STEP4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)  =>0
STEP5:
 0= 512KB( 256KB+ 256KB)
 2=1024KB( 512KB+ 512KB)
 3=2048KB( 512KB+ 512KB)
 4=4096KB( 512KB+ 512KB)
 5=2048KB(1024KB+1024KB)
 6=4096KB(1024KB+1024KB)
    =>6
pict14
Compileされ、書き込み用のbinaryファイルが出力される。

pict15

binaryは、D:\VM\Share\esp_iot_sdk_v1.5.2\bin

に生成される。

pict16

Programing Gideは現状知る限り、Ver1.3が新しいようです。

SDKを解凍したdocumentの中にpdfファイルがあります。

http://bbs.espressif.com/viewtopic.php?f=46&t=919

6)Firmwareの書き込み

USBシリアル変換アダプタとCerevo ブレイクアウトボードの接続をしている前提で

技適済みWi-Fiモジュール「ESP8266」で始めるIoT入門(ブレイクアウトボード実装編)

WIndows上で

ESP_DOWNLOAD_TOOL_V2.3(ファイル名はV2.4だが、Windows表示はV2.3)を使って下図のような設定でESP8266に書き込みます。[START]をクリックして書き込み、FINISHが表示されれば書き込み完了。

pict30

ESP_DOWNLOAD_TOOLはWindows専用ツールなので Macではesptoolを使う必要があります。 Port12にLEDを繋ぐとLチカしました。

pict40

次回はSDK環境での作例を公開予定です。

それでは、完璧な世界(=会社の利益が出て、社員に還元される世界)のために仕事に戻ります!