<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 月度開發(fā)者:使用DragonBoard 410c開發(fā)輕量化Python 實現(xiàn)小型嵌入式單片機運行高級語言Python

          月度開發(fā)者:使用DragonBoard 410c開發(fā)輕量化Python 實現(xiàn)小型嵌入式單片機運行高級語言Python

          作者: 時間:2017-10-11 來源:網(wǎng)絡(luò) 收藏

          人們說包裝雖小但東西好。也許他們應(yīng)該說“微包裝”(小組件)。本月,我們的月度開發(fā)者是Paul Sokolovsky。他正在進行的項目要求用到單片機(MCU)和縮微版軟件,以實現(xiàn)高度可便攜性。為完成這項工作,Paul使用了DragonBoard 410c進行開發(fā)和測試。

          本文引用地址:http://www.ex-cimer.com/article/201710/365542.htm

          “許多項目是要求可擴展的——擴展為多核心、多臺服務(wù)器甚至云環(huán)境。然而,我們的項目“MicroPython” 是關(guān)于輕量化Python并能在小型嵌入式單片機系統(tǒng)上運行流行的高級語言Python的項目,用戶可以快速、輕松地完成原型設(shè)計、開發(fā)物聯(lián)網(wǎng)及其它應(yīng)用。但是,MicroPython并不單單針對單片機,它具有良好的移植性及可配置性,目的是打開Python語言創(chuàng)新應(yīng)用的潘多拉之盒。”

          Paul Sokolovsky

          Paul是MicroPython團隊的兩名成員之一,他在土耳其安塔利亞工作。他與項目發(fā)起人——英國的Damien George一起合作。據(jù)Paul講,Damien是最開始想到這個瘋狂的點子的人,即在單片機上運行Python。他還成功發(fā)起了Kickstarter眾籌活動(吸引了將近1400名支持者),構(gòu)建運行MicroPython的Cortex-M4開發(fā)板。當(dāng)時,Paul正在研究各種小型腳本語言,解決自身的物聯(lián)網(wǎng)/家庭自動化需求,那時還沒有考慮過重寫Python以便運行在小型系統(tǒng)上。Paul 說服Damien在網(wǎng)上(GitHub)發(fā)布源碼?,F(xiàn)在,他與Damien一起承擔(dān)這一項目的維護任務(wù)。( 此視頻展示了在適用于物聯(lián)網(wǎng)的嵌入式單片機開發(fā)板上運行MicroPython)

          Paul在MicroPython項目的一部分工作會使用到DragonBoard 410c板,“它始終在我的工作臺上占據(jù)一席之地,它執(zhí)行著各種開發(fā)與測試工作。”

          Paul說:“我從GitHub pull最新的更新,這一任務(wù)因DragonBoard內(nèi)置Wi-Fi而變得更加方便。然后,我利用DragonBoard Linaro AArch64工具鏈構(gòu)建代碼,檢查64位ARMv8架構(gòu)在編譯時出現(xiàn)的問題。接著我再運行各種MicroPython測試套件,這個測試套件運行使用“大Python”和“微Python”(MicroPython)編寫的各種Python代碼,檢查結(jié)果是否匹配。”

          例如,Paul最近作了一項測試,以確定MicroPython物理內(nèi)存訪問API與DragonBoard的配合情況。然后,他利用這些成果制作了一組如何訪問DragonBoard GPIO的示例。

          “我希望像我們這樣的項目能向初入行者展示DragonBoard很容易上手,為他們學(xué)習(xí)DragonBoard更高級的功能鋪平道路,”Paul說。

          我們最近采訪了Paul,更多地了解了他的工作和他對開源開發(fā)的見解。以下為訪談實錄:

          Q:你們公司文化有哪些與眾不同的地方?有什么傳統(tǒng)慣例嗎?

          A:我們這個項目并不是第一個將Python或其它高級語言帶入單片機的項目,所以我們是站在前人的肩膀上,要爭取做到更好。至于傳統(tǒng)慣例,我們對于專業(yè)管理的軟件項目有一套例行動作——每日代碼審查、需遵循的代碼風(fēng)格和慣例、需編寫的單元測試——諸如此類的事情。

          Q:您能和我們分享公司的一件趣事嗎?

          A:Damien和我并沒有見過面——這應(yīng)該是開源世界經(jīng)常發(fā)生的趣事了!

          Q:您和Damien的工作靈感從何而來?

          A:我們從用戶和貢獻者身上獲得靈感。實際上,要想在自己的閑暇時間積極維護一個開源項目不是件易事。您開始為項目貢獻代碼,專注于項目,反而“忘記”了自己本身的任務(wù);唯一可行的辦法是,您始終對自己說:“我負責(zé)項目的核心工作,因為我最了解它,所以最好由我來做這項工作。我只是希望其他人利用這個項目做出一些我想做或覺得有趣/有用的東西。”這樣的話,真得很令人高興!

          Q:您在技術(shù)領(lǐng)域的偶像是誰?

          A:Adam Dunkels. 我認為他是物聯(lián)網(wǎng)之父。他向我展示了即使用很少的代碼也能實現(xiàn)一些奇跡般的功能,即使是在CPU 數(shù)千兆赫和內(nèi)存數(shù)個GB的時代,這些奇跡在現(xiàn)代世界仍能派上用場。他開發(fā)的ConTIki OS是第一個物聯(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:有人說許多開源項目都是在解決自身問題中誕生。而物聯(lián)網(wǎng)是這方面更具參與性——幾乎每個人都會使用到燈,您可以控制它在您靠近時打開(并且只在特定時間);或者如果接下來幾個小時不用就關(guān)掉加熱器。能夠解決生活中的小事,使生活更加舒適,并且是按您喜歡的方式解決,是物聯(lián)網(wǎng)有趣和有意義的地方。

          Q:您喜歡DragonBoard 410c的哪些方面?

          A:我辦公桌的抽屜里放了很多開發(fā)板,但只有DragonBoard 410c穩(wěn)穩(wěn)地占據(jù)了我辦公桌的一角,執(zhí)行各種開發(fā)和測試任務(wù)。它配備了一款現(xiàn)代化的CPU,有Wi-Fi、藍牙4.0和GPS。Wi-Fi在日常工作中非常有用,BT4.0和GPS對于物聯(lián)網(wǎng)項目也大有幫助。但硬件的強大只是一部分。

          我發(fā)現(xiàn)支持更為重要,這包括軟件、文檔和社區(qū)支持。..DragonBoard的相關(guān)文檔十分全面,并且還在持續(xù)完善。還有,96boards.org社區(qū)也在成長中,這里可以討論各種問題,也會見識到各種最新項目。

          Q:您對其他開發(fā)者有什么建議嗎?

          A:請珍惜開源開發(fā)。就像路網(wǎng)一樣——大部分時間里您可以免費通行,但道路維護需要付出極大的努力。請通過提交補丁或幫助其他用戶來回饋開源世界。如果您從中賺了錢,請考慮贊助或雇用人員開展工作。

          要了解更多關(guān)于MicroPython的信息,請在Twitter關(guān)注他們。您可以在GitHub上關(guān)注Paul的工作。



          關(guān)鍵詞: DragonBoard410c python

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();