翻譯|使用教程|編輯:鮑佳佳|2020-09-03 10:19:37.027|閱讀 2780 次
概述:如今,許多開發(fā)人員正在使用基于Arduino的項目。Arduino很容易上手,但是大多數(shù)這些Arduino開發(fā)人員都能在此方面更進一步。他們將其他們簡單地視為小愛好和附帶項目。在本系列文章中,我們想探討如何將項目帶入更專業(yè)的水平,以及像CLion這樣的IDE如何幫助您做到這一點。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
CLion是一款專為開發(fā)C及C++所設(shè)計的跨平臺IDE。它是以IntelliJ為基礎(chǔ)設(shè)計的,包含了許多智能功能來提高開發(fā)人員的生產(chǎn)力。這種強大的IDE幫助開發(fā)人員在Linux、OS X和Windows上來開發(fā)C/C++,同時它還使用智能編輯器來提高代碼質(zhì)量、自動代碼重構(gòu)并且深度整合CMake編譯系統(tǒng),從而提高開發(fā)人員的工作效率。感興趣的朋友歡迎下載試用!CLion現(xiàn)已加入在線訂購,點擊此處查看價格詳情>>
如今,許多開發(fā)人員正在使用基于Arduino的項目。Arduino很容易上手,但是大多數(shù)這些Arduino開發(fā)人員都能在此方面更進一步。他們將其他們簡單地視為小愛好和附帶項目。在本系列文章中,我們想探討如何將項目帶入更專業(yè)的水平,以及像CLion這樣的IDE如何幫助您做到這一點。
我們需要建立些什么?我們?yōu)轫椖吭O(shè)定了一個宏偉的目標(biāo)。我們將建立一個電子氣壓計,該氣壓計可以測量大氣壓力并將其繪制在圖表上,以預(yù)測接下來幾個小時的天氣狀況。這比經(jīng)典的晴雨表更有用,因為要跟蹤的壓力變化比絕對值更重要。該設(shè)備應(yīng)使用電池供電,一次充電即可工作數(shù)周。
我們將從構(gòu)建經(jīng)典項目(DIY晴雨表)開始:
聽起來很有趣嗎?讓我們開始吧!
從原型開始
電子裝置
我們首先在數(shù)位板支架上鉆幾個孔,然后將所有零件安裝在其上。固定Arduino板的螺栓之一也固定了傳感器模塊。
電子紙屏幕模塊利用一個單向SPI接口(CS,MOSI,SCK),兩個輸入控制信號(RESET,DC)和一個BUSY輸出信號。該模塊與8線電纜一起發(fā)貨,借助2.54mm邊緣引腳接頭連接至Arduino。為了最大程度地減少我們需要使用的接頭連接器的數(shù)量,我們將顯示電源線連接到Atmega8在線串行編程(ICSP)接頭連接器的電源引腳。壓力傳感器使用I2C接口(SCA,SCL),并與標(biāo)準(zhǔn)FM跳線連接。
下表描述了所有連接:
現(xiàn)在是時候編寫一些Arduino原型代碼了。
使壓力傳感器在線
在官方的Arduino指南詳細解釋了Arduino的草圖發(fā)展。因此,我們將簡要地進行設(shè)置:
對于該項目,我使用了屏幕供應(yīng)商WaveShare在GitHub上共享的代碼,并添加了更多代碼來啟動和運行屏幕。您可以在此處簽出最終的項目代碼。現(xiàn)在開始運行!
Arduino草圖
“ Sketch ”是Arduino用于程序的名稱。這是上載到Arduino板上并在Arduino板上運行的代碼單元。Arduino草圖使用的語言是C和C ++。更準(zhǔn)確地說,可以編寫一組C / C ++函數(shù),然后對其進行一些預(yù)處理,例如在添加一個或多個Arduino專用#include子句時。最后將結(jié)果直接傳遞給C / C ++編譯器(avr-g ++)。您可以在官方文檔中閱讀有關(guān)Arduino構(gòu)建過程的信息。
由于最終僅使用C ++,因此可以使用任何通用的C ++ IDE編寫代碼。使用Arduino以外的IDE確實需要一些手動步驟,您可以從官方的構(gòu)建過程描述中提取這些步驟。但是,讓我們看看您是否可以獲得任何回報!
CLion如何提供幫助如果您對嵌入式開發(fā)感興趣,并且正在尋找一個可以嘗試的項目,那么Arduino是一個不錯的起點。它擁有一個龐大而熱情的社區(qū),豐富的基礎(chǔ)架構(gòu)以及數(shù)十種各種代碼示例和庫。非常適合希望在嵌入式世界中邁出第一步的人,或者想要實現(xiàn)一些簡單想法的人。隨著項目的發(fā)展,它開始需要更多的工作,更復(fù)雜的代碼,更高的嵌入式處理器性能,更多的MCU內(nèi)存以及更多的外圍設(shè)備。在這一點上,IDE等開發(fā)工具對于保持我們的代碼質(zhì)量并幫助我們更高效地進行開發(fā)非常有用。讓我們看一下CLion如何提供幫助。
范圍更廣的智能代碼編輯器如果您不熟悉它,CLion是適用于C和C ++的通用跨平臺IDE。它理解C和C ++中的代碼,并使用此知識來提供編輯器內(nèi)的操作。導(dǎo)航動作可以搜索上下文使用情況,或者一次按鍵即可跳轉(zhuǎn)到類,文件或符號,一個智能的快速文檔彈出窗口以及參數(shù)名稱提示可以幫助開發(fā)人員更好地閱讀和理解代碼。自動補全,實時模板,重構(gòu)(例如提取函數(shù),參數(shù)或變量,內(nèi)聯(lián),當(dāng)然還有重命名和更改簽名)都可以幫助您更快地編寫代碼。當(dāng)涉及到代碼質(zhì)量時,內(nèi)置的靜態(tài)分析工具和動態(tài)分析是必不可少的幫助工具。嵌入式開發(fā)世界中的錯誤代價可能比其他地方要高得多,因為當(dāng)軟件在硬件上運行時,錯誤通常會在運行時顯示出來。在您鍵入代碼時立即捕獲錯誤,然后,顯然可以減少您可能遇到的麻煩。
CLion提供的另一個絕佳機會是調(diào)試代碼的能力。它使您可以逐行跟蹤代碼執(zhí)行,檢查變量的值,觀察外設(shè)寄存器的內(nèi)容等。所有這些都可以在仿真器中完成,也可以在真實的MCU上完成,這取決于是否存在合適的仿真器以及MCU的調(diào)試功能是什么。
在接下來的專用教程中我們將學(xué)習(xí)如何在Windows上配置CLion,包括用于編譯和調(diào)試的必要工具鏈。在我們的Arduino案例中,您將需要安裝MinGW。
與世界分享您的項目隨著愛好項目的發(fā)展,它通常最終會在GitHub,GitLab,Bitbucket或其他地方共享,這使更多的參與者可以加入。在VCS上發(fā)布,處理請求請求,將工作分散到多個分支中–所有這些都是必不可少的任務(wù)可以直接在CLion中完成。至于編輯代碼,未提交的更改在編輯器中突出顯示,并且作者的注釋可用。所有這些功能都減少了切換上下文的需要,從而節(jié)省了您制定新想法的時間。
在發(fā)布到VCS時,不要忘記添加一個Readme.md文件,該文件可以讓其他人知道項目的內(nèi)容,并提供有關(guān)如何使用該項目的詳細信息(需要進行哪些設(shè)置,使用哪種工具鏈,等等。)。CLion附帶了Markdown支持,因此您可以輕松獲得Readme.md文件的預(yù)覽:
遷移到PlatformIO
PlatformIO.org是一個用于嵌入式開發(fā)的豐富生態(tài)系統(tǒng),它支持各種目標(biāo)硬件類型,編譯器和框架,包括Arduino項目。
讓我們看看如何在CLion中開始使用PlatformIO:
現(xiàn)在我們準(zhǔn)備創(chuàng)建一個新的PlatformIO項目,在本例中,我們將選擇Arduino Uno。單擊文件->新建項目,然后選擇Arduino Uno作為目標(biāo)以及項目位置。由于列表上有很多板子,因此您可以僅輸入“ Uno”,然后使用箭頭鍵瀏覽板子列表。為避免以后出現(xiàn)故障,我們建議您不要在該位置使用國際字符,特殊符號或空格。
下一步是啟用我們的傳感器庫。在CLion編輯器中打開platformio.ini,并將“ lib_deps = Adafruit BMP085 Library” 行添加到該[env:uno]部分,然后調(diào)用“工具” |“工具”。PlatformIO | 重新初始化。
現(xiàn)在是時候向我們的項目中添加一些代碼了。將所有頭文件從Arduino草圖文件夾復(fù)制到項目的include文件夾,并將所有源文件和.ino文件從Arduino草圖文件夾復(fù)制到項目的src文件夾。您可以刪除空的main.c文件-我們不需要。
由于我們不依賴Arduino IDE進行與Arduino相關(guān)的預(yù)處理程序轉(zhuǎn)換,因此我們需要手動執(zhí)行一些其他步驟:
您現(xiàn)在可以構(gòu)建項目!讓我們開始吧。
將電子設(shè)備連接到計算機,然后啟動Platformio Upload運行配置。現(xiàn)在,固件已刷新到MCU,并且我們的設(shè)備可以再次工作。那很簡單!
讓我們退后一步,看看到目前為止我們已經(jīng)實現(xiàn)了什么:
PlatformIO確實很有幫助,但是如果您想完全控制項目并自定義構(gòu)建步驟,該怎么辦?現(xiàn)在,我們將項目轉(zhuǎn)換為純CMake項目。這將涉及使用CLion IDE,CMake構(gòu)建系統(tǒng),用于AVR的GCC工具鏈和avrdude刷新實用程序。
我們將繼續(xù)使用Arduino庫??梢詮腗icrochip網(wǎng)站下載AVR工具鏈,從Savannah下載avrdude實用程序。
在CLion中,以以下方式配置工具鏈和CMake配置文件:
該項目本身的代碼可以在GitHub上找到。手動復(fù)制到項目源的Arduino庫與PlatformIO代碼相同。隨時克隆和使用它。但是,當(dāng)涉及到CMakeLists.txt文件中的這些用戶相關(guān)參數(shù)時,您應(yīng)該小心:
一切設(shè)置正確后,您可以在CLion中觸發(fā)Build操作(而不是Run?。?,它將嘗試刷新Arduino:
讓我們看看這與我們之前使用PlatformIO的設(shè)置相比如何:
本系列將繼續(xù)。很快,我們將討論通過使用另一個開發(fā)板并嘗試?yán)闷渥罴压δ軄磉M一步推進該項目。敬請期待!并在評論中讓我們知道您希望我們重點介紹嵌入式開發(fā)的哪些方面,尤其是Arduino。
相信通過本文的講解你對如何使用CLion進行Arduino開發(fā)也有了一定的了解,現(xiàn)在趕快下載使用吧!現(xiàn)雙節(jié)來臨之際慧都推出重磅限時優(yōu)惠! 最高立減2999!低至797元!想要購買Clion正版授權(quán)的朋友歡迎。
JetBrain技術(shù)交流群現(xiàn)已開通,QQ搜索群號“786598704”或者掃描下方二維碼即可加入
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: