智能小車C語言程序控制 課件 第1、2章 初始智能小車、集成開發(fā)環(huán)境介紹_第1頁
智能小車C語言程序控制 課件 第1、2章 初始智能小車、集成開發(fā)環(huán)境介紹_第2頁
智能小車C語言程序控制 課件 第1、2章 初始智能小車、集成開發(fā)環(huán)境介紹_第3頁
智能小車C語言程序控制 課件 第1、2章 初始智能小車、集成開發(fā)環(huán)境介紹_第4頁
智能小車C語言程序控制 課件 第1、2章 初始智能小車、集成開發(fā)環(huán)境介紹_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

智能小車C語言程序控制第一章:初識智能小車1.1PARTONE智能小車簡介隨著現(xiàn)代科學技術(shù)的快速發(fā)展,智能機器人已被廣泛應(yīng)用于人類社會的各個領(lǐng)域,如生產(chǎn)制造、物流倉儲、軌道交通、工程機械、醫(yī)療手術(shù)等。

智能小車,也稱輪式機器人,是一種以汽車電子為基礎(chǔ),涵蓋智能控制、模式識別、傳感技術(shù)、計算機、機械等多學科知識的科技產(chǎn)品。它一般由信息采集、循跡識別及避障等模塊組成。從生產(chǎn)制造業(yè)的無人搬運車,到特種行業(yè)的災(zāi)難救援、拆彈機器人,再到軍事領(lǐng)域的防御和偵察機器人,以及航天領(lǐng)域的星球表面探測器,處處可見智能小車的身影。尤其是在危險和未知的環(huán)境下,智能小車的優(yōu)勢更為明顯?;贏rduino平臺的智能小車如圖所示。1.1智能小車簡介1.2PARTTWO智能小車的基本結(jié)構(gòu)前言行業(yè)PPT模板/hangye/智能小車能夠按照預(yù)先設(shè)定的模式自動運行,不需要人為管理,可應(yīng)用于科學勘探、無人駕駛等領(lǐng)域。智能小車能夠?qū)崟r顯示時間、速度、里程,具有自動循跡、尋光、避障功能,可實現(xiàn)控制行駛速度、準確定位停車、遠程傳輸圖像等功能。一般來說,智能小車可以分為傳感器部分、控制器部分、執(zhí)行器部分和其他部分。1.2.1傳感器部分1.金屬傳感器通常選用電感式金屬接近開關(guān)傳感器,用于檢測金屬物質(zhì)的存在。當靠近金屬物質(zhì)時,開關(guān)打開;當遠離金屬物質(zhì)時,開關(guān)關(guān)閉。在智能小車行進的過程中,可在賽道的固定位置放置鐵片,利用智能小車的金屬傳感器來實現(xiàn)對賽道特定位置的檢測。金屬傳感器實物圖如圖所示。1.2.1傳感器部分2.霍爾傳感器霍爾傳感器是一種磁敏傳感器,利用霍爾效應(yīng)來檢測磁感應(yīng)信號并轉(zhuǎn)換成數(shù)字量,然后傳輸給控制器,從而實現(xiàn)對智能小車行駛速度的監(jiān)測。具體操作方法是在智能小車電機的旋轉(zhuǎn)部位安裝一個導(dǎo)磁性能好的磁鋼,電機每旋轉(zhuǎn)一圈,磁鋼便接觸一次霍爾傳感器,即發(fā)送一個磁感應(yīng)信號,霍爾傳感器電路以此進行計數(shù)操作,通過一定的數(shù)據(jù)轉(zhuǎn)換后得到小車的行駛速度或行駛里程?;魻杺鞲衅鲗嵨飯D如圖所示。1.2.1傳感器部分3.紅外傳感器紅外傳感器是紅外發(fā)射和紅外接收一體式傳感器,根據(jù)不同顏色對紅外線反射程度不同(黑色反射紅外線較少,白色反射紅外線較多),傳輸不同的信號給控制器,從而控制智能小車電機的旋轉(zhuǎn)方向,實現(xiàn)循跡功能。具體操作方法是將兩個紅外傳感器安裝在貼近地面的智能小車底盤前側(cè),若賽道鋪設(shè)的是白底黑線,則正常行駛時,發(fā)射管發(fā)射的紅外線被黑線吸收,導(dǎo)致接收管無法接收到紅外線,傳感器傳輸?shù)碗娖浇o控制器;偏離軌道時,發(fā)射管發(fā)射的紅外線被白色地面反射,接收管正常接收紅外線,傳感器傳輸高電平給控制器,以此來控制智能小車正常循跡行駛。紅外傳感器實物圖如圖所示。1.2.1傳感器部分4.超聲波避障傳感器這種傳感器利用超聲波測距的非接觸式測量方法,根據(jù)超聲波在物體表面會顯著反射成回波的特性,來測量智能小車與障礙物之間的距離,從而實現(xiàn)智能小車的避障功能。超聲波避障傳感器實物圖如圖所示。1.2.1傳感器部分5.火焰?zhèn)鞲衅鞲鶕?jù)紅外線對火焰的敏感性,利用特殊手段制成的紅外線接收管可作為智能小車的火焰?zhèn)鞲衅??;鹧鎮(zhèn)鞲衅骰诓煌幕鹧媪炼认蚩刂破鱾鬏敻?低電平信號,控制器據(jù)此判斷是否發(fā)現(xiàn)火源,再根據(jù)具體情況進行滅火操作。火焰?zhèn)鞲衅飨喈斢谥悄苄≤嚨难劬?,可發(fā)現(xiàn)危險情況并進行處理?;鹧?zhèn)鞲衅鲗嵨飯D如圖所示。1.2.2

