幾年前做項(xiàng)目時(shí)第一次聽(tīng)說(shuō)Python,朋友強(qiáng)力推薦。對(duì)于這位老大,我?guī)缀趺看魏婉雎?tīng)完指導(dǎo)后的第一件是就是百度剛才那些我不聽(tīng)不明白的專(zhuān)業(yè)術(shù)語(yǔ)。
Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
Some of Python's notable features:
· Uses an elegant syntax, making the programs you write easier to read.
· Is an easy-to-use language that makes it simple to get your program working. This makes Python ideal for prototype development and other ad-hoc programming tasks, without compromising maintainability.
· Comes with a large standard library that supports many common programming tasks such as connecting to web servers, searching text with regular expressions, reading and modifying files.
· Python's interactive mode makes it easy to test short snippets of code. There's also a bundled development environment called IDLE.
· Is easily extended by adding new modules implemented in a compiled language such as C or C++.
· Can also be embedded into an application to provide a programmable interface.
· Runs anywhere, including Mac OS X, Windows, Linux, and Unix.
· Is free software in two senses. It doesn't cost anything to download or use Python, or to include it in your application. Python can also be freely modified and re-distributed, because while the language is copyrighted it's available under an open source license.【1】
簡(jiǎn)言之,Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,是純粹的自由軟件, 源代碼和解釋器。Python遵循 GPL(GNU General Public License)協(xié)議[2] 。它具有豐富而強(qiáng)大的庫(kù),常被昵稱(chēng)為膠水語(yǔ)言。能夠把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起,應(yīng)用于任何平臺(tái),而且還有我們最喜歡的開(kāi)源 、免費(fèi)噢!
如果不想每天面對(duì)計(jì)算機(jī)如此的多國(guó)語(yǔ)言,不如選一兩種通用語(yǔ)。難得它能在嵌入式開(kāi)發(fā)的平臺(tái)上行得開(kāi),那就來(lái)進(jìn)一步熟悉吧!
1、開(kāi)發(fā)板硬件測(cè)評(píng)
先從某寶上購(gòu)得PYBOARD V702一塊,先來(lái)看看外觀(guān);
底板硬件資源如下:
配上Nokia5110的SPI接口LCD屏,組成上一個(gè)完整的傳輸系統(tǒng)。來(lái)個(gè)全家照吧!
TPYBoard_V702是遵照MIT許可的MicroPython開(kāi)發(fā)板,支持Python語(yǔ)言的通信定位開(kāi)發(fā)板。板載資源豐富,列表如下:
1)主處理器
它的主處理器為ARM CORTEX-M4系列的STM32F405,最高工作頻率168MHz,利用意法半導(dǎo)體的ART加速器實(shí)現(xiàn)了FLASH零等待狀態(tài)。支持DSP指令和浮點(diǎn)單元,具有動(dòng)態(tài)功耗調(diào)整功能和豐富的接口【2】。
? 2個(gè)USB OTG(其中一個(gè)支持HS)
? 音頻:專(zhuān)用音頻PLL和2個(gè)全雙工I2S
? 通信接口多達(dá)15個(gè)(包括6個(gè)速度高達(dá)10.5 Mb/s的USART、3個(gè)速度高達(dá)42 Mb/s的SPI、 3個(gè)I2C、2個(gè)CAN和1個(gè)SDIO)
? 模擬:2個(gè)12位DAC、3個(gè)速度為2.4 MSPS或7.2 MSPS(交錯(cuò)模式)的12位ADC
? 定時(shí)器多達(dá)17個(gè):頻率高達(dá)168 MHz的16和32位定時(shí)器
? 可以利用支持Compact Flash、SRAM、PSRAM、NOR和NAND存儲(chǔ)器的靈活靜態(tài)存儲(chǔ)器控制器輕松擴(kuò)展存儲(chǔ)容量
? 基于模擬電子技術(shù)的真隨機(jī)數(shù)發(fā)生器
? STM32F415還整合了加密/HASH處理器,為AES 128、192、256、Triple DES和HASH(MD5、SHA-1)實(shí)現(xiàn)了硬件加速。
集成:STM32F405/415產(chǎn)品系列具有512KB(僅限于WLCSP90封裝)~1MB Flash和192KB SRAM,采用尺寸小
至4 x 4.2 mm的64~144引腳封裝。
2)外部設(shè)備
當(dāng)然除了這顆高級(jí)的“心”之外,它更搭載了模塊----GU620。它是一款內(nèi)嵌高靈敏度GPS&BEIDOU&藍(lán)牙功能的GSM/GPRS模塊,可同時(shí)支持四頻段制式,有更小的體積。其中的GPS是基于UBLOX的成熟芯片組設(shè)計(jì)開(kāi)發(fā),可進(jìn)行高達(dá)66個(gè)PRN信道的衛(wèi)星跟蹤,適用于車(chē)載監(jiān)控導(dǎo)航,防盜跟蹤,PND,跟蹤器,個(gè)人安全設(shè)備等通信導(dǎo)航設(shè)備。
并且板子搭配了SHT20數(shù)字溫濕度傳感器和科美奇的三軸數(shù)字加速度傳感器芯片MMA7660FC是± 1.5G三軸數(shù)字輸出的I2C,超低功率,緊湊型電容式微電機(jī)的加速度計(jì),超低功耗,小型容性MEMS的傳感器,具有低通濾波器,用于0g偏移和增益誤差補(bǔ)償,以及用戶(hù)可配置的轉(zhuǎn)換成6位分辨率,用戶(hù)可配置輸出速率等功能。該器件通過(guò)中斷引腳(INT)可以提供傳感器數(shù)據(jù)變化、產(chǎn)品方向和姿態(tài)識(shí)別等中斷。性能如下【3】:
·MMA7660FC可在六個(gè)方向定制垂直水平座向
·集成了眾多智能的運(yùn)動(dòng)功能,如方向、震動(dòng)和敲擊檢測(cè)集成了眾多智能的運(yùn)動(dòng)功能,如方向,震動(dòng)和敲擊檢測(cè)
·自動(dòng)喚醒休眠功能自動(dòng)喚醒休眠功能
相信這樣豐富的外部傳感器,在你下面的物聯(lián)網(wǎng)應(yīng)用中會(huì)激發(fā)出更好的創(chuàng)意吧!
下面我們將板子上電,效果如下:
對(duì)比色彩還是很艷麗的哦!雖然還沒(méi)定到經(jīng)緯度。
2、編寫(xiě)程序測(cè)試
下面來(lái)查看一下電腦--->設(shè)備管理,可以看到其它設(shè)備中提示如下。
并且電腦會(huì)增加一個(gè)盤(pán)符TPYBFLASH,打開(kāi)后可以看到板子帶的啟動(dòng)及應(yīng)用文件,就在下面了。
需要更新一下驅(qū)動(dòng)程序,右鍵--->更新驅(qū)動(dòng),選擇PYBCDC.INF文件,安裝完成后,在可以在設(shè)備管理器中看到。
到python官網(wǎng)上下載網(wǎng)址:https://www.python.org/
雙擊后安裝完成,效果如圖所示。
在開(kāi)始菜單下就可以看到python的程序嘍!
點(diǎn)擊python3.5(64-bit)就打開(kāi)了它的命令窗口,如圖。
我們所看到的設(shè)備是由開(kāi)發(fā)板里的Flash實(shí)現(xiàn),并由四個(gè)文件關(guān)聯(lián)組成:
1)boot.py
這個(gè)腳本文件執(zhí)行時(shí),開(kāi)發(fā)板啟動(dòng)。它設(shè)置了開(kāi)發(fā)板的多個(gè)選項(xiàng)參數(shù)。
2)Main.py
在boot.py運(yùn)行后被執(zhí)行,包含python程序的主要腳本。
3)Pybcdc.inf
Windows驅(qū)動(dòng)文件,用來(lái)配置USB端口。
4)Readme.txt
開(kāi)啟Python的必要基礎(chǔ)信息。
還是先來(lái)弄個(gè)LED點(diǎn)亮的小程序來(lái)走一下流程吧!
先將TPYBFLASH目錄下的main.py用記事本的方式打開(kāi),實(shí)現(xiàn)點(diǎn)亮LED燈。
# main.py -- put your code here!
import pyb //導(dǎo)入模塊的函數(shù)和類(lèi)
led=pyb.LED(2) //創(chuàng)建變量LED2
led.on() //點(diǎn)亮LED2
while True: //循環(huán)閃爍
led.toggle()
pyb.delay(500)
保存后,將這四個(gè)文件拷貝到文件夾。然后將板子從電腦上退出。當(dāng)再次上電后就可以看到,Led綠燈在toggle閃爍了。
簡(jiǎn)單吧!編譯都沒(méi)有的噢!所見(jiàn)及所得。
當(dāng)然這時(shí)你也可以通過(guò)串口來(lái)進(jìn)行一些調(diào)試【4】。
在串口中,將串頻率設(shè)成115200(與板子默認(rèn)配置相關(guān)),串口對(duì)應(yīng)成13,連點(diǎn)擊連接圖標(biāo)。這時(shí)重啟開(kāi)發(fā)板就會(huì)在終端看到下面的打印信息。我們當(dāng)然可以用它來(lái)做一些測(cè)試和驗(yàn)證。
比如輸入:print(“hello world”)
Pyb.LED(1).ON()
Pyb.LED(2).ON()
等等
這時(shí)來(lái)看一下板上的LED燈,吼吼,都亮嘍!
3、總結(jié):
PyBoard支持三種啟動(dòng)模式
l 標(biāo)準(zhǔn)模式。先執(zhí)行boot.py文件,然后再執(zhí)行main.py文件。
l 恢復(fù)文件系統(tǒng)。將Flash文件系統(tǒng)恢復(fù)為出廠(chǎng)數(shù)據(jù),
l 安全模式啟動(dòng)。假若你的文件系統(tǒng)被損壞,可以進(jìn)入模式。
它集成了更多的傳感器和外設(shè),很方便實(shí)現(xiàn)物聯(lián)網(wǎng)平臺(tái)的搭建。MicroPython支持更多的平臺(tái),例如:STM32F4 Discovery Board,NUCLEO-F401RE Board,NUCLEO-F767ZI Board,ESP8266,WiPy等,在開(kāi)發(fā)板內(nèi)刷上固件就可以使用了。
MicroPython腳本語(yǔ)言最大的優(yōu)點(diǎn)它是解釋型語(yǔ)言,使用簡(jiǎn)單、方便、高效,而且較C,JAVA等語(yǔ)言更容易理解和使用。Python的設(shè)計(jì)哲學(xué)是“優(yōu)雅”、“明確”、“簡(jiǎn)單”。
當(dāng)然后面還會(huì)再有更多更有趣的實(shí)驗(yàn)與心得會(huì)與大家分享哦!
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304829 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97375 -
python
+關(guān)注
關(guān)注
56文章
4792瀏覽量
84628
原文標(biāo)題:如何在嵌入式平臺(tái)玩轉(zhuǎn)Python 先做個(gè)通訊定位的小項(xiàng)目
文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論