大和通信の技術力

2018年4月から組込み新人(2017入社)の実習記録です。 これからのIoT/AI開発に向け日々勉強の毎日。 ハード/ソフト開発者をめざす奮闘記です。

2016年12月

DeepSleepについての検証(タイマーからの復帰)

年内最後のプロジェクト活動ですが、気になっていた課題を片付けてしまおうと思います。

試作機を本社に設置して様子を見ていくうちに、通信の失敗時のリカバリー処理がうまく行かない事で動作が不安定になっているようだと気が付いていましたが、中々時間が取れずにいましたので、このタイミングで整理して対策したいと思います。

まずは、通信が失敗した場合の処置についてNETで調べてみると、下記のスケッチが一般的なリトライ方法のようです。

   ESP.deepSleep(2 * 1000 * 1000); //接続に失敗した場合deepSleepを2秒後に再起動
 ※この時に、ESPのIO16とResetを接続することが必要なようです。

テスト環境をつくりDeepSleepの時の動きを調べてみ用と思います。

DeepSleepに入るときにESPの「IO16」を「HIGH」にしてスリープをはじめ、目覚めるときはIO16を「LOW」にする事が分かりました。
IO16を観測動画

なるほど、この動作であれば確かに、IO16とRESETを接続すればリセットして立ち上がることができますね。

上記の方法を使い通信に失敗した場合のリカバリー処理を実装していきたいと思います。

まず、ESPのIO16とResetピンを未接続で動作テストをしてみたところ、

   ・人感センサーでリセットできる。
   ・DeepSleepのタイマーからはリセットできない。

IO16-Reset間を未接続の場合
人感センサーでリセットは正常。 
IO16 OPEN
 
人感でリセット

DeepSleepのタイマーからのリセットは失敗
io16_rst未接続


  

次にDeepSleepからタイマーでリセットさせるために、
ESPのIO16とResetピンを接続(ショート)させてテストしてみます。
BlogPaint

この状態ですと、タイマーからのリセットがうまく行きますが、
人感センサーからのリセット動作に失敗します
その様子を動画にしています。

 
信号を確認するとリセット信号(電圧)が落ちていない事が確認できます。
IO16_RST接続波形
リセット電圧が2.1Vまでしか下がっていないので
リセットがうまくかからないようです。

対策としてIO16とRSTピンの間に33Ωを入れてみると
安定してリセットするようになりました。
BlogPaint

IO16_33Ω_RST接続



 IO16 - RESET間の抵抗値は値を変えてテストしましたが、33Ωが今回の環境では一番安定しているようです
 
参考(抵抗値を変更ていテストした結果)

 0Ω  タイマー復帰せず(リセットがうまくかからない)
 20Ω  リセット電圧1.6V(正常にリセット)   
 50Ω リセット電圧1.1V(正常にリセット)
 75Ω NG(リセット電圧が2V程度までしか下がらず不安定)
 
来年2月末の完成を目指しケース設計とプログラムの完成を急ぎたいと思います。 

【2017/03/11 追記】 
当初は、上記の方法で簡易的に抵抗一本でリセットとIO16を接続していましたが、外的ノイズ(静電気など)の影響がありましたので、下記の回路に変更しました。
bandicam 2017-03-11 19-30-49-680
 

LEDの色についての要望がありましたので検討しています。

本社に設置している試作機で、貴重な意見をいただきましたので検討を始めています。

 ご意見
  ・LEDの色についてですが、ミドリ、キイ、アカの信号カラーの方が理解しやすいのでは!

 今搭載しているLEDはR G B(赤、緑、青)ですので、組み合わせると確かに黄色も発色できるはずですが、これが意外に難しく結構な難題です。

3連休中ですが、休日出勤をして検討した結果、マイコン内蔵のLEDに変える事で実現できました。

I-07915

I-08411
これを使い黄色を再現できました。

IMG_20161225_201955[1]

 


★ほかにも、ケースについての意見もいただきましたので、順次検討して行きたいと思います。

 

ガチャガチャボールに入れてみると。

今日は少しケースを考えてみました。

_2016-Dec-18_11-21-42AM-000_CustomizedView3005834027
ガチャガチャボール(65mm)に何とか収まりました。 
単3電池では、全く無理でしたので、単4電池に変えて何とか押し込むことができそうです。
ボール台はアクリルにしてみました。
 

特別バージョンの試作機完成!!

先日製作しました、試作機は順調に稼働していて前を通るたびに天気を教えてくれています。

さて、さらに数台をプロジェクトメンバーで製作して、年末/年始に使用して新たな機能、ケースを創造しようと思っています。


トップバッターは、ソフト担当の平澤くんの製作です。
昨晩遅くまで仕事をしていて、今日(12/15)は休暇の予定でしたが、返上してもらって製作してもらいました。

今回のプロジェクトでESPやPIC AVR などのマイコンは初体験は初めての体験となります。
ブレットボードで少し使ってもらいましたが、改めて本チャンの環境でプログラム開発をしてもらうため、USBシリアル変換や、電源をUSB供給or電池選択式など、開発に特化した仕様にしています。

特別仕様

 1.USBシリアル変換回路内蔵(ESP-WROOM-02モジュールの裏側にSMD部品で実装しました)
1481753404399-21963368


 2.左に出ている電源ケーブルはUSBから本体に給電用になります。

1481753447723433346636
リセット/IO0のスイッチも装備
このはんだは私(山口)が昨晩夜なべして製作してきました。
写真ではわかりませんが、TXD/RXDのLEDの方向を間違たため光りません。
お恥ずかしい。(確認はずですが・・・。)

仕様はこのくらいにして、本題の製作です。

彼は、はんだ付けの経験は、あるものの、数十年ぶりだそうですので、少し不安があるようでしたが、手慣れた様子で、約2時間で完成しました。
 
1481762100572-923590653

先日のブログ記事の製作手順を参考に製作中!
1481764926378551376646
約2時間ほどで完成しました。

1481776686936-1437957584
サンプルスケッチを書込み動作を確認。
一発動作しました。
素晴らしい!!

これで、開発をしてもらう環境がそろいました。

平澤君よろしくお願いしますね。
 

試作機を仮設置しました。

試作機の組立が終わり、通電して動作テストをしていきます。

まずは、USBシリアル変換モジュール を接続してATコマンドで反応を見てみます。

1481668437630441898549

FWのバージョンが正常に返ってきました。
SDK bersion: 1.5.1 
ESP_Ver

動作はしているようですので、ArduinoIDEを使いサンプルプログラムも正常に書込みができました。

ここまでで、基板の設計でミスが無くハード的には正常動作が確認出来ました。
良かったです。
※基板のシルク印刷に一部スペルミスがありましたが、あまりに恥ずかしい内容ですので非公開とさせていただきます。

さて、せっかくできましたので、本社・事務所のタイムレコーダー前に仮設置して、みんなの意見をもらうともいます。
IMG_20161214_065920

簡単な説明文を一緒に置いておきました。

 

今回入れたプログラム(スケッチ)の動作は以下のようにふるまいます

人が近づくと、WIFI経由インターネットで天気情報を採取し9時間のあいだの降水確率をもとにLEDを点灯させ
数秒間で消えて、待機状態に戻ります。

 ※LEDの色は
   青色・・・降水確率が0%なら傘の必要なし
   赤色・・・1mm以上なら傘が必要
   緑色・・・1mm未満なら傘の必要性は自己判断
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

記事検索
最新コメント