控制器部分本項目中控制器選用了Arduino單片機平臺,其開發(fā)簡單,便捷靈活,操作簡便,能跨平臺使用,軟硬件開源可擴展,非常適合初學者和業(yè)余愛好者們使用。智能小車通過各類傳感器來采集相關(guān)信息,將信息傳送到控制器Arduino單片機處理相關(guān)數(shù)據(jù),然后發(fā)送相關(guān)指令控制執(zhí)行器進行相應(yīng)動作。接下來我們來介紹一下Arduino的相關(guān)內(nèi)容:1.2.2

控制器部分(1)認識ArduinoArduino意為“強壯的朋友”,是一種便捷靈活、易于上手的開放源碼的電子原型平臺,最初是專為沒有編程基礎(chǔ)的設(shè)計師、工藝美術(shù)人員、業(yè)余愛好者和對開發(fā)互動裝置或互動式開發(fā)環(huán)境感興趣的人而設(shè)計的。設(shè)計者的初衷是完成一個廉價好用的微控制器開發(fā)板,普通人也能利用Arduino開發(fā)板做出實用有趣的東西。隨著Arduino的廣泛應(yīng)用,世界上的各大生產(chǎn)商也在生產(chǎn)和銷售與Arduino兼容的電路板和擴展板。所以,Arduino是一個完全開源的兼有軟件和硬件兩方面的電子開發(fā)平臺,具有互助和奉獻的開源精神以及團隊力量。1.2.2

控制器部分(2)Arduino特點1)開放源代碼的電路圖設(shè)計,程序開發(fā)接口可免費下載,也可依需求自己修改。2)可以采用USB接口供電,也可以外部供電,雙向選擇。3)Arduino支持ISP在線燒寫,可以將新的“Bootloader”固件燒入ATmega168或ATmega328芯片。有了Bootloader之后,可以通過USB更新程序。4)可依據(jù)官方提供的Eagel格式PCB和SCH電路圖,簡化Arduino模組,完成獨立運作的微處理控制板。也可簡單地與傳感器,各式各樣的電子元件連接(紅外線、超音波、熱敏電阻、光敏電阻、伺服舵機等)。5)支持多種互動程序,如:Flash、Max/Msp、VVVV、C、Processing…….等。6)應(yīng)用方面,利用Arduino可突破以往只能使用鼠標、鍵盤,CCD等輸入裝置的互動內(nèi)容,可以更簡單地達成單人或多人游戲互動。1.2.2

控制器部分(3)Arduino的開發(fā)過程Arduino是一個基于微控制器的開發(fā)板,通過與計算機相連來實現(xiàn)各種功能。Arduino的開發(fā)過程是:根據(jù)功能設(shè)置設(shè)計電路并進行連接;根據(jù)用戶需求完成程序設(shè)計;將編譯好的程序下載到硬件開發(fā)板上進行功能驗證;不斷調(diào)試以達到預(yù)期效果。1.2.2

控制器部分(4)Arduino的硬件組成Arduino有各種各樣的開發(fā)板,最為常用的就是ArduinoUNO。ArduinoUNO的處理器核心是ATmega328,同時具有14路數(shù)字輸入/輸出口(如圖所示的數(shù)字口0~13,其中6路可作為脈沖寬度調(diào)制PWM輸出),6路模擬輸入(如圖所示的模擬口0~5),ArduinoUNO開發(fā)板的詳細功能介紹如圖所示。1.2.2

控制器部分(4)Arduino的硬件組成除了最重要的I/O口外,ArduinoUNO還有一個16MHz的晶體振蕩器,一個USB口,一個電源插座,一個ICSPheader和一個復(fù)位按鈕。UNO可以通過兩種方式供電方式,一種通過USB供電,另一種是通過外接6~12V的DC電源。除此之外,還有4個LED燈和復(fù)位按鍵。其中,ON是電源指示燈,通電就會亮了,L是接在數(shù)字口13上的一個LED燈,而TX、RX是串口通訊指示燈,比如在下載程序的過程中,這兩個燈就會不停閃爍。處

