來源 | EEPW論壇
作者 | ElectronicW1a
Arduino項目實現中,看懂並且搭建各種令人眼花繚亂的電路圖,是真正開始學習Arduino的第一步。在這個基礎上,再進行各種電子元器件的代碼編寫並且運行,最終才能保證所有的組件順利運行,成功的製作出各式各樣好玩且有趣的Arduino項目。
本文提要:
Arduino電路搭建
編譯器簡介與使用教程
相關軟體介紹(附下載地址)
首先,我們來講解電路如何搭建。在前文中,講解了不少傳感器的類型,還有麵包板的結構。而幾乎所有的Arduino項目,都離不開以麵包板做基底,用各種各樣的傳感器所連接的電路連接在麵包板的孔洞裡,以實現各種不同的項目和功能。
具體來講,如圖1麵包板的結構圖所示,在中間的綠色的兩排橫孔當中,可以任意插入傳感器以及跳腳線進行並聯,而轉接到Arduino Mega 2560的麵包板中。而兩側豎排的孔洞,在那一列的任何位置都可以與插入其中的跳腳線或者傳感器相連接。
圖1 麵包板結構圖
舉個例子,如圖2所示,在這個電路當中所實現的一個功能是讓一個LED燈以不同的形式發亮。而在這個電路當中,在Arduino的13號數字引腳中,一根跳腳線和麵包板的負極豎版線的一個孔連接,而在這個旁邊接了一個電阻,電阻和一個橫排的LED燈的短腳串聯。LED燈的長腳旁接了一根黑線,黑線最終接入了Arduino Mega 2560的接地引腳。而在這個電路中,藍色的輸入線可以接入整個麵包板的豎排孔中 (如綠線中所繪的任意一個孔),都可以和電阻接通。而電阻只要與麵包板橫排孔及LED燈相連,那麼接線只能在這些橫排孔中進行,而LED長腳的一端與黑線相連接也是同樣的原理。
圖2 基礎Arduino連接圖示
在不少複雜的項目中,還有各種不同類型的麵包板,有些時候有可能一塊麵包板無法容納整個項目中的所有傳感器。而不少常用的麵包板還有微型麵包板、半型麵包板,如圖3。微型麵包板的接線方式圖一麵包板結構圖中的橫孔接線板,半型麵包板相當於一個常規麵包板的一半,接線方式相同。
圖3 微型麵包板與半型麵包板
1.2 傳感器的連接方式
接線的問題雖然不太重要,但是有些時候一些Arduino的初學者還是會對這個問題感到疑惑,所以需要在這裡簡單講一下。
首先,如果一個線路足夠簡單,很多的傳感器是可以直接接線然後連接到Mega 2560的控制器上面的。例如,如圖4所示,一個薄膜式開關可以直接和Arduino Uno控制器用杜邦線直接相連,因為薄膜式開關的外接口是母線,所以可以通過兩頭公頭的杜邦線連接。
圖4 薄膜式開關和Arduino Uno控制器連接
以此類推,有其他的不少傳感器,也可以直接通過杜邦線相連接。例如,如圖5所示,超聲傳感器可以直接使用杜邦線連接至Arduino控制器上。也可以先將其插入麵包板的孔洞內,再將杜邦線插入對應的橫排的孔洞之中,使用另外一頭連接Arduino控制器。
圖5 超聲傳感器和Arduino Uno控制器連接
當然,有些特殊的元器件是要求必須使用麵包板連接的,比如LED燈、熱敏電阻之類的微型器件。
1.3 繪製連接電路圖
為了講解後來比較複雜的電路,也方便大家讀懂其他的電路。推薦大家使用一款開源軟體,名叫fritzing。這款軟體是專門為了搭建Arduino的電路而設計的(有點類似於PCB設計的感覺)。也許有些人覺得看電路拍照就可以,但是當一個電路很複雜的時候,你真的看不清楚哪個線和哪個孔連接,相信我。
在這個軟體之中,幾乎可以找到所有的Arduino開發板,各類傳感器的模型。也可以拿滑鼠進行連線,將你所設計的電路的接線和實際搭建的電路接線聯繫起來,然後進行繪圖,查看所搭建的電路有沒有錯誤。
圖6 fritzing軟體界面的展示
接下來講解一些這款軟體使用的具體小技巧。舉個例子,如果我們想搭建一個LED RGB電路,應該怎麼做。LED RGB是一個有四個引腳的LED燈,可以使用這個燈進行變色等等操作。其中三個引腳分別為紅色、綠色、藍色,還有一個引腳接地。
首先,可以在軟體右上角紅色的搜索框內輸入你想要搜索的元器件名稱,當我嘗試搭建一個RGB LED燈構成的電路時,就在其中搜索RGB LED。然後如黑色箭頭所示,點擊該圖標然後將這個RGB LED燈拖到左面的界面中。
圖7 fritzing軟體界面的展示
然後,可以將這個RGB LED燈拖動到麵包板之上。有一點必須在這裡強調一下。當任何一個元器件被拖動到麵包板之上時,如果想把這個元器件插入麵包板或對應的集成電路中。首先必須點擊這個元器件的引腳,會發現其變成黃色。這個時候麵包板離這個引腳最近的地方會變成綠色,當把引腳插入某一行之後,這一行引腳會顯示黃色。插入之後如果這個元器件和孔洞連接的地方顯示藍色則表示連接成功。
圖8 處於連接狀態的線路
採用同樣的方法將其他三個引腳都插入麵包板中,在從下往上數的第1、2、4個引腳旁邊接1kΩ電阻。然後,點擊電阻左邊的孔,將孔洞與左側Mega 2560的數字輸出孔4、5、6相連接。而當兩個孔之間沒有任何插入的電子元件時,直接將兩個孔相連接就會出現導線。第三個孔和Mega2560的接地孔(GND)相連接。點擊導線的任意一點,按住Ctrl就可以讓這根導線彎曲。通過右邊的檢查器去更改電線的顏色。如圖9所示。
圖9 處於連接狀態的線路
最後可以點擊文件左上角的file,將這個圖片導出為PNG圖片格式,如圖10所示。最終的效果類似於圖2。
圖10 圖片導出
以上就是對於電路搭建的基礎知識的講解。
由於Arduino目前強大的生態系統,以及和各種軟硬體的兼容體系,可以用來開發Arduino的工具也不勝枚舉。這些工具有些可以用來獨立進行Arduino的開發,也可以配合使用進行交互性的開發。這些工具中比較普遍使用的包括,Arduino基礎的官方開發工具,Arduino IDE。Visual Studio的Arduino開發工具。這兩者都是使用基於C/C++的開發語言來驅動的。還有python,Matlab也有其獨立的開發工具,也可以同Arduino IDE進行交互。
2.1 Arduino IDE基礎
Arduino IDE 是進行所有Arduino開發的基礎,所以要開始進行任何更加複雜的Arduino組件進行組裝,或者進行相關的程序開發,必須先對Arduino IDE進行充分的了解和學習。
先前版本的Arduino或許在下載和配置方面有些複雜,但是目前的Arduino IDE的下載和安裝都十分簡便。Arduino IDE在其官網就可以找到其安裝包的下載,下載好之後解壓到你自己所指定的位置就可以使用。具體的下載地址和安裝方法也會同fritzing一樣附於文章末尾。
點擊打開Arduino IDE之後,首先出現的是Arduino IDE的啟動畫面。
圖11 最新版本Arduino啟動畫面
當Arduino軟體啟動之後,會顯示以下的一個窗口。這個窗口中對於所有重要的信息都做了標註。從最上一行的菜單欄,到下一行的工具欄,以及這一欄尾部的串口監控器,到最底下的項目顯示欄。代碼編寫區域,黑色框架內的調試結果顯示區。需要注意的是,在右下角的一行英文文字中,出現的前半行文字的意思為當前所使用的Arduino控制器,後半行文字中最後的一行文字的三個字中,COMx為當前所使用的串口號。
圖12 最新版本Arduino啟動畫面
先簡單敘述一下菜單欄中比較重要的幾個功能及其調試功能。
首先,在File中,一些比較重要的功能包括,新建一個項目(New),打開一個項目(Open),打開最近的項目(Open Recent),打開各種案例(Arduino官網上面有不少基礎教程,可以參看這些案例進行電路搭建以及代碼實現)。
保存/保存在指定位置(Save/Save as)。在保存的時候需要注意,保存的文件名外需要創建一個文件夾,而文件夾的名稱必須和文件的名稱一致才能保證有代碼的文件正常運行。
最重要的選項則為首選項(preference),打開首選項之後,可以看到如圖13所示的界面。在這個界面當中,可以選擇執行程序的默認語言,編譯器文字大小,是否顯示行號等等。不太喜歡閱讀英文的朋友可以選擇語言(Editor Language)的選項中更換為簡體中文。
圖13 首選項功能展示
菜單欄中Edit的作用不大。Sketch中,最重要的功能是庫的管理(Manage Libraries,如圖14),位於Include Library選項卡之下。在打開庫的管理(如圖15所示)之後,可以看到兩個過濾篩選菜單(紅色方框標記),一個叫Type,另外一個叫Topic。通過Type(類型)可以找到處於不同狀態的庫,有可以更新的,已經/尚未安裝的等等。通過Topic(主題)可以找到交流,傳感器,顯示等等通過功能來劃分的庫。一切Arduino所需要的庫,都可以通過搜索菜單欄來尋找,只要輸入其名稱,可以參照其下方所展示的庫名稱來進行庫的安裝等操作。
另外還有一點很重要的是,在右下角有兩個選項菜單框,一個是Version,顯示當前庫的版本號,另外一個是一個標註為install的按鈕,點擊該按鈕就能安裝這個庫。而當一個庫被安裝之後,該按鈕的位置會顯示installed,說明該庫已經存在,無需任何操作。因為Arduino的開源特性,有些公司的硬體會更新的十分迅速,而有些公司的硬體會更新的很慢。所以有時候為了整個項目的兼容性,可以安裝稍早版本的庫,以確保項目順利運行。一般情況下,只要你打開庫,則其會進行自動更新,可以根據項目自行進行版本調整。而有些無法從所需要的庫中找到並且進行安裝的庫,則可以在下載之後直接拖入到Arduino軟體安裝路徑下的library裡,這麼做同樣可以使用。
圖14 庫的管理選項
圖15 庫的管理菜單
而菜單欄中的Tools,最重要的有兩個項目,其中之一是Board,通過這個選項,每次可以選擇所使用的Arduino控制板,如紅框所示,目前所使用的是Arduino Mega 2560控制器。而在Port選項中,是所選擇當前控制器所讀取數據的USB埠。在第一次插入不同型號的Arduino控制器時會出現電腦進行硬體安裝的提示,而在這時可能需要選擇正確的USB埠,所以一定要搞清楚插入的控制器所對應的USB埠有一一對應的關係,否則可能會出現安裝錯誤的情況。不過有些電腦會全程進行自動安裝,所以不必太過擔心這一點。而這兩項都會顯示在如圖12所示的右下角的一行字中。
圖16 Tool選項菜單
圖17 所有工具欄的功能和作用
工具欄中不同按鈕的功能說明:
校驗(Verify)。在每次下載代碼之前,必須要先驗證代碼是否編寫無誤,所有的效驗結果會顯示在如圖12所示的調試結果提示區之內。如果有錯誤,報錯格式一般都是以C/C++的形勢呈現的。
下載(Upload)。這個下載其實就相當於其他編譯器上的運行一樣。只不過下載是相對於Mega的控制器而言的,因為控制器上面有獨立的存儲器,只要不下載新的代碼,則該控制器一直運行當前的代碼。
串口監視器(Serial Monitor)。串口監視器是一個很重要的和Arduino控制器交互的工具。它主要是被用來查看串口發送或者接收到的數據。在很多時候,如果對傳感器進行數值的監控,以及用編寫的代碼和Mega2560控制器發送指令的時候,都要通過這個監視器。這個監控器有兩個設置很重要。第一,紅框標記的是換行格式,一般選擇第二個。第二,黃框標記的是波特率,一般選擇9600。波特率是指每秒傳輸數據的比特值,絕大多數Arduino控制器在使用的時候一般都設這個值。如果有例外情況,在實際案例中會講到。
圖18 串口監視器
以上所述為初學者使用Arduino IDE所必須了解的基礎設置及使用方法,更為複雜的問題會在後面講解到。
2.2 Arduino兼容的編譯器及其交互
根據以上所述的Arduino IDE的功能,其實可以看到其局限性還是比較強的,比如說在編譯方面,遠不如Visual Studio或者Pycharm等一些編譯器隨時根據你所輸入的代碼做出警告或者報錯提示,IDE最終只會給你一個綜合性的提示。
而唯一可以同Arduino交互的方法幾乎就是通過它的串口監視器。而這個串口監視器的功能及其有限。所以,為了實現一些更加複雜的功能,例如用傳感器所讀出的值畫圖(這種方法可以被用來審視傳感器的狀態,以及評估某些傳感器的測量極限),或者可以用更高級的方法來和Arduino進行交互,例如搭建一個簡易的App從而實現一個類似於目前智能家居系統的IoT項目等等。實現這些項目,就必然使用到其他的編譯器的獨立開發,或者其和IDE的交互等等。這些東西展開來講比較複雜,會在後期的教程中慢慢展開來講如何使用。
下載地址:
https://fritzing.org/download/
Fritzing的下載本來是可以免費的,它的官網是希望你去捐款9歐元然後下載的,但是也可以跳過捐款直接下載。幾個月之前還可以這樣,目前好像必須捐款下載了。不用最新版本的話可以求助淘寶。瀏覽這個網站需要連接外網。
3.2 Arduino IDE
下載地址:
https://www.arduino.cc/en/software
Arduino的使用方法比較直接,可以解壓縮之後直接進行使用,所以不需要在這裡多贅述什麼。