1、幾個知識點
(1)MicroPython
是 Python 3 語言的精簡高效實現 ,包括Python標准庫的一小部分,並針對嵌入式微控制器(單片機)和受限制的環境進行了優化,它是Python延伸出來的一個落地產物。MicroPython是運行在微控制器硬件之上的完全的Python編譯器和運行時系統,它提供給用戶一個交互式提示符(REPL)來立即執行所支持的命令。除了包括選定的核心Python庫,MicroPython還包括了給予編程者訪問低層硬件的模塊。
Micropython的由來,這得益於Damien George(喬治.達明)這位偉大的計算機工程師,Damien George每天都會使用Python工作,他有一天冒出一個大膽的想法:能否用Python來控制單片機,從而實現對機器人的操作呢?
Python語言本身就是一款簡單上手的高級腳本語言,主要特點是具有簡潔性、易讀性以及可擴展性。Python的設計哲學是“優雅”、“明確”、“簡單”,倡導“用一種方法,最好是只有一種方法來做一件事”,一些非計算機專業的愛好者都選Python語言作為入門語言。但是美中不足,它不能實現對一些底層的操作,在硬件領域毫不起眼。所以,Damien George利用6個月時間打造了MicroPython,這就是MicroPyhton的由來。

MicroPython它基於ANSIC,語法跟Python3基本一致(采用一部分),遵循MIT許可協議,與風靡全球的Arduino類似,擁有自己的解析器、編譯器、虛擬機和類庫等,相對而言MicroPython更強大。目前它支持基於32-bit的ARM處理器,比如STM32F405、STM32f407,Esp8266和Esp32等,也就是說ARM處理器STM32F405上直接可運行Python語言,用Python語言來控制單片機。在單片機上能運行Python,實際上Python已經完全脫離系統,也就是說,你可以通過Python腳本語言開發單片機程序。MicroPython旨在盡可能與普通Python兼容,讓您輕松將代碼從桌面傳輸到微控制器或嵌入式系統中。
McrioPython的優勢是什么?
在MicroPython出世之前,單片機嵌入式大部分都是用C/C++語言開發的,還要了解各種寄存器知識。拿STM32來說,控制一個引腳,光定義就一堆,剛入門的新手用起來頭大。MicroPython它干了啥事呢?它就是把那些C語言封裝起來了,讓用戶可以用Python的語法去調用,這樣會讓之前從事Python開發工作的人快速進行單片機,同時也方便剛入門的新手學習,畢竟掌握Python比掌握C語言來的更簡單和快捷。
目前AI人工智能是當下社會發展的主流,MicroPython的出現是一個時機,讓很多像我這樣的零基礎的初學者,也有可以能自己做智能小車,或者嘗試簡單機器人,學習智能硬件,它比C語言學習更簡單,更適合加入人工智能教育,人人都可以學編程,寫程序,由此可以看出MicroPython未來市場前景是非常大的,是比Arduino更強大、更容易編程的開發系統平台。

(2)MaixPy是將MicroPhon 移植到K210芯片的一個項目,支持MCU(比如這里做實驗的Maixduino開發板)的常規操作,集成了機器視覺和麥克風等系列,是可以快速開發,成本極低,體積實用的AIOT(人工智能+物聯網)領域智能應用優化平台,相關源代碼在github。Maixpy 的目的是讓 AIOT 編程更簡單, 基於 Micropython 語法,運行在一款有着便宜價格的高性能芯片 K210 上。