器工作電壓輸入電壓數(shù)字輸入/輸出接口模擬輸入接口串口ATmega3285V6~20V14個6個1個I/O引腳直流電流3.3V引腳直流電流程序存儲器SRAMEEPROM工作時鐘40mA50mA32KB2KB1KB16MHz表2-1-1ArduinoUNO開發(fā)板的基本構(gòu)成1.2.3

執(zhí)行器部分1.驅(qū)動模塊采用H橋電路驅(qū)動兩個直流電機,作為智能小車的動力源,通過控制器發(fā)出的控制指令來指揮電機正常運轉(zhuǎn)。直流電機實物圖如圖所示。2.舵機轉(zhuǎn)向模塊通過設(shè)置一定占空比的方波來控制舵機轉(zhuǎn)過的角度,舵機具有力矩大、響應(yīng)速度快等優(yōu)點,經(jīng)常被用在智能小車轉(zhuǎn)向裝置中。舵機轉(zhuǎn)向模塊實物圖如圖所示。1.2.4

其他部分1.三輪運動模塊該模塊由兩個橡膠輪胎和一個萬向輪組成。三輪運動模塊如圖1所示,橡膠輪胎實物圖如圖2所示,萬向輪實物圖如圖3所示。圖1三輪運動模塊圖2橡膠輪胎圖3萬向輪1.2.4

其他部分2.藍牙模塊在智能小車上安裝藍牙模塊,通過藍牙模塊與智能手機相連,進行信息傳輸與處理控制。藍牙模塊實物圖如圖所示。3.電源模塊設(shè)置獨立的電源模塊為智能小車供電。4.小車底盤在小車底盤上為上述硬件預(yù)留合適的安裝位置,將以上硬件有序地安裝在小車底盤上。小車底盤實物圖如圖所示。1.3PARTTHREE智能小車的工作原理1.3.1電機驅(qū)動與調(diào)速原理電機

電機是將電能轉(zhuǎn)換成機械能的一種設(shè)備,主要用作機械設(shè)備的動力源,在電路中用“M”來表示。電機實物圖如圖所示。2.舵機轉(zhuǎn)向模塊

