2020年2月10日 星期一

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

VIA Pixetto視覺感測器大開箱(unboxing):軟硬體開發工具(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. 10, 2020
88x31.png[1]

難易度

☆☆☆☆

材料

項目品名單位數量
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)。

    硬體介紹

    VIA Tech(威盛電子)https://www.viatech.com/tw/)新推出的 VTS-8787智慧感測器(Smart Sensor)(文後皆用8787稱之)是一款內建AI類神經網路(Neural Networks)的攝影機模組(module)。如圖1及圖2所示,它利用板載的攝影機鏡頭(圖1標示1處),將擷獲的影像經過處理後透過micro USB轉USB接頭(圖1標示3處)和電腦相接。或者我們也可以使用UART(Universal Asynchronous Receiver/Transmitter)的非同步傳輸(圖1標示2處)和像Arduino各系列相容板的各種開發板(development board)做對接處理。
    因官方並未公開8787的硬體規格,以下筆者僅就板上可視、可查的七大要件稍加說明。其中,下文編號數字是和圖1和圖2各黃底紅字的數字相互對應。

    圖1:VIA  VTS-8787智慧感測器正面。

    圖2:VIA  VTS-8787智慧感測器背面。

    1. 攝影鏡頭:圖1為鏡頭未掀蓋照。
    2. 4腳JST(Japan Solderless Terminal)https://reurl.cc/ZnDO6g)公座接頭:或稱Grove。接線和接腳的連接方式為:

      黃:Tx
      白:Rx
      紅:+
      黑:-
    3. micro USB接頭:亦可使用Andoid手機或平板的4或5線的充電/傳輸線。
    4. SpiFlash:串列存取(Serial Peripheral Interface,SPI)的快閃記憶體。(筆者從此IC的型號FP1928 SF1GQ4UBY16 HFW240查不到相關資料。故以下說明為筆者個人臆測,僅供讀者參考(若有謬誤,尚請包涵與指正):

      Gigadevice(北京兆易創新科技公司)https://www.gigadevice.com/)所生廠的快閃記憶體IC。
    5. 聲音感測器(sound sensor):這是一般常見的麥克風(microphone,mic),而8787搭載這個元件就很容易推測出它能利用內部的神經網路來做語音處理(speech processing)
    6. WiFi模組Hisilicon(海思)http://www.hisilicon.com/en/Products)的Hi 1131 IC,2.4G單頻、單通道。
    7. IP攝影機晶片https://reurl.cc/lLGneYHi 3518E。720p IP-Cam SoC
    8. SD卡插槽:。
    9. CPU:8787應該會有一個強而有力的心臟來處理大量影像的數值運算。因此,這部份就請看官猜猜它座落於8787的何處呢?

      完整的軟體開發工具(development kits)Pixetto

      8787提供的開發工具叫Pixetto,它ScratchBlockly風格的積木式與Arduino的C/C++Python語法式的四種程式開發語言供使用者挑選。

      離線(offline)/單機(standalone)版 讀者可從線上教學手冊https://reurl.cc/drEZyM)中軟體設置一節下載單機離線Windows版的Pixetto Juniorhttps://reurl.cc/EKkZla,安裝後就可以用Blockly方式來開發8787的機電整合電控程式,如圖3所示。
      本工具採Blockly積木和Arduino語法雙併設計,當我們從最左邊的積木抽屜拉一塊積木時,最右邊的小視窗會自動產生(Auto Generate)對應的指令語法。此外,我們也可以切換到手動編輯模式(Manual Edit)自行增刪指令以完成我們的Arduino程式碼。

      圖3:8787開發工具Pixetto Junior的介面。

      另一方面,我們可以把8787視為Arduino的擴充板(extension board)。所以,只要掛上Smart Sensor函式庫(從線上教學手冊https://reurl.cc/drEZyM)中軟體設置一節第三項的Arduino庫文件連結下載而後匯入(import)到Arduino IDE內),Arduino IDEhttps://reurl.cc/VaK59Q)就可立即使用。不過,請先照拙著:Arduino Nano操作手冊https://reurl.cc/vnV36l)掛上驅動程式(driver)才能讓電腦能認得到Nano。
      線上(online)版 Pixetto還提供了一套架在台灣主機上的線上版https://mls.pixetto.ai/)機器學習加速平台可以做連線編輯程式,如圖4所示。

      圖4:Pixetto線上版。

      1. Scratch風格的積木式開發工具:由點入。它的操作方法類似於Scratch for Arduino(S4A)。也就是結合Scratch與Arduino開發板的軟硬整合開發介面。如圖5所示。


        圖5:軟硬體整合的Scratch風格開發工具。
      2. Jupyter Notebook風格的Pyhton語法式開發工具:由點入後,我們可以用直譯(interpreter)編譯(compiler)兩種方式來編寫8787的控制程式。如圖6所示。


      圖6:Jupiter Notebook風格的Pyhton開發工具。

      讓我們一起Blink、Blink吧

      我們在離線Blockly版的Pixetto Junior上以Arduino界最具盛名的Blink(讓板載在D13腳位上的SMD LED不停閃爍)來測式與展示Pixetto在Arduino Nano開發板上的控制。至於8787強大的AI功能則詳見下篇所述:VIA VTS-8787智慧感測器(Smart Sensor)大開箱(unboxing):AI開發工具(Development Kits)篇https://reurl.cc/ZnD4kg)。
      1. 連接Nano:按下左上角的後讓Junior透過UART和Nano相接,如圖7所示



        圖7:連接Junior和Nano。
      2. 拉Blink積木:拉出控制D13 LED閃爍的程式積木,以便讓Junior在右側的小視窗內自動產生對應的Arduino程式碼,如圖8所示。


        圖8:撰寫Blink積木程式。
      3. 上傳Arduino程式:由於V0.2.3版的Junior還認不得Nano,我們要回到Arduino IDE上將程式碼上傳至Nano,如圖9所示。其中,讀者需要先照著Arduino Nano操作手冊https://reurl.cc/vnV36l)說明在Windows上預先掛載Nano驅動程式。然後在Arduino IDE上設定開發板型號與COM埠。

      圖9:在Arduino IDE上燒錄Blink。

        教學活動設計

        1. 在Junior上改用Arduino Uno讓Blink重現。

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