智能垃圾分類機(jī)器人PPT_第1頁(yè)
智能垃圾分類機(jī)器人PPT_第2頁(yè)
智能垃圾分類機(jī)器人PPT_第3頁(yè)
智能垃圾分類機(jī)器人PPT_第4頁(yè)
智能垃圾分類機(jī)器人PPT_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、智能垃圾分類機(jī)器人, arduino基礎(chǔ),2,01,A,什么是Arduino?,02,B,Arduino能做什么?,03,C,Arduino怎么用?,一、Arduino的由來(lái),Arduino創(chuàng)始人Massimo Banzi之前是意大利Ivrea一家高科技設(shè)計(jì)學(xué)校的老師。他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles討論了這個(gè)問(wèn)題。 David Cuartielles是一個(gè)西班牙籍晶片工程師,當(dāng)時(shí)在這所學(xué)校做訪問(wèn)學(xué)者。 兩人決定設(shè)計(jì)自己的電路板,并引入了Banzi的學(xué)生David Mellis為電路板設(shè)計(jì)編程語(yǔ)言。

2、兩天以后,David Mellis就寫出了程式碼。又過(guò)了三天,電路板就完工了。這塊電路板被命名為Arduino。,二、什么是Arduino?,Arduino 是一種開(kāi)源的電子開(kāi)發(fā)平臺(tái),該平臺(tái)最初主要基于 AVR 單片機(jī)的微控制器和相應(yīng)的開(kāi)發(fā)軟件,目前在國(guó)內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注。 自從 2005 年 Arduino 騰空出世以來(lái),其硬件和開(kāi)發(fā)環(huán)境一直進(jìn)行著更新迭代。 幾乎任何人, 即便不懂電腦編程, 利用這個(gè)開(kāi)發(fā)板也能用 Arduino 做出炫酷有趣的東西,比如對(duì)感測(cè)器探測(cè)做出一些回應(yīng)、閃爍燈光、控制馬達(dá)等。,三、Arduino能做什么?,最簡(jiǎn)單應(yīng)用: 通過(guò)Arduino開(kāi)發(fā)板引腳輸出高電

3、平點(diǎn)亮一盞LED燈。,三、Arduino能做什么?,利用Arduino板作為中央控制器實(shí)現(xiàn)家居智能化,語(yǔ)音口令開(kāi)燈、開(kāi)空調(diào),隨著室內(nèi)光線環(huán)境自動(dòng)調(diào)節(jié)亮度,手機(jī)APP控制家用電器等,讓你的arduino連入物聯(lián)網(wǎng),Arduino高端應(yīng)用,樂(lè)為聯(lián)網(wǎng)云數(shù)據(jù)平臺(tái),四、認(rèn)識(shí)Arduino開(kāi)發(fā)板- Arduino UNO,四、認(rèn)識(shí)Arduino開(kāi)發(fā)板- arduino Mega2560,五、Arduino開(kāi)發(fā)環(huán)境,Arduino的編程是在Arduino IDE上進(jìn)行的,如左圖編程界面所示; 開(kāi)發(fā)環(huán)境提供了最基本的模板,包含了setup()函數(shù)和loop()函數(shù); 在setup()函數(shù)上方空白區(qū)域,可以插入

4、需要用到的函數(shù).h頭文件以及申明要用到的函數(shù)。,六、函數(shù)的概念,定義:函數(shù)是一種能完成某種特定功能二端口通道,通過(guò)輸入合適的東西獲得想要的某種輸出; 舉例:例如數(shù)學(xué)上y=2x,這條函數(shù)可以完成將輸入值翻倍這樣一個(gè)工作;,注意: arduino提供了大量的基礎(chǔ)函數(shù),包括I/O控制、時(shí)間函數(shù)、中斷函數(shù)、串口通信函數(shù)等; arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實(shí)例程序,這些例程可以在arduino開(kāi)發(fā)環(huán)境的“File-Examples”菜單中找到。,七、Arduino的常用基本函數(shù),Arduino程序的主體包括:Setup( ) 函數(shù)和loop( )函數(shù); (1)setup( )函數(shù):在程序中

