2017年3月10日 星期五

LinkIt Smart 7688 Duo + Adafruit VL6180X Grove-LCD RGB Backlight 距離改變背光顏色

****注意 Arduino IDE 使用1.6.7***** 

  VL6180X LightSense技術是藉由測量光線被目標物體反射回來的時間提供精確的距離數據。傳統感測器只能回報反射訊號的強度,並無法提供準確的距離。與傳統紅外線感測器相比,意法半導體的FlightSense技術更具獨特優勢,包括測量距離更遠(測距與目標物體的反射率無直接關係),高幀率(frame rate)以及低功耗。
       VL6180X模組整合了FlightSense近距離感測器(proximity sensor)與環境光線感測器(ambient-light sensor,ALS),提供基本的手勢識別功能,簡化用戶的介面設計,並提升產品性能。而新產品可支援市場上多項創新應用,包括智慧型手機、平板電腦、遊戲控制系統,同時還能提升消費性電子和工業產品的性能。

 Grove-LCD  RGB Backlight 需要電源5V線才要自行加工


Adafruit VL6180X 依慣例Adafruit產品排針都要自己焊接




想進一步了解VL6180X 在這
http://www.st.com/en/imaging-and-photonics-solutions/vl6180x.html

Adafruit_VL6180X  libraries 下載

https://github.com/adafruit/Adafruit_VL6180X

Grove_LCD_RGB_Backlight   libraries 下載

https://github.com/Seeed-Studio/Grove_LCD_RGB_Backlight

     這程式碼是利用VL6180X 感測物體距離來改變背光的顏色,在超出規格255時背光為綠色當距離越來越近時背光逐漸改為紅色,這程式除了可顯示距離外還可用背光來警示。

開啟Arduino IDE 輸入以下程式然後上傳

#include <Wire.h>
#include "Adafruit_VL6180X.h"
#include "rgb_lcd.h"

rgb_lcd lcd;

Adafruit_VL6180X vl = Adafruit_VL6180X();

void setup() {

 lcd.begin(16, 2);     //LCM 初始化
  vl.begin();          //VL6180X 初始化
}

void loop() {

 float lux = vl.readLux(VL6180X_ALS_GAIN_5);  //照度計的增益調整

 uint8_t range = vl.readRange();

  int r = (255-(range));  //LCM 背光紅色的值來源為距離的反比
  int g = (range);        //LCM 背光綠色的值來源為距離的正比
  int b = (0);

lcd.setRGB(r,g, b);     //設定 LCM 背光

  lcd.setCursor(0,0);
  lcd.print("Lux: ");      //顯示目前照度
  lcd.print(lux);
  lcd.print("    ");

  lcd.setCursor(0,1);
  lcd.print("Range: ");     //顯示距離
  lcd.print(range);
  lcd.print("    ");

  delay(300);
}

超出偵測範圍時顯示距離255背光為綠色


透明塑膠袋也可以感應距離160mm 背光黃色



靠近一點距離149mm背光變成黃色


再靠近一點背光逐漸變紅27mm 會反光金屬也沒問題


完全貼近已經超出可偵測範圍會顯示16mm 背光變紅



沒有留言:

張貼留言