如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目

編程語言 Python 通信 Perl OS X 雲志學Python 2018-12-04

幾年前做項目時第一次聽說Python,朋友強力推薦。對於這位老大,我幾乎每次和聆聽完指導後的第一件是就是百度剛才那些我不聽不明白的專業術語。

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】

簡言之,Python是一種面向對象的解釋型計算機程序設計語言,是純粹的自由軟件, 源代碼和解釋器。Python遵循 GPL(GNU General Public License)協議[2] 。它具有豐富而強大的庫,常被暱稱為膠水語言。能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕鬆地聯結在一起,應用於任何平臺,而且還有我們最喜歡的開源 、免費噢!

如果不想每天面對計算機如此的多國語言,不如選一兩種通用語。難得它能在嵌入式開發的平臺上行得開,那就來進一步熟悉吧!

1、開發板硬件測評

先從某寶上購得PYBOARD V702一塊,先來看看外觀;


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


底板硬件資源如下:


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


配上Nokia5110的SPI接口LCD屏,組成上一個完整的傳輸系統。來個全家照吧!


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


TPYBoard_V702是遵照MIT許可的MicroPython開發板,支持Python語言的通信定位開發板。板載資源豐富,列表如下:


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


1)主處理器

它的主處理器為ARM CORTEX-M4系列的STM32F405,最高工作頻率168MHz,利用意法半導體的ART加速器實現了FLASH零等待狀態。支持DSP指令和浮點單元,具有動態功耗調整功能和豐富的接口【2】。

• 2個USB OTG(其中一個支持HS)

• 音頻:專用音頻PLL和2個全雙工I²S

• 通信接口多達15個(包括6個速度高達10.5 Mb/s的USART、3個速度高達42 Mb/s的SPI、 3個I²C、2個CAN和1個SDIO)

• 模擬:2個12位DAC、3個速度為2.4 MSPS或7.2 MSPS(交錯模式)的12位ADC

• 定時器多達17個:頻率高達168 MHz的16和32位定時器

• 可以利用支持Compact Flash、SRAM、PSRAM、NOR和NAND存儲器的靈活靜態存儲器控制器輕鬆擴展存儲容量

• 基於模擬電子技術的真隨機數發生器

• STM32F415還整合了加密/HASH處理器,為AES 128、192、256、Triple DES和HASH(MD5、SHA-1)實現了硬件加速。

集成:STM32F405/415產品系列具有512KB(僅限於WLCSP90封裝)~1MB Flash和192KB SRAM,採用尺寸小

至4 x 4.2 mm的64~144引腳封裝。

2)外部設備

當然除了這顆高級的“心”之外,它更搭載了模塊----GU620。它是一款內嵌高靈敏度GPS&BEIDOU&藍牙功能的GSM/GPRS模塊,可同時支持四頻段制式,有更小的體積。其中的GPS是基於UBLOX的成熟芯片組設計開發,可進行高達66個PRN信道的衛星跟蹤,適用於車載監控導航,防盜跟蹤,PND,跟蹤器,個人安全設備等通信導航設備。


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


並且板子搭配了SHT20數字溫溼度傳感器和科美奇的三軸數字加速度傳感器芯片MMA7660FC是± 1.5G三軸數字輸出的I2C,超低功率,緊湊型電容式微電機的加速度計,超低功耗,小型容性MEMS的傳感器,具有低通濾波器,用於0g偏移和增益誤差補償,以及用戶可配置的轉換成6位分辨率,用戶可配置輸出速率等功能。該器件通過中斷引腳(INT)可以提供傳感器數據變化、產品方向和姿態識別等中斷。性能如下【3】:

·MMA7660FC可在六個方向定製垂直水平座向

·集成了眾多智能的運動功能,如方向、震動和敲擊檢測集成了眾多智能的運動功能,如方向,震動和敲擊檢測

·自動喚醒休眠功能自動喚醒休眠功能

·包括智能電源管理功能包括智能電源管理功能

