如何使用Shellminator和Commander-API通過交互式實時控制增強您的Arduino項目
我們中的許多人都面臨著調試Arduino板的挑戰(zhàn),這通常很麻煩。此外,對變量或設置進行小的調整通常需要多次刷新固件,從而減慢開發(fā)和測試速度。幸運的是,存在一種更敏捷、更有效的解決方案,我將在本指南中介紹它。
在這個簡短的教程中,我們將使用幾行代碼創(chuàng)建一個交互式終端,與任何Arduino板兼容。這種方法的主要優(yōu)點是它的交互性——允許實時訪問系統(tǒng)資源,如繼電器、傳感器或內部變量,而無需重新啟動或重新編程電路板。
稍后,我們還將介紹如何通過添加自定義命令來擴展此終端接口,從而對Arduino系統(tǒng)進行更高級和靈活的控制。
第一步是使用Arduino IDE Library Manager安裝兩個必要的庫。雖然手動安裝是可能的,特別是在公司環(huán)境中,但Library Manager提供了一種更方便和簡化的方法。
始終建議使用這些庫的最新可用版本,以確保兼容性并利用最新的特性和錯誤修復。
在Shellminator庫提供的示例中,示例200是一個很好的起點。打開這個示例并創(chuàng)建一個副本,因為我們將使用它作為我們項目的基礎。在進行任何修改之前,編譯并上傳代碼到您的板以確保一切正常運行是一個很好的做法。
上傳后,您可以使用終端仿真器連接到串口:
?Windows: PuTTY
?Mac/Linux: screen
將波特率設置為115200并打開連接。如果一切設置正常,重置板或按Ctrl + L應該顯示橫幅。此外,請嘗試輸入幫助命令。
該命令將列出系統(tǒng)當前支持的所有可用快捷方式和內置命令。
目前,示例提供的默認命令對我們的需求并不是特別有用。為了使系統(tǒng)更實用,讓我們修改cat命令,使其執(zhí)行一個有意義的功能。例如,我們可以將其轉換為一個命令,該命令打印自系統(tǒng)啟動以來經(jīng)過的毫秒數(shù)。
為了反映這一變化,將命令重命名為millis是有意義的。這需要在代碼中做一些修改:
在代碼的頂部,更新回調函數(shù)原型并重命名API_tree中相應的字段。
在代碼的底部,重命名回調函數(shù)并修改其實現(xiàn),這樣它就不會打印文本字符串,而是輸出Arduino millis()函數(shù)的結果。
通過這些更改,該命令將提供以毫秒為單位的實時系統(tǒng)正常運行時間,使其成為一個有用的調試工具。
如果我們現(xiàn)在測試我們的修改,我們應該看到輸入millis命令返回當前以毫秒為單位的系統(tǒng)正常運行時間。這演示了交互式終端如何提供對系統(tǒng)數(shù)據(jù)的實時訪問。
考慮一下,與通過串行監(jiān)視器不斷打印調試消息相比,這種方法要方便得多。您可以簡單地為所需的特定信息創(chuàng)建查詢命令,而不是使用連續(xù)的日志將輸出弄得亂七八糟。然后,您可以根據(jù)需要請求數(shù)據(jù),無需修改或重新啟動系統(tǒng)。
到目前為止,我們所介紹的只是對Shellminator和Commander-API庫所能提供的功能的一小部分了解。這是值得花時間去通過Shellminator文檔,因為它是令人難以置信的詳細,易于遵循,并充滿了交互式的例子,以幫助您快速入門。
本文編譯自hackster.io