月度開發(fā)者:使用DragonBoard 410c開發(fā)輕量化Python 實(shí)現(xiàn)小型嵌入式單片機(jī)運(yùn)行高級(jí)語言Python
人們說包裝雖小但東西好。也許他們應(yīng)該說“微包裝”(小組件)。本月,我們的月度開發(fā)者是Paul Sokolovsky。他正在進(jìn)行的項(xiàng)目要求用到單片機(jī)(MCU)和縮微版軟件,以實(shí)現(xiàn)高度可便攜性。為完成這項(xiàng)工作,Paul使用了DragonBoard 410c進(jìn)行開發(fā)和測(cè)試。
本文引用地址:http://2s4d.com/article/201710/365542.htm“許多項(xiàng)目是要求可擴(kuò)展的——擴(kuò)展為多核心、多臺(tái)服務(wù)器甚至云環(huán)境。然而,我們的項(xiàng)目“MicroPython” 是關(guān)于輕量化Python并能在小型嵌入式單片機(jī)系統(tǒng)上運(yùn)行流行的高級(jí)語言Python的項(xiàng)目,用戶可以快速、輕松地完成原型設(shè)計(jì)、開發(fā)物聯(lián)網(wǎng)及其它應(yīng)用。但是,MicroPython并不單單針對(duì)單片機(jī),它具有良好的移植性及可配置性,目的是打開Python語言創(chuàng)新應(yīng)用的潘多拉之盒。”
Paul Sokolovsky
Paul是MicroPython團(tuán)隊(duì)的兩名成員之一,他在土耳其安塔利亞工作。他與項(xiàng)目發(fā)起人——英國(guó)的Damien George一起合作。據(jù)Paul講,Damien是最開始想到這個(gè)瘋狂的點(diǎn)子的人,即在單片機(jī)上運(yùn)行Python。他還成功發(fā)起了Kickstarter眾籌活動(dòng)(吸引了將近1400名支持者),構(gòu)建運(yùn)行MicroPython的Cortex-M4開發(fā)板。當(dāng)時(shí),Paul正在研究各種小型腳本語言,解決自身的物聯(lián)網(wǎng)/家庭自動(dòng)化需求,那時(shí)還沒有考慮過重寫Python以便運(yùn)行在小型系統(tǒng)上。Paul 說服Damien在網(wǎng)上(GitHub)發(fā)布源碼?,F(xiàn)在,他與Damien一起承擔(dān)這一項(xiàng)目的維護(hù)任務(wù)。( 此視頻展示了在適用于物聯(lián)網(wǎng)的嵌入式單片機(jī)開發(fā)板上運(yùn)行MicroPython)
Paul在MicroPython項(xiàng)目的一部分工作會(huì)使用到DragonBoard 410c板,“它始終在我的工作臺(tái)上占據(jù)一席之地,它執(zhí)行著各種開發(fā)與測(cè)試工作。”
Paul說:“我從GitHub pull最新的更新,這一任務(wù)因DragonBoard內(nèi)置Wi-Fi而變得更加方便。然后,我利用DragonBoard Linaro AArch64工具鏈構(gòu)建代碼,檢查64位ARMv8架構(gòu)在編譯時(shí)出現(xiàn)的問題。接著我再運(yùn)行各種MicroPython測(cè)試套件,這個(gè)測(cè)試套件運(yùn)行使用“大Python”和“微Python”(MicroPython)編寫的各種Python代碼,檢查結(jié)果是否匹配。”
例如,Paul最近作了一項(xiàng)測(cè)試,以確定MicroPython物理內(nèi)存訪問API與DragonBoard的配合情況。然后,他利用這些成果制作了一組如何訪問DragonBoard GPIO的示例。
“我希望像我們這樣的項(xiàng)目能向初入行者展示DragonBoard很容易上手,為他們學(xué)習(xí)DragonBoard更高級(jí)的功能鋪平道路,”Paul說。
我們最近采訪了Paul,更多地了解了他的工作和他對(duì)開源開發(fā)的見解。以下為訪談實(shí)錄:
Q:你們公司文化有哪些與眾不同的地方?有什么傳統(tǒng)慣例嗎?
A:我們這個(gè)項(xiàng)目并不是第一個(gè)將Python或其它高級(jí)語言帶入單片機(jī)的項(xiàng)目,所以我們是站在前人的肩膀上,要爭(zhēng)取做到更好。至于傳統(tǒng)慣例,我們對(duì)于專業(yè)管理的軟件項(xiàng)目有一套例行動(dòng)作——每日代碼審查、需遵循的代碼風(fēng)格和慣例、需編寫的單元測(cè)試——諸如此類的事情。
Q:您能和我們分享公司的一件趣事嗎?
A:Damien和我并沒有見過面——這應(yīng)該是開源世界經(jīng)常發(fā)生的趣事了!
Q:您和Damien的工作靈感從何而來?
A:我們從用戶和貢獻(xiàn)者身上獲得靈感。實(shí)際上,要想在自己的閑暇時(shí)間積極維護(hù)一個(gè)開源項(xiàng)目不是件易事。您開始為項(xiàng)目貢獻(xiàn)代碼,專注于項(xiàng)目,反而“忘記”了自己本身的任務(wù);唯一可行的辦法是,您始終對(duì)自己說:“我負(fù)責(zé)項(xiàng)目的核心工作,因?yàn)槲易盍私馑?,所以最好由我來做這項(xiàng)工作。我只是希望其他人利用這個(gè)項(xiàng)目做出一些我想做或覺得有趣/有用的東西。”這樣的話,真得很令人高興!
Q:您在技術(shù)領(lǐng)域的偶像是誰?
A:Adam Dunkels. 我認(rèn)為他是物聯(lián)網(wǎng)之父。他向我展示了即使用很少的代碼也能實(shí)現(xiàn)一些奇跡般的功能,即使是在CPU 數(shù)千兆赫和內(nèi)存數(shù)個(gè)GB的時(shí)代,這些奇跡在現(xiàn)代世界仍能派上用場(chǎng)。他開發(fā)的ConTIki OS是第一個(gè)物聯(lián)網(wǎng)操作系統(tǒng)(早在“物聯(lián)網(wǎng)”之詞問世之前就出現(xiàn)了),為之開發(fā)的uIP和lwIP TCP/IP堆棧,現(xiàn)在已經(jīng)成為行業(yè)領(lǐng)先的嵌入式TCP/IP堆棧。
Q:您喜歡嵌入式和物聯(lián)網(wǎng)開發(fā)的哪些方面呢?
A:有人說許多開源項(xiàng)目都是在解決自身問題中誕生。而物聯(lián)網(wǎng)是這方面更具參與性——幾乎每個(gè)人都會(huì)使用到燈,您可以控制它在您靠近時(shí)打開(并且只在特定時(shí)間);或者如果接下來幾個(gè)小時(shí)不用就關(guān)掉加熱器。能夠解決生活中的小事,使生活更加舒適,并且是按您喜歡的方式解決,是物聯(lián)網(wǎng)有趣和有意義的地方。
Q:您喜歡DragonBoard 410c的哪些方面?
A:我辦公桌的抽屜里放了很多開發(fā)板,但只有DragonBoard 410c穩(wěn)穩(wěn)地占據(jù)了我辦公桌的一角,執(zhí)行各種開發(fā)和測(cè)試任務(wù)。它配備了一款現(xiàn)代化的CPU,有Wi-Fi、藍(lán)牙4.0和GPS。Wi-Fi在日常工作中非常有用,BT4.0和GPS對(duì)于物聯(lián)網(wǎng)項(xiàng)目也大有幫助。但硬件的強(qiáng)大只是一部分。
我發(fā)現(xiàn)支持更為重要,這包括軟件、文檔和社區(qū)支持。..DragonBoard的相關(guān)文檔十分全面,并且還在持續(xù)完善。還有,96boards.org社區(qū)也在成長(zhǎng)中,這里可以討論各種問題,也會(huì)見識(shí)到各種最新項(xiàng)目。
Q:您對(duì)其他開發(fā)者有什么建議嗎?
A:請(qǐng)珍惜開源開發(fā)。就像路網(wǎng)一樣——大部分時(shí)間里您可以免費(fèi)通行,但道路維護(hù)需要付出極大的努力。請(qǐng)通過提交補(bǔ)丁或幫助其他用戶來回饋開源世界。如果您從中賺了錢,請(qǐng)考慮贊助或雇用人員開展工作。
要了解更多關(guān)于MicroPython的信息,請(qǐng)?jiān)赥witter關(guān)注他們。您可以在GitHub上關(guān)注Paul的工作。
評(píng)論