(3)K210芯片
勘智K210這款芯片由著名的礦機公司嘉楠科技基於RISC-V架構進行研發設計,可根據業務場景需求擴展基礎指令,具備較強的可編程能力。同時,勘智K210具備機器聽覺與機器視覺兩種能力,可以靈活適配人臉識別、目標檢測、語音喚醒及識別等場景,是國內ASIC領域為數不多保持一定通用性的芯片。作為嘉楠科技自主研發的邊緣側AI芯片,勘智K210兼具高能耗比和靈活性。
在算力方面,勘智K210可在0.3W的條件下提供1TOP的算力支持,充分適配在多數業務場景中低功耗約束下的算力需求。在芯片集成度方面,勘智K210采用視聽一體化設計。在機器視覺上,芯片基於自主研發的神經網絡加速器KPU,可完成基於神經網絡的圖像分類任務,進行人臉識別與檢測,以及實時獲被檢測目標的分類。在聽覺能力上,芯片自帶APU語音處理單元,最高可支持8路音頻數據及16個方向,無需占用CPU即可實現聲源定向、聲場成像、波束形成、語音識別與喚醒等功能。
在算法定制化方面,勘智K210在可編程能力上呈現出更高的靈活性。首先,相比ARM等架構,勘智K210采用RISC-V架構,擁有更強的可定制化能力,便於開發者根據具體應用場景定制算法。其次,芯片搭載FPIOA現場可編程IO陣列,支持TensorFlow、Keras、Darknet、Paddle和Caffe等主流AI編程框架,以及全面的開發文檔,對開發者十分友好。
此外,芯片內置64位雙核處理器架構,分為計算核與應用核,能夠為開發者提供足以應對復雜業務場景的計算資源。勘智K210可在僅為0.3W的功耗約束下提供1TOPS算力,能耗比優異。


2、實驗硬件
Sipeed k210 RISC-V AI+lOT ESP32視覺聽覺開發套裝:
(1)Maixduino AI開發板——K210芯片,RISC-V 雙核64bit、內置FPU、400Mhz標准頻率(可超頻),內置ESP32模塊,支持2.4G 802.11.b/g/n,Bluetooth v4.2全規格,低功耗藍牙(BLE),MEMS 麥克風、3W揚聲器輸出
(2)OV2640攝像頭——200W像素通用24P攝像頭
(3)2.4寸LCD顯示屏——ST7789驅動器芯片(24P 320X240)

3、連接電腦
Maixduino開發板使用了 CH552 芯片來實現 USB 轉串口功能,沒有 JTAG 模擬功能, Windows 需要安裝 FT2232 的驅動,請自行搜索 FT2232 驅動 下載安裝。
正常情況下,win10 ,linux3.0+ ,mac os都可以自動識別並安裝串口驅動。如果遇到驅動失敗,可以去 FTDI 官網下載對應的 VCP 驅動程序。
https://www.ftdichip.com/Drivers/VCP.htm
win驅動下載地址:http://www.ftdichip.com/Drivers/CDM/CDM21228_Setup.zip
如果到驅動安裝不正確,請徹底卸載原驅動,下載官方驅動,切斷網絡並安裝驅動即可解決問題。

連接成功

4、軟件准備(配置IDE開發環境)
(1)下載官方開發板固件(這里選擇了v0.5.0_31版本)
https://dl.sipeed.com/MAIX/MaixPy/release/master/
(2)下載燒錄軟件kflash_gui 應用,直接下載GitHub項目工程,下載完成點擊“kflash_gui.exe”文件安裝。運行並燒錄固件。
https://github.com/sipeed/kflash_gui/releases
(3)下載並安裝MaixPy IDE,MaixPy 使用Micropython 腳本語法,所以不像 C語言 一樣需要編譯,要使用MaixPy IDE , 開發板固件必須是V0.3.1 版本以上, 否則MaixPy IDE上會連接不上。
https://cn.dl.sipeed.com/MAIX/MaixPy/ide
http://dl.sipeed.com/MAIX/MaixPy ... e-windows-0.2.4.exe
(4)使用串口工具
a、putty
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
b、xshell
https://xshell.en.softonic.com/download
(5)具體見Sipeed 官方論壇
https://cn.bbs.sipeed.com/d/161-maixduino9-maixpy-idemicropython
(6)官方提供的MaixPy IDE標准界面

5、打開IDE,選擇開發板,確定連接電腦串口(不同電腦串口號並不相同)


檢查固件版本(這里燒錄的是v0.5.0_31)
使用串口終端(比如putty)打開串口

然后復位,看輸出的版本信息,與github 或者 master 分支 的固件版本對比,根據當前版本情況考慮升級到最新版本。

也可在MaixPy IDE上運行下面的代碼查看版本
import sys
sys.implementation.version

6、測試運行,hello world!


