2020年3月14日 星期六

[AI] 芝麻開門:使用VIA Pixetto視覺感測器之組合色偵測(Color Codes Detection)功能

芝麻開門:

使用VIA Pixetto視覺感測器組合色偵測(Color Codes 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. 15, 2020
88x31.png[1]

難易度

★★★☆☆

主題鑰匙

日常生活中用來開鎖的鑰匙有很多種形式,金屬製、電子式、…,甚而是以生物特徵做為識別身份的方式。那8787可以打造出怎樣的錀匙呢?

任務

天神托夢給阿拉丁,要他坐著飛天魔毯先到撒哈拉沙漠尋得傳說中的太極圖騰。然後再飛到神秘的中國去取回藏在天安門內的上古神器來消解皇宮內被瘟神散佈病毒肆虐的傳染病。
利用8787的組合色偵測功能來啟動伺服馬達(servo motor)開門

材料

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

  • 如果讀者要將項目3的開發板換成Uno或其他Arduino版本,請自行將項目4的傳輸線做調當的調整。
  • 技術咨詢(手機加Line:https://reurl.cc/Vadax6)。

造形設計(機構)

讀者可參考這段https://reurl.cc/7Xolzd將伺服馬達運用在智慧門鎖的物聯網(Internet Of Things,IOT)情境上的影片自行設計相對應的機構
因外,這一篇https://reurl.cc/0oOnNl)結合了3D列印(3-D Printing,3DP)與NFC來控制伺服馬達門鎖的設計也是一個參考範本。
另一方面,這一篇https://reurl.cc/pdyXGb)則是運用藍牙及app當作無線鑰匙來開關門鎖。
最後,還有這位大神拿伺服馬達做遙控開燈的懶人裝置呢!

    功能設計(電路、程式)

    先依照下表及圖1接妥8787、Nano、伺服馬達與電池盒雙電源共地的連接線路。若僅作功能測試,可以將伺服馬達直接使用Nano上的5V電源,以省去準備外接電源的功夫。請留意,伺服馬達需接在Nano的數位模擬類比之PWM(Pulse Width Modulation,脈衝寬度調變)腳位(pin)上,例如圖1的~D9。

    Nano 伺服馬達 8787
    D0
    D1
    ~D9 黃(橘)
    5V
    GND 黑(棕)

    圖1:接線圖。


    在Pixetto Utility上(圖2)選用援用此網站https://reurl.cc/8GnO4X)的紅、黃、藍三混色太極圖案向量圖偵測後,將之套用至8787。


    圖2:在Pixetto Utility上選用組合色偵測功能。


    在Pixetto Junior上拉出圖3的積木程式。這個程式的邏輯是當8787識別出組合色的太極圖案(物件0)後讓伺服達轉回0度(它的初始角度在正中90度)。

    圖3:Pixetto Junior的Blockly程式碼。

    圖3對應的Arduino程式碼如下所示:

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

    #include <Servo.h>

    SmartSensor ss(0,1);
    Servo servo_9;

    void setup() {
      ss.begin();
      servo_9.attach(9);
      servo_9.write(90);
    }

    void loop() {
      if (ss.isDetected()) {
      if (ss.getTypeID() == 0) {
      servo_9.write(0);
      delay(600);
      servo_9.write(90);
      }
      }
    }

    最後,本單元的操作影片https://youtu.be/1B4NFbdeDKw 如圖4所示。

    圖4:展示影片。

      教學活動設計

      1. 太極https://reurl.cc/Y16pWa)做為關鍵字到Google圖片備妥若干張組合色照片,例如這張https://reurl.cc/GVrOmx)或這張https://reurl.cc/E7zenR),後測試看看8787總共能認出其中的多少張呢?
      2. 參考拙著《VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)篇》(https://reurl.cc/kd0gZ3)一文中的「我乃小智是也,自己神奇寶貝自己訓」小節,使用自己設計的組合色圖騰來訓練一個新模型後再重複上述步驟來測試8787是否能成功地認得它。

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

        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. 六種授權條款

              2020年3月1日 星期日

              [AI] Jupyter Notebook玩轉MNIST資料集:使用VIA Pixetto視覺感測器

              Jupyter Notebook玩轉MNIST資料集:使用VIA Pixetto視覺感測器


              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/

              Feb. 28, 2020
              88x31.png[1]

              難易度

              ★☆☆☆

              材料

              項目品名單位數量
              1VTS-8787智慧感測器1
              2micro USB傳輸線1

              8

                教學活動設計



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

                  2020年2月28日 星期五

                  [AI] 「檢」紅奌:使用VIA Pixetto視覺感測器

                  「檢」紅奌:使用VIA Pixetto視覺感測器


                  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. 5, 2020
                  88x31.png[1]

                  難易度

                  ★☆☆☆

                  主題


                  你知道為什麼電影院的椅子要設計成紅色的嗎?人眼既然看不見這些隱形椅,那就讓我們一起開天眼見紅吧!

                    任務


                    利用8787的辨色(color detection)功能自動識別圖卡中的紅點數,並能自動計分。


                    材料

                    項目品名單位數量
                    1VTS-8787智慧感測器1
                    2micro USB傳輸線1

                    功能設計




                      教學活動設計

                      1. 撿紅點:總分21分,彩球2分。創造你的圖卡。

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

                        2020年2月17日 星期一

                        [AI] VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)篇

                        VIA Pixetto視覺感測器大開箱(unboxing):AI開發工具(Development Kits)


                        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/

                        Feb. 20, 2020
                        88x31.png[1]

                        難易度

                        ★☆☆☆

                        材料

                        項目品名單位數量
                        1VTS-8787視覺感測器1
                        2micro USB傳輸線1

                        豐富的內建(built-in)AI影像處理(Image Processing)功能與支援Google TensorFlow Lite深度學習框架(Deep Learning Framework)模型庫

                        8787可以處理影像(images)語音(speech)數位訊號(digital signals)來源,再利用機器學習(Machine Learning,ML)類神經網路(Neural Networks,NN)技術來做AI應用。
                        在本小節中,我們將一一說明7款8787對於影像處理的功能(Functions)
                        1. 顏色偵測(Color Detection)
                        2. 組合色偵測(Color Labels Detection)
                        3. 形狀偵測(Shape Detection)
                        4. 球體偵測(Circle Detection)
                        5. 模板匹配(Template Matching)
                        6. 特徵點偵測(Keypoint Detection)
                        7. 人臉偵測(Face Detection)
                        以及內建的3款事先訓練好的(trained)深度學習框架TensorFlow Lite模型庫(Models)
                        1. 手寫數字辨識(Handwritten Digits Recognition)
                        2. 交通標誌辨識(Traffic Sign Recognition)
                        3. 神經網路辨識(Neural Network Detection)
                        此外,讀者也可以餵給機器學習加速器https://mls.pixetto.ai/)(文後皆以雲加速器簡稱之)外部Tensorflow深度學習框架https://reurl.cc/A1Elmj)所產出的.pb(Protocol Buffers)模型檔https://reurl.cc/Na5oeQ):神經網路辨識(Neural Network Detection)

                        至於進階的自訓AI模型的方式則會在下節詳細說明。

                        7款影像辨識功能

                        在Pixetto Studio中提供了內含7種基礎影像辨識功能的展示工具Pixetto Utility,如圖1所示。

                        圖1:Pixetto Utility工具。

                        1. 顏色偵測:可識別紅、黃、綠、藍、紫、黑色的單色物件。請按這裡https://reurl.cc/qDMz6y)觀賞展示影片。台北市仁愛國中楊昌珣老師的公子楊喻丞便使用此功能在防疫期間設計了這段鬥牛https://reurl.cc/Qp8WKO)小品。詳細的應用教學文件可參考拙著《辨色開燈:使用VIA Pixetto視覺感測器》(https://reurl.cc/V6622N)。
                        2. 組合色偵測:可偵測有兩種以上紅、黃、綠、藍、紫、黑之複合色物件。請按這裡https://youtu.be/D6RjresfNZY)觀賞展示影片。詳細的應用教學文件可參考拙著《芝麻開門:使用VIA Pixetto視覺感測器》(https://reurl.cc/Aqq9zj)。
                        3. 形狀偵測:可偵測圓形、矩形、三角形、多邊形物件。請按這裡https://reurl.cc/V63R3b)觀賞展示影片。
                        4. 球體偵測:可偵測紅、黃、綠、藍、紫、黑顏色的圓球。請按這裡https://youtu.be/kVjhvl9hr-8)觀賞展示影片。
                        5. 模板匹配:在畫面上框出範圍並套用後即可偵測此新的模板。請按這裡https://reurl.cc/W4p4ae)觀賞展示影片。
                        6. 特徵點偵測:擷取特徵點來辨識物件。請按這裡https://reurl.cc/zymgm0)觀賞展示影片。
                        7. 人臉偵測:可偵測出人臉的影像。

                        雲加速器上的3款內建模型

                        圖2的雲加速器https://mls.pixetto.ai/)提供了

                        圖2:雲加速器。
                        1. 手寫數字辨識8787先接上電腦後再從Pixetto的雲加速器下載模型到8787上即可進行手寫數字辨識,如圖3左方按鈕所示。請按這裡https://reurl.cc/b6Zool)觀賞展示影片。

                          圖3:雲加速器上的模型庫。

                        2. 手寫字母辨識8787先接上電腦後再從Pixetto的雲加速器下載模型到8787上即可進行手寫字母辨識,如圖3中間的按鈕所示。
                        3. 交通標誌辨識8787先接上電腦後再從Pixetto的機器學習雲加速器下載模型到8787上即可進行交通標誌辨識,如圖3右方的按鈕所示。

                        匯入(import)外部模型

                        神經網路辨識選項可以將我們事先訓練好的TensorFlow模型https://reurl.cc/Qp1ol2):HandwritingDigits.pb(圖4為使用Netronhttps://reurl.cc/Na585Q).pb檔的視覺化檢視工具)上傳到8787上辨識使用。請按這裡https://reurl.cc/RdKo7D)觀賞展示影片。


                        圖4:事先訓練好的模型檔:HandwritingDigits.pb


                        最後,Pixetto Junior與Pixetoo Utility在AI功能上的兩相對應控制積木程式請參照考《AI應用基礎篇:使用VIA Pixetto視覺感測器》一文所述。

                        我乃小智是也,自己神奇寶貝自己訓

                        經過上小節的介紹,大家一定和神奇寶貝的知名訓練師小智一樣,躍躍欲試地想要自訓自己的有趣應用了嗎?沒問題,跟著小智的腳步,讓我們一同邁向偉大的All Blue吧!
                        根據《Pixetto 教學手冊 中文版》(https://reurl.cc/vnyjgN)文內「訓練神經網路模型:使用三個交通號誌影片來訓練模型」的指引,我們使用雲加速器來解說自己訓練(training)AI模型的步驟。
                        1. 先準備好要訓練8787的AI大腦的兩段Ball.mp4https://youtu.be/uID6GNAjPzk)及Hand.mp4https://youtu.be/rFN4DLRju0k)影片。
                        2. 將這兩段影片上傳到雲加速器訓練(積木程式控制只要識別Ball及Hand兩類,如圖5所示)。

                          圖5:TensorFlow的樣板程式。
                        3. 將產生的.pd模型檔載到8787硬體上。
                        4. 實測訓練好模型的辨識情形。如 https://youtu.be/izxTBAADaYY 所示。

                        應用實例:物體追蹤

                        如圖6所示,將8787連接開發板並加上會轉動的雲台後就可以追逐(使用內建的顏色偵測功能)外在物件的「身影」。請觀賞影片https://reurl.cc/4gkMOR)的詳實展示。本示例的
                        完整程式碼可由此https://reurl.cc/W4eogk)下載到Pixetto Junior上觀看或編輯。

                        圖6:8787架上伺服馬達控制的雲台而追逐紅球的影像追蹤實例。

                          教學活動設計

                          1. 1000.mpghttps://youtu.be/M5SXx5jzDX4)與100.mpghttps://youtu.be/GcXX6-ojdq0)訓練出8787可以辨識的TensorFlow模型,並實際測試訓練的成果。

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