久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9156|回復: 1
打印 上一主題 下一主題
收起左側

單片機循跡尋光滅火小車設計原理圖PCB+程序

[復制鏈接]
跳轉到指定樓層
樓主




一、選題的背景與意義

最近幾十年中,大量的高層、地下建筑與大型的石化企業不斷涌現。由于這些建筑的特殊性,發生火災時,不能快速高效的滅火。為了解決這一問題,盡快救助火災中的受害者,最大限度的保證消防人員的安全,消防機器人研究被提到了議事日程。而機器人技術的發展也為這一要求的實現提供了技術上的保證,使得消防機器人應運而生。
從二十世紀八十年代開始,世界許多國家都進行了消防機器人的研究。美國和蘇聯最早進行消防機器人的研究,而后日本、英國、法國等國家都紛紛開展了消防機器人的研究,目前已有多種不同類型的消防機器人用于各種火災場合。
從功能上劃分,目前的消防機器人有下列幾類:滅火機器人、偵察機器人、攀登營救機器人和救護機器人。從控制方式來分,消防機器人可分為遙控消防機器人和自主消防機器人。
我國從八十年代末期開始消防機器人的研究,公安部上海消防研究所等單位在消防機器人的研究中取得了大量的成果,"自行式消防炮"已經投入市場,"履帶輪式消防滅火偵察機器人"也于2000年6月通過了國家驗收。但是,我國消防機器人的研究還處在初級階段,還有許多有待研究的問題。比如,高層建筑發生火災時,消防人員不可能在短時間內到達高處的火災發生地點,在地下建筑中,由于環境比較潮濕,煙氣不易擴散,消防人員不容易快速的判定火源位置;而在石化企業發生火災時,將產生大量的毒氣,消防人員在滅火時極易中毒。研制能夠用于這些場合的偵察滅火機器人,協助消防人員進行火災的定位和滅火,將有極大的社會意義。

  • 研究內容與擬解決的主要問

機器人控制器是一個多任務并行執行的實時控制器。在軟件實現上,滅火機器人除了要協調控制各個不同功用的電機,還需要對紅外、光敏等多種傳感器接收的數據進行傳輸、處理等。采用c語言可以方便快捷的編寫程序。這里對滅火機器人的每種功能進行模塊化處理?傮w的思路是:在地面上貼一條隨意的黑線(可用黑膠布),機器人(小車)可以沿著這條黑線行走,不會到處亂跑,在機器人行走的途中放置火源(發光的燈泡),機器人在行走到火源附近能夠發現火源并能夠行走到火源附近進行滅火(小車上的風扇開始轉動),滅火后(風扇停止轉動)機器人還能回到原本設定的路線繼續往下行走。。。實現起來最基本的就是使機器人能夠順利沿著設定的路線進行直線行走和拐彎,這一模塊稱為尋跡(直行時四個輪子同時轉動,左轉時,左前左后輪子停止轉動,右前右后輪子轉動。右轉時,右前右后輪子停止轉動,左前左后輪子轉動。來實行各種轉彎)具體為:

  (1)若正前距離很大,同時右前的距離稍小時,右邊的紅外傳感器快離開檢測范圍,執行左轉微調;

  (2)若正前距離很大,同時右前的距離稍大時,右邊的紅外傳感器快離開檢測范圍,執行右轉微調;

  (3)若正前距離很大,右前距離適中,就直行;

  (4)若正前距離比較小,右前距離也比較小時,機器人左轉;

  (5)右前距離很大時,機器人執行右轉彎。

  其中:(1)~(3)保證了在走直線時可以走直,通過不斷調整,使機器人始終運行在黑線上面(4)~(5)保證了機器人順利拐彎。具體的參數必須在不斷試驗中反復調節。知道這個機器人可以順利的完成所指定的動作。

  • 技術路線、研究方案與可行性分析

     3.1技術路線

制造一個自主控制的機器人,它可以按照你給定的路線行走,找到光源并盡快的行走到光源附近,啟動風扇(相當于滅火),滅火后還可以按照以前的路線繼續前進。這個工作受地面摩擦、機器人慣性、機器人電機的轉數差、電壓變化等多個因素影響,它模擬了現實機器人處理火警的過程,燈泡代表燃起的火源,機器人必須找到并熄滅它。下面為機器人滅火的一般特性以及系統的構成:

                 被控對象特性


3.2研究方案

本方案具有以下七個模塊組成:控制模塊、驅動模塊、傳感器模塊、滅火模塊、電源模塊、循線模塊、尋光模塊。

  • 控制模塊

采用STC89C52RC單片機作為本系統的核心控制芯片。能對其進行一系列處理,根據處理結果,驅動電機做相應的運動,并能控制風扇轉動進行滅火操作。

  • 驅動模塊

驅動模塊采用L298芯片與兩個直流電機,該芯片能夠接收單片機發出的控制信號,同時驅動兩個直流電機運動。

3.  傳感器模塊

