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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的超聲波導盲杖程序電路設計 HC-SR04,GA6

[復制鏈接]
跳轉到指定樓層
樓主
帶有通信功能的基于超聲波來實現障礙物檢測的導盲杖
GPS定位信息發送功能:以串口通信的形式將GPS定位模塊內的定位信息下載到單片機最小系統,再對定位信息進行處理將經緯度信息分離出來通過GSM模塊以短信形式發送給事先設置好的手機號碼。

超聲波避障功能:利用超聲波測量與前方物體的距離,當距離小于1米時,由單片機控制蜂鳴器發出報警聲提示盲人。
一鍵尋回功能:當導盲杖找不到時,我們可以通過點擊手中的遙控器讓導盲杖上的蜂鳴器發出報警聲,輔助我們尋找。
上面我們對功能做了介紹,下面主要講解一下整個系統硬件及軟件設計:
GPS定位信息發送功能:我們選擇使用GPS定位模塊搭配GSM模塊來實現,
GPS模塊內部原理是當GPS模塊獲取到定位信息時,會通過TX引腳將整個GPS定位信息發送出去,所以我們只需要將單片機串口接收引腳與GPS模塊發送引腳相連,設置串口通信波特率為9600,即可接收到當前定位信息。
GSM模塊內部通信原理是,當我們只是用短信發送功能時,我們只需要通過串口向GSM模塊發送AT指令及短信內容信息,即可控制GSM模塊完成短信的發送,所以硬件電路上我們只需要將單片機串口發送引腳與GSM模塊RX接收引腳相連接,即可滿足整個功能要求。
超聲波避障功能: HC-SR04超聲波模塊工作原理:(1)采用I/O引腳觸發測距,給Trig引腳一個至少10us的高電平信號;(2)模塊自動發送8個40khz的方波,自動檢測是否有信號返回   (3)有信號返回,通過Echo引腳輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間.測試距離=(高電平時間*聲速(340M/S))/2;  所以我們在設計硬件電路時只需要將Trig引腳和Echo引腳接入單片機系統,由單片機通過Trig觸發測距并對Echo引腳的高電平持續時間進行計時即可滿足功能的要求。
一鍵巡回功能:我們主要使用PT2262和PT2272編解碼電路來實現此功能,
編碼芯片PT2262發出的編碼信號由地址碼、數據碼、同步碼組成一個完整的碼字。地址碼是由地址管腳A0-A7的狀態(高位/懸空/低位)決定,PT2262和PT2272需要地址管腳狀態完全相同,生成的地址碼才會完全相同,PT2272才會正常接收PT2262的信號。D0-D3管腳為數據管腳,用以生成數據碼,數據碼用于在PT2262與PT2272之間同步D0-D3管腳的狀態。
本設計中選擇將PT2262/PT2272 A0-A7地址管腳統一懸空,當PT2262按鍵下時,D0-D3管腳置為高電平生成相應的數據碼,同時控制433MHZ發射電路將DOUT引腳輸出的經過調制的串行數據信號在高頻載波上發射出去
PT2272接收到后,進行解碼,先核對地址碼是否相同,如果相同,則查看數據編碼,并按照數據編碼將本端的D0-D3管腳全部置為高電平。
將PT2272的D1管腳與單片機相連,用單片機檢測管腳的狀態,當管腳為高電平時,即控制蜂鳴器發出報警。

電路原理圖如下:


單片機源程序如下:
  1. #include <intrins.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <string.h>
  5. #include <delay.h>
  6. #include <Ultrasonic.h>
  7. #include"uart.h"


  8. //定義IO
  9. //按鍵
  10. sbit beep=P1^2;
  11. sbit keysend=P1^1;//發送位置短信
  12. sbit pt=P3^7; //PT2272感應信號
  13. bit flagxun=0;//尋物標志位

  14. unsigned char code PhoneNO[]= "123456789"; //接收方號碼   

  15. //GPS數據接收變量
  16. bit flag1=0;
  17. char com1;
  18. char xdata com2[38];//變量接收中間數組

  19. unsigned char cc=0;//變量數組計數
  20. bit flag2=0;//數據接收完處理標志位

  21. //短信數組
  22. char xdata duanxin[]="N:  .   W:   .  ";

  23. void Delay1000ms()               
  24. {
  25.         unsigned char i, j, k;

  26.         i = 43;
  27.         j = 6;
  28.         k = 203;
  29.         do
  30.         {
  31.                 do
  32.                 {
  33.                         while (--k);
  34.                 } while (--j);
  35.         } while (--i);
  36. }

  37. //發送短信

  38. void sendmessage()
  39. {
  40.                    Uart_Send_Byte2("AT+CMGF=1\r\n");        
  41.                 Delay1000ms();
  42.                 Uart_Send_Byte2("AT+CSCS=\"GSM\"\r\n");        
  43.                 Delay1000ms();
  44.                 Uart_Send_Byte2("AT+CMGS=");        
  45.                 Uart_Send_Byte('"');
  46.                 Uart_Send_Byte2(PhoneNO);   
  47.                 Uart_Send_Byte('"');
  48.                 Uart_Send_Byte('\r');               
  49.                 Uart_Send_Byte('\n');               
  50.                 Delay1000ms();
  51.                 Uart_Send_Byte2(duanxin);  
  52.                 Delay1000ms();
  53.                 Uart_Send_Byte(0x1a);               
  54.                 Delay1000ms();
  55.                 Delay1000ms();
  56.                 Delay1000ms();
  57.                 Delay1000ms();
  58.                 Delay1000ms();
  59. }
  60.                                                                           
  61. //按鍵檢測
  62. void keyscan()
  63. {
  64.         if(keysend==0)
  65.         {
  66.                 Delay_Ms(5);if(keysend==0)
  67.                 {
  68.                          while(flag2!=1);//等待接收到GPS信號
  69.                           duanxin[2]=com2[19];duanxin[3]=com2[20];duanxin[5]=com2[21];duanxin[6]=com2[22];
  70.                           duanxin[10]=com2[32];duanxin[11]=com2[33];duanxin[12]=com2[34];duanxin[14]=com2[35];
  71.                           duanxin[15]=com2[36];
  72.                           sendmessage();
  73.                           flag2=0;        
  74.                 }
  75.                 while(!keysend);
  76.         }
  77.         if(pt==1) {Delay_Ms(50);if(pt==1) {beep=~beep;flagxun=~flagxun;} Delay_Ms(500);while(pt);} //遙控找拐杖
  78. }


  79. void main()
  80. {
  81.         beep=1;pt=1;
  82.         Uart_Init();
  83.         init_timer1();
  84.         while(1)
  85.         {        
  86.                 keyscan();
  87.                 display_volume();
  88.                 if(distance_data<100) beep=0;//超聲測距報警
  89.                 if(distance_data>=100&&flagxun==0) beep=1;
  90.         }
  91. }

  92. void Uart_Isr() interrupt 4
  93. {
  94.     RI = 0;            
  95.         com1 = SBUF;         
  96.         if(com1=='

  97. )         {flag1=1;}
  98.         if(flag1==1) {com2[cc]=com1;cc++;}
  99.         if(cc==38) {if(com2[4]=='M'&&com2[17]=='A') {flag2=1;}  flag1=0;cc=0;}
  100. }
復制代碼

所有資料51hei提供下載,可能有較多bug請大家多多批評指教:
導盲杖資料.7z (4.56 MB, 下載次數: 72)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1070910 發表于 2023-4-16 17:47 | 只看該作者
有仿真嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费影视在线观看 | 久久久国产一区二区三区 | www国产成人 | 欧美日韩精品中文字幕 | 在线国产一区二区三区 | 久久青草av| 99视频免费在线观看 | 久久久69 | 蜜桃在线一区二区三区 | 波多野结衣二区 | 日韩一区二区在线看 | 蜜臀av日日欢夜夜爽一区 | 91九色在线观看 | 亚洲视频手机在线 | 久久精品国产一区 | 99草免费视频 | 精品欧美一区二区三区久久久 | 国产精品视频一二三区 | 国产精品欧美一区二区 | 日本一区二区不卡视频 | a在线观看免费 | 欧美一区二区大片 | 国产精品a久久久久 | 婷婷综合 | 精品亚洲一区二区 | 手机av在线| 成人三级在线观看 | 国产精品96久久久久久 | 国产在线h| 久久国产精品免费视频 | 中文字幕1区 | 中文字幕国产精品视频 | 日日干日日操 | 三级视频久久 | 欧美成人性生活 | 国产成人福利在线观看 | 亚洲一区 | 亚洲va欧美va天堂v国产综合 | 亚洲视频中文字幕 | 国产成人精品一区二区三区 | 国产视频三级 |