如圖所示,一個典型的H橋電路由四個三極管和一個電機組成。要實現(xiàn)電機轉(zhuǎn)動,需要使電路中對角線上的兩個三極管導(dǎo)通,根據(jù)不同三極管對的導(dǎo)通情況,電流可以從左至右或者從右至左流過電機,從而控制電機的旋轉(zhuǎn)方向。當Q2和Q3導(dǎo)通時,電流就從電源正極經(jīng)Q3從右至左流過電機,再經(jīng)Q2到達電源負極,該流向的電流將驅(qū)動電機逆時針轉(zhuǎn)動。1.3.1電機驅(qū)動與調(diào)速原理3.PWM調(diào)速原理脈沖寬度調(diào)制,簡稱脈寬調(diào)制,是指通過控制輸出的脈沖寬度來對模擬電路進行控制。PWM有頻率、占空比、周期三個參數(shù)。(1)頻率是指每秒鐘信號在高、低電平之間切換的次數(shù)。(2)周期是指一個完整的PWM信號持續(xù)的時間。(3)占空比是指在PWM的輸出信號中,高電平所占有的時間與該信號周期的比值。在PWM方法中,電源以一定頻率的方波脈沖向電機提供電能,通過給方波脈沖設(shè)置不同的占空比來改變電機兩端的電壓大小,進而改變電機的轉(zhuǎn)速。因此,直流電機正轉(zhuǎn)、反轉(zhuǎn)、加速、減速的智能控制,由PWM控制系統(tǒng)來實現(xiàn)。1.3.2循跡原理餐廳服務(wù)機器人、倉庫搬運機器人等是沿著預(yù)設(shè)的線路行進的,即能夠?qū)崿F(xiàn)自動循跡。餐廳服務(wù)機器人如圖1所示,倉庫搬運機器人如圖2所示。圖1餐廳服務(wù)機器人圖2倉庫搬運機器人1.3.2循跡原理智能小車也能實現(xiàn)自動循跡。例如,可以利用白色KT板作為底板鋪設(shè)賽道,在板上貼上黑線來標示智能小車的行進路線,使智能小車沿著黑線完成直行、轉(zhuǎn)彎、交叉行進等動作。要使智能小車能夠自動沿著黑線走,那么首先要知道黑線的具體位置,這就需要用到傳感器,此時的傳感器相當于智能小車的“眼睛”,用來識別黑線。在智能小車行駛過程中,為了讓智能小車沿著預(yù)設(shè)的路線行走,需要不斷調(diào)整智能小車的行進方向??梢岳貌煌伾珜t外線的反射能力不同,傳輸不同的信號給控制器,從而控制電機的旋轉(zhuǎn)方向,改變小車的行進方向。1.3.2循跡原理紅外傳感器是發(fā)射管與接收管一體式傳感器。在智能小車前方底盤貼近地面的兩側(cè)安裝兩個紅外傳感器。智能小車沿著黑線正常行駛時,兩個紅外傳感器檢測到白色地面,發(fā)射管發(fā)出的紅外線經(jīng)白色地面反射后被接收管接收,傳感器電路產(chǎn)生高電平傳輸給控制器;當智能小車偏離軌道時,紅外線被黑線吸收,接收管接收不到紅外線,傳感器電路產(chǎn)生低電平并反饋給控制器。這樣,控制器就能根據(jù)收到的信號,控制智能小車沿著正確的路線行駛。紅外傳感器模塊實物圖如圖所示。1.3.3避障原理1.超聲避障超聲波是一種振動頻率高于20000Hz的聲波,其方向性好、穿透能力強,且頻率高、波長短,能夠定向傳播,在介質(zhì)中傳播的距離較遠,因而經(jīng)常被用于測量距離?;诔暡ㄌ匦匝兄频膫鞲衅鞣Q為超聲波傳感器,它在工業(yè)、國防、生物醫(yī)學等方面得到了廣泛應(yīng)用,如圖所示。在智能小車行駛過程中,可以通過超聲波傳感器來檢測智能小車前方是否有障礙物,以及智能小車與障礙物之間的距離,根據(jù)檢測情況向控制器發(fā)送相應(yīng)的電信號,從而達到控制智能小車避障的目的。1.3.3避障原理2.紅外避障紅外避障也采用紅外傳感器,它由一個發(fā)射管(白色)和一個接收管(黑色)組成,其工作過程是發(fā)射管發(fā)射紅外線,根據(jù)接收管接收紅外線的情況(接收到紅外線時輸出高電平,未接收到紅外線時輸出低電平),判斷障礙物的情況。本任務(wù)中,在小車前側(cè)兩端各配備一個紅外傳感器,當左側(cè)的紅外傳感器檢測到障礙物時,指示燈亮,小車向右轉(zhuǎn);同理,右側(cè)有障礙物時,小車向左轉(zhuǎn)。該傳感器的探測距離可以通過電位器調(diào)節(jié),具有干擾小、便于裝配、使用方便等特點。1.3.3避障原理2.紅外避障智能小車的基本硬件結(jié)構(gòu)如圖所示。(1)驅(qū)動模塊:采用H橋電路、PWM方法驅(qū)動雙直流電機正常運轉(zhuǎn)、變速等。(2)循跡模塊:通過紅外傳感器實現(xiàn)智能小車自動循跡行駛。(3)避障模塊:利用超聲波傳感器或紅外傳感器測量智能小車與障礙物之間的距離,據(jù)此調(diào)節(jié)智能小車的狀態(tài),實現(xiàn)智能小車成功避障。(4)舵機模塊:通過調(diào)節(jié)方波脈沖的占空比來控制舵機轉(zhuǎn)動的角度,從而控制智能小車的轉(zhuǎn)向。(5)藍牙模塊:通過藍牙模塊將智能小車與手機進行連接,再與控制器相連,實現(xiàn)信息的實時傳輸、處理、存儲等。(6)電源模塊:設(shè)置獨立的電源模塊為智能小車供電。講解完畢,謝謝觀看!智能小車C語言程序控制第二章:集成開發(fā)環(huán)境介紹2.1PARTONEArduinoIDE在安裝集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)之前,我們需要知道有關(guān)嵌入式技術(shù)的相關(guān)知識。開發(fā)人員在軟件上將程序編寫好,編譯生成單片機要執(zhí)行的程序,就叫做交叉編譯。因此要完成Arduino的執(zhí)行過程需要Arduino與計算機共同參與,此時Arduino單片機叫做目標單片機,計算機就是宿主計算機。Arduino開發(fā)環(huán)境能夠在主流的操作系統(tǒng)上運行,包括Windows、Linux、MacOS三個主流操作系統(tǒng)平臺。2.1.1Arduino開發(fā)環(huán)境搭建1.在Windows上安裝ArduinoIDEArduino軟件編程是在ArduinoIDE上進行的,編程所用的語言使用的是一種解釋型語言,基于Arduino的語言編寫的程序叫做sketch,編譯完成后便可下載到硬件開發(fā)板中。在Arduino的官方網(wǎng)站上可以下載正版的Arduino的軟件、源碼、教程及文檔。ArduinoIDE的官方下載地址為:http://arduino.cc/en/Main/Software。進入官方網(wǎng)站后,根據(jù)計算機操作系統(tǒng)的不同,選擇相應(yīng)的ArduinoIDE下載選項,并完成下載安裝過程,ArduinoIDE下載界面如圖所示。2.1.1Arduino開發(fā)環(huán)境搭建1.在Windows上安裝ArduinoIDE完成安裝后,雙擊Arduino應(yīng)用程序即可進入IDE-sketch初始界面,如圖所示。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹打開ArduinoIDE,包含一個文本編輯器,用來進行程序的編寫與修改,然后利用自動上傳器把編寫完成的程序發(fā)送到Arduino開發(fā)板。ArduinoIDE用戶界面的區(qū)域功能如圖所示,界面大致分為三個部分:菜單欄,包含文件菜單、編輯菜單、程序菜單、工具菜單和幫助菜單;工具欄,包含編譯、上傳、新建程序(sketch)、打開程序(sketch)、保存程序(sketch)和串口監(jiān)視器(SerialMonitor);編輯區(qū),程序代碼編寫區(qū)域;狀態(tài)區(qū),顯示程序編譯和上傳等信息。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹ArduinoIDE的開發(fā)界面如圖所示,工具欄按鈕功能從左至右依次為驗證、上傳、調(diào)試、選擇開發(fā)板和串口監(jiān)視器(SerialMonitor)。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹接下來對菜單欄進行說明:(1)文件菜單完成程序的編寫后,需要將程序進行存儲,此時應(yīng)用到的就是文件菜單。如圖所示其功能選項主要包括:新建文件(New);打開文件(Open);保存文件(Save);文件另存為(Saveas)。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹(2)編輯菜單編輯菜單是對程序文本進行編寫時使用的選項,如圖所示。主要有以下幾種選項:撤銷、恢復(fù)、剪切、復(fù)制、粘貼、選擇全部和轉(zhuǎn)到行/列,同時這些選項的快捷鍵設(shè)置為,撤銷為Ctrl+Z、剪切為Ctrl+X、復(fù)制為Ctrl+C、粘貼為Ctrl+V、全選為Ctrl+A等。此外,編輯菜單還提供了其他選項,如“注釋/取消注釋”,Arduino編輯器中使用“//”代表注釋。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹(3)項目菜單項目菜單是對程序進行相應(yīng)的操作,如圖所示,具體有以下幾個選項:驗證/編譯(Verify);顯示項目文件夾(ShowSketchFolder),用于打開當前程序所在的文件夾;添加文件(AddFile),將其他程序復(fù)制到當前程序中,并在編輯器窗口的新選項卡中打開加載庫(ImportLibrary),導(dǎo)入所引用的Arduino庫文件。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹(4)工具菜單工具(Tools)菜單是對Arduino開發(fā)板進行設(shè)置的選項集合,如圖所示。主要包括:自動格式化(AutoFormat),用來整理代碼格式,使程序顯示更規(guī)范合理;項目存檔(ArchiveSketch),將同屬一個項目的文件整合到一個文件夾中,以便進行存檔或共享;串口監(jiān)視器(SerialMonitor),用于在Arduino與計算機進行連接時顯示串口消息的內(nèi)容;端口,需要手動選擇操作系統(tǒng)中可用的串口,在連接Arduino硬件板時,串口號會進行更新,需要重新選擇相連的串口號;開發(fā)板,選擇與計算機連接的開發(fā)板的型號;燒錄引導(dǎo)程序,將編寫好的程序燒寫到Arduino開發(fā)板上,也稱為AVRISP燒寫器。2.1.1Arduino開發(fā)環(huán)境搭建2.ArduinoIDE介紹(5)幫助菜單幫助(Help)菜單是ArduinoIDE中提供查找?guī)椭倪x項集合,如圖所示。包括入門、環(huán)境、故障排除、參考、常見問題以及關(guān)于Arduino的一些基本知識,幫助使用者更好地了解Arduino并解決使用中出現(xiàn)的問題。2.1.1Arduino開發(fā)環(huán)境搭建3.常用功能介紹(1)點擊文件->首選項(或快捷鍵“Ctrl+,”)進入軟件設(shè)置界面,可在此界面設(shè)置編輯器語言、編輯器字體大小、顯示行號、代碼折疊等。通過設(shè)置編輯器語言可進行中英文切換,還有很多其他外文。設(shè)置完畢后點擊確認,部分設(shè)置需要重啟軟件生效。如圖所示。2.1.1Arduino開發(fā)環(huán)境搭建3.常用功能介紹(2)點擊文件->示例可打開環(huán)境內(nèi)置示例程序。該環(huán)境自帶非常多的例程,包括基礎(chǔ)、數(shù)字、模擬、通訊、顯示等。如圖所示。2.1.1Arduino開發(fā)環(huán)境搭建3.常用功能介紹(3)點擊項目,會發(fā)現(xiàn)工具欄中的圖標編譯、上傳也包含在其中。點擊包含庫,選擇列表中的庫文件后,編輯區(qū)自動添加相關(guān)的頭文件。如圖所示。2.1.1Arduino開發(fā)環(huán)境搭建3.常用功能介紹(4)點擊工具->開發(fā)板,可進行不同開發(fā)板的選擇,列表包含了大部分Arduino開發(fā)板,可通過開發(fā)板管理器添加開發(fā)板選項。點擊端口進行端口號選擇。此外工具選項還包含為開發(fā)板燒錄引導(dǎo)程序的相關(guān)選項。如圖所示。2.1.1Arduino開發(fā)環(huán)境搭建完成ArduinoIDE的安裝后,我們通過編寫和上傳第一個程序來學習Arduino的完整開發(fā)過程。下面我們來編寫第一個小程序。程序示例:LED閃光燈打開ArduinoIDE,新建一個空的Sketch,編寫第一個程序控制開發(fā)板上的LED燈閃爍,修改參數(shù)調(diào)整閃爍時間。該示例是ArduinoIDE示例Basics中的Blink程序,打開位置如圖所示。2.1.2用ArduinoIDE完成一個小程序Blink程序詳情如圖所示:2.1.2用ArduinoIDE完成一個小程序Blink程序解析:2.1.2用ArduinoIDE完成一個小程序/*Blink打開LED一秒,然后關(guān)閉一秒,重復(fù)操作*/intLED_BUILTIN=13;/*聲明變量*/voidsetup()/*setup函數(shù)是當按下板子復(fù)位鍵或者電源鍵就發(fā)揮功能*/{pinMode(13,OUTPUT);}/*設(shè)置數(shù)字引腳13為輸出,INPUT和OUTPUT是ArduinoIDE已經(jīng)預(yù)先定義好的變量*//*loop函數(shù)會一遍又一遍的循環(huán)執(zhí)行下去*/voidloop(){digitalWrite(13,HIGH);/*13引腳輸出高電平,打開LED燈*/delay(1000)/*延遲1秒*/digitalWrite(13,LOW);/*13引腳輸出低電平,關(guān)閉LED燈*/delay(1000);/*延遲1秒*/}/*digitalWrite是內(nèi)建函數(shù),改變數(shù)字引腳輸出狀態(tài)是ON還是OFF,它需要兩個參數(shù)。Delay是內(nèi)建的延遲函數(shù)。*/這是一個簡單的實現(xiàn)LED燈閃爍的程序,在該程序里intLED_BUILTIN=13是用來聲明變量和接口,voidsetup()函數(shù)則將LED_BUILTIN引腳的模式設(shè)為輸出模式。

