天天看點

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

Python的開放、簡潔、黏合正符合了現發展階段對人工智能、大資料分析、可視化、各種平台程式協作産生了快速的促進作用。自Python3的釋出到現在已有五六年的時間,從剛釋出的反對聲音到慢慢被接受與喜歡經過了太漫長的時間,然而可能也與國情與發展需求有着相當的關系。總之,越來越多人開始使用Python。

MicroPython是在單片機上跑的Python。官方的開發闆是PYBoard,但是這個闆子比較少見,價格也比較貴。幸好MicroPython支援多種開發闆,我們可以在其他開發闆上很好的運作MicroPython,效果是一樣的。基于32-bit的ARM處理器,比如說STM32F4和F7系列等,也支援cc3200、esp32和esp8266(常用wifi子產品-以後玩可做網際網路用途),樹莓派,香蕉派還有BBC Micro:bit開發闆等。

春節新冠病毒疫情過後,我入手了一塊支援MicroPython的開發闆,國産自主知識産權的K210晶片,從零開始學習,嘗試動手做實驗。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

2018年9月6日,嘉楠科技推出自主設計研發的全球首款基于RISC-V的量産商用邊緣智能計算晶片勘智K210。該晶片依托于完全自主研發的AI神經網絡加速器KPU,具備自主IP、視聽兼具與可程式設計能力三大特點,能夠充分适配多個業務場景的需求。作為嘉楠科技自主研發的邊緣側AI晶片,勘智K210兼具高能耗比和靈活性。在算力方面,勘智K210可在0.3W的條件下提供1TOP的算力支援,充分适配在多數業務場景中低功耗限制下的算力需求。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

在晶片內建度方面,勘智K210采用視聽一體化設計。在機器視覺上,晶片基于自主研發的神經網絡加速器KPU,可完成基于神經網絡的圖像分類任務,進行人臉識别與檢測,以及實時獲被檢測目标的分類。在聽覺能力上,晶片自帶APU語音處理單元,最高可支援8路音頻資料及16個方向,無需占用CPU即可實作聲源定向、聲場成像、波束形成、語音識别與喚醒等功能。

在算法定制化方面,勘智K210在可程式設計能力上呈現出更高的靈活性。首先,相比ARM等架構,勘智K210采用RISC-V架構,擁有更強的可定制化能力,便于開發者根據具體應用場景定制算法。其次,晶片搭載FPIOA現場可程式設計IO陣列,支援TensorFlow、Keras、Darknet、PaddlePaddle和Caffe等主流AI程式設計架構,以及全面的開發文檔,對開發者十分友好。此外,晶片内置64位雙核處理器架構,分為計算核與應用核,能夠為開發者提供足以應對複雜業務場景的計算資源。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

K210系統架構

K210 包含 RISC-V 64 位雙核 CPU,每個核心内置獨立 FPU. K210 的核心功能是機器視覺與聽覺,其包含用于計算卷積人工神經網絡的 KPU 與用于處理麥克風陣列輸入的 APU. 同時 K210 具備快速傅裡葉變換加速器,可以進行高性能複數 FFT 計算。是以對于大多數機器學習算法,K210 具備高性能處理能力。K210 内嵌 AES 與 SHA256 算法加速器,為使用者提供基本安全功能。K210 擁有高性能、低功耗的 SRAM,以及功能強大的 DMA,在資料吞吐能力方面性能優異。K210 具備豐富的外設單元,分别是:DVP、JTAG、OTP、FPIOA、GPIO、UART、SPI、RTC、I²S、I²C、WDT、Timer 與 PWM,可滿足海量應用場景。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

基于RISC-V開源指令集

RISC-V(讀作“RISC-FIVE”)是基于精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),V表示為第五代RISC(精簡指令集計算機),表示此前已經四代RISC處理器原型晶片。每一代RISC處理器都是在同一人帶領下完成,那就是加州大學伯克利分校的David A. Patterson教授。與大多數ISA相反,RISC-V ISA可以免費地用于所有希望的裝置中,允許任何人設計、制造和銷售RISC-V晶片和軟體。圖1展示了此前的四代RISC處理器原型晶片。它雖然不是第一個開源的的指令集(ISA),但它很重要,因為它第一個被設計成可以根據具體場景可以選擇适合的指令集的指令集架構。基于RISC-V指令集架構可以設計伺服器CPU,家用電器cpu,工控cpu和用在比指頭小的傳感器中的cpu。

與大多數指令集相比,RISC-V指令集可以自由地用于任何目的,允許任何人設計、制造和銷售RISC-V晶片和軟體。雖然這不是第一個開源指令集,但它具有重要意義,因為其設計使其适用于現代計算裝置(如倉庫規模雲計算機、高端行動電話和微小嵌入式系統)。設計者考慮到了這些用途中的性能與功率效率。該指令集還具有衆多支援的軟體,這解決了新指令集通常的弱點。該項目2010年始于加州大學伯克利分校,但許多貢獻者是該大學以外的志願者和行業工作者。RISC-V指令集的設計考慮了小型、快速、低功耗的現實情況來實做,但并沒有對特定的微架構做過度的設計。截至2017年5月,RISC-V已經确立了版本2.22的使用者空間的指令集(userspace ISA),而特權指令集(privileged ISA)也處在草案版本1.10。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

勘智K210成支援RISC-V NOMMU範本

