linux和micropython的關系

python真得使用越來越廣泛了,記得我在6年前學習python時,當時還只是把它做為一個腳本語言來看,沒事學著大神們搞搞網絡安全的相關知識。然后,幾年用python的應用遍地都是,讓人更加吃驚的是,python都可以用于硬件開發(fā)了。說到這里,很多人可能想到的是樹莓派、香蕉派,因為支持linux系統(tǒng),可以進行硬件編程,同時帶了rpi等python庫,讓你可以用python控制硬件的gpio口等。實現上,python已經完全可以脫離系統(tǒng),直接進行單片機的開發(fā)了。
MicroPython是在單片機上可以跑的Python,也就是說,你可以通過Python腳本語言開發(fā)單片機程序。它遵守MIT協(xié)議開源,被授權人擁有復制、修改、發(fā)行和再授權的權利。由劍橋大學的理論物理學家喬治?達明設計。和Arduino類似,但MicroPython更強大。它的語法跟Python3基本一致,擁有自家的解析器、編譯器、 虛擬機和類庫等。目前它支持基于32-bit的ARM處理器,比如STM32F405、STM32f407等,也就是說ARM處理器STM32F405上直接可運行Python語言,用Python語言來控制單片機。當然還有大名鼎鼎的esp32單片機
1 Micropython開發(fā)板
Micropython從誕生的那一刻起,就被很多人關注,相應的開發(fā)板也迎運而生。
pyboard官方版
當前,支持的開發(fā)板有很多,如官方的pyboard,已經有pybv10和pybv11兩個版本。該版本又被稱為micropython的初型,以stm32f405為mcu,1024KiB flash ROM and 192KiB RAM,帶有一個tf卡槽。官方網站為www.micropython.org。

1.2 tpyboard國內版

Tpyboard幾乎是國內最早支持micropython的專用開發(fā)板,官方網站為www.tpyboard.com。據了解已有基本版V0X,wifi版V202,lan版V201以及GPRS和GPS版V70X等。同時,該網站還發(fā)布了較為完整的tpyboard和micropython中文文檔(http://docs.tpyboard.com/zh/latest/

V0X

支持wifi的esp8266版

支持lan版本

支持gprs和gps版本

1.3 openmv

隨著micropython的發(fā)展,一些專用開發(fā)板出現,如openmv,帶攝像頭的支持micropython的開發(fā)板,此開發(fā)板采用的是STM32f7系列的mcu,對圖像的處理能力更強,你可以用幾句python代碼就能完成一個可控制的攝像頭。

openmv

1.4 lopy

lopy是基于micropyhton支持LoRa, WiFi 和 Bluetooth 三種無線方式的開發(fā)板,它可以用于微型無線網關、報警器、機器人控制等,支持arduino IDE、Pymakr IDE(沒有找到是什么軟件),以及支持Microsoft Azure的云服務。

lopy

     除了以上版本外,當前還有pycom等其它版本,這里就不一一描述了。

2、micropython能干什么

既然micropython是用Python語言能來控制單片機,那么單片機能做什么基本能反映出它能做什么。還是讓我們一起看一下單片機能干什么?

目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業(yè)自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫(yī)療器械以及各種智能機械了。因此,單片機的學習、開發(fā)與應用將造就一批計算機應用與智能化控制的科學家、工程師。單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領域,大致可分如下幾個范疇:

2.1 智能儀器

單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應用于儀器儀表中,結合不同類型的傳感器,可實現諸如電壓、電流、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起采用電子或數字電路更加強大。   例如精密的測量設備(電壓表、功率計,示波器,各種分析儀)。

2.2 工業(yè)控制

單片機具有體積小、控制功能強、功耗低、環(huán)境適應能力強、擴展靈活和使用方便等優(yōu)點,用單片機可以構成形式多樣的控制系統(tǒng)、數據采集系統(tǒng)、通信系統(tǒng)、信號檢測系統(tǒng)、無線感知系統(tǒng)、測控系統(tǒng)、機器人等應用控制系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網構成二級控制系統(tǒng)等。

2.3 家用電器

現在的家用電器廣泛采用了單片機控制,從電飯煲、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備和白色家電等。

2.4 網絡和通信

現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,為在計算機網絡和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。

2.5 醫(yī)用設備領域

單片機在醫(yī)用設備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設備及病床呼叫系統(tǒng)等等。

2.6 模塊化系統(tǒng)

某些專用單片機設計用于實現特定功能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內部結構。如音樂集成單片機,看似簡單的功能,微縮在純電子芯片中(有別于磁帶機的原理),就需要復雜的類似于計算機的原理。如:音樂信號以數字的形式存于存儲器中(類似于ROM),由微控制器讀出,轉化為模擬音樂電信號(類似于聲卡)。   在大型電路中,這種模塊化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便于更換。

2.7 汽車電子

單片機在汽車電子中的應用非常廣泛,例如汽車中的發(fā)動機控制器,基于CAN總線的汽車發(fā)動機智能電子控制器、GPS導航系統(tǒng)、abs防抱死系統(tǒng)、制動系統(tǒng)、胎壓檢測等。

2.8 此外,單片機在工商、金融、科研、教育、電力、通信、物流和國防航空航天等領域都有著十分廣泛的用途。

3 向世界說“Hello world”(以tpyboard為例)

3.1 基本的連接方法

程序調試的連接方法:通過 USB 線連接開發(fā)板的microusb口與你的 PC 機(windows,mac,linux皆可)的usb口。當連接成功后開發(fā)板將上電和進入開機程序,綠色的 LED 燈應該在半秒或更少的時間內亮起,當其熄滅時意味著開機程序已完成。此時,電腦會出現一個u盤設備,容量97K左右。該u盤里存在4個文件:

boot.py 啟動文件,確定啟動方式,類似引導文件

main.py 主程序,boot.py默認引導啟動的程序,也就是你的python代碼主要是寫在這里。

pybcdc.inf 驅動程序,win7以上基本不需要驅動,個別精簡系統(tǒng)需要安裝驅動。如果確實需要安裝,請參考http://www.micropython.net.cn/support/tutorial/222.html

Readme.txt

使用的連接方法:使用時其實就是給該開發(fā)板供電,供電也是用microusb,直接將5V電源通過該口引入,如你可以使用充電寶、pc等具有供電能力的設備,利用usb連接供電。

3.2 點亮板載LED 向世界說”Hello“

學習語言首先要做的就是學會hello world,同樣學習單片機首先要做的就是點亮第一盞燈。這里我們來看看如何點亮tpyboard板子上本身帶的燈,板子上共有4個LED,分別從里到外是LED1、LED2、LED3、LED4。這里我們以點亮LED3為例。直接修改main.py文件,代碼如下:

main.py -- put your code here!

import pyb
pyb.LED(3).on()

對,就這三句話,去了注釋只有兩句。修改完,點擊保存時,板載的第一個燈會亮起,此時一定要等燈熄滅以后,按rst鍵或者重新?lián)懿逑聈sb。燈亮的過程表示正在存儲,因為此時是存在mcu的flash中,所以速度略慢一點。如果后面我們講了如何使用tf卡后,就會發(fā)現不存在這個過程。

重新給板子上電,此時會發(fā)現led3亮了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容