VIA Pixetto視覺感測器大開箱(unboxing):軟硬體開發工具(Development Kits)篇
FB2:http://gg.gg/TedLeeMicrobitFB/
URL2:http://gg.gg/TedLeeMicrobit/
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
URL1:http://gg.gg/TedLeeURL/
Feb. 10, 2020
[1]
材料
項目 | 品名 | 單位 | 數量 |
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 |
|
測試用紅色外殼原子筆(或其他便於顏色識別物件)一只。
註:
- 如果讀者要將項目3的開發板換成Uno或其他Arduino版本,請自行將項目4的傳輸線做調當的調整。
- 技術咨詢(手機加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為鏡頭未掀蓋照。
- 4腳JST(Japan Solderless Terminal)(https://reurl.cc/ZnDO6g)公座接頭:或稱Grove。接線和接腳的連接方式為:
黃:Tx
白:Rx
紅:+
黑:-
- micro USB接頭:亦可使用Andoid手機或平板的4或5線的充電/傳輸線。
- SpiFlash:串列存取(Serial Peripheral Interface,SPI)的快閃記憶體。(筆者從此IC的型號FP1928 SF1GQ4UBY16 HFW240查不到相關資料。故以下說明為筆者個人臆測,僅供讀者參考(若有謬誤,尚請包涵與指正):
Gigadevice(北京兆易創新科技公司)(https://www.gigadevice.com/)所生廠的快閃記憶體IC。
- 聲音感測器(sound sensor):這是一般常見的麥克風(microphone,mic),而8787搭載這個元件就很容易推測出它能利用內部的神經網路來做語音處理(speech processing)。
- WiFi模組:Hisilicon(海思)(http://www.hisilicon.com/en/Products)的Hi 1131 IC,2.4G單頻、單通道。
- IP攝影機晶片(https://reurl.cc/lLGneY):Hi 3518E。720p IP-Cam SoC。
- SD卡插槽:。
- CPU:8787應該會有一個強而有力的心臟來處理大量影像的數值運算。因此,這部份就請看官猜猜它座落於8787的何處呢?
完整的軟體開發工具(development kits)Pixetto
8787提供的開發工具叫Pixetto,它Scratch和Blockly風格的積木式與Arduino的C/C++和Python語法式的四種程式開發語言供使用者挑選。
離線(offline)/單機(standalone)版 讀者可從線上教學手冊(https://reurl.cc/drEZyM)中軟體設置一節下載單機離線Windows版的Pixetto Junior(https://reurl.cc/EKkZla),安裝後就可以用Blockly方式來開發8787的機電整合電控程式,如圖3所示。
本工具採Blockly積木和Arduino語法雙併設計,當我們從最左邊的積木抽屜拉一塊積木時,最右邊的小視窗會自動產生(Auto Generate)對應的指令語法。此外,我們也可以切換到手動編輯模式(Manual Edit)自行增刪指令以完成我們的Arduino程式碼。
圖3:8787開發工具Pixetto Junior的介面。
線上(online)版 Pixetto還提供了一套架在台灣主機上的線上版(https://mls.pixetto.ai/)機器學習加速平台可以做連線編輯程式,如圖4所示。
圖4:Pixetto線上版。
- Scratch風格的積木式開發工具:由點入。它的操作方法類似於Scratch for Arduino(S4A)。也就是結合Scratch與Arduino開發板的軟硬整合開發介面。如圖5所示。
圖5:軟硬體整合的Scratch風格開發工具。
- Jupyter Notebook風格的Pyhton語法式開發工具:由點入後,我們可以用直譯(interpreter)或編譯(compiler)兩種方式來編寫8787的控制程式。如圖6所示。
圖6:Jupiter Notebook風格的Pyhton開發工具。
讓我們一起Blink、Blink吧
- 連接Nano:按下左上角的後讓Junior透過UART和Nano相接,如圖7所示。
圖7:連接Junior和Nano。
- 拉Blink積木:拉出控制D13 LED閃爍的程式積木,以便讓Junior在右側的小視窗內自動產生對應的Arduino程式碼,如圖8所示。
圖8:撰寫Blink積木程式。
- 上傳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。
- 在Junior上改用Arduino Uno讓Blink重現。