智能垃圾分類機(jī)器人.ppt
《智能垃圾分類機(jī)器人.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能垃圾分類機(jī)器人.ppt(30頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
智能垃圾分類機(jī)器人 arduino基礎(chǔ) 2 01 A 什么是Arduino 02 B Arduino能做什么 03 C Arduino怎么用 一 Arduino的由來 Arduino創(chuàng)始人MassimoBanzi之前是意大利Ivrea一家高科技設(shè)計(jì)學(xué)校的老師 他的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器 2005年冬天 MassimoBanzi跟DavidCuartielles討論了這個(gè)問題 DavidCuartielles是一個(gè)西班牙籍晶片工程師 當(dāng)時(shí)在這所學(xué)校做訪問學(xué)者 兩人決定設(shè)計(jì)自己的電路板 并引入了Banzi的學(xué)生DavidMellis為電路板設(shè)計(jì)編程語言 兩天以后 DavidMellis就寫出了程式碼 又過了三天 電路板就完工了 這塊電路板被命名為Arduino 二 什么是Arduino Arduino是一種開源的電子開發(fā)平臺(tái) 該平臺(tái)最初主要基于AVR單片機(jī)的微控制器和相應(yīng)的開發(fā)軟件 目前在國內(nèi)正受到電子發(fā)燒友的廣泛關(guān)注 自從2005年Arduino騰空出世以來 其硬件和開發(fā)環(huán)境一直進(jìn)行著更新迭代 幾乎任何人 即便不懂電腦編程 利用這個(gè)開發(fā)板也能用Arduino做出炫酷有趣的東西 比如對(duì)感測器探測做出一些回應(yīng) 閃爍燈光 控制馬達(dá)等 三 Arduino能做什么 最簡單應(yīng)用 通過Arduino開發(fā)板引腳輸出高電平點(diǎn)亮一盞LED燈 三 Arduino能做什么 利用Arduino板作為中央控制器實(shí)現(xiàn)家居智能化 語音口令開燈 開空調(diào) 隨著室內(nèi)光線環(huán)境自動(dòng)調(diào)節(jié)亮度 手機(jī)APP控制家用電器等 讓你的arduino連入物聯(lián)網(wǎng) Arduino高端應(yīng)用 樂為聯(lián)網(wǎng)云數(shù)據(jù)平臺(tái) 四 認(rèn)識(shí)Arduino開發(fā)板 ArduinoUNO 四 認(rèn)識(shí)Arduino開發(fā)板 arduinoMega2560 五 Arduino開發(fā)環(huán)境 Arduino的編程是在ArduinoIDE上進(jìn)行的 如左圖編程界面所示 開發(fā)環(huán)境提供了最基本的模板 包含了setup 函數(shù)和loop 函數(shù) 在setup 函數(shù)上方空白區(qū)域 可以插入需要用到的函數(shù) h頭文件以及申明要用到的函數(shù) 六 函數(shù)的概念 定義 函數(shù)是一種能完成某種特定功能二端口通道 通過輸入合適的東西獲得想要的某種輸出 舉例 例如數(shù)學(xué)上y 2x 這條函數(shù)可以完成將輸入值翻倍這樣一個(gè)工作 注意 arduino提供了大量的基礎(chǔ)函數(shù) 包括I O控制 時(shí)間函數(shù) 中斷函數(shù) 串口通信函數(shù)等 arduino也提供了許多關(guān)于這些基礎(chǔ)函數(shù)的實(shí)例程序 這些例程可以在arduino開發(fā)環(huán)境的 File Examples 菜單中找到 七 Arduino的常用基本函數(shù) Arduino程序的主體包括 Setup 函數(shù)和loop 函數(shù) 1 setup 函數(shù) 在程序中只運(yùn)行一次 它的功能為完成程序的各類初始化工作 2 loop 函數(shù) 程序的主函數(shù) 程序運(yùn)行過程中l(wèi)oop 函數(shù)不斷循環(huán) Arduino常用函數(shù) pinMode 功能 將指定的引腳配置成輸出或輸入語法 pinMode pin mode 參數(shù) pin 表示要設(shè)置模式的引腳mode 包括INPUT或OUTPUT返回值 無 例程 intledPin 13 LED連接到數(shù)字腳13voidsetup pinMode ledPin OUTPUT 設(shè)置數(shù)字腳為輸出 voidloop digitalWrite ledPin HIGH 點(diǎn)亮LEDdelay 1000 等待一秒digitalWrite ledPin LOW 滅掉LED延遲 1000 等待第二個(gè) Arduino常用函數(shù) digitalWrite 功能 給一個(gè)數(shù)字引腳寫入HIGH或者LOW 語法 digitalWrite pin value 參數(shù) pin 引腳編號(hào)value HIGHorLOW返回值 無 例程 intledPin 13 LED連接到數(shù)字13號(hào)端口voidsetup pinMode ledPin OUTPUT 設(shè)置數(shù)字端口為輸入模式 voidloop digitalWrite ledPin HIGH 使LED亮delay 1000 延遲一秒digitalWrite ledPin LOW 使LED滅delay 1000 延遲一秒 Arduino常用基本函數(shù) digitalRead 功能 讀取指定引腳的值 HIGH或LOW 語法 digitalRead PIN 參數(shù) Pin 你想讀取的引腳號(hào)返回值 HIGH或LOW 例程 intledPin LED連接到13腳intinPin 7 按鈕連接到數(shù)字引腳7intval 0 定義變量以存儲(chǔ)讀值voidsetup pinMode ledPin OUTPUT 將13腳設(shè)置為輸出pinMode inPin INPUT 將7腳設(shè)置為輸入 voidloop val digitalRead inPin 讀取輸入腳digitalWrite ledPin val 將LED值設(shè)置為按鈕的值 Arduino常用基本函數(shù) analogRead 功能 從指定的模擬引腳讀取模擬數(shù)據(jù)值 語法 analogRead PIN 參數(shù) pin 從輸入引腳讀取數(shù)值返回值 從0到1023的整數(shù)值 例程 intanalogPin 3 電位器 中間的引腳 連接到模擬輸入引腳3 另外兩個(gè)引腳分別接地和 5Vintval 0 定義變量來存儲(chǔ)讀取的數(shù)值voidsetup serial begin 9600 設(shè)置波特率 9600 voidloop val analogRead analogPin 從輸入引腳讀取數(shù)值serial println val 顯示讀取的數(shù)值 Arduino常用基本函數(shù) analogWrite 功能 從一個(gè)引腳輸出模擬值 PWM 語法 analogWrite pin value 參數(shù) pin 用于輸入數(shù)值的引腳 value 占空比 0 完全關(guān)閉 到255 完全打開 之間 返回值 無 例程 通過讀取電位器的阻值控制LED的亮度intledPin 9 LED連接到數(shù)字引腳9intanalogPin 3 電位器連接到模擬引腳3intval 0 定義變量存以儲(chǔ)讀值voidsetup pinMode ledPin OUTPUT 設(shè)置引腳為輸出引腳 voidloop val analogRead analogPin 從輸入引腳讀取數(shù)值analogWrite ledPin val 4 以val 4的數(shù)值點(diǎn)亮LED 因?yàn)閍nalogRead讀取的數(shù)值從0到1023 而analogWrite輸出的數(shù)值從0到255 Arduino常用基本函數(shù) delay 功能 使程序延時(shí)特定的時(shí)間 毫秒 語法 delay ms 參數(shù) ms 暫停的毫秒數(shù) unsignedlong 返回值 無 例程 ledPin 13 LED連接到數(shù)字13腳voidsetup pinMode ledPin OUTPUT 設(shè)置引腳為輸出 voidloop digitalWrite ledPin HIGH 點(diǎn)亮LEDdelay 1000 等待1秒digitalWrite ledPin LOW 滅掉LEDdelay 1000 等待一秒 中斷的定義 由于某一隨機(jī)事件的發(fā)生 單片機(jī)暫停原程序的運(yùn)行 轉(zhuǎn)去執(zhí)行另一程序 隨機(jī)事件 處理完畢后又自動(dòng)返回原程序繼續(xù)運(yùn)行 其發(fā)生過程如右圖 中斷的要素 主程序 單片機(jī)正在運(yùn)行的程序 中斷源 引起中斷的原因 或能發(fā)生中斷申請(qǐng)的來源 中斷服務(wù)程序 處理中斷事件的程序 Arduino常用基本函數(shù) 中斷介紹 中斷發(fā)生的過程 Arduino常用基本函數(shù) 中斷函數(shù) 1 interrupts 函數(shù)功能 負(fù)責(zé)打開總中斷返回值 無參數(shù) 無 2 noInterrupts 函數(shù)功能 負(fù)責(zé)關(guān)閉總中斷返回值 無參數(shù) 無 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ù) 中斷函數(shù) 4 detachInterrupt interrput 函數(shù)功能 用于取消中斷參數(shù) Interrupt 表示所要取消的中斷源 例程 用中斷源0 接引腳D2 作為觸發(fā)源控制arduinoUNO板上的LED亮或滅volatileintstate LOW voidsetup Serial begin 9600 attachInterrupt 0 change CHANGE 當(dāng)D2電平改變時(shí) 觸發(fā)中斷函數(shù) voidloop digitalWrite 13 state if state LOW Serial println 111 if state HIGH Serial println 222 voidchange 中斷函數(shù) state state Arduino常用基本函數(shù) 串口通信函數(shù) 1 Serial begin 功能 用于設(shè)置串口的波特率波特率是指每秒傳輸?shù)谋忍財(cái)?shù) 除以8可得到每秒傳輸?shù)淖止?jié)數(shù) 一般的波特率有9600 19200 57600 115200等 介紹 通過在頭文件HardwareSerial h中定義一個(gè)HardwareSerial類的對(duì)象serial 然后直接使用該類的成員函數(shù)來實(shí)現(xiàn) 2 Serial available 功能 用來判斷串口是否收到數(shù)據(jù)返回值 int型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)視器中顯示出來的程序如下 Stringval voidsetup Serial begin 9600 voidloop while Serial available 0 val char Serial read delay 5 if val length 0 Serial println val val 八 認(rèn)識(shí)函數(shù)庫 函數(shù)庫 由系統(tǒng)建立的具有一定功能的函數(shù)的集合 庫中存放函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼 以及連接過程中所需的重定位信息 用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫 庫函數(shù) 存放在函數(shù)庫中的函數(shù) 庫函數(shù)具有明確的功能 入口調(diào)用參數(shù)和返回值 頭文件 有時(shí)也稱為包含文件 C語言庫函數(shù)與用戶程序之間進(jìn)行信息通信時(shí)要使用的數(shù)據(jù)和變量 在使用某一庫函數(shù)時(shí) 都要在程序中嵌入 用 include 該函數(shù)對(duì)應(yīng)的頭文件 九 機(jī)器人包含的庫函數(shù) 庫函數(shù)組成 由 h文件 頭文件 和 cpp文件 源程序文件 組成 十 怎樣使用庫函數(shù) 放置位置 一般是放到lib文件里調(diào)用方法 將它所在的文件名用 include libraries所在的路徑 庫函數(shù)拷貝到的路徑 ifndefColSensor h defineColSensor hclassColSensor private 定義引腳intS0 S1 S2 S3 OUT 定義延時(shí)unsignedlongtime public 定義計(jì)數(shù)器unsignedlongg count 定義數(shù)組 用來存放讀取到的RGB值intg array 3 定義數(shù)組 用來存放比例系數(shù)floatg SF 3 構(gòu)造函數(shù)ColSensor inta intb intc intd inte unsignedlongf 將引腳配置為輸出 同時(shí)設(shè)置輸出比例因子voidMode inta 1 intb 1 控制數(shù)字引腳 切換濾波器 紅 綠 藍(lán)分別對(duì)應(yīng)S2與S3的00 11 01電平 10時(shí)過濾所有顏色 voidDigital out inta intb 計(jì)算比例系數(shù)voidTest 計(jì)算RGB值voidGet endif 垃圾分類小車ColSensor h文件內(nèi)代碼 include include ColSensor h ColSensor ColSensor inta intb intc intd inte unsignedlongf S0 a S1 b S2 c S3 d OUT e time f g count 0 voidColSensor Mode inta intb pinMode S0 OUTPUT pinMode S1 OUTPUT pinMode S2 OUTPUT pinMode S3 OUTPUT pinMode OUT INPUT digitalWrite S0 a 0 digitalWrite S1 b 0 voidColSensor Digital out inta intb digitalWrite S2 a 0 digitalWrite S3 b 0 voidColSensor Test g array 0 0 g array 1 0 g array 2 0 for intj 0 j 3 j for inti 0 i 3 i g count 0 switch j case0 Digital out 0 0 break case1 Digital out 0 1 break case2 Digital out 1 1 break default break delay this time g array j g count g array j 3 g SF j 255 0 g array j Digital out 1 0 g count 0 voidColSensor Get for inti 0 itime g array i g count g array i g SF i g array i Digital out 1 0 g count 0 垃圾分類小車ColSensor cpp文件內(nèi)代碼 謝謝- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
25 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 智能 垃圾 分類 機(jī)器人
鏈接地址:http://www.820124.com/p-7110299.html