macsbug

Archive for 9月 2016

VL6180X distance sensor in ESP8266

leave a comment »

VL6180X 距離センサーを ESP8266 で動かす。          2016.09.25

機能:最大 60cm までの距離を mm単位で表示します。
構成:OLED + WeMos D1 mini Pro + VL6180X。
_  I2C接続で OLED – D1 mini – VL6180X は 4ピンソケット で接続。
_  I2C は ソケット接続すると 他の I2C も簡単に交換でき便利です。



 

VL6180X 近距離センサーのお話:
伊仏合弁 STMicroelectronics社の製品で赤外光が対象物で反射し戻るまでの
時間を測定する高精度の環境光/近接センサーです。0~60cmまで計測可能。
分解能は1mm。精度は100mmで3%。応答速度は 30ms。
精度考察:8bitセンサーで 精度0.25 で一般的基準の0.5をクリアー。
今回のスケッチは 765mm まで表示します。

スマートフォンやタブレット端末、家庭用ゲーム機のコントローラー、
家電機器、産業機器、自動車ロボットなどに使用されています。
2個使用する事により ジェスチャー機能も可能です。

VL53L0X のお話:
2016.06.10 に発売され 最大2mまでの絶対距離(単位:mm)を30ms以内に測定。
Arduino用モジュールも販売されています。


 

準備:費用合計:1582円。(低価格のOLEDで1466円)

No Nomen  Link Price Memo
1 VL6180X Board VL6180X Board 718円  ebay
2 WeMos D1 mini WeMos D1 mini 342円 $3.39
3 OLED 128 x 64 OLED 128 x 64 522円 $4.02
4 Resistor 10KΩ  –  –  2個
5 4ピンコネクター  –  –  1個
6 VL6180X Library vl6180x-arduino  –  pololu
7 OLED Library esp8266-oled-ssd1306  –  squix78

 

部品の詳細:購入先と価格。

No Nomen  Link Price Memo
1 VL6180X Board VL6180X Board:ebay  718円 ebay 4個 $28.45 ,2872円
VL6180   Board VL6180   Board:eray 1543円 1299 + 244:未調査
VL6180   Board VL6180   Board:ebay 1587円 少し高い:未調査
VL6180X Board Strawberry Linux 1580円 1200 + 380:取り付け安い
VL6180X Board SWITCHSCIENCE 1694円 1544 + 150:2.4倍 高い
VL6180X Board 朱雀技研工房ストア 1752円 1532 + 250:2.4倍 高い
2 D1 mini Pro D1 mini Pro  683円 $6.76:WeMos,16MB Flash
3 OLED 128 x 64 OLED 128 x 64  406円 $4.02:低価格:未調査
OLEDの端子配列は、VCC, GND, SCL, SDA が望ましい。
今回の VL6180X ( GY6180 ) と同一配列。
注意:電源の端子配列が逆の GND, VCC, SCL, SDA の物がある。

 

配線:
1. D1 mini と OLED は端子を重ねました。VL6180Xはコネクターで接続します。
2. D7(13)(SCL), D6(12)(SDA) 端子は 10KΩ チップ部品でプルアップします。
3. D8 は GND へ配線します。


 

技適 ( TELEC ) を不要にする方法:

今回の電子工作は電波は使用しませんので 電波の出力を停止しました。
WeMos D1 mini は TELEC の記載はありません。
この命令により 電波を出力しない場合 技適は適用しないと聞いています。
これによりESP-WROOM-02 TELEC を使用せずともは日本国内で使用できると
聞いています。さらに電波を出力しない為に省電力にする事ができます。
WiFi.mode(WIFI_OFF);


 

VL6180X:

参考:
Pololu:VL6180X Time-of-Flight Distance Sensor Carrier
_   with Voltage Regulator, 60cm max:基板の基本が書かれている。

VL6180X:Proximity and ambient light sensing (ALS) module

AN4545 Application note:VL6180X basic ranging application note:ICの基本。
_ このマニュアルは良く読む必要がある。

DT0030 Design tip:VL6180X ambient light sensing


 

配線図:
_ VL6180X ( GY6180 ) の基板(上記基板画像)を調べ 以下の図面を作成しました。
_ 基本は Polou の VL6180X ですが  GY6180 は 小型化された基板です。
_   Polou の配線図はありますが VL6180X ( GY6180 ) は未公開の様です。
_ VL6180X は 2.8V 動作です。
_ LDO ( 540L )は 2.8VOUTPUT。
_ 入力の SCL, SDA は 3.3V。
_ Transistor ( 702V ) でレベル変換し 出力は 2.8V。


 

校正:以下に校正の要領が記載されています。
UM1651 User manual:
_ VL6180X premium evaluation kit (EVK) hardware user manual


 