如果談及嵌入式領域,RISC-V或許是你絕對繞不過的一個知識點。雖然ARM依舊是移動端的霸主,但RISC-V被外界賦予了太多意義,架構本身适合于頗具前景的嵌入式開發,其免費開源的特性也在目前的國際環境中備受關注,俨然成為移動端領域的新晉網紅。 RISC-V大勢所趨,市場上也湧現了一些基于該架構的晶片與開發模組,例如很多開發者正在使用的勘智K210。去年底,名為Jean-Luc的資深工程師分享了将Linux5.1系統部署在K210處理器上的工作。同時,他也在文中引用了西部資料的分享,勘智K210被作為支援RISC-V NOMMU的示範列入其中。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

在AI領域,神經網絡屬于計算密集型場景,人臉識别等算法往往會受到邊緣側應用場景的功耗限制。嘉楠表示ARM在實際計算的過程中往往會伴随大量的能耗,并不是非常經濟的架構。公開資料顯示,嘉楠是RISC-V聯盟中前五家使用RISC-V架構的廠商之一。在勘智系列AI晶片的研發中,嘉楠使用了RISC-V RocketChip,減少了大量相關的工作量,也節省了大量的研發人力成本,以及IP授權的成本。 目前,勘智K210及其開發模組受到不少開發者的青睐,吸引了來自百度、阿裡等國内頂尖AI團隊的目光。例如嘉楠為百度AI開發平台PaddlePaddle定制開發模組PaddlePi-K210,打通了PaddlePaddle 模型裝置端部署解決方案。開發人員不需要硬體更改,使用公版模具就可以一直做到樣品階段。在前沿項目的探索上,勘智K210相容阿裡最新TinyML算法模型,是可用于探索TinyML科研項目的RV平台。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

Maixduino

基于MAIX子產品,是用于AI + IoT應用的RISC-V 64開發闆。與其他Sipeed MAIX dev不同。主機闆Maixduino采用Arduino Uno外形設計,闆載ESP32子產品和MAIX AI子產品。MAIX是Sipeed專門設計的産品系列,專為在邊緣運作AI而設計。将AI模型從雲端移動到網絡邊緣的裝置,在這些裝置上運作速度更快,成本更低,隐私性更高。

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
  • CPU:帶FPU的雙核64位RISC-V;400MHz神經網絡處理器
  • [email protected]/[email protected]圖像識别
  • 闆載ESP32子產品支援2.4G 802.11.b/g/n和藍牙4.2
  • Arduino Uno外形,Arduino相容接口
  • 闆載全向I[size=75%]2S數字輸出MEMS麥克風
  • 用于DVP相機的24P 0.5mm FPC連接配接器
  • 8位MCU LCD 24P 0.5mm FPC連接配接器
  • 基于卷積神經網絡的機器視覺
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
  • 支援自彈式micro SD卡支架
  • 重置和啟動按鈕;3W DAC+PA音頻輸出
  • 連接配接USB Type-C電纜以完成下載下傳
  • 用于機器聽覺的高性能麥克風陣列處理器
  • 支援MaixPy IDE、Arduino IDE、OpenMV IDE和PlatformIO IDE
  • 支援Tiny-Yolo、Mobilenet和TensorFlow Lite,用于深度學習

标配Sipeed_OV2640攝像頭

OV2640主要參數

可以支援定制FPC長度,鏡頭角度(70-160度)可以支援定制FPC長度,鏡頭角度(70-160度)

感光陣列1632x1232 最大格式UXGA

IO電壓1.7V-3.3V 模拟電壓2.5-3.0v(内部LDO給核供電1.2V)

功耗工作TBD 休眠<20μA

溫度操作-30℃到70℃

穩定工作0℃到50℃

輸出格式(8位)YUV/YCbCr4:2:2 RGB565/555/444 GRB4:2:2 Raw RGB Data

光學尺寸1/4"

視場角70度

最大貞率15fps SXGA

靈敏度1.3V/(Lux-sec)

信噪比40 dB

動态範圍50 dB

浏覽模式逐行

電子曝光1行到1247行

像素面積2.2μm x 2.2μm

暗電流15mV/s at 60℃

工作電流40mA

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

标配ST7789驅動器晶片2.4寸LCD屏(24P 320X240)

1. 子產品名稱:液晶顯示子產品

2. 型号:KD024C-4

3. 同類型型号: 

4. 相容型号:

5. 顯示模式:TFT

6. 顯示色彩:65/262K

7. 分辨率: 240*320

8. 點距:0.153 (H) x 0.153 (V)

9. 視角:12:00

10. 控制IC:ST7789V

11. 顯示類型:全透型,常白

12. 外形尺寸:42.72*60.26*2.6mm

13. 可視面積:38.32*50.56 mm

14. 點陣區面積:36.72*48.96mm

15. 亮度:300cd/m2

16. 對比度:500

17. 接口類型: 8/9/16/18位8080并口

                   16/18位RGB接口

                    3/4線SPI接口

18. 引腳數:24

19. 引腳距離:0.5mm

20. 連接配接類型: FPC插接型

21. 工作電壓:3.3V

22. 背光燈顔色及類型: 白色LED背光

23. 背光電路:4 LED 并聯, 共陽

If=80mA, Vf =3.2V

24. 使用壽命:100000h

25. 工作溫度:-20----70°C 

26. 儲存溫度:-30----80°C 

27. 品質體系認證:ISO9001:2008

28. 産品認證:RoHS

【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆
【雕爺學程式設計】MicroPython動手做(01)——春節後入手了K210開發闆

繼續閱讀