官术网_书友最值得收藏!

第1課 神奇的Arduino

Arduino被廣泛應用于電子設計和互動藝術領域中,你可以把它當作是一種“科技藝術”,也可以把它當成是一種“智能玩具”,它的產品LOGO如圖1-1所示。Arduino的發明和使用注定會使我們這個神奇的世界變得更加精彩!

圖1-1 Arduino標志

課程目標

· 了解Arduino的歷史和發展;

· 理解Arduino主板的功能和作用;

· 理解ArduBlock圖形化編程的使用方法;

· 掌握程序的順序結構和數字口LED燈的編程方法。

任務描述

· 利用Arduino控制板載LED燈的亮和滅;

· 編寫程序控制LED燈,使其快速閃動2次,慢速閃動1次。

動手制作

1.Arduino主板介紹

Arduino主板是一種開源硬件,我們可以很方便地使用它,如果有足夠的技術,我們還可以改造它。本書所使用的就是一款經過改造的FansmakerArduino Uno主板。Arduino主板就像人的大腦一樣,可以對輸入信息進行處理和控制并輸出信息,如圖1-2所示。

圖1-2 Arduino主板

注:①數字口D0~D13,共14個;②模擬口為A0~A5,共6個;③板載LED燈、TX和RX指示燈;④1個復位鍵;⑤下載接口;⑥外接電源接口。

Arduino控制主板體積小、重量輕,使用的是ATMEGA328P單片機,這款單片機是8位處理器,擁有32KB閃存、2KB內存。

知識加油站

Arduino的歷史和發展

Arduino是意大利米蘭互動設計學院的教師發明的,它是一個開源的硬件開發平臺,被廣泛應用于機器人和智能產品開發。MassimoBanzi是意大利米蘭互動設計學院的教師,他的學生常常抱怨找不到一塊價格便宜且功能強大的控制主板來設計他們的機器人。2005年冬天,Banzi和David Cuartielles討論到這個問題,Cuartielles是西班牙的微處理器設計工程師,當時正在這所學校做訪問研究。經過討論,他們決定自己設計一塊控制主板。他們找來了Banzi的學生David Mellis,讓他編寫代碼程序。Mellis只花了兩天時間就完成了代碼編寫,又經過3天,主板就設計出來了,取名為Arduino。很快,這塊主板就受到了廣大學生的歡迎。甚至那些完全不懂計算機編程的學生,都用Arduino做出了很炫的東西:有人用它控制和處理傳感器,有人用它控制燈閃爍,有人用它制作機器人。

拋磚引玉

為什么要使用Arduino控制主板?

(1)Arduino控制器價格低、易于普及。

(2)Arduino控制器功能強大,I/O接口數量多。

(3)Arduino控制器可以連接常用的電子設備。

綜上所述,Arduino控制器成本低、易開發。實際上,Arduino控制器的使用大大降低了人們創新的門檻,它非常適合教學和互動產品制作以及機器人研發。

2.安裝Arduino軟件

(1)復制文件夾Arduino到計算機桌面上,本書使用的Arduino版本是v1.7.9,官方版本可以到http://www.arduino.cc下載,注意官方版本并不包括ArduBlock軟件,還需要另行下載。本課所使用的軟件包含ArduBlock軟件,如圖1-3所示。

圖1-3 復制文件夾到桌面

(2)打開Arduino文件夾,如圖1-4所示,雙擊arduino. exe文件,打開Arduino編程界面,如圖1-5所示。

圖1-4 程序文件夾界面

圖1-5 Arduino程序界面

(3)從“工具”菜單中選擇ArduBlock選項,如圖1-6所示,打開ArduBlock程序設計界面,如圖1-7所示。

圖1-6 ArduBlock選項界面

圖1-7 ArduBlock程序界面

拋磚引玉

ArduBlock程序是一種G語言,即圖形化語言。它簡單易學,初學者學習時很容易上手。本課程使用ArduBlock圖形化軟件編寫程序。當然,也可以直接在Arduino界面編程,編程語言是C語言。如果需要編寫比較復雜的程序,建議使用C語言編寫。

