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