在voidloop()中則循環(huán)執(zhí)行點亮熄滅LED燈,實現(xiàn)LED燈的閃爍。行業(yè)PPT模板/hangye/

小貼士上述程序大體可分為以下3個部分。(1)聲明變量及接口。(2)setup()函數(shù)。在Arduino程序運行時首先要調(diào)用setup()函數(shù),用于初始化變量、設(shè)置引腳的輸入/輸出模式、配置串口、引入類庫文件等。每次Arduino開發(fā)板通電或重啟后,setup()函數(shù)只運行一次。(3)loop()函數(shù)。在setup()函數(shù)中初始化和定義變量,然后執(zhí)行l(wèi)oop()函數(shù)。顧名思義,該函數(shù)在程序運行過程中不斷地循環(huán)執(zhí)行??赏ㄟ^該函數(shù)動態(tài)控制Arduino開發(fā)板。2.1.3常用的第三方軟件1.虛擬面包板(VirtualBreadboard,VBB)這是一款為Arduino提供服務(wù)的仿真軟件,通過單片機來實現(xiàn)嵌入式系統(tǒng)的模擬和開發(fā)環(huán)境,其中包含Arduino所有的示例電路。VBB還支持PIC系列芯片、Netduino,以及Java、VB、C++等主流編程環(huán)境。VBB軟件如圖所示。2.1.3常用的第三方軟件2.圖形化編程軟件MixlyMixly是由北京師范大學創(chuàng)客教育實驗室團隊開發(fā)的圖形化編程軟件,它能夠簡化ArduinoIDE和Ardublock可視化編程插件的雙窗口界面,可在Windows7和WindowsXP操作系統(tǒng)上運行。該軟件易于操作,功能豐富。Mixly軟件界面如圖所示。2.2PARTTWODev-C++2.2.1Dev-C++的下載、安裝與配置登錄Dev-C++的官方網(wǎng)站進行軟件下載:/projects/orwelldevcpp/。2.2.1Dev-C++的下載、安裝與配置Dev-C++下載完成后會得到一個安裝包(.exe程序),雙擊該文件即可開始安裝。1)加載安裝程序(需要十幾秒時間)。2)開始安裝。DevC++支持多國語言,包括簡體中文,但是要等到安裝完成以后才能設(shè)置,在安裝過程中不能使用簡體中文,所以這里我們選擇English。2.2.1Dev-C++的下載、安裝與配置3)同意DevC++的各項條款。4)選擇要安裝的組件,選擇“Full”全部安裝。2.2.1Dev-C++的下載、安裝與配置5)選擇安裝路徑,可以將DevC++安裝在任意位置,但是路徑中最好不要包含中文。6)等待安裝。7)安裝完成。2.2.1Dev-C++的下載、安裝與配置開始配置DevC++。首次使用DevC++還需要簡單的配置,包括設(shè)置語言、字體、和主題風格。1)第一次啟動DevC++后,提示選擇語言。2)選擇字體和主題風格2.2.1Dev-C++的下載、安裝與配置3)提示設(shè)置成功。點擊“OK”按鈕,進入DevC++,就可以編寫代碼了。2.2.2Dev-C++的下載、安裝與配置Dev-C++工作界面如圖所示:2.2.2Dev-C++的下載、安裝與配置接著我們來介紹DEV-C++的使用。第一步,啟動DEV-C++。第二步,在DEV-C++中建立新的源代碼。點擊“文件–>新建–>源代碼”(或者按快捷鍵Ctrl+N)輸入代碼,命名后保存;新建一個源代碼程序如圖所示:代碼編輯完成后,將代碼進行保存,點擊“文件–>保存”(或者按快捷鍵Ctrl+S)。保存源代碼程序如圖所示。2.2.2Dev-C++的下載、安裝與配置在Dev-C++中編輯文件時,基本操作與其它文本編輯器是完全相同的。不過,除了基本的文本編輯功能之外,Dev-C++還提供了以下一些用于程序編輯的方便功能:1)點擊“插入片段”按鈕,可以插入一些常用的代碼片段。建議用戶在編輯每個源文件時,可以插入“文件頭注釋塊”和“C++main”,以快速開始編輯工作。2)編輯區(qū)左邊的行號區(qū)中顯示了代碼中的塊狀結(jié)構(gòu),可供用戶看出代碼中的復(fù)合語句層次。3)編輯窗口左邊的“符號和類”窗格中顯示了當前程序中定義的函數(shù)、全局變量、結(jié)構(gòu)體和類等信息,方便用戶掌握整個程序的結(jié)構(gòu)。行業(yè)PPT模板/hangye/