5、只運(yùn)行一次,它的功能為完成程序的各類初始化工作; (2)loop( )函數(shù):程序的主函數(shù),程序運(yùn)行過(guò)程中l(wèi)oop()函數(shù)不斷循環(huán)。,Arduino常用函數(shù)- pinMode( ),功能:將指定的引腳配置成輸出或輸入 語(yǔ)法:pinMode(pin, mode) 參數(shù): pin:表示要設(shè)置模式的引腳 mode:包括INPUT 或 OUTPUT 返回值:無(wú),例程: int ledPin = 13 ; / LED 連接到數(shù)字腳 13 void setup() pinMode(ledPin, OUTPUT ) ; /設(shè)置數(shù)字腳為輸出 void loop() digitalWrite (ledPin, H

6、IGH ) ; /點(diǎn)亮 LED delay(1000); / 等待一秒 digitalWrite(ledPin, LOW); / 滅掉 LED 延遲(1000) ; /等待第二個(gè) ,Arduino常用函數(shù)-digitalWrite(),功能:給一個(gè)數(shù)字引腳寫入 HIGH 或者 LOW 。 語(yǔ)法:digitalWrite(pin, value) 參數(shù): pin: 引腳編號(hào) value: HIGH or LOW 返回值:無(wú),例程: int ledPin = 13; / LED 連接到數(shù)字 13 號(hào)端口 void setup() pinMode(ledPin, OUTPUT); / 設(shè)置數(shù)字端口為輸

7、入模式 void loop() digitalWrite(ledPin, HIGH); / 使 LED 亮 delay(1000); / 延遲一秒 digitalWrite(ledPin, LOW); / 使 LED 滅 delay(1000); / 延遲一秒 ,Arduino常用基本函數(shù)-digitalRead(),功能: 讀取指定引腳的值, HIGH 或 LOW 。 語(yǔ)法: digitalRead (PIN) 參數(shù): Pin:你想讀取的引腳號(hào) 返回值:HIGH 或 LOW,例程:int ledPin = ; / LED 連接到 13 腳int inPin = 7; / 按鈕連接到數(shù)字引腳

8、7int val = 0; /定義變量以存儲(chǔ)讀值void setup()pinMode(ledPin, OUTPUT); / 將 13 腳設(shè)置為輸出pinMode(inPin, INPUT); / 將 7 腳設(shè)置為輸入void loop()val = digitalRead(inPin); / 讀取輸入腳digitalWrite(ledPin, val); /將 LED 值設(shè)置為按鈕的值,Arduino常用基本函數(shù)- analogRead(),功能:從指定的模擬引腳讀取模擬數(shù)據(jù)值。 語(yǔ)法:analogRead(PIN) 參數(shù): pin:從輸入引腳讀取數(shù)值 返回值: 從 0 到 1023 的整數(shù)

9、值,例程:int analogPin = 3; /電位器(中間的引腳)連接到模擬輸入引腳 3/另外兩個(gè)引腳分別接地和 +5 Vint val = 0; /定義變量來(lái)存儲(chǔ)讀取的數(shù)值void setup()serial.begin(9600) ; /設(shè)置波特率( 9600)void loop()val = analogRead(analogPin) ; /從輸入引腳讀取數(shù)值serial.println (val) ; /顯示讀取的數(shù)值,Arduino常用基本函數(shù)- analogWrite(),功能:從一個(gè)引腳輸出模擬值( PWM ) 語(yǔ)法:analogWrite (pin,value) 參數(shù): p