感想:
VL6180X:
距離:
_  scalingで x3 765 mm まで計算可能ですが実測では 561 mm まででした。
_ マニュルアルには他の値も書いてある様ですがライブラリは 1,2,3 が設定。
_ 最大10cm までの情報もありますが 今回の条件では 56cm まで可能でした。
_ データーの取得時間は 30ms と速い。この応答速度は重要ですね。
アベレージング:
_ データーの変動を軽減する為に簡単なアベレージングを加えました。
_ 効果は 1/ root ( 回数 ) です。例えば 16回ならば 4倍の精度になります。
_ この場合 速度が低下しますので 必要なければ取り除いてください。
ミスカウント:
_ 561 mm以上の距離で条件によりミスカウントする時がある。
_ ダブルバウンスも含め分析が必要である事と対策が必要かと思います。
何に使うか:
_ 今回は距離を表示するのみでケースも作りませんでした。
_ このセンサーは奥が深いので驚いています。

VL53L0X:最大 2m まで測定でき AliExpress や ebay で販売しています。
_ 応答速度が速く(30ms)ドローン等に最適と思われます。
_ 今回のVL6180X と同じく小型化したものがあり 現在ESP8266 では
_ Wdt error (1, 6) がでて動作せず 調査中です。
_ AliExpress や ebay での小型化した基板(VL6180XとVL53L0X)を比較した所
_ パターンは同じでした。違いは VL53L0Xでの LDO は 662K で 3.3V出力の
_ ものです。VL53L0X は 2.8V 仕様ですので 疑問があり中断しています。


スケッチ:


/* VL6180X. The sensor uses 1x scaling by default.
scaling to 2x or 3x : 2mm or 3 mm .*/

#include <ESP8266WiFi.h>
#include <Wire.h>
#include "SSD1306.h"
SSD1306 display(0x3c, 12, 13);  // SDA, SCL
#include <VL6180X.h>
#define scaling 3 // scaling factors are 1, 2, or 3.
VL6180X sensor;

void setup(){
  WiFi.mode(WIFI_OFF);
  Wire.begin(12, 13);  // SDA, SCL
  display.init();
  display.flipScreenVertically();
  display.displayOn();
  display.clear();
  sensor.init();
  sensor.configureDefault();
  sensor.setScaling(scaling);
  sensor.setTimeout(500);
}

void loop(){
  int d = 0;
  for ( int i = 0; i< 16; i++ ){   // accuracy=1/root(N)
    d = d + sensor.readRangeSingleMillimeters();
  }
  d = d / 16;
  String mm = String(d) + " mm";
  if (sensor.timeoutOccurred()){mm = " Timeout";}
  if (d == 255 * scaling){ mm = " over";}
  display.clear();
  display.setFont(ArialMT_Plain_16);
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.drawString(0,  0, "VL6180X  scale " + String(scaling));
  display.setTextAlignment(TEXT_ALIGN_RIGHT);
  display.setFont(ArialMT_Plain_24);
  display.drawString(120, 32, mm);
  display.display();
}

Written by macsbug

9月 25, 2016 at 12:10 am

カテゴリー: ESP8266

YEN rate displayed in Pythonista3

with 3 comments

円レートを iPad に表示するアプリを Pythonista 3 で作りました。      2016.09.24

1ドルを円に換算した値を表示し ” 101.1 ” と音声で知らせ、数値の変化をグラフ表示します。



 

海外(ebay)の部品を購入する時にブラウザーで円レートを見て購入しています。
毎回 アクセスするのは面倒ですので iPad に表示するアプリを作りました。
円高のタイミングに購入し 安くできると いいかなと思っています。


 

機能:
1、1ドルに対する現在の円レートを表示し、金額を「音声」で知らせてくれます。
2、1日、5日、3ヶ月、1年、2年、5年間のグラフを順次表示します。
3、間隔を置いてリアルタイムに表示します。


 


感想:
たいしたソフトではありませんが自分で作った物が動くと楽しいものです。
基本は「為替レート変換君」のデーター取得先を使用しています。
リンク先のデーターをテキストフィールドやウエブビューに表示するものです。
音声で金額を教えてくれるのはチョットいい感じです。

 


レイアウト:Script with UI での配置です。


追記:2018.02.17
円レートを表示しません:以前からですが 2018年2月17日 現在、円レートを表示しません。
_ ブラウザーで 以下の URL 「為替レート変換君」は 1ドル何円かは表示しますが
_ ドルチャートは表示されていません。
_ http://fx.monegle.com/fx.php?rate=1&q=USD
_ よって iPad では 2018年2月17日 現在、ドルチャートの表示が無い為に
_ 円レートを表示しません。
_ 理由は Yahoo Finance からデータが取得できない為です。
_ Yahoo iCharts API は 段階的に廃止されているらしく 何回もAPIが更新されては廃止され
_ の繰りしている様です。
_ その URL は setup の url です。よって 他の方法を模索する事になるかと思います。
_ この件は ネットで検索すると幾つか記事がでてきます。


