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

標題: 基于arduino2560的掃地機器人源程序 [打印本頁]

作者: lianshangni0922    時間: 2017-10-15 19:43
標題: 基于arduino2560的掃地機器人源程序
硬件:arduino2560  帶電機邊刷兩個,若干超聲波模塊,滾刷一個,雜物盒一個,詳細見圖片

arduino源程序如下:
  1. int FEcho = 11;  // Echo回聲腳(P2.0)
  2. int FTrig =10;  //  Trig 觸發腳(P2.1)
  3. int LEcho = 9;  // Echo回聲腳(P2.0)
  4. int LTrig =8;  //  Trig 觸發腳(P2.1)
  5. int REcho = 13;  // Echo回聲腳(P2.0)
  6. int RTrig =12;  //  Trig 觸發腳(P2.1)
  7. int in1 = 4;
  8. int in2 = 5;
  9. int in3 = 22;
  10. int in4 = 23;
  11. int speedpin1=6;
  12. int speedpin2=7;
  13. int rightDistance = 0,leftDistance = 0,middleDistance = 0 ;

  14. void forward()
  15. {
  16. digitalWrite(in1,HIGH);
  17. digitalWrite(in2,LOW);
  18. digitalWrite(in3,HIGH);
  19. digitalWrite(in4,LOW);
  20. analogWrite(speedpin1,60);
  21.   analogWrite(speedpin2,60);
  22. }

  23. void back()
  24. {
  25. digitalWrite(in1,LOW);
  26. digitalWrite(in2,HIGH);
  27. digitalWrite(in3,LOW);
  28. digitalWrite(in4,HIGH);
  29. analogWrite(speedpin1,60);
  30.   analogWrite(speedpin2,60);
  31. }

  32. void turnright()
  33. {
  34. digitalWrite(in1,HIGH);
  35. digitalWrite(in2,LOW);
  36. digitalWrite(in3,HIGH);
  37. digitalWrite(in4,LOW);
  38. analogWrite(speedpin1,70);
  39. analogWrite(speedpin2,0);
  40.   delay(200);
  41.   
  42. }

  43. void turnleft()
  44. {
  45. digitalWrite(in1,HIGH);
  46. digitalWrite(in2,LOW);
  47. digitalWrite(in3,HIGH);
  48. digitalWrite(in4,LOW);
  49. analogWrite(speedpin1,0);
  50.   analogWrite(speedpin2,70);
  51.   delay(200);
  52. }
  53. void stop()
  54. {
  55. digitalWrite(in1,LOW);
  56. digitalWrite(in2,LOW);
  57. digitalWrite(in3,LOW);
  58. digitalWrite(in4,LOW);
  59. }

  60. int Fdistance_test()   // 量出前方距離
  61. {
  62.   digitalWrite(FTrig, LOW);   // 給觸發腳低電平2μs
  63.   delayMicroseconds(2);
  64.   digitalWrite(FTrig, HIGH);  // 給觸發腳高電平10μs,這里至少是10μs
  65.   delayMicroseconds(20);
  66.   digitalWrite(FTrig, LOW);    // 持續給觸發腳低電
  67.   float Fdistance = pulseIn(FEcho, HIGH);  // 讀取高電平時間(單位:微秒)
  68.   Fdistance= Fdistance/58;       //為什么除以58等于厘米,  Y米=(X秒*344)/2
  69.   // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
  70.   return (int)Fdistance;
  71. }
  72. int Ldistance_test()   // 量出left方距離
  73. {
  74.   digitalWrite(LTrig, LOW);   // 給觸發腳低電平2μs
  75.   delayMicroseconds(2);
  76.   digitalWrite(LTrig, HIGH);  // 給觸發腳高電平10μs,這里至少是10μs
  77.   delayMicroseconds(20);
  78.   digitalWrite(LTrig, LOW);    // 持續給觸發腳低電
  79.   float Ldistance = pulseIn(LEcho, HIGH);  // 讀取高電平時間(單位:微秒)
  80.   Ldistance= Ldistance/58;       //為什么除以58等于厘米,  Y米=(X秒*344)/2
  81.   // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
  82.   return (int)Ldistance;
  83. }

  84. int Rdistance_test()   // 量出 right方距離
  85. {
  86.   digitalWrite(RTrig, LOW);   // 給觸發腳低電平2μs
  87.   delayMicroseconds(2);
  88.   digitalWrite(RTrig, HIGH);  // 給觸發腳高電平10μs,這里至少是10μs
  89.   delayMicroseconds(20);
  90.   digitalWrite(RTrig, LOW);    // 持續給觸發腳低電
  91.   float Rdistance = pulseIn(REcho, HIGH);  // 讀取高電平時間(單位:微秒)
  92.   Rdistance= Rdistance/58;       //為什么除以58等于厘米,  Y米=(X秒*344)/2
  93.   // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
  94.   return (int)Rdistance;
  95. }

  96. void setup()
  97. {

  98.   Serial.begin(9600);     // 初始化串口
  99.   pinMode(FEcho, INPUT);    // 定義超聲波輸入腳
  100.   pinMode(FTrig, OUTPUT);   // 定義超聲波輸出腳  
  101.   pinMode(LEcho, INPUT);    // 定義超聲波輸入腳
  102.   pinMode(LTrig, OUTPUT);   // 定義超聲波輸出腳
  103.   pinMode(REcho, INPUT);    // 定義超聲波輸入腳
  104.   pinMode(RTrig, OUTPUT);   // 定義超聲波輸出腳
  105.   pinMode(in1,OUTPUT);
  106.   pinMode(in2,OUTPUT);
  107.   pinMode(in3,OUTPUT);
  108.   pinMode(in4,OUTPUT);

  109.   stop();
  110. }

  111. void loop()
  112. {
  113.   forward();
  114.   delay(500);
  115.   //middleDistance = Fdistance_test();
  116.   //leftDistance = Ldistance_test();
  117.   //rightDistance = Rdistance_test();
  118.   //Serial.print(rightDistance);
  119.         //Serial.print("cm");
  120.         //Serial.println();
  121.         //delay(1000);
  122.   //stop();
  123.   //delay(500);
  124.   middleDistance = Fdistance_test();
  125.   leftDistance = Ldistance_test();
  126.   rightDistance = Rdistance_test();
  127.   if(middleDistance<=20)
  128.   {
  129.     if(leftDistance<=20&rightDistance>20)
  130.     {
  131.       back();
  132.       delay(400);
  133.       turnright();
  134.         delay(1000);
  135.     }
  136.     else if(rightDistance<=20&leftDistance>20)
  137.     {
  138.       back();
  139.       delay(400);
  140.       turnleft();
  141.         delay(1000);
  142.     }
  143.     else if(rightDistance<=20&leftDistance<=20)
  144.     {
  145.       back();
  146.       delay(600);
  147.       turnright();
  148.         delay(1000);
  149.     }
  150.     else
  151.     {
  152.       back();
  153.       delay(600);
  154.       turnright();
  155.       delay(1000);
  156.     }
  157.    }
  158.   
  159.   
  160.   else if(rightDistance<=20)
  161.   {
  162.     if( middleDistance<=20&leftDistance>20)
  163.     {
  164.       back();
  165.       delay(400);
  166.       turnleft();
  167.         delay(1000);
  168.     }
  169.     else if(leftDistance<=20&middleDistance>20)
  170.     {
  171.       back();
  172.       delay(600);
  173.       turnright();
  174.         delay(1000);
  175.     }
  176.     else if(leftDistance<=20&middleDistance<=20)
  177.     {
  178.       back();
  179.       delay(600);
  180.       turnright();
  181.         delay(1000);
  182.     }
  183.     else
  184.     {
  185.       back();
  186.       delay(400);
  187.       turnleft();
  188.       delay(1000);
  189.     }
  190.   
  191.    }
  192.    
  193.    else if(leftDistance<=20)
  194.   {
  195.     if( middleDistance<=20&rightDistance>20)
  196.     {
  197.       back();
  198.       delay(400);
  199.       turnright();
  200.         delay(1000);
  201.     }
  202. ……………………

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

所有資料51hei提供下載:
避障程序.zip (1.41 KB, 下載次數: 173)



作者: Laptop    時間: 2017-10-15 21:45
感覺好酷啊,程序看起來倒是不難,沒用過un,實物制作會很麻煩嗎?
作者: 1603070112    時間: 2018-4-15 00:28
感覺很棒,試試
作者: AOisiyue    時間: 2018-4-17 14:19
不明覺厲
作者: Knight_Yukii    時間: 2018-10-29 18:39
感謝QAQ
作者: leoma71    時間: 2018-11-24 01:06
感謝QAQ
作者: qqww    時間: 2019-4-5 02:05

感覺很棒,試試看
作者: Luolo    時間: 2020-2-5 17:06
請問路徑規劃是怎么規劃的
作者: 啦啦啦啦啦啦10    時間: 2020-3-20 16:07
能自己充電就好了

作者: dongfang08    時間: 2020-3-29 20:44
謝謝分享,學習很好
作者: wsy06    時間: 2020-4-1 11:40
很棒啊,謝謝分享
作者: 137666hwq    時間: 2020-7-12 08:35
路徑規劃如何實現的啊
作者: 317227940    時間: 2020-7-13 17:46
硬件連接有嗎
作者: szqinyi    時間: 2020-9-12 06:38
感興趣,看看,感謝。
作者: cr8526    時間: 2021-3-1 21:37
如果加上攝像頭和用物聯網遠程控制就好了

作者: tangqida    時間: 2023-1-29 14:29
下載了試一下看看,好玩。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www在线播放 | 国产精品婷婷 | 久久久久久久av | 精品免费国产一区二区三区四区 | 最新中文字幕在线观看 | 成年免费视频黄网站在线观看 | a级成人毛片 | 中文日韩在线 | 日韩伊人 | 成人免费网站在线观看 | 成人在线视频免费 | 欧美黑人性猛交 | 四虎黄色片 | 欧美一区二区三区免费 | 亚洲17p| 精品婷婷| 欧美综合久久 | 精品日韩一区二区三区 | 99久久婷婷国产综合精品草原 | 欧美成人精品一区二区三区在线看 | www视频在线观看网站 | 老女人丨91丨九色 | 精品伊人久久 | 国产一区二区三区免费 | av女人天堂 | 香蕉视频一区二区 | 国产成人在线观看免费网站 | 一二三四区在线观看 | 久久国产欧美 | 国产一区二区自拍 | 波多野结衣亚洲一区 | 岛国精品在线播放 | 在线h片| 中文字幕第一区综合 | 成人毛片在线观看 | 双性呜呜宫交受不住了h | 亚洲乱码在线观看 | 高清一区二区 | 国产区在线观看 | 成人黄色一级片 | www.成人网|