10、in:用于輸入數(shù)值的引腳。 value:占空比: 0(完全關(guān)閉)到 255(完全打開(kāi))之間。 返回值:無(wú),例程:通過(guò)讀取電位器的阻值控制 LED 的亮度int ledPin = 9; / LED 連接到數(shù)字引腳 9int analogPin = 3; /電位器連接到模擬引腳 3int val = 0; /定義變量存以儲(chǔ)讀值void setup()pinMode(ledPin,OUTPUT ) ; /設(shè)置引腳為輸出引腳void loop()val = analogRead(analogPin) ; /從輸入引腳讀取數(shù)值analogWrite(ledPin, val / 4) ; / 以 val

11、/ 4 的數(shù)值點(diǎn)亮 LED (因?yàn)?analogRead 讀取的數(shù)值從 0 到 1023,而 analogWrite 輸出的數(shù)值從 0 到 255),Arduino常用基本函數(shù)- delay(),功能:使程序延時(shí)特定的時(shí)間(毫秒) 語(yǔ)法:delay(ms) 參數(shù): ms:暫停的毫秒數(shù)( unsigned long) 返回值:無(wú),例程: ledPin = 13 / / LED 連接到數(shù)字 13 腳 void setup() pinMode(ledPin, OUTPUT); / 設(shè)置引腳為輸出 void loop() digitalWrite(ledPin, HIGH); / 點(diǎn)亮 LED del

12、ay(1000); / 等待 1 秒 digitalWrite(ledPin, LOW); / 滅掉 LED delay(1000); / 等待一秒 ,中斷的定義: 由于某一隨機(jī)事件的發(fā)生,單片機(jī)暫停原程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序(隨機(jī)事件),處理完畢后又自動(dòng)返回原程序繼續(xù)運(yùn)行,其發(fā)生過(guò)程如右圖。 中斷的要素: 主程序:?jiǎn)纹瑱C(jī)正在運(yùn)行的程序。 中斷源:引起中斷的原因,或能發(fā)生中斷申請(qǐng)的來(lái)源。 中斷服務(wù)程序:處理中斷事件的程序。,Arduino常用基本函數(shù)- 中斷介紹,中斷發(fā)生的過(guò)程,Arduino常用基本函數(shù)-中斷函數(shù),1、interrupts()函數(shù) 功能:負(fù)責(zé)打開(kāi)總中斷 返回值:無(wú) 參數(shù):

13、無(wú),2、noInterrupts()函數(shù) 功能:負(fù)責(zé)關(guān)閉總中斷 返回值:無(wú) 參數(shù):無(wú),3、attachInterrupt(interrput,function,mode) 功能:用于設(shè)置外部中斷 參數(shù):3個(gè),分別表示中斷源,中斷處理函數(shù)和觸發(fā)模式,它們的具體含義如下。 中斷源:可選中斷0或者1,對(duì)應(yīng)arduino的2或者3號(hào)數(shù)字引腳。 中斷處理函數(shù):是一段子程序,當(dāng)中斷發(fā)生時(shí)執(zhí)行該子程序部分,其中參數(shù)值為函數(shù)的指針。 觸發(fā)模式:有四種類型,LOW(低電平觸發(fā))、CHANGE(變化時(shí)觸發(fā))、RISING(低電平變?yōu)楦唠娖接|發(fā))、FALLING(高電平變?yōu)榈碗娖接|發(fā)),Arduino常用基本函數(shù)-

14、中斷函數(shù),4、detachInterrupt(interrput)函數(shù) 功能:用于取消中斷 參數(shù): Interrupt:表示所要取消的中斷源,例程:用中斷源0(接引腳D2)作為觸發(fā)源控制arduino UNO板上的LED亮或滅 volatile int state = LOW; void setup() Serial.begin(9600); attachInterrupt(0, change, CHANGE);/當(dāng)D2電平改變時(shí),觸發(fā)中斷函數(shù) void loop() digitalWrite(13, state); if(state=LOW) Serial.println(111); if(

15、state=HIGH) Serial.println(222); void change()/中斷函數(shù) state = !state; ,Arduino常用基本函數(shù)-串口通信函數(shù),1、Serial.begin() 功能:用于設(shè)置串口的波特率 波特率是指每秒傳輸?shù)谋忍財(cái)?shù),除以8可得到每秒傳輸?shù)淖止?jié)數(shù)。 一般的波特率有9600、19200、 57600、115200等。,介紹:通過(guò)在頭文件HardwareSerial.h中定義一個(gè)HardwareSerial類的對(duì)象serial,然后直接使用該類的成員函數(shù)來(lái)實(shí)現(xiàn)。,2、Serial.available() 功能:用來(lái)判斷串口是否收到數(shù)據(jù) 返回值:i

