0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在嵌入式平臺上玩轉Python

h1654155971.7688 ? 來源:未知 ? 作者:李倩 ? 2018-05-14 08:59 ? 次閱讀

幾年前做項目時第一次聽說Python,朋友強力推薦。對于這位老大,我?guī)缀趺看魏婉雎犕曛笇Ш蟮牡谝患蔷褪前俣葎偛拍切┪也宦牪幻靼椎膶I(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】

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

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

1、開發(fā)板硬件測評

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

底板硬件資源如下:

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

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

pIYBAFr44BGAbUCEAABg-T3v-l8378.jpg

1)主處理器

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

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

? 音頻:專用音頻PLL和2個全雙工I2S

? 通信接口多達15個(包括6個速度高達10.5 Mb/s的USART、3個速度高達42 Mb/s的SPI、 3個I2C、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存儲器的靈活靜態(tài)存儲器控制器輕松擴展存儲容量

? 基于模擬電子技術的真隨機數(shù)發(fā)生器

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

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

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

2)外部設備

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

pIYBAFr44BKAdqumAAE4exw9MQE181.jpg

pIYBAFr44BKAFABEAAD6UBrSB9E397.jpg

pIYBAFr44BOAT0xKAAFneeF3wpY529.jpg

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

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

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

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

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

相信這樣豐富的外部傳感器,在你下面的物聯(lián)網(wǎng)應用中會激發(fā)出更好的創(chuàng)意吧!

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

對比色彩還是很艷麗的哦!雖然還沒定到經(jīng)緯度。

2、編寫程序測試

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

pIYBAFr44BOATVDtAAAtPGfdzRs323.png

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

pIYBAFr44BSAHG6VAAB75hX8BtQ447.png

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

pIYBAFr44BSACFaaAAApbfxGg0Q558.png

到python官網(wǎng)上下載網(wǎng)址:https://www.python.org/

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

pIYBAFr44BSASeDqAABdIlo9gS8644.jpg

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

pIYBAFr44BWAaFhoAADrDMTSQYM947.jpg

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

pIYBAFr44BWARjQQAAEelGCzFsI142.png

我們所看到的設備是由開發(fā)板里的Flash實現(xiàn),并由四個文件關聯(lián)組成:

1)boot.py

這個腳本文件執(zhí)行時,開發(fā)板啟動。它設置了開發(fā)板的多個選項參數(shù)。

2)Main.py

在boot.py運行后被執(zhí)行,包含python程序的主要腳本。

3)Pybcdc.inf

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

4)Readme.txt

開啟Python的必要基礎信息

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

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

# main.py -- put your code here!

import pyb //導入模塊的函數(shù)和類

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

led.on() //點亮LED2

while True: //循環(huán)閃爍

led.toggle()

pyb.delay(500)

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

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

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

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

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

Pyb.LED(1).ON()

Pyb.LED(2).ON()

等等

pIYBAFr44BaACW_MAADeUpuAs-o316.png

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

3、總結:

PyBoard支持三種啟動模式

l 標準模式。先執(zhí)行boot.py文件,然后再執(zhí)行main.py文件。