相信這樣豐富的外部傳感器,在你下面的物聯網應用中會激發出更好的創意吧!

下面我們將板子上電,效果如下:


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


對比色彩還是很豔麗的哦!雖然還沒定到經緯度。


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


2、編寫程序測試

下面來查看一下電腦--->設備管理,可以看到其它設備中提示如下。

如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


並且電腦會增加一個盤符TPYBFLASH,打開後可以看到板子帶的啟動及應用文件,就在下面了。


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


需要更新一下驅動程序,右鍵--->更新驅動,選擇PYBCDC.INF文件,安裝完成後,在可以在設備管理器中看到。

如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


到python官網上下載網址:https://www.python.org/

如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


雙擊後安裝完成,效果如圖所示。


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


在開始菜單下就可以看到python的程序嘍!


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


點擊python3.5(64-bit)就打開了它的命令窗口,如圖。


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


我們所看到的設備是由開發板裡的Flash實現,並由四個文件關聯組成:

1)boot.py

這個腳本文件執行時,開發板啟動。它設置了開發板的多個選項參數。

2)Main.py

在boot.py運行後被執行,包含python程序的主要腳本。

3)Pybcdc.inf

Windows驅動文件,用來配置USB端口。

4)Readme.txt

開啟Python的必要基礎信息。

還是先來弄個LED點亮的小程序來走一下流程吧!

先將TPYBFLASH目錄下的main.py用記事本的方式打開,實現點亮LED燈。

# main.py -- put your code here!

import pyb //導入模塊的函數和類

led=pyb.LED(2) //創建變量LED2

led.on() //點亮LED2

while True: //循環閃爍

led.toggle()

pyb.delay(500)

保存後,將這四個文件拷貝到文件夾。然後將板子從電腦上退出。當再次上電後就可以看到,Led綠燈在toggle閃爍了。

簡單吧!編譯都沒有的噢!所見及所得。


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


當然這時你也可以通過串口來進行一些調試【4】。

在串口中,將串頻率設成115200(與板子默認配置相關),串口對應成13,連點擊連接圖標。這時重啟開發板就會在終端看到下面的打印信息。我們當然可以用它來做一些測試和驗證。

比如輸入:print(“hello world”)

Pyb.LED(1).ON()

Pyb.LED(2).ON()

等等


如何在嵌入式平臺玩轉Python 先做個通訊定位的小項目


這時來看一下板上的LED燈,吼吼,都亮嘍!


3、總結:

PyBoard支持三種啟動模式

l 標準模式。先執行boot.py文件,然後再執行main.py文件。

l 恢復文件系統。將Flash文件系統恢復為出廠數據,

l 安全模式啟動。假若你的文件系統被損壞,可以進入模式。

它集成了更多的傳感器和外設,很方便實現物聯網平臺的搭建。MicroPython支持更多的平臺,例如:STM32F4 Discovery Board,NUCLEO-F401RE Board,NUCLEO-F767ZI Board,ESP8266,WiPy等,在開發板內刷上固件就可以使用了。

MicroPython腳本語言最大的優點它是解釋型語言,使用簡單、方便、高效,而且較C,JAVA等語言更容易理解和使用。Python的設計哲學是“優雅”、“明確”、“簡單”。

當然後面還會再有更多更有趣的實驗與心得會與大家分享哦!

4、參考資料:

【1】https://wiki.python.org/moin/BeginnersGuide/Overview

【2】

http://www.stmcu.com.cn/Product/pro_detail/cat_code/STM32F405_415/family/81/sub_family/127/sub_child_family/153/layout/product

【3】MMA7660FC.pdf Rev 7, 11/2009

【4】http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/repl/

寫在最後

喜歡此篇文章或覺得這篇文章對你有幫助的讀者可以點播關注或者轉發,私信小編001即可獲得小編自己整理的一份2018最新的python資料和0基礎入門教程,歡迎初學和進階中的小夥伴

相關推薦

推薦中...