作者: ken

安裝與設定 Arduino 開發環境

No Comments

安裝

我們從此處出發踏上 Arduino 的學習旅程,網址 www.arduino.cc

入口網站 www.arduino.cc

至下載區下載適用於您的作業系統的版本;
SOFTWARE -> DOWNLOADS;

以筆者的為例是 Linux 64 bits,下載下來的檔案是 arduino-1.8.13-linux64.tar.xz
將其解壓縮存放至,筆者是直接放至 home dir
所以會是 /home/ken/arduino-1.8.13/

接著至該目錄內,在 shell 下執行 sudo ./install.sh
安裝即告完成

設定

設定之前,必須先插上 arduino 開發板,系統會偵測出有 USB 裝置插入,我們須查出此 USB 裝置的名稱:
ls -l /dev/tty*
若不確定哪個才是該開發板的名稱,我們可以在插入前後都執行此指令以判斷之。筆者有幾張不同的板子,ESP 的是 ttyUSB0,若是 Arduino UNO 板,則應是 ttyACM0
需要知道的是它的 group 名,筆者的是 dialout

提醒:很多人手上都有很多條 USB type A-B,microusb 線,但當中有些僅是充電線,所以若電腦被插上 USB 前後並未發現有新裝置出現,那就換條數據線吧。

接著,設定使用者加入 dialout 群組,來取得可存取 USB 的權限
sudo usermod -a -G dialout $USER
以筆者 ken 為例,
sudo usermod -a -G dialout ken

其他問題可參考這篇文章

終端

  • Arduino 上的 UART 終端輸出,只允許一個視窗,即,若有兩支 devices 同時插上電腦,只能選擇其中一支作顯示。例如 ttyUSB0,ttyUSB1,當中的一個作顯示。
  • 解決辦法,也非解決,而是轉而使用其他 tty 終端,查一下 screen 這支程式,其實不太好用,但就能支援同時顯示不同 port uart output。
  • screen /dev/ttyUSB0 115200
  • Ctrl + a + Q 關掉所有其他視窗
  • Ctrl + a + d 關掉當前視窗
  • 不過,當終止視窗,uart 要重新插拔,才能再順利啟用該 port 的 uart 輸出顯示。
  • echo “defscrollback 5000” >> ~/.screenrc 啟用 buffer,設定 5000 行,重新登入看是否生效。
  • 要回捲看 history,還必須 Ctrl + a + ESC,才能捲動,不過此模式下新産生的資料便看不到。按 ESC 回到輸出畫面。幸而後輸出的資料都還能保留。
  • 缺點,若開多個視窗/com ports,則有些會中斷傳輸,造成困擾。
  • 改用 CoolTerm,支援多個視窗/com ports,http://freeware.the-meiers.org/
    很重要,花了好多時間才試出來;主視窗無法顯示輸出,但繪圖及 HEX view 都是正常的。須把 text encoding 改成 WindowsAnsi,才能正常顯示。
    -> Preferences/勾選 avoid plain text flicker。
    -> Terminal/Raw Mode。
    -> Receive/set buffer size; Add timestamps to received data; Wait for line ending。
    其他還有一些 bugs,其中要使用得順,就將設定好的設定值存成預設值。
    可說,會使用到的功能這支都提供了,所以可以不必再探尋其他的了。

執行

前述安裝完成後,桌面會出現”尚未成型的 arduino圖示“,我們雙擊執行之並出現如下提示,選擇“信任並啟動”

如此,整個開發環境就安裝好了,但裝好後可以做什麼?
阿如此簡潔的視窗能幹嘛?。。。可多著的了。。。
而且筆者似乎也少提了一件事,就是,阿什麼是開發板?如下圖;其餘的,見下節分曉。

補充

2020/0708
一。編寫程式是使用 C++ 或 C 語言。讀者必須自行學習。然而,完全不去學程式語言而使用 Arduino 也是可能的;即使用人家做好的程式,其絕大部份都是 open source,且已是 ready to go(run)。所以這也是 Arduino 能廣為大眾所接受與使用的原因之一。一般而言,某個形狀的積木會上市(例如溫度監控模組,例如攝像頭模組,例如 LCD 彩色顯示模組),通常已有,或者最遲一兩個月後,便會有操控與驅動該模組的程式碼出現,並且幾乎都是 open source 的。