傳感器模塊采用紅外傳感器(st188)和光敏電阻(光敏二級管)傳感器兩種傳感器,紅外傳感器探測行進路面,光敏電阻傳感器探測前方的光源(火焰),并將探測到的數據傳到STC89C52RC進行模數轉換。

  •   滅火模塊

滅火模塊采用12V直流風扇,用5V電磁繼電器作為控制開關控制風扇的停轉。

5.    電源模塊

2200毫安的鋰電池,使機器人動作的正常運行。

  •    循線模塊

它是指小車在白色地板上循黑線行走,通常采取的方法是紅外探測法。紅外探測法,即利用紅外線在不同顏色的物體表面具有不同的反射性質的特點,在小車行駛過程中不斷地向地面發射紅外光,當紅外光遇到白色紙質地板時發生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據來確定黑線的位置和小車的行走路線。

7.尋光模塊
尋光模塊是根據電阻阻值的大小變化引起電壓的變化,與給定值作比較,發送給單片機,當大于給定值則為1(高),當小于給定值則為0(低)。然后由單片機來控制機器人的各種動作。

3.3可行性分析:

     本設計的控制芯片是采用STC89C52RC,另外還采用了L298芯片,以及紅外傳感器(例如ST188)和光敏二級管(或者光敏三級管)。滅火模塊采用的是12V的直流風扇。

    智能滅火機器人是以STC89C52RC單片機為核心的,STC89C52RC是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM)。采用L298芯片的驅動模塊可以控制電機的正反轉,初始方案中使用玩具四驅車上附帶的電機。利用L298 及其外部輔助電路構成驅動電路。其優點是可實現控制電路和驅動電路雙電源供電, 可提高系統的穩定性。缺點是電機驅動模塊中獨立電源的增加將會使車體變重,從而影響小車運行效果。最終方案決定采用雙直流減速電機。直流減速電機轉動力矩大, 體積小,重量輕, 裝配簡單,使用方便, 價格比步進電機要便宜。。而紅外傳感器則是內部發射特殊紅外線光波,相當數據流,也就是數字信號轉成紅外信號---紅外信號轉成數字信號(達到控制,信號傳輸的效果),也就是在白色的地面上貼上的黑膠布,紅外傳感器對于白色和黑色是具有一定的分辨能力來控制小車應該往哪走的。光敏二級管則是用于探測我們給定的光源的(也就相當于火源),光敏二級管在無光照時,有很小的飽和反向漏電流,即暗電流,此時光敏二極管截止。當受到光照時,飽和反向漏電流大大增加,形成光電流,它隨入射光強度的變化而變化。因此可以利用光照強弱來改變電路中的電流。因此,該系統設計方案可行。

     當然,還存在很多不可預測的問題,例如環境的因素,數據的調試,光照強度的因素等等。但是,在具體設計過程中遇到問題后通過分析最后將問題解決或者獲得實踐的經驗也都是有益的。



