版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、丹城中學滅火機器人共享方案(七)作者: 浙江省象山縣丹城中學機器人實驗室 顧熙杰一)走進機器世界程序設計語言是人類和機器進行溝通的語言,程序設計語言有很多,例如:機器語言匯編語言 c語言圖形化設計語言等等其中機器語言是機器人真正掌握的語言,但機器語言由一系列和這樣的進制代碼組成,人類很難理解,所以人類開發(fā)出一系列的高級語言高級語言必須經(jīng)過編譯程序翻譯成為機器語言后,才能被機器人接受在這里我們繼續(xù)討論 c語言及基礎(chǔ)的數(shù)學理論,讓我們通過他走進機器人世界一)邏輯運算)邏輯運算的結(jié)果邏輯運算的結(jié)果只有個,要么是真,要么是假在c語言中真可以用表示,假可以用表示)邏輯運算符在c語言中,邏輯運算符號主要有
2、下面幾個符號名稱簡單意思又叫&與并且邏輯乘法|或或者邏輯加法!非不是邏輯負號,邏輯取反)邏輯運算律.1)邏輯乘法運算基本邏輯乘法意義1&1=1真并且真結(jié)果是真1&0=0真并且假結(jié)果是假0&0=0假并且假結(jié)果是假0&1=0假并且真結(jié)果是假邏輯乘法交換律a&b=b&a邏輯乘法結(jié)合律a&b&c=a&(b&c)=(a&b)&c=b&(a&c)例如:a表示前面火焰很強,b表示下面是白色地面,)如果a是真的,b也是真的,那么a&b也是真的,那么就可以判斷機器人到了滅火圈(蠟燭跟前)如果a是真的,b是假的,那么a&b是假的,那么就可以判斷機器人沒有到滅火圈(蠟燭跟前)3)如果a是假的,b是真的,那么a&b是
3、假的,那么就可以判斷機器人沒有到滅火圈(蠟燭跟前)4)如果a是假的,b也是假的,那么a&b是假的,那么就可以判斷機器人沒有到滅火圈(蠟燭跟前)例如:int miehuoquan()/滅火圈檢測程序if (analog(4)bs)&(analog(3)30)/如果位于白色地面并且火焰很強 return(1);/發(fā)現(xiàn)滅火圈else/否則 ruturn(0);/沒有發(fā)現(xiàn)滅火圈例如:如果甲村通往已村需要過a,b兩座橋梁,那么a村能否到b村,就可用下面邏輯進行判斷a表示紅橋是好的,b表示藍橋是好的.if (a&b)/如果座橋都好通途else/否則斷路也就是說只要有座橋壞了,路就走不通.)邏輯加法運算邏輯
4、加法意義1|1=1真或者真結(jié)果是真1|0=1真或者假結(jié)果是真0|0=0假或者假結(jié)果是假0|1=1假或者真結(jié)果是真邏輯加法交換律a|b=b|a邏輯加法結(jié)合律a|b|c=a|(b|c)=(a|b)|c=b|(a|c)例如: 如果甲村通往已村可以走a,b兩條路,那么a村能否到b村,就可用下面的邏輯進行判斷a表示紅路是通的,b表示藍路是通的.if (a|b)/a路好或者b路好通途else/否則斷路也就是說只有2路都壞了,路才走不通.)邏輯取反運算邏輯取反意義!1=0不是真就是假!0=1不是假就是真!(!a)=a否定之否定結(jié)果不變!a+a=1a或者真或者假必有一個成立(!a)&(a)=0a和!a不可能同
5、時為真.)復合邏輯運算邏輯乘法對加法的分配律意義a&(b|c)=(a&b)|(b&c)摩根定理!(a&b)=(!a)|(!b)!(a|b)=(!a)&(!b))關(guān)系運算現(xiàn)實世界的關(guān)系十分復雜,我們這里只討論一些簡單的關(guān)系關(guān)系意義小于大于=大于或等于=等于!=不等于)關(guān)系的傳遞性例:如果ab且bc,則ac,大于關(guān)系是傳遞的例:如果a=b且b=c,則a=c,等于關(guān)系是傳遞的例3:如果a是b的父親且b是c的父親,則a是c的父親,這是錯誤的,父子關(guān)系是反傳遞的)關(guān)系的對稱性例:如果a=b,則b=a,等于關(guān)系是對稱的例:如果a是b的同學,則b是a的同學,同學關(guān)系是對稱的例:如果a愛b,則b愛a,這不一定
6、正確,愛關(guān)系是非對稱的例:如果a是b的父親,則b是a的父親,這是錯誤的,父子關(guān)系是反對稱的)關(guān)系的自反性例:a=a,等于關(guān)系是自反的例:ab)&(ab)/自相矛盾,永遠是假的 i+;例3:無效的表達式,語法正確但功能錯誤.if ( analog(3)100) /如果火焰弱快速前進 motor(0,80); motor(1,80);else if ( analog(3)50) / 如果火焰較強中速前進永遠得不到運行 motor(0,60); motor(1,60);else if ( analog(3)20) /如果火焰很強慢速前進永遠得不到運行 motor(0,40); motor(1,40)
7、;正確的寫法:if ( analog(3)20) /如果火焰很強慢速前進 motor(0,80); motor(1,80);else if ( analog(3)50) / 如果火焰較強中速前進 motor(0,60); motor(1,60);else if ( analog(3)100) /如果火焰弱快速前進 motor(0,40); motor(1,40);例4:等價的語句如if (analog(4)bs)&(analog(3)30)/如果位于白色地面并且火焰很強和if (analog(3)30)&(analog(4)bs)/如果火焰很強并且位于白色地面根據(jù)邏輯乘法交換律,效果一樣例:等
8、價的語句如if (analog(4)bs)&(analog(3)30)|(analog(5)30)和if (analog(4)bs)&(analog(3)30)|(analog(4)bs)&(analog(5)30)根據(jù)邏輯乘法對加法的分配律,效果一樣)算術(shù)運算在中小學機器人程序設計中常用的有1)+加法運算2)-減法運算3)%取模運算,就是相除求余數(shù)例如: i+; if (i%2)=0)/如果是偶數(shù)次 /走左手法則 else if (i%2)=)/如果是奇數(shù)次 /走右手法則4)賦值運算例:i=80;例2:i=i+1;例3:i+;/和例的效果是一樣的說明:在c語言中=不是等號,如果=是等號,上面
9、的例2例3是不可能成立的等號是=,=出現(xiàn)在邏輯表達式中如 while(a=b)是正確的,while(a=b)則是錯誤的如 if(a=b)是正確的,if(a=b)則是錯誤的)變量的聲明例:常數(shù)的聲明# DIFINE bs 80;/表示白線的灰度# DIFINE hs 160;/表示地面的灰度# DIFINE hy 230;/表示有沒有火焰的分界值例2:短整數(shù)的聲明(表示范圍?。ㄓ谐踔担﹊nt bs=80;/表示白線的灰度int hs=160;/表示地面的灰度int hy=230;/表示有沒有火焰的分界值例:短整數(shù)的聲明(表示范圍?。]有初值)int bs;/表示白線的灰度int hs;/表示
10、地面的灰度int hy;/表示有沒有火焰的分界值例:長整數(shù)的聲明(表示范圍大)(沒有初值)long in_door_time;/進門時間long out_door_time;/出門時間變量的名字最好用英語或拼音,這樣容易記憶)函數(shù)的聲明例:左手法則函數(shù)void migong_left()/在里面寫代碼前面的void 表示這個函數(shù)沒有返回值,后面的()里面沒有東西,表示他沒有參數(shù)例2:不分房間的滅火函數(shù)void fire()/在里面寫代碼前面的void 表示這個函數(shù)沒有返回值,后面的()里面沒有東西,表示他沒有參數(shù)例:分房間的滅火函數(shù)void fire(int f)/在里面寫代碼前面的void
11、表示這個函數(shù)沒有返回值,后面的()里面有f,表示他有房間號參數(shù)例:滅火圈檢測函數(shù)int miehuoquan()/滅火圈檢測程序if (analog(4)bs)&(analog(3)30)/如果位于白色地面并且火焰很強 return(1);/發(fā)現(xiàn)滅火圈else/否則 ruturn(0);/沒有發(fā)現(xiàn)滅火圈前面的int 表示這個函數(shù)的返回值是整數(shù),后面的()里面沒有東西,表示他沒有參數(shù)函數(shù)和參數(shù)自己可以取名字,返回值的意義自己做好約定,在整個滅火程序中的使用要一致二)滅火程序設計的基本方法本文的論述基于下面的簡單機器人簡單配置的納英特滅火機器人除了基本套件外,需要個火焰檢測傳感器,個紅外避障傳感器
12、,個滅火風扇,及把他們組裝在機器人身體上的積木套件滅火風扇安裝在機器人前部,17.5cm高度,假設接motor2接口個火焰檢測傳感器安裝在機器人前部,17.5cm高度,假設接3號模擬口硬件的組裝調(diào)試請問你的指導老師在這里我們先不討論怎樣走個房間,怎樣走的快,怎樣滅的穩(wěn),怎樣回家,那么滅火程序的基本原理就是:)沒有發(fā)現(xiàn)火時走迷宮)發(fā)現(xiàn)火后去滅火根據(jù)上面的基本原理,主要程序可以有下面一些形式例1)void main()/左手滅火程序while(1)/永遠循環(huán)使用下面的代碼檢測所有傳感器 migong_left();/如果沒有發(fā)現(xiàn)火焰,走左手法則if (analog(3)50)/如果沒有發(fā)現(xiàn)火焰,走
13、左手法則migong_left();else/如果發(fā)現(xiàn)了火焰 fire();/滅火 break;/退出左手法則例:void main()/左手滅火程序while(analog(3)50)/如果沒有發(fā)現(xiàn)火焰,走左手法則migong_left(); fire();/滅火/發(fā)現(xiàn)了火焰/退出了上面的循環(huán)后 stop();滅火程序設計的基本方法)從頂往下的設計方法例如:我們設計了下面的主程序void main()/左手滅火程序while(analog(3)15)/如果沒有發(fā)現(xiàn)火焰,走左手法則migong_left(); fire();/滅火/發(fā)現(xiàn)了火焰/退出了上面的循環(huán)后 stop();但由于migon
14、g_left()和fire()函數(shù)沒有設計好,機器人還是不會滅火,我們可以增加個函數(shù):void migong_left()motor(0,60);motor(1,60);void fire()motor(2,100);/如果發(fā)現(xiàn)風扇轉(zhuǎn)反,修改為 motor(2,-100)sleep(5.0);就這樣,你一生中第一個機器人滅火程序就產(chǎn)生了,只是他不會真的走迷宮,需要把蠟燭放在機器人前面米左右的地方,然后打開電源開關(guān)你只要把migong_left()函數(shù)修改為真正的左手法則,就這樣,一個不是很穩(wěn)定,很慢的機器人滅火程序就在你的手下產(chǎn)生了?。┳韵峦系脑O計方法例如:先編寫程序讓你的機器人能走迷宮vo
15、id main()/主程序while(1)migong_left();void migong_left()/左手法則代碼假設左紅外接11口,左前紅外接12口,前紅外接13口. if (digital(12)=1 | digital(13)=1) /前有墻右轉(zhuǎn)motor(0, 30); motor(1, -90); else if (digital(11) = 1) /左有墻前進motor(0, 70); motor(1, 70);else /什么也沒看到,左轉(zhuǎn)motor(0, -60);motor(1, 60);motor(0, 80); motor(1, 80);motor(0, -40);motor(1, 40);但他只會走迷宮,不會滅火,我們把主程序修改為:void main()/主程序while(1)migong_left();if (analog(3)30)/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度防雷裝置檢測與防雷產(chǎn)品安裝服務合同
- 2025年度信息化系統(tǒng)運維服務合同
- 2025年度法院拍賣合同范本:法院拍賣拍賣師服務合同
- 2025年度砂石料在線交易平臺合作協(xié)議
- 2025年度股東退出及股權(quán)激勵計劃調(diào)整協(xié)議
- 二零二五年度酒店資產(chǎn)入股及管理服務合同
- 二零二五年度新能源充電樁項目合伙人分紅及運營管理合同
- 二零二五年度甲乙丙方智慧家居產(chǎn)品定制合同模板
- 2025年度自來水安裝工程進度款支付及合同
- 餐廳擺臺課程設計
- 2024年08月中國國新基金管理有限公司招考筆試歷年參考題庫附帶答案詳解
- 《直升機教材簡體》課件
- 2025年廣東汕頭市人大常委會辦公室招聘聘用人員3人歷年高頻重點提升(共500題)附帶答案詳解
- 2024-2030年中國游學行業(yè)投資前景研究與發(fā)展建議分析報告
- 軟件需求分析報告模板(完整版)
- 金融軟件開發(fā)及維護合同
- RFID涉密載體管控系統(tǒng)技術(shù)方案-V1.0-20120326
- 《中小學校園食品安全和膳食經(jīng)費管理工作指引》專題培訓
- 2022年山東省公務員錄用考試《申論》真題(A類)及答案解析
- 2024全新學生實驗安全培訓
- 北師大版 三年級上冊數(shù)學 寒假專項復習練習
評論
0/150
提交評論