16、nt型 3、Serial.read() 功能:用于讀入串口數(shù)據(jù) 返回值:int型的串口數(shù)據(jù)。,Arduino常用基本函數(shù)-串口通信函數(shù),4、Serial.print() 功能:用于從串口輸出數(shù)據(jù),數(shù)據(jù)可以是變量,也可以是字符串。 5、Serial.println() 功能:與Serial.print函數(shù)類似,都是從串口輸出數(shù)據(jù),只是Serial.println函數(shù)多了回車換行功能。,例程:讀取輸入的字符,并在監(jiān)視器中顯示出來(lái)的程序如下。 String val=; void setup() Serial.begin(9600); void loop() while (Serial.availab

17、le() 0) val+=char(Serial.read(); delay(5); if (val.length() 0) Serial.println(val); val=; ,八、認(rèn)識(shí)函數(shù)庫(kù),函數(shù)庫(kù):由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫(kù)中存放函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼,以及連接過(guò)程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫(kù)。 庫(kù)函數(shù):存放在函數(shù)庫(kù)中的函數(shù)。庫(kù)函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。 頭文件:有時(shí)也稱為包含文件。C語(yǔ)言庫(kù)函數(shù)與用戶程序之間進(jìn)行信息通信時(shí)要使用的數(shù)據(jù)和變量,在使用某一庫(kù)函數(shù)時(shí),都要在程序中嵌入(用#include)該函數(shù)對(duì)應(yīng)的頭文件

18、。,九、機(jī)器人包含的庫(kù)函數(shù),庫(kù)函數(shù)組成:由.h文件(頭文件)和.cpp文件(源程序文件)組成。,十、怎樣使用庫(kù)函數(shù),放置位置:一般是放到lib文件里 調(diào)用方法:將它所在的文件名用 #include,libraries所在的路徑,庫(kù)函數(shù)拷貝到的路徑,#ifndef ColSensor_h #define ColSensor_h class ColSensor private: /定義引腳 int S0, S1, S2, S3, OUT; /定義延時(shí) unsigned long time; public: /定義計(jì)數(shù)器 unsigned long g_count; /定義數(shù)組,用來(lái)存放讀取到的RG

19、B值 int g_array3; /定義數(shù)組,用來(lái)存放比例系數(shù) float g_SF3; /構(gòu)造函數(shù) ColSensor(int a, int b, int c, int d, int e, unsigned long f);,/將引腳配置為輸出,同時(shí)設(shè)置輸出比例因子 void Mode(int a = 1, int b = 1); /*控制數(shù)字引腳,切換濾波器。紅,綠,藍(lán)分別對(duì) 應(yīng)S2與S3的00,11,01電平;10時(shí)過(guò)濾所有顏色*/ void Digital_out(int a, int b); /計(jì)算比例系數(shù) void Test(); /計(jì)算RGB值 void Get(); ; #en

20、dif,垃圾分類小車ColSensor.h文件內(nèi)代碼,#include #include ColSensor.h ColSensor:ColSensor(int a, int b, int c, int d, int e, unsigned long f) S0 = a; S1 = b; S2 = c; S3 = d; OUT = e; time = f; g_count = 0; void ColSensor:Mode(int a, int b) pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pinMode(OUT, INPUT); di

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論