(4)連接下載線。將下載線的USB口一端連接到計算機USB口上,打印口(方口)一端連接到Arduino主板的下載口。

拋磚引玉

將下載線連接好后觀察主板電源指示燈是否亮起,正常情況下紅色電源指示燈會亮起,并且AduinoUno主板的綠色LED燈會閃爍。如果電源指示燈沒有亮起,要立即拔掉電源,以免燒掉設備,隨后馬上檢查主板與其他擴展板的連接是否正確。筆者就遇到過連接不正確的情況,當擴展板插到主板時,如果不是一一對應,而是向前或向后錯了一個針腳,極易引起主板的損壞,一定注意。

(5)安裝驅動程序。連接好下載線后,觀察軟件工具選項中的端口是否可以選擇,如果不能選擇,說明沒有安裝驅動程序,如圖1-8所示,就需要手動安裝驅動程序。

圖1-8 端口不可選擇

安裝驅動步驟如下。

① 右擊“我的電腦”圖標,選擇“管理”->“設備管理器”選項,如圖1-9所示(確認下載線已經連接到Arduino主板上)。

圖1-9 設備管理器界面

② 右擊ArduinoUno更新驅動程序,選擇“瀏覽計算機以查找驅動程序軟件”,如圖1-10所示。

圖1-10 選擇“瀏覽計算機以查找驅動程序軟件”

③ 單擊“瀏覽”按鈕,選擇“Arduino程序”文件夾中的drivers文件夾,如圖1-11所示。

圖1-11 選擇drivers文件夾

④ 安裝完畢后,重新打開“工具”菜單,觀察工具中的端口是否已經變為可選。如果已經變為可選,需要手動選擇COM端口。一般正確的端口選項顯示為COM11(Arduino uno),注意端口前應該顯示“√”,如圖1-12所示。

圖1-12 選擇端口

通過上面的步驟,Arduino軟件已經復制到計算機中,驅動程序也已經安裝好了。

程序設計

1.ArduBlock簡介

ArduBlock是一款圖形化編程軟件,不需要編寫代碼,只需將圖片模塊放到編程區域進行連接就可以了,是一款非常適合于初學者學習的編程軟件,ArduBlock軟件界面如圖1-13所示。

圖1-13 ArduBlock軟件界面

2.板載LED燈

LED燈是數字信號設備。主板上已經集成了幾個板載LED燈,這節課要使用的是與數字針腳13相連通的LED燈,如圖1-2中③所示。編寫的程序要控制數字針腳13的輸出值,從而控制板載LED燈的亮和滅,即輸出高電平燈亮,輸出低電平燈滅。

知識加油站

數字信號

有些事物只有兩種狀態,如門的開和關、燈的亮和滅、電機的轉和不轉,這種只有兩種狀態的信號稱為數字信號。通常使用“高電平”和“低電平”表示,或者用1和0表示。由于數字信號受噪聲的影響小,易于傳輸,目前已經得到廣泛應用。

數字針腳

數字針腳可以連接數字信號的設備,如燈、電機或數字傳感器。數字針腳的3個引腳分別是:正極(VCC)、地(Gnd)和數據引腳。

3.控制板載燈程序

控制板載燈要求LED燈快速閃動2次,慢速閃動1次。程序如圖1-14所示。

圖1-14 板載燈程序

知識加油站

順序結構

控制LED燈的亮和滅的程序是從上往下依次執行的,這種程序結構就叫做順序結構,它是程序設計的三種基本結構之一。程序設計的三種結構是順序結構、循環結構和分支結構,其他兩種結構將在后面的課程中逐一介紹。

(1)主程序

在左邊的圖片模塊中選擇“控制”->“主程序”,如圖1-15所示。程序先從主程序開始,才可以執行。而且,一個程序只能有一個主程序。注意,主程序里的語句會被循環執行。