l 恢復文件系統(tǒng)。將Flash文件系統(tǒng)恢復為出廠數(shù)據(jù),

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5059

    文章

    18974

    瀏覽量

    302063
  • 開發(fā)板
    +關注

    關注

    25

    文章

    4898

    瀏覽量

    97061
  • python
    +關注

    關注

    55

    文章

    4768

    瀏覽量

    84376

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

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網(wǎng)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python在開發(fā)實時嵌入式系統(tǒng)中的作用

    。MicroPython并不孤單。Synapse和OpenMV等公司在嵌入式系統(tǒng)中使用Micro Python或自己的Python端口。學習面向對象編程Python是一種免費的編程語言
    發(fā)表于 01-11 18:22

    嵌入式平臺上怎么實現(xiàn)μC/GUI的移植?

    。為了使便攜心電監(jiān)護儀實現(xiàn)友好的人機交互和更加方便的顯示,這里提出一種GUI界面系統(tǒng)設計,就是在基于NiosⅡ處理器的嵌入式平臺上實現(xiàn)μC/GUI的移植,使之實現(xiàn)系統(tǒng)功能。
    發(fā)表于 11-05 07:00

    何在手持信息終端嵌入式系統(tǒng)平臺上實現(xiàn)MIDI的播放?

    本文將著重介紹如何在手持信息終端嵌入式系統(tǒng)平臺上實現(xiàn)MIDI的播放。
    發(fā)表于 05-28 06:05

    何在嵌入式Linux系統(tǒng)平臺上設計建立圖像視頻?

    本文使用的系統(tǒng)硬件平臺采用Samsung公司的處理器S3C2410,并以此為基礎,在基于嵌入式Linux系統(tǒng)平臺上設計了建立圖像視頻的一種方法。
    發(fā)表于 06-08 06:10

    如何使嵌入式操作系統(tǒng)在不同的硬件平臺上有效地運行

    平臺上有效地運行,是嵌入式系統(tǒng)開發(fā)中需要解決的關鍵問題。解決的方法是在硬件平臺和操作系統(tǒng)之間提供硬件相關層來屏蔽這些硬件的差異,給操作系統(tǒng)提供統(tǒng)一的運行環(huán)境,這種硬件相關層就是嵌入式
    發(fā)表于 11-05 08:06

    嵌入式Python的區(qū)別是什么

    從概念上來說,嵌入式Python的區(qū)別還是比較明顯的,嵌入式是一個開發(fā)領域,而Python則是一門編程語言。下面就來和大家說一說嵌入式
    發(fā)表于 11-08 07:46

    嵌入式平臺上板載的微控制器是什么

    1 填空題嵌入式競賽平臺上板載的微控制器是: 3 級流水線,具有 128 Kbytes的Flash存儲空間。(請在第一、二空格處填寫10進制數(shù)值)解析:STM32G431RBT6采用采用
    發(fā)表于 11-08 06:09

    Python在開發(fā)實時嵌入式系統(tǒng)中的作用是什么

    Raspberry Pi等單板計算機上被采用。隨著這種廣泛且不斷增長的采用,人們可能想知道在實時嵌入式系統(tǒng)中是否存在Python的位置。以下是開發(fā)人員可能...
    發(fā)表于 12-14 06:41

    在實時嵌入式系統(tǒng)中是否存在Python的位置

    Raspberry Pi等單板計算機上被采用。隨著這種廣泛且不斷增長的采用,人們可能想知道在實時嵌入式系統(tǒng)中是否存在Python的位置。以下是開發(fā)人員可能...
    發(fā)表于 12-22 06:25

    Qt在海思嵌入式平臺上的GDB調試過程是怎樣的

    Qt在海思嵌入式平臺上的GDB調試過程是怎樣的
    發(fā)表于 12-24 06:33

    嵌入式Python環(huán)境

    本文首發(fā)于just4fun緣起這里將討論的嵌入式Python環(huán)境并不是硬件嵌入式開發(fā)的那個嵌入式,如果對Python和硬件感興趣,推薦mic
    發(fā)表于 10-21 11:21 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Python</b>環(huán)境

    python嵌入式開發(fā)_Python嵌入式的區(qū)別是什么?可以做嵌入式開發(fā)嗎?

    從概念上來說,嵌入式Python的區(qū)別還是比較明顯的,嵌入式是一個開發(fā)領域,而Python則是一門編程語言。下面就來和大家說一說嵌入式
    發(fā)表于 11-02 20:21 ?14次下載
    <b class='flag-5'>python</b>做<b class='flag-5'>嵌入式</b>開發(fā)_<b class='flag-5'>Python</b>和<b class='flag-5'>嵌入式</b>的區(qū)別是什么?可以做<b class='flag-5'>嵌入式</b>開發(fā)嗎?

    嵌入式Python簡介

    嵌入式Python簡介
    的頭像 發(fā)表于 12-28 09:51 ?2790次閱讀

    CircuitPython:用于教育的嵌入式 Python

    CircuitPython:用于教育的嵌入式 Python
    的頭像 發(fā)表于 12-29 10:02 ?942次閱讀

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發(fā)展,深度學習算法在各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰(zhàn)性的任務。本文將從嵌入式平臺的特點、深度學習算法的
    的頭像 發(fā)表于 07-15 10:03 ?1097次閱讀