【正文】
yte()。amp。 x=0。 delay_500m()。 delay_500m()。 EX0=0。 } void left_turn() { r_f_m=0。 33 } EX0=1。 steering_gear_1_u=1。 } if(control[1]==0x90)//9 { steering_gear_1_d=0。 right_s=1。 steering_gear_1_d=1。 w_password_led=0。 while(right_s==0) { w_password_led=1。 phone_pick_up=0。 w_s=1。 H=1。 while(signal_s==1) 35 {} } } if(control[2]==0xc0)//0 { reset_password()。 steering_gear_0_d=1。 } if(control[1]==0xA4)//2 { forward()。//左轉(zhuǎn) } void right_turn()//右轉(zhuǎn) { l_f_m=0。 EX0=0。 } EX0=1。0x0f。 30 H=0。 password[1]=0xff。 password_c[0]=read24c02_add(21)。 respons24c02()。 scl=0。 scl=1。(i250))i++。 delay()。 for(c=181。 sbit steering_gear_1_d=P2^3。 uchar password_c[4]。 機(jī)器人主要的特點(diǎn)是,可以遠(yuǎn)程使用手機(jī)就完成控制任務(wù),利用雙音頻檢測(cè)技術(shù),識(shí)別電話的按鍵音,然后執(zhí)行相應(yīng)的程序,完成 對(duì) 應(yīng)的動(dòng)作。 舵機(jī)的動(dòng)作利用的是,改變脈沖寬度的方法去改變其轉(zhuǎn)軸轉(zhuǎn)動(dòng)的角度。事實(shí)上 I2C 總線通信協(xié)議是一套完整的子程序,我們只需要針對(duì)每塊芯片的特點(diǎn),對(duì)其通信時(shí)的時(shí)序進(jìn)行編排,就可以將參數(shù)寫(xiě)入和讀出芯片。 Digit TOE INH ESt Q4 Q3 Q2 Q1 Digit TOE INH ESt Q4 Q3 Q2 Q1 ANY L X H Z Z Z Z 9 H X H 1 0 0 1 1 H X H 0 0 0 1 0 H X H 1 0 1 0 2 H X H 0 0 1 0 * H X H 1 0 1 1 3 H X H 0 0 1 1 H X H 1 1 0 0 4 H X H 0 1 0 0 A H X H 1 1 0 1 5 H X H 0 1 0 1 B H X H 1 1 1 0 6 H X H 0 1 1 0 C H X H 1 1 1 1 7 H X H 0 1 1 1 D H X H 0 0 0 0 8 H X H 1 0 0 0 16 4. 3 按鍵控制程序設(shè)計(jì) 當(dāng)我們得到了 control[x]的值后 ,就可以根據(jù)對(duì)應(yīng)的值來(lái)執(zhí)行相應(yīng)的 子 程序。 3. 7 比較器部分電路設(shè)計(jì) 比較器部分電路是在電機(jī)運(yùn)動(dòng)時(shí),采 集編碼器信號(hào)用的。而 MT8870 就是這樣的一款芯片,他只要結(jié)合很少的外部元件就可以完成音頻的檢測(cè),然后它會(huì)將檢測(cè)到的信號(hào)轉(zhuǎn)換為 4 位二進(jìn)制碼,我們只要通過(guò)單片機(jī)程序?qū)?這一 4 位二進(jìn)制碼識(shí)別出來(lái)就能夠進(jìn)行相應(yīng)的操作了。雙音頻識(shí)別的 5 路輸入用 ~ 口, 串行 PROME2 存儲(chǔ)器 的時(shí)鐘端 SCL 和讀寫(xiě)段端 SDA 用 和 口,工作信號(hào)燈用 口 。 控制 X 軸的舵機(jī)軸與 Z 軸垂直,用于控制手部中臂的旋轉(zhuǎn)。 其整體結(jié)構(gòu)如圖 23 所示 PVC 管 固定開(kāi)口盤(pán) 旋轉(zhuǎn)開(kāi)口盤(pán) 舵機(jī)連接臂 舵機(jī) 圖 23 如 圖 28 所示, 將 PVC 管材通過(guò)加熱、剪裁的方式做成如圖的結(jié)構(gòu),用以固定舵機(jī)的位置,做到舵機(jī)的軸心與 PVC 管的軸心同軸。 則綜合以上的因素,得到了鋁合金支架的 見(jiàn)附錄1。 機(jī)架結(jié)構(gòu)設(shè)計(jì) 在選擇了履帶結(jié)構(gòu)作為機(jī)器人本體的行進(jìn)方式后,就要開(kāi)始設(shè)計(jì)制造其結(jié)構(gòu)。 ( 3) 第三種是履帶結(jié)構(gòu),被廣泛用于各種的機(jī)器人上。 電機(jī)控制部分使用的是三極管驅(qū)動(dòng)繼電器的電路, 再而 控制行進(jìn)電機(jī)的正反轉(zhuǎn)。所以設(shè)計(jì)的結(jié)構(gòu)為料筒裝料,利用底部的送料口開(kāi)關(guān)組合自然落料的方式進(jìn)行投喂。更重要的是當(dāng)無(wú)人在家的時(shí)候,家中的人無(wú)法了解寵物的狀況。 16 4. 5 電機(jī)控制程序設(shè)計(jì) 關(guān)鍵字 機(jī)器人 ;雙音頻;遠(yuǎn)程遙控 II Abstract With the rapid development of society, the pace of life has accelerated and people have been stressed out. Therefore, more and more people choose to keep pets, aiming at increasing the joy of life and relieving the pressures of life. However, most of people are at work in day time so that they have to leave their pets alone. Consequently, the pets are lack of caring during the day time. In order to solve this problem, I invent a feeding robot for pet according to the dualtone detection technology which based on telephone keypad. People can achieve telecontrol of the feeding robot by their cell phone. Based on the telecontrol, the feeding robot can move around, as well its head. What’s more, the robot can pour pet food into a bowl by telecontrol. People can plete the feeding work and get the picture of their pets when they are at work by the robot based on telecontrol. Key words Robot。 II 目 錄 1 國(guó)外研究發(fā)展概況 4 履帶 輪支撐結(jié)構(gòu) 該寵物護(hù)理 機(jī)器人內(nèi)設(shè) 有 用于通信的 模塊 ,用 來(lái) 接收 控制端發(fā)過(guò)來(lái)的 控制信號(hào) , 然后進(jìn)行處理, 用于 驅(qū)動(dòng)系統(tǒng)及 喂食模塊 的控制 。 控制部分的設(shè)計(jì)方案 控制部分,根據(jù)項(xiàng)目要求,主要分為 四 個(gè)部分,單片機(jī) 最小系統(tǒng) 控 制 部分, DTMF 檢測(cè)與分析 部分, 信息 掉電保護(hù)部分, 以及舵機(jī) 、 電機(jī) 的 控制部分。 此種結(jié)構(gòu)優(yōu)點(diǎn)是,外形簡(jiǎn)潔,具有相當(dāng)強(qiáng)的靈活性,特別是在家庭這種具有很多家具和門(mén)口障礙的水平環(huán)境中非常適合。因?yàn)槠浣Y(jié)構(gòu)和控制的方式都比較簡(jiǎn)單,加工難度也不大,而且能夠很好地完成指定的動(dòng)作。 使用的鋁合金型材一般 是 用在鋁合金門(mén)窗上的, 其 恰好可以與選定的同步帶 和同步帶 輪相配合。后部使用的是體積為 3676274 mm?? 的 ABS 板材。 頭部結(jié)構(gòu)設(shè)計(jì) 頭部的設(shè)計(jì)比較簡(jiǎn)單, 主要用到的是舵機(jī)結(jié)構(gòu)。除了直流電機(jī)驅(qū)動(dòng)系統(tǒng)使用的是 12V 的電源外,其他的系統(tǒng)使用的都是 5V 的電源。 3. 3 舵機(jī)控制部分電路設(shè)計(jì) 舵機(jī)控制使用的也是單片機(jī)的系統(tǒng),但是單片機(jī)的型號(hào)和資源不一樣。為了保證信號(hào)輸出的質(zhì)量,在后面添加了一塊 HC573 的鎖存器芯片,將信號(hào)進(jìn) 行放大和保持。 完成所有的電路設(shè)計(jì)后,就可以進(jìn)行 PCB 板的繪制, PCB 板見(jiàn)附錄 3。 4 號(hào)鍵控制機(jī)器人左轉(zhuǎn)。后退時(shí),左電機(jī)與右電機(jī)同時(shí)向后退。 因?yàn)閱纹瑱C(jī)的晶振頻率為 12MHz,為了能夠產(chǎn)生一個(gè)周期為 20ms 的方波信號(hào),利用單片機(jī)內(nèi)部的定時(shí)器,讓其每 100 微秒產(chǎn)生一個(gè)中斷,這樣 200 個(gè)中斷加起來(lái)的時(shí)間就是 20ms。 經(jīng)過(guò)測(cè)試, 本家庭寵物喂養(yǎng)機(jī) 器人能夠完成基本的任務(wù)要求,可以進(jìn)行簡(jiǎn)單的小型的寵物的喂養(yǎng)。 sbit sda=P0^5。 sbit RxD=P3^0。a0。 } void stop24c02() //停止 { sda=0。 scl=1。 delay()。 respons24c02()。 stop24c02()。password_c[2]==password[2]amp。 } else { password_c[4]=0xff。 w_password_led=1。 w_password_led=0。//關(guān)外部中斷 0 EX1=0。 l_b_m=0。//開(kāi)外部中斷 0 EX1=1。 control[1]=0xff。 delay_500m()。 control[2]=0xff。 steering_gear_2_u=1。 password[0]=0xff。 num=P0。 while(1) { if(signal_s==1) { t=0。 x=0。 r_b_m=1。 control[2]=num_word[num]。 delay_500m()。 control[1]=0xff。 temp1=0。 32 r_b_m=1。 } if(temp1=t1) { r_f_m=1。 num=numamp。 w_password_led=1。 password[0]=0xff。 password_c[1]=read24c02_add(22)。 write24c02_byte(address)。 k=(k1)|sda。 delay()。amp。 } void start24c02() //開(kāi)始信號(hào) { sda=1。 } void delay_500m(void) //誤差 { unsigned char a,b,c。 sbit steering_gear_1_u=P2^2。 uchar password[4]。同 時(shí)其擴(kuò)展功能還包括對(duì)寵物進(jìn)行監(jiān)控以及互動(dòng)。 17 4. 6 舵機(jī)控制程序設(shè)計(jì) 要編寫(xiě)舵機(jī)控制程序,首先要了解舵機(jī)的控制原理。 : 這一部分的程序,都是當(dāng)需要用到的時(shí)候,才在其他程序中調(diào)用。 num_word[]數(shù)組中的值的選取,是為了在調(diào)試程序的時(shí)候,方便使用數(shù)碼管顯示而設(shè)定的。在線圈兩個(gè)引腳上反向并聯(lián)了一個(gè)二極管,是 為了 防止在通斷的 時(shí) 產(chǎn)生 不同方向的 電壓 ,疊加后 擊穿三極管,造成電路的損壞。我們平時(shí)打電話的時(shí)候聽(tīng)到的按鍵音就是雙音頻信號(hào),每一個(gè)音都由一個(gè)高音頻與一個(gè)低音頻組成,雖然我們?nèi)硕鸁o(wú)法分辨出來(lái),但是通過(guò)芯片電路就能夠檢測(cè)識(shí)別出來(lái),從而 識(shí)別對(duì)應(yīng)出鍵盤(pán)上 每一個(gè) 鍵。 然后 根據(jù)控制要求,對(duì)單片機(jī)的 I/O 進(jìn)行了