找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3072|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

狗的眼睛瞎了想做一個超聲波測距報警裝置

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:396179 發(fā)表于 2018-9-10 20:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大神,我的狗瞎了經(jīng)常會摔下臺階,所以我想弄一個超聲波距離報警裝置,但是本人沒有這方面基礎(chǔ),頭很疼,希望各位大神幫我一下。功能要求類似于掃地機器人的防跌落傳感器,例如:前方高度差超過x值會蜂鳴警報。在淘B上看到一款成品超聲波測距裝置(裝置鏈接),功能為測距小于x值報警,我想改成距離大于x值報,所以在此發(fā)布求助。

制作過程中的零件開銷由我支付,并可額外支付報酬,希望得到各位大神的幫助,聯(lián)系方式:15759179377 微信同號
游客,本帖隱藏的內(nèi)容需要積分高于 1 才可瀏覽,您當(dāng)前積分為 0

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

使用道具 舉報

沙發(fā)
ID:386381 發(fā)表于 2018-9-11 08:00 來自觸屏版 | 只看該作者
用紅外測距或激光測距,用別的方法吧,超聲波測距狗的耳朵能聽得到,他會感覺很吵,一直在響

評分

參與人數(shù) 1黑幣 +11 收起 理由
凌凈清河 + 11 贊一個!從實際考慮問題的人不多了

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:280876 發(fā)表于 2018-9-11 14:35 | 只看該作者
做出來了又如何,就算報警狗也不會判斷吖
回復(fù)

使用道具 舉報

地板
ID:111634 發(fā)表于 2018-9-12 07:40 | 只看該作者
這是幾十年前就有的成功課題,不過不是狗,是盲人,辦法是超聲測距。
回復(fù)

使用道具 舉報

5#
ID:396179 發(fā)表于 2018-9-18 12:27 | 只看該作者
wushiye54 發(fā)表于 2018-9-11 14:35
做出來了又如何,就算報警狗也不會判斷吖

如果實現(xiàn)該功能那么在報警之后狗還跌下臺階 ,在摔幾次之后自然就會在聽到警報的時候停下,類似于止吠器
回復(fù)

使用道具 舉報

6#
ID:396179 發(fā)表于 2018-9-18 12:29 | 只看該作者
文鳳軒 發(fā)表于 2018-9-11 08:00
用紅外測距或激光測距,用別的方法吧,超聲波測距狗的耳朵能聽得到,他會感覺很吵,一直在響

問題是不管是紅外還是激光 還是超聲波我都不會做
回復(fù)

使用道具 舉報

7#
ID:396179 發(fā)表于 2018-9-18 12:31 | 只看該作者
zl2168 發(fā)表于 2018-9-12 07:40
這是幾十年前就有的成功課題,不過不是狗,是盲人,辦法是超聲測距。

是這樣的,這樣的裝置類似于倒車?yán)走_(dá),是可以實現(xiàn)的,問題是我自己沒有這方面知識,所以很尷尬
回復(fù)

使用道具 舉報

8#
ID:400950 發(fā)表于 2018-9-21 13:11 | 只看該作者
#include<reg52.h>   
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit beep = P2^3;           //蜂鳴器//
sbit trig = P2^5;      //超聲波測距模塊Trig
sbit echo = P3^2;     //超聲波測距模塊Echo
bit flag1;         //觸發(fā)信號標(biāo)志位//

uchar count;           //中斷累加變量
long int distance;    //測量所得距離
uchar code DSY_CODE[]=
{
        0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90                         //數(shù)碼管編碼//
};
uchar s = 0;
                                                                                                                          

void DelayMS(uint x)         /*延時函數(shù)*/
{
    uchar i;
    while (x--)
    {
                for (i = 120;i > 0;i--);
    }
}
void fmq()                                 /*蜂鳴器函數(shù)*/
{
        beep = ~beep;
        DelayMS(200);
        beep = ~beep;
}


/*------------------------------------------------
                  延時函數(shù)
------------------------------------------------*/
void delayt(uint x)
{
    uchar j;
    while(x-- > 0)
    {
              for(j = 0;j < 125;j++)
        {
          ;
        }
    }
}


/*------------------------------------------------
定時器0初始化,用于計算響應(yīng)信號時間
------------------------------------------------*/
void init_t0()
{
       
        TMOD = 0x01;         
    TL0 = 0x66;
    TH0 = 0xfc;              //1ms
    ET0 = 1;            
    EA = 1;                     
}


/*------------------------------------------------
    超聲波模塊觸發(fā)信號
------------------------------------------------*/
void trigger()
{
    trig = 0;
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
        trig=1;      
}


/*------------------------------------------------
   超聲波模塊相應(yīng)端口初始化函數(shù)
------------------------------------------------*/
void init_measuring()
{
        trig = 1;
        echo = 1;
        count = 0;
}


/*------------------------------------------------
     超聲波模塊距離測試函數(shù)
------------------------------------------------*/
void measuring()
{
        uchar l;
        uint h,y;
        TR0 = 1;
        while(echo==1)
    {
        ;
    }        
        TR0 = 0;
        l = TL0;
        h = TH0;
        y = (h << 8) + l;
        y = y - 0xfc66;//us部分
        distance = y + 1000 * count;//計算總時間,單位是微秒
        TL0 = 0x66;
        TH0 = 0xfc;
        delayt(30);
        distance = 3453* distance / 20000;//原始為:(0.34毫米/us)*時間/2//        
}

/*------------------------------------------------
              主函數(shù)
------------------------------------------------*/
void main()            
{   init_t0();          //定時器0初始化   
    init_measuring();  //超聲波相應(yīng)端口初始化
        P1 = 0x00;                                 //數(shù)碼管初始化//



        while(1)
        {
                trigger();      //觸發(fā)超聲波啟動
                 while(echo==0)          //等待回聲
                 {
                           ;
                 }
            measuring();           //進(jìn)行距離測量
                   if(distance < 100)
                                {
                                        P1 = ~DSY_CODE[s];                  //數(shù)碼管顯示//
                            s = (s+1)%10;
                                        fmq();                                         //蜂鳴器報警//
                                          LED1 = 1;                                //流水燈//
                        LED2 = 0;
                                     LED3 = 0;
                                    DelayMS(500);
                                        fmq();
                                    LED1 = 0;
                                        LED2 = 1;
                                        LED3 = 0;
                                    DelayMS(500);
                                        fmq();
                                        LED1 = 0;
                                        LED2 = 0;
                                        LED3 = 1;
                                        DelayMS(500);
                                }
            init_measuring();    //超聲波相應(yīng)端口初始化
            delayt(600);        //每次測量間隔60ms
        }
}



回復(fù)

使用道具 舉報

9#
ID:400950 發(fā)表于 2018-9-21 16:04 | 只看該作者
wawvvv 發(fā)表于 2018-9-21 13:11
#include   
#include
#define uint unsigned int

額  忘把數(shù)碼管的去掉了。。
回復(fù)

使用道具 舉報

10#
ID:398621 發(fā)表于 2018-9-21 20:05 | 只看該作者
超聲波測距,對人來說是超聲,可能對狗狗來說在可聽的波段,這么說的話,它會感到很吵鬧
回復(fù)

使用道具 舉報

11#
ID:401135 發(fā)表于 2018-9-21 20:19 | 只看該作者
那狗狗歪著腦袋走路就會無效啊
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表