單片機源程序如下:
  1. #include<reg52.h>
  2. #include <intrins.h>

  3. /********IO引腳定義***********************************************************/
  4. sbit SPK=P3^7;                        //蜂鳴器驅動引腳

  5. sbit LED1=P0^0;                        //LED
  6. sbit LED2=P0^1;                        //

  7. sbit gy=P1^2;                        //光敏電阻 右
  8. sbit g0=P1^3;                        //         中
  9. sbit gz=P1^4;                        //         左

  10. sbit d1=P1^0;                        //對管 右  黑線高電平(==1)
  11. sbit d2=P1^1;                        //     左

  12. sbit a1=P2^0;                        //電機驅動
  13. sbit a2=P2^1;
  14. sbit b1=P2^2;
  15. sbit b2=P2^3;

  16. sbit f1=P2^4;                        //風扇驅動
  17. sbit f2=P2^5;                        //

  18. /************************************************
  19.              延時函數
  20. ************************************************/
  21. void DelayMs(unsigned int timer)   //參數 整型timer 大小范圍 0-65536,決定延時時間長短
  22. {
  23.         int x,y;
  24.         for(x=timer;x>0;x--)
  25.                 for(y=120;y>0;y--);
  26. }

  27. /************************************************
  28. 電機轉動函數定義
  29. ************************************************/

  30. /*** 前進 ***/
  31. void QianJin()
  32. {
  33.          a1=0;
  34.          a2=1;
  35.          b1=0;
  36.          b2=1;
  37. }
  38. /*** 后退***/
  39. void HaoDu()
  40. {
  41.          a1=1;
  42.          a2=0;
  43.          b1=1;
  44.          b2=0;
  45. }
  46. /*** 左轉 ***/
  47. void ZuoZhuan()
  48. {         
  49.          a1=1;
  50.          a2=0;
  51.          b1=0;
  52.          b2=1;
  53. }
  54. /*** 右轉 ***/  
  55. void YouZhuan()
  56. {
  57.         a1=0;
  58.         a2=1;
  59.         b1=1;
  60.         b2=0;  
  61. }
  62. /*** 停止 ***/
  63. void Stop()
  64. {  
  65.          a1=1;
  66.          a2=1;
  67.          b1=1;
  68.          b2=1;
  69. }

  70. /************************************************
  71.             風扇函數定義
  72. ************************************************/
  73. void Feng()
  74. {
  75.         f1=1;f2=0;
  76.         DelayMs(3000);//風扇轉3秒
  77.         f1=1;f2=1;
  78.         SPK=0;
  79.         DelayMs(1000);
  80.         SPK=1;
  81. }
  82. /************************************************
  83.            循跡子程序
  84. ************************************************/
  85. void xunjin()
  86. {
  87.                  Stop();
  88.                   LED1=1;LED2=1;
  89.                         while(d1==0&&d2==0)
  90.                         {
  91.                                         LED1=1;LED2=1;
  92.                                   QianJin();
  93.                         }
  94.                        
  95.                   while(d1==1&&d2==0)
  96.                         {   LED1=0;
  97.                                         YouZhuan();DelayMs(200);
  98.                         }
  99.                        
  100.                         while(d1==0&&d2==1)
  101.                         {   LED2=0;
  102.                                         ZuoZhuan();DelayMs(200);
  103.                         }       
  104.                        
  105.                         while(d1==1&&d2==1)
  106.                         {
  107.                                         Stop();LED1=1;LED2=1;
  108.                         }       
  109. }

  110. /*
  111. ******************************************************************************************
  112. ** 函數名稱: main
  113. ** 函數功能: 主函數
  114. ** 入口參數: 無
  115. ** 出口參數: 無
  116. ******************************************************************************************
  117. */
  118. void main()
  119. {       

  120.   while(1)
  121.         {  
  122.                
  123.                   Stop();
  124.                   LED1=1;LED2=1;
  125.                         while(d1==0&&d2==0)//兩個對管檢測到白紙前進
  126.                         {
  127.                                         LED1=1;LED2=1;
  128.                                   QianJin();
  129.                                  
  130.                                          /*如果右邊光敏檢測到光源右轉對準光源則前往光源執行滅火程序 */                                 
  131.                                         if(gy==0){
  132.                                                                                         while(g0==1)YouZhuan();DelayMs(50);
  133.                                                                                         QianJin();DelayMs(2000);//前進距離
  134.                                                                                         Stop();
  135.                                                           Feng();//如果滅燈模擬滅火則用while(g0==0){f1=1;f2=0;}f1=1;f2=1;SPK=0;DelayMs(1000);SPK=1;
  136.                                                                                         while(d1==0&&d2==0)HaoDu();
  137.                                                                                         QianJin();DelayMs(500);
  138.                                                                                         while(d1==0)ZuoZhuan();
  139.                                                                 while(1)xunjin();
  140.                                                                                  }
  141.                                          /*如果左邊光敏檢測到光源右轉對準光源則前往光源執行滅火程序 */                                 
  142.                                         if(gz==0){
  143.                                                                                         while(g0==1)ZuoZhuan();DelayMs(50);
  144.                                                                                         QianJin();DelayMs(2000);//前進距離
  145.                                                                                         Stop();
  146.                                                           Feng();//如果滅燈模擬滅火則用while(g0==0){f1=1;f2=0;}f1=1;f2=1;SPK=0;DelayMs(1000);SPK=1;
  147.                                                                                         while(d1==0&&d2==0)HaoDu();
  148.                                                                                         QianJin();DelayMs(500);
  149.                                                                                         while(d2==0)YouZhuan();
  150.                                                                 while(1)xunjin();
  151.                                                                                  }                                         
  152.                                                
  153.                                                                                                          
  154.                         }
  155. ……………………

  156. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
循跡尋光滅火小車.rar (218.66 KB, 下載次數: 246)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:296551 發表于 2019-5-3 17:45 來自手機 | 只看該作者
你好!請問可以幫忙畫一下總的電路圖嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色播av| 最新日韩在线 | 日韩欧美一二三区 | 日本天天操 | 午夜天堂 | 午夜爽爽爽男女免费观看影院 | 日韩精品一区二区三区 | 国产精品一区二区无线 | 日韩在线观看一区二区三区 | 伊人网综合在线观看 | 久久久91精品国产一区二区精品 | 97精品视频在线观看 | 乳色吐息在线观看 | 一级毛片免费视频观看 | 欧美视频在线看 | 久久亚洲免费 | 成人免费视频网站在线看 | 亚州精品天堂中文字幕 | 国产色99精品9i | xxxxx黄色片| 亚洲精品久久嫩草网站秘色 | 91传媒在线观看 | 久久99网 | 成人精品鲁一区一区二区 | 国产9999精品 | 亚洲性综合网 | 国产免费福利小视频 | 一区二区三区不卡视频 | 日韩免费视频一区二区 | 久久成人免费视频 | 丝袜久久| 国产精品美女久久久久久久久久久 | www.日韩av.com | 亚洲精品一区二区 | 91大神在线资源观看无广告 | 三级特黄特色视频 | 国产精品久久久一区二区三区 | 亚洲欧美综合 | 日韩在线免费 | 日韩精品一区二区三区 | 天天干天天插天天 |