久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于arduino2560的掃地機器人源程序
[打印本頁]
作者:
lianshangni0922
時間:
2017-10-15 19:43
標題:
基于arduino2560的掃地機器人源程序
硬件:arduino2560 帶電機邊刷兩個,若干超聲波模塊,滾刷一個,雜物盒一個,詳細見圖片
0.jpg
(258.88 KB, 下載次數: 116)
下載附件
2017-10-15 21:28 上傳
arduino源程序如下:
int FEcho = 11; // Echo回聲腳(P2.0)
int FTrig =10; // Trig 觸發腳(P2.1)
int LEcho = 9; // Echo回聲腳(P2.0)
int LTrig =8; // Trig 觸發腳(P2.1)
int REcho = 13; // Echo回聲腳(P2.0)
int RTrig =12; // Trig 觸發腳(P2.1)
int in1 = 4;
int in2 = 5;
int in3 = 22;
int in4 = 23;
int speedpin1=6;
int speedpin2=7;
int rightDistance = 0,leftDistance = 0,middleDistance = 0 ;
void forward()
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(speedpin1,60);
analogWrite(speedpin2,60);
}
void back()
{
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
analogWrite(speedpin1,60);
analogWrite(speedpin2,60);
}
void turnright()
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(speedpin1,70);
analogWrite(speedpin2,0);
delay(200);
}
void turnleft()
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(speedpin1,0);
analogWrite(speedpin2,70);
delay(200);
}
void stop()
{
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
int Fdistance_test() // 量出前方距離
{
digitalWrite(FTrig, LOW); // 給觸發腳低電平2μs
delayMicroseconds(2);
digitalWrite(FTrig, HIGH); // 給觸發腳高電平10μs,這里至少是10μs
delayMicroseconds(20);
digitalWrite(FTrig, LOW); // 持續給觸發腳低電
float Fdistance = pulseIn(FEcho, HIGH); // 讀取高電平時間(單位:微秒)
Fdistance= Fdistance/58; //為什么除以58等于厘米, Y米=(X秒*344)/2
// X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
return (int)Fdistance;
}
int Ldistance_test() // 量出left方距離
{
digitalWrite(LTrig, LOW); // 給觸發腳低電平2μs
delayMicroseconds(2);
digitalWrite(LTrig, HIGH); // 給觸發腳高電平10μs,這里至少是10μs
delayMicroseconds(20);
digitalWrite(LTrig, LOW); // 持續給觸發腳低電
float Ldistance = pulseIn(LEcho, HIGH); // 讀取高電平時間(單位:微秒)
Ldistance= Ldistance/58; //為什么除以58等于厘米, Y米=(X秒*344)/2
// X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
return (int)Ldistance;
}
int Rdistance_test() // 量出 right方距離
{
digitalWrite(RTrig, LOW); // 給觸發腳低電平2μs
delayMicroseconds(2);
digitalWrite(RTrig, HIGH); // 給觸發腳高電平10μs,這里至少是10μs
delayMicroseconds(20);
digitalWrite(RTrig, LOW); // 持續給觸發腳低電
float Rdistance = pulseIn(REcho, HIGH); // 讀取高電平時間(單位:微秒)
Rdistance= Rdistance/58; //為什么除以58等于厘米, Y米=(X秒*344)/2
// X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
return (int)Rdistance;
}
void setup()
{
Serial.begin(9600); // 初始化串口
pinMode(FEcho, INPUT); // 定義超聲波輸入腳
pinMode(FTrig, OUTPUT); // 定義超聲波輸出腳
pinMode(LEcho, INPUT); // 定義超聲波輸入腳
pinMode(LTrig, OUTPUT); // 定義超聲波輸出腳
pinMode(REcho, INPUT); // 定義超聲波輸入腳
pinMode(RTrig, OUTPUT); // 定義超聲波輸出腳
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
stop();
}
void loop()
{
forward();
delay(500);
//middleDistance = Fdistance_test();
//leftDistance = Ldistance_test();
//rightDistance = Rdistance_test();
//Serial.print(rightDistance);
//Serial.print("cm");
//Serial.println();
//delay(1000);
//stop();
//delay(500);
middleDistance = Fdistance_test();
leftDistance = Ldistance_test();
rightDistance = Rdistance_test();
if(middleDistance<=20)
{
if(leftDistance<=20&rightDistance>20)
{
back();
delay(400);
turnright();
delay(1000);
}
else if(rightDistance<=20&leftDistance>20)
{
back();
delay(400);
turnleft();
delay(1000);
}
else if(rightDistance<=20&leftDistance<=20)
{
back();
delay(600);
turnright();
delay(1000);
}
else
{
back();
delay(600);
turnright();
delay(1000);
}
}
else if(rightDistance<=20)
{
if( middleDistance<=20&leftDistance>20)
{
back();
delay(400);
turnleft();
delay(1000);
}
else if(leftDistance<=20&middleDistance>20)
{
back();
delay(600);
turnright();
delay(1000);
}
else if(leftDistance<=20&middleDistance<=20)
{
back();
delay(600);
turnright();
delay(1000);
}
else
{
back();
delay(400);
turnleft();
delay(1000);
}
}
else if(leftDistance<=20)
{
if( middleDistance<=20&rightDistance>20)
{
back();
delay(400);
turnright();
delay(1000);
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
避障程序.zip
(1.41 KB, 下載次數: 173)
2017-10-15 19:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
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.成人网
|