二。Arduino IDE 使用上與功能配置上相當單純簡捷,
有個程式碼編輯視窗編寫程式,可編譯程式碼成目的 OBJ/ROM 檔案,及上傳/燒錄 ROM 檔。另外還有個序列埠監控視窗及繪圖視窗,其透過 uC 的 UART 模組其軟體上已與 cout 或 printf 結合在一起了,我們只要 cout something/printf something 就會是從序列埠監控視窗輸出文字訊息或數據資料,乃至於將輸出的數據實時地繪圖出來。這在後面的文章會提及。

三。此外,IDE 中還會操作到的就是更新(如下對象)。
概括一句話就是 Arduino IDE 支援不同種類的開發板,當然需要不同的開發板的與之相容的 BSP (boot-level,board-level support packages/硬體平台底層驅動的軟體函式庫;概分例如 AVR,Cortex-M3,ESP8266,ESP32,等等以及視訊導向開發板,3D 列印控制導向開發板,等等),其以使用者觀點劃分就是例如 Arduino UNO 板,Arduino NANO 板,ST Cortex-M3 板,ESP8266 D1 板,其都透過 3rd party 開發釋出 open source 的 BSP 函式庫供大眾取用。以及 middle-ware,即相容通用或專用的函式庫其涵括了軟體演算法實現某些功能例如圖像識別或十軸融合的姿態控制或人工智慧等,及例如 printf,cout,libc,數學計算等就是屬於這一層。
這兩大類的軟體函式庫當然會有更新而需為之。前者稱為開發板管理員,後者簡稱為函式庫。貼圖如下應易於理解。

四。讀者會有疑問,架設網站,與 Arduino 會有何關聯?答案是不會沒有關聯;follow me,就會有自信地有肯定的答案了。

vs code

  • 今天才開始用它跑 Arduino;怎到現在了使用上仍覺得它不及格。。。很可能是筆者不會用吧XXD
  • vs code extension packages 至少至少有兩套 for Arduino,PlatformIO,及 MS 自帶的 Arduino。前者好久以前使用過,它完全使用自己的一套,即,可說獨立於 Arduino。所以筆者對它很陌生但仍很值得嘗試。
  • 後者,也就是此段落重點,即 MS 直接 fetch 使用者已安裝好的 Arduino IDE 的相關設定,即,二者的差異僅為 IDE 介面的差異而已。換言之筆者自己遇到的問題就來了,當然就按照自己的解法/但很可能非如此或許他人使用很順遂(故為自用的註記僅供參考):
  • 安裝完 extension 後,必要創建存放 Arduino project 的空目錄,必要接著創建一個空 project 及其空檔案,例如 ./test1 and ./test1/test1.ino。
  • 必要接著按 F1 出現輸入指令,鍵入 Arduino:Initialize,它才會初始化整個 arduino 設定,並産生 ./.vscode/arduino.json 及 ./.vscode/c_cpp_properties.json
  • (有可能還須按 F1 跑這一個命令 arduino:rebuild intellisense configuration)
  • 如此,基本上算完成了但,
  • 它好像用固定的 external lib 路徑(from Arduino IDE default),即,/home/$user/Arduino/libraries,則,若使用者並非使用此路徑,就麻煩了。簡單講,解,softlink 它。否則筆者對 vs code 實在找不到何處去設定它。
  • 還好當前剩最後一個問題了,若 vs code 中存在數個 arduino projects,對,切換 project 的方法,在 arduino.json 中 “sketch” 的值替換成要 active 的 project。
  • 對了還有一個問題,承前一行,在該 block 當中新增一個欄位
    “output”: “Arduino/output”
    指定一個 output 的路徑,如 Arduino/output,請自訂,否則 console 視窗會出現沒有 output 路徑的警告。
  • 就醬。

Categories: Arduino

Tags: ,

PHP Code Snippets Powered By : XYZScripts.com