圖1-15 選擇主程序

拋磚引玉

在第一個程序模塊program中有一個“設定”程序區域,程序如果被寫在這個區域里面,只會被執行一次。通常情況下,定義的變量或端口會放在“設定”程序區域中。

(2)設定數字針腳值

程序模塊中選擇“引腳”->“設定數字針腳值”,如圖1-16所示。模塊上面的紅色數值代表數字接口,下面的藍色數值代表輸出值,“高”代表燈亮,“低”代表燈滅。

圖1-16 選擇設定數字針腳

(3)延時時間

在左邊的圖片模塊中選擇“控制”->“delay MILLIS毫秒”,如圖1-17所示。這個模塊的使用是為了控制燈亮或滅的延續時間。時間單位為毫秒,1s=1000ms。

圖1-17 延時1s

4.下載程序

單擊ArduBlock圖形化軟件上方的“上載到Arduino”按鈕,如圖1-18所示。將程序燒錄到Arduino主板上,燒錄過程中Arduino代碼窗口會顯示下載進度,如果顯示“上傳成功”,表示程序已經燒錄到Arduino主板上。

圖1-18 單擊“上載到Arduino”按鈕

5.保存程序

單擊ArduBlock圖形化軟件上方的“保存”按鈕,將圖形化程序保存為擴展名為abp的程序文件,如圖1-19所示。

圖1-19 保存文件

拋磚引玉

板載的LED燈連接電源后綠燈會閃動,程序要求兩次快閃,一次慢閃。雖然程序中只編寫了一段程序,但是主程序會循環執行。因此,最后的執行效果是LED燈兩次快閃一次慢閃,循環執行。

如果下載程序出現錯誤,通常有兩種情況:一種情況是沒有選擇好“端口”,請檢查端口設置;另一種情況是下載線沒有連接。如圖1-20所示。

圖1-20 程序下載出錯

當彈出錯誤對話框時,如圖1-21所示,這種情況通常是程序中圖形模塊沒有連接好,出錯的圖形模塊會出現黃色高光顯示,此時將程序模塊重新連接好即可。

圖1-21 條件語句出錯

?完成效果

Arduino控制板載燈亮和滅的完成效果如圖1-22和圖1-23所示。

圖1-22 板載燈滅

圖1-23 板載燈亮

拋磚引玉

通電后,不要用手去觸摸電路板,手觸摸電路產生的靜電會損壞電路。

?我問你答

1.如果LED燈只亮和滅一次,不循環執行,那么程序如何編寫?請實踐。

________________________________________________________________________

2.請列舉數字信號的設備還有哪些?

________________________________________________________________________

知識拓展

Arduino名字的由來

意大利北部有一個如詩如畫的小鎮Ivrea,橫跨過藍綠色DoraBaltea河,它最著名的是關于一位受壓迫的國王的故事。公元1002年,國王Arduino成為國家的統治者,不幸的是兩年后就被德國亨利二世國王廢掉。今日,在這位無法成為新國王的Arduino出生地,Cobblestone街上有家酒吧取名diReArduino以紀念這位國王。Banzi經常光臨這家酒吧,因此他將這個電子產品計劃命名為Arduino以紀念這個地方。

Arduino初始團隊照片如圖1-24所示。

圖1-24 Arduino初始團隊(MassimoBanzi右一)

主站蜘蛛池模板: 微博| 吴川市| 喀什市| 鄱阳县| 崇左市| 光山县| 吴川市| 阿尔山市| 长丰县| 云林县| 焉耆| 绿春县| 汤原县| 孙吴县| 牟定县| 汾阳市| 交城县| 慈利县| 建平县| 宜良县| 庄河市| 永福县| 镶黄旗| 祁东县| 仁布县| 孝昌县| 承德市| 枣阳市| 东方市| 海口市| 梓潼县| 瑞丽市| 甘德县| 买车| 交城县| 汪清县| 靖安县| 洛宁县| 南城县| 镇原县| 吴堡县|