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 背光變紅



EVAL-ADICUP360 + EVAL-CN0338-ARDZ NDIR CO2 Gas Detector

   EVAL-CN0338-ARDZ NDIR Carbon Dioxide Gas Detector採 用 Arduino 相容Shield 尺寸設計,並與EVAL-ADICUP360 Arduino相容平台板對接。信號調整由AD8629和低雜訊放大ADA4528-1,以及集成可程式增益放大器、雙通道24位Σ-Δ型模數轉換器(ADC)和ARM Cortex-M3處理器的精密類比微控制器ADuCM360實現。

Non-Dispersion Infrared(NDIR)非分散性紅外線

   非分散紅外(NDIR)光譜儀常用用途檢測氣體和測量碳氧化物(例如一氧化碳和二氧化碳)的濃度。一個紅外光束穿過採樣腔,樣本中的各氣體組分吸收特定頻率的紅外線。 相應頻率的紅外線吸收量,便於確定該氣體組分的濃度。此所以以說這種技術是非分散的,是因為穿過採樣腔的波長未經預先濾波,光濾波器位於感測器之前 ,以便濾除選定氣體分子能夠吸收的波長之外的所有光線。

EVAL-CN0338-ARDZ 的運作原理圖


在這裡有詳細說明電路與NDIR技術。

http://www.analog.com/cn/analog-dialogue/articles/complete-gas-sensor-circuit-using-nondispersive-infrared.html

http://www.analog.com/en/design-center/reference-designs/hardware-reference-design/circuits-from-the-lab/CN0338.html#rd-description

 EVAL-CN0338-ARDZ




  EVAL-ADICUP360 跳線設定


 EVAL-CN0338-ARDZ 與 EVAL-ADICUP360 結合後。


注意這三條線都要插入


開啟ADuCM360-IDE



從 Git導入範例  Window → Perspective → Open Perspective → Other..


彈出視窗後 Git  →OK


選擇 Clone a Git repository


URL : https://github.com/analogdevicesinc/EVAL-ADICUP360.git   Next


Next


導入本機目錄使用預設值  Finish


展開 projects會列出目前Git上有的專案


按滑鼠左鍵選擇 Import Projects...


Next


這裡可勾選要載入的專案 Finish


等一段時間後 C/C++ 頁面就有從Git下載的專案


點選ADuCM360_deno_cn336 展開專案


按一下 槌子圖示


Run Background


Debug  Debug Configuratinos...


 按 Browse...


選擇 ADuCM360_demo_cn338 OK


按Scarch Project..


點選 ADuCM360_demo_cn0338.elf  OK


Apply  OK


按Debug 圖示


   按 Run  EVAL-ADICUP360 會開始執行 ,  EVAL-ADICUP360 在 Debug 下會把程式燒入,斷電後程式一樣在  EVAL-ADICUP360


開啟終端機 注意設定


終端機備妥後要按 Enter


在終端機 輸入 help 會顯示可用指令


在終端機輸入 run 會開始每秒偵測一次CO2


 在做偵測時燈泡會亮



參考資料:

https://wiki.analog.com/resources/eval/user-guides/eval-adicup360/reference_designs/demo_cn0338

2017年3月9日 星期四

EVAL-ADICUP360 開發板 安裝

EVAL-ADICUP360開發板

         Analog Devices EVAL-ADICUP360開發板的外型尺寸設計相容於Arduino UNO、Due及Digilent 的 Pmod介面。EVAL-ADICUP360的基板採用ADuCM360 ARM Cortex-M3處理器做為主要元件。
      EVAL-ADICUP360使用開放原始碼 Eclipse-based 互動式開發環境(IDE)。此平台包含硬體與軟體範例專案。範例專案以完整的生態系統為基礎,可協助使用者輕鬆設計原型或建立系統與解決方案。

ADUCM360 特色

   雙(24位元)ADC
   6個差分或12個單端輸入通道
  每個ADC都有可程式增益放大器(PGA)(1-128)
  靈活的輸入MUX,用於兩個ADC的輸入通道選擇
  用於外部參考連接的緩衝器
  可程式傳感器激勵電流源
  內部精密基準電壓
  單12位電壓輸出DAC
  NPN模式,用於4 mA至20 mA迴路應用



安裝步驟

 先到這裡下載 Analog device 整合好的 Eclipse IDE

https://wiki.analog.com/resources/eval/user-guides/eval-adicup360/quickstart/eclipse_setup_guide


下載好後安裝





安裝好後先將EVAL-ADICUP360 DEBUG USB port 與電腦連接查看

mbed Serial Port是否有驅動,如果裝置管理員沒出現

mbed Serial Port 就須重先安裝驅動程式。


  mbed Serial Port 的驅動程式mbedWinSerial_16466.exe在 C:\Analog Devices\ADuCM360-IDE 目錄下,執行mbedWinSerial_16466.exe 安裝程式時EVAL-ADICUP360虛與電腦連接!!

安裝完成後電腦的裝置管理員就會出現mbed Serial Port


執行安裝好的ADuCM360-IDE,Workspace建議使用系統預設的。




導入現有專案 File → Import



彈出導入選項視窗,選擇常規→複製現有項目到工作區General → Existing Projects into Workspace.


   使用預設的目錄 C:\ Analog Devices \ ADuCM360- IDE \ Examples,勾選要導入的項目Copy projects into workspace 這個要勾選才能確保原始檔案部會被更改。



建構.ELF / .HEX文件 project a→ Build All


 調整Debug 的配置 Run → Debug Configurations…



設定顯示項目


雙擊視窗中的GDB OpenOCD Debugging配置。


進入編輯選項後注意這些設定如果不一樣須手動調整或自行輸入,調整好後按Apply → Close。




Debug 環境設好後就可以執行Debug,過程中會出現許多對話視窗都按OK如果是第一次使用OpenOCD 電腦的防火牆會詢問一樣按 允許通過。




進入Debug後ADICUP360板子上橙色LED會閃爍,綠色&藍色LED會恆亮。



按開始執行按鈕綠色&藍色LED會交互閃爍。






參考資料 : https://wiki.analog.com/resources/eval/user-guides/eval-adicup360