小貼士在編輯代碼過程中,需要注意以下三個方面:(1)編輯代碼時要及時保存,防止斷電丟失;(2)輸入源程序要在英文輸入狀態(tài)下,以防在后續(xù)階段出現(xiàn)問題;(3)可在main函數(shù)中的return語句前加入system(“pause”)語句,以便在程序運行到該位置時,能夠?qū)Τ绦蜻\行結(jié)果的顯示延時一段時間。2.2.2Dev-C++的下載、安裝與配置第三步:預(yù)處理、編譯、鏈接程序。在完成代碼的編輯工作后,需要對程序進行預(yù)處理、編譯和鏈接的過程,來對程序中的語法、輸入方式等進行檢查,并將編譯結(jié)果顯示出來。首先要設(shè)置編譯器。點擊Dev-C++工具欄上的“編譯器選項”下拉框,就可以看到多種編譯器的配置方案并從中選擇。Dev-C++默認安裝的編譯器是TDM-GCC4.9.2(這是一個免費開源的C/C++編譯器)。選擇時主要是考慮兩個因素:1、根據(jù)自己所安裝的Windows系統(tǒng)是64位還是32位而選擇含有“64位”或“32位”的配置方案;2、在準備進行調(diào)試時只能選擇含有“調(diào)試”的方案,只有對于大型程序才需要改用含有“性能分析”和“發(fā)行”的方案。對于大部分用戶來說,使用默認的“TDM-GCC4.9.264位調(diào)試”方案即可。2.2.2Dev-C++的下載、安裝與配置點擊“運行–>編譯”,就可以完成對程序完整的預(yù)處理、編譯以及鏈接過程如圖所示。通過編譯、鏈接過程能夠快速找到程序中的語法錯誤,提高對程序的調(diào)試效率。第四步:運行程序。在完成程序的編譯、鏈接過程后,生成相應(yīng)的.exe文件。選擇“運行–>運行”來運行程序。如圖所示。2.2.2Dev-C++的下載、安裝與配置第五步:調(diào)試程序。Dev-C++提供了強大的排錯與調(diào)試工具,下面簡要介紹具體使用方法編譯代碼的過程是通過編譯器對代碼的語法錯誤進行詳細的檢查,但無法檢查出來源代碼中的邏輯錯誤,為了驗證代碼是否能夠?qū)崿F(xiàn)預(yù)期的效果,需要對代碼進行進一步的調(diào)試,找出代碼中存在的邏輯錯誤或其他問題。若要清除程序代碼中的邏輯錯誤,就必須學會使用開發(fā)環(huán)境中的調(diào)試工具,并觀察變量的數(shù)值變化,再加上自己的邏輯思考,才能找出程序中的錯誤所在并修改清除之。Dev-C++中沒有單獨的“調(diào)試”菜單,只是在“運行[R]”菜單下面有幾個菜單項與調(diào)試有關(guān):“切換斷點F4”、“調(diào)試F5”、“停止運行F6”。讀者需要了解這幾個菜單和按鈕,然后按下述步驟進行操作。2.2.2Dev-C++的下載、安裝與配置第五步:調(diào)試程序。1)開始調(diào)試(Debug)點擊工具欄上的“調(diào)試”按鈕(快捷鍵F5),或點擊菜單“運行–>調(diào)試F5”即可開始調(diào)試。如果當前選定的編譯器配置方案中不含調(diào)試信息,Dev-C++會彈出對話框提示說沒有調(diào)試信息,不能啟動調(diào)試。請點擊“確定”按鈕,然后重新選擇帶有“調(diào)試”的編譯器配置方案,再重新進行編譯和調(diào)試。程序調(diào)試時,就開始運行(通常會彈出一個終端窗口)。運行到程序中的第一條可執(zhí)行語句就暫停。這時候最好是手工調(diào)整一下Dev-C++窗口的大小和位置,以便能夠同時看到Dev-C++窗口和終端窗口(以方便后續(xù)操作)。2)調(diào)試過程中的操作啟動調(diào)試之后,Dev-C++窗口下半部分時會自動顯示調(diào)試面板如圖所示,可以用鼠標點擊按鈕或按快捷鍵執(zhí)行調(diào)試操作。2.2.2Dev-C++的下載、安裝與配置第五步:調(diào)試程序。3)查看變量的值開始調(diào)試后,常常要查看變量的變化情況,因此需要查看變量的值。在默認情況下,如果用鼠標懸浮在當前運行的代碼中的變量上方,則會自動出現(xiàn)一個小懸浮窗口,顯示出該變量當前的值。如果想更快速地看到變量的值,可以在編輯器中選中待查看的變量名,在Dev-C++窗口下方的調(diào)試面板中點擊“添加查看”按鈕,就可以在Dev-C++窗口左邊的“調(diào)試”窗格中看到該變量及其當前的值。2.2.2Dev-C++的下載、安裝與配置第五步:調(diào)試程序。4)設(shè)置斷點(Breakpoint)如果程序比較長,那么在調(diào)試過程中使用“下一步”按鈕和“單步進入”按鈕進行操作時比較慢??梢栽诔绦蛑性O(shè)置斷點,加快調(diào)試操作速度。在事先對程序的運行出錯現(xiàn)象進行思考之后,可以推斷出程序出錯的可能原因在于源代碼中的哪些語句。無論是在編輯狀態(tài)還是在調(diào)試過程中,可以把光標移動到想要暫停執(zhí)行的那一行,用鼠標點擊該行左邊的裝訂區(qū)位置中的行號(或者按F4鍵),該行就會變成紅色,裝訂區(qū)的行號處顯示有一個紅點,表示該行已被設(shè)置為一個斷點,再次操作則取消該行為斷點。請在自己懷疑有問題的部分前后設(shè)置幾個斷點,以便進行調(diào)試。程序中可以設(shè)置多個斷點。如果程序中設(shè)置了斷點,那么在啟動調(diào)試時會直接運行到第一個斷點(而不是第一條可執(zhí)行語句)暫停。這時仍然可以用“下一步”按鈕和“單步進入”按鈕進行操作。如果認為程序中某一部分無誤,則點擊“繼續(xù)”按鈕就會以運行到下一個斷點暫停,無斷點則運行到程序末尾。2.2.2Dev-C++的下載、安裝與配置第五步:調(diào)試程序。5)根據(jù)調(diào)試情況排錯在調(diào)試過程中,要靈活運用“下一步”按鈕和“單步進入”按鈕,并隨時查看變量的值,還需在頭腦中進行分析,從而判斷程序中是否存在邏輯錯誤。在調(diào)試中途或最后需要按“停止執(zhí)行”(F6)以結(jié)束調(diào)試。然后根據(jù)調(diào)試過程中的思考結(jié)果對程序進行修改。通常需要反復(fù)進行調(diào)試和修改才能排除程序中的錯誤。行業(yè)PPT模板/hangye/

小貼士常用的調(diào)試方法有:設(shè)置斷點、單步執(zhí)行程序以及設(shè)置watch窗口等。(1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論