2020年3月8日 星期日

[AI] 辨色開燈:使用VIA Pixetto視覺感測器之辨色(color detection)功能

辨色開燈:

使用VIA Pixetto視覺感測器之辨色(color detection)功能


FB2http://gg.gg/TedLeeMicrobitFB/
URL2http://gg.gg/TedLeeMicrobit/

Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1http://gg.gg/TedLeeFB/
Bloghttp://gg.gg/TedLeeBlog/
URL1http://gg.gg/TedLeeURL/

Mar. 8, 2020
88x31.png[1]

難易度

★★☆☆

主題

8787內建的AI影像處理(image processing)功能應用實作。

    任務

    上天有「天眼」可以看盡人間禍福。8787也有「長眼」能辦識各種顏色。
    利用8787積木式開發工具Pixetto Junior,以非接觸辨色方式自動開燈


    材料

    項目品名單位數量
    1VTS-8787視覺感測器1
    2micro USB傳輸線1
    3Arduino Nano(FT232晶片,含mini USB傳輸線)1
    4mini USB傳輸線1
    5Grove – 4x公端杜邦線+母座 to Grove 4pin連接線1
    6麵包板1

  • 測試用紅色外殼原子筆(或其他便於顏色識別物件)一只。 
  • 註:
    1. 如果讀者要將項目3的開發板換成Uno或其他Arduino版本,請自行將項目4的傳輸線做調當的調整。
    2. 技術咨詢(手機加Line:https://reurl.cc/Vadax6)。


    硬體連接


    8787可以看成是一塊Arduino擴充板(extension board)四線2.0 mm的JST(Japan Solderless Terminal)PH系列接頭和Nano間使用UART(Universal Synchronous Asynchronous Receiver Transmitter)做為序列(serial)傳輸協定(protocol)
    如圖1,我們將Nano插在麵包板上固定。然後以下列方式連接Nano和8787:

    8787

    Nano

    +5V

    GND

    Tx1

    Rx0


    圖1:Arduino Nano和8787的連接方式。

    功能設計

    本節將詳細介紹如何以Pixetto提供的Junior積木式開發工具來啟動8787內建的顏色偵測功能做為電燈(以Nano D13腳板載的SMD LED示意)感應裝置。
    1. 工具的Function區選用Color Detection並勾選Colors為Red後按下Apply套用。


      圖2:讓8787選用紅色辨色功能。
    2. 初始化(initialize)8787
    3. 當8787偵測到物件時立即判斷它是否為紅色。若是,則點亮(給高電位)D13的板載LED 0.5秒,然後關閉(給高電位)
    4. 燒錄程式。因為Pixetto Junior正在改版加入Nano的支援,筆者是以Arduino IDE燒錄程式碼。(讀者若是以Arduino Uno串接8787,則可以在Pixetto Junior上直接上傳。)

    完整的程式碼可由此下載(圖3)。

    圖3:Pixetto Junior參考程式積木。


    積木所對應的Arduino程式碼如下。其中,8787的函式庫(libraries)由此https://reurl.cc/R4dD8n匯入(import)

    #include <Arduino.h>
    #include <SmartSensor.h>

    SmartSensor ss(0,1);

    void setup() {
      ss.begin();

      // D4: yellow (Tx)

      // D5: white (Rx)
      //
      // D0 (Rx): yellow (Tx)
      // D1 (Tx): white (Rx)
      pinMode(13, OUTPUT);
    }


    void loop() {
      if (ss.isDetected()) {
        if (ss.getTypeID() == ss.COLOR_RED) {
          digitalWrite(13, HIGH);
          delay(500);
          digitalWrite(13, LOW);
        }
      }
    }

    成果展示

    讀者可參考拙著《VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)篇》(https://reurl.cc/b56gEX)使用Pixetto Utility工具先測試8787的辨色功能是否正常。本範例的展示影片如圖4(https://youtu.be/DDQf-sp4a0Y)所示。

    圖4:展示影片。

      教學活動設計

      1. 以Nano串接可程式化的WS2812B燈條https://reurl.cc/4Rg8GR)。準備三張紅、綠、藍色卡。當8787「看到」什麼顏色,就讓燈條以此色點亮之。
      2. 讓Nano加上一繼電器(relay),使得8787可以用紅球與黑球來控制110V小檯燈的開或關

        参考資料
        1. 六種授權條款