スクリプト:


import requests
import ui
import time
import speech
import sound

def web(url):
	re = requests.get('http://fx.monegle.com/fx.php?rate=1&q=USD')
	d1 = str(re.text)
	d2 = d1.find('Bid:')
	d3 = d1[d2+4:d2+4+8]
	v['textfield1'].text = str(round(float(d3),2))
	sound.play_effect('Ding_3')
	speech.say(str(round(float(d3),1)))
	for i in range(6):
		v['textfield2'].text = str(url[i][47:49]).upper()
		v['webview1'].load_url(url[i])
		time.sleep(5)
	v['textfield2'].text = str(url[2][47:49]).upper()
	v['webview1'].load_url(url[2])

# setup
url = ['http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=1d&l=on&z=m&a=v&p=s&q=1',
       'http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=5d&l=on&z=m&a=v&p=s&q=1',
       'http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=3m&l=on&z=m&a=v&p=s&q=1',
       'http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=1y&l=on&z=m&a=v&p=s&q=1',
       'http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=2y&l=on&z=m&a=v&p=s&q=1',
       'http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=5y&l=on&z=m&a=v&p=s&q=1',
       'http://ichart.finance.yahoo.com/z?s=USDJPY=X&t=3y&l=on&z=m&a=v&p=s&q=1']
v = ui.load_view('_en')
v.background_color = '#d3dad7'
v.present('sheet') 

# main
while True:
	web(url)
	time.sleep(60)


Written by macsbug

9月 24, 2016 at 7:50 am

カテゴリー: Apple, Pythonista

WEMOS D1 mini Pro

leave a comment »

新製品情報:WEMOS D1 mini Pro                    2016.09.01



仕様:WEMOS D1 mini Pro
– 16M bytes external antenna connector ESP8266 WIFI Internet of Things development board
1. USB UARTは CH340GからCP2104を採用。
2. FLASHを4MBから16MBにアップ。
3. AntennaをPCBからceramic antennaとExternal antennaに変更。
4. D1 miniと同じ大きさで超小型を継承。
5. LDOの変更はなし。
6. TELECはなし。
7. Price : $ 6.76 ($5.00 + $1.76 )( 2016.09.01 )


経過:
WeMos Electronic からのみの販売数が低下している中での新製品。
WeMos Electronic 単独での D1 mini の販売は 8月に総計1万個の予想があった。
WEMOS D1 mini Pro は 2016年9月1日より販売が開始された。
USB接続の安定性向上,FLASH Memoryの容量アップ,アンテナの改善がされている。


販売分析:WeMos Electronics
WeMos D1 mini は AliExpres で WeMos Electronics のみの販売であった。
世界一の販売数と伸び率を誇り 購入者の要求に合った製品である事を示している。
_ 超小型、端子配列の利便性、拡張ボード、低価格。
_ 特に価格は 2016年9月1日現在 346円で購入できる最強の製品となっている。
_ 低価格は海外での評判が良く気楽に多数の電子工作ができる事になる。
2016年7月から AliExpress や ebay で他の業者から販売が開始された。
他業者から販売された時点より WeMos Electronics のみからの販売数は低下を始めた。
他業者の販売数を調査していない為、総数は分析できていません。

WeMos Electronic:WeMos D1 mini の販売台数。2016.03.29 〜 2016.09.01

WeMos Electronic:拡張ボードの販売台数。2016.03.29 〜 2016.09.01


感想:
WEMOS D1 mini Pro:
_ WeMosは 販売戦略で最強となる あの手は打ってきませんでした。
_ FLASH メモリーの増加による効果は不勉強の為 詳細は省きました。
_ 日本国内では規制で自由度は無いですが 海外では自由度が大きく
_  外部アンテナなどは便利でしょうね。
_  海外での実験例:ESP8266 Wifi Range/Distance Tests
_   ESP8266+Ext. Antenna = 479m。
_   ESP8266+PCB Antenna = 366m
_ 弱点は 負荷を多くした場合 LDO の発熱が大きい事。
_  D1 mini はクラッシュしない程度だが 容量不足を示している。
_  この改善は実施していない。
_  この超小型の大きさにあった拡張ボードを使用する分には問題はない。
IOT:IOTの1つの側面として1個では効果が少なく楽しみも少なくなる。
_  低価格で多数作れる事により効果が発揮できる面がある。
_  D1 min1 の価格は国内同等品に対し約 1/7 という低価格である。


Written by macsbug

9月 1, 2016 at 1:00 am

カテゴリー: ESP8266