91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino篇—車輛自動走迷宮

冬至子 ? 來源:X的創(chuàng)客課堂 ? 作者:MRXY ? 2023-11-02 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

課程目標

  • 學習走迷宮的右手法則的應(yīng)用
  • 根據(jù)算法邏輯實現(xiàn)走迷宮功能
  • 能根據(jù)場地實際要求進行車輛調(diào)試

相關(guān)知識

**機器人迷宮項目:**是常見的機器人競賽項目,在一個搭建好的迷宮場景內(nèi),設(shè)計機器人,實現(xiàn)從入口順利抵達出口,根據(jù)完成時間的長短來進行評分。

右手法則: 針對有墻壁的迷宮,只要順著墻壁走,遇到可以轉(zhuǎn)向的口子始終向右,轉(zhuǎn)向失敗再向右轉(zhuǎn)到下一個可以走的方向,這種方法只對樹形迷宮有效。對于有循環(huán)的迷宮就需要設(shè)計更加智能化的機器人才能實現(xiàn)。

**紅外接近傳感器:**紅外接近傳感器是一種集發(fā)射與接收于一體的光電開關(guān)傳感器。當發(fā)出的紅外光碰撞到范圍內(nèi)的目標時,它會反射到光電二極管上,從而實現(xiàn)監(jiān)測判斷。

1.jpg

電路搭建

所需材料

ArduinoUNO * 1
紅外接近傳感器 * 3
上節(jié)課的車輛結(jié)構(gòu) * 1
LED * 1
杜邦線若干

電路連接

圖片

程序編寫

練習一:紅外接近傳感器控制開關(guān)燈

手靠近傳感器時,LED燈開,離開傳感器時,LED燈關(guān)。

圖形化方式:

讀取9號管腳上的信號值為低電平,說明有障礙物靠近,這時候點亮2號管腳上的LED。

圖片

代碼方式:

/* 項目名稱:紅外控制開關(guān)燈
 * 項目時間:2022.04.07
 * 項目作者:MRX
 */
int SensorPin = 9;
int LedPin = 2;
void setup() {
  pinMode(SensorPin,INPUT);
  pinMode(LedPin,OUTPUT);
}


void loop() {
  if(digitalRead(SensorPin)){
    digitalWrite(LedPin,LOW);
  }
  else{
    digitalWrite(LedPin,HIGH);
  }
}

練習二:沿墻面前進的小車

使用一個傳感器,讓小車能夠沿著墻面前行,效果如下:

圖片

原理分析:

右手法則邏輯分析。

圖片

電路接線:

圖片

圖形化方式:

圖片

代碼方式:

/* 項目名稱:小車貼墻走
 * 項目時間:2022.04.07
 * 項目作者:MRX
 */
int IN1 = 2;   // IN1 connected to pin 4
int IN2 = 4;   
int ENA = 3; 
int IN3 = 6;   // IN3 connected to pin 6
int IN4 = 7;   
int ENB = 5;  
int value = 255;   // the duty cycle
const int SensorPin = 10;


void Forward() {
  digitalWrite(IN1,HIGH);
  digitalWrite(IN2,LOW);
  analogWrite(ENA,value);
  digitalWrite(IN3,HIGH);
  digitalWrite(IN4,LOW);
  analogWrite(ENB,value);
}


void Back() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,value);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  analogWrite(ENB,value);
}


void Right() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,value);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  analogWrite(ENB,0);
}


void Left() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,0);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  analogWrite(ENB,value);
}


void Stop() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  analogWrite(ENA,0);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,LOW);
  analogWrite(ENB,0);
}


void setup(){
  Serial.begin(9600);
  for (int i = 2;i <= 7;i++){
    pinMode(i, OUTPUT);
    }
  pinMode(SensorPin,INPUT);
}

void loop(){
  if (digitalRead(SensorPin) == LOW) {
      Left();
    } else{
      Right();
    } 
}

練習三:走迷宮小車

編程控制小車沿著障礙物行走,效果如下:

圖片

圖形化方式:

圖片

代碼方式:

項目所涉及到的延時及電機正反轉(zhuǎn),都要根據(jù)自己的接線來進行調(diào)整。

/* 項目名稱:走迷宮
 * 項目時間:2022.04.07
 * 項目作者:MRX
 */
int IN1 = 2;   // IN1 connected to pin 4
int IN2 = 4;   
int ENA = 3; 
int IN3 = 6;   // IN3 connected to pin 6
int IN4 = 7;   
int ENB = 5;  
int value = 255;   // the duty cycle


void Forward() {
  digitalWrite(IN1,HIGH);
  digitalWrite(IN2,LOW);
  analogWrite(ENA,value);
  digitalWrite(IN3,HIGH);
  digitalWrite(IN4,LOW);
  analogWrite(ENB,value);
}


void Back() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,value);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  analogWrite(ENB,value);
}


void Right() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,value);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  analogWrite(ENB,0);
}


void Left() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,0);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
  analogWrite(ENB,value);
}


void Stop() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  analogWrite(ENA,0);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,LOW);
  analogWrite(ENB,0);
}


void TurnLeft() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  analogWrite(ENA,100);
  digitalWrite(IN3,HIGH);
  digitalWrite(IN4,LOW);
  analogWrite(ENB,100);
}


void setup(){
  for (int i = 2;i <= 7;i++){
    pinMode(i, OUTPUT);
    }
  for (int i = 8;i <= 10;i++){
    pinMode(i,INPUT);
  }

}

void loop(){
  if (digitalRead(8) == LOW) {
    TurnLeft();
    delay(500);


  } else if (digitalRead(9) == LOW) {
    TurnLeft();
    delay(200);
  } else if (digitalRead(10) == LOW) {
    Left();
  } else {
    Right();
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    213

    文章

    29726

    瀏覽量

    212797
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1596

    瀏覽量

    109723
  • 紅外傳感器
    +關(guān)注

    關(guān)注

    9

    文章

    544

    瀏覽量

    48354
  • 光電二極管
    +關(guān)注

    關(guān)注

    10

    文章

    417

    瀏覽量

    36681
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192083
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于ARM的電腦鼠迷宮設(shè)計方案

    本文從分析“IEEE標準電腦鼠”迷宮比賽規(guī)則入手,介紹了電腦鼠硬件系統(tǒng)和軟件系統(tǒng)設(shè)計過程和流程。基于電腦鼠的產(chǎn)品具有廣泛的應(yīng)用場合,譬如自動盲人導(dǎo)引小車、足球機器人、
    發(fā)表于 05-26 11:46 ?7024次閱讀
    基于ARM的電腦鼠<b class='flag-5'>走</b><b class='flag-5'>迷宮</b>設(shè)計方案

    關(guān)于迷宮小車。。。

    各位大神,求較簡單的迷宮小車,原理圖和迷宮程序。現(xiàn)在我真的是毫無頭緒啊。。。求救啊。。。
    發(fā)表于 05-05 23:14

    Labview寫的迷宮

    基于隊列的迷宮解決方案
    發(fā)表于 11-01 11:13

    【mBot申請】自動走出迷宮

    測前方的障礙物,加上自己的一個步進電機(加步進點擊是為了多向測試障礙物,正前方的,左前方,右前方,三個方向的障礙物的距離,做出最合理的判斷)左右旋轉(zhuǎn)測量障礙物的距離,做出最合理的判斷,然后通過電機驅(qū)動模塊驅(qū)動電機往哪個方向。最后走出自己設(shè)計的迷宮
    發(fā)表于 10-29 14:14

    基于arduino超聲波紅外【迷宮】小車設(shè)計

    最近到手基于arduino uno Rev3 智能小車。閑暇時間制作了這個迷宮的小車。這個小車通過4個紅外模塊循跡迷宮地面的黑線。通過超聲波傳感器檢測兩側(cè)和前方的距離來進行轉(zhuǎn)向。在制
    發(fā)表于 05-06 23:31

    3種C語言編寫迷宮的方法

    曾經(jīng)聽說過一個迷宮的訣竅:順著墻沿一側(cè)。 (一直沿左側(cè)或一直沿右側(cè))。本程序?qū)崿F(xiàn)了這一 思想,小人一直沿左側(cè)迷宮是隨機生成的
    發(fā)表于 08-19 14:46 ?54次下載

    基于ARM的機器人迷宮控制系統(tǒng)與算法設(shè)計

    基于ARM的機器人迷宮控制系統(tǒng)與算法設(shè)計
    發(fā)表于 12-23 15:00 ?27次下載

    基于51單片機小車迷宮電路及代碼

    基于51單片機小車迷宮電路及代碼,包含原理圖及PCB,代碼及相關(guān)資料
    發(fā)表于 12-16 17:23 ?64次下載

    51單片機迷宮程序

    51單片機迷宮程序
    發(fā)表于 12-08 14:14 ?26次下載

    三個超聲波迷宮

    51小車迷宮
    發(fā)表于 11-25 17:57 ?1次下載

    Arduino迷宮游戲

    電子發(fā)燒友網(wǎng)站提供《Arduino迷宮游戲.zip》資料免費下載
    發(fā)表于 11-04 10:22 ?1次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>迷宮</b>游戲

    Arduino Uno平衡迷宮

    電子發(fā)燒友網(wǎng)站提供《用Arduino Uno平衡迷宮.zip》資料免費下載
    發(fā)表于 12-12 11:58 ?0次下載
    用<b class='flag-5'>Arduino</b> Uno平衡<b class='flag-5'>迷宮</b>

    Arduino迷宮游戲開源分享

    電子發(fā)燒友網(wǎng)站提供《Arduino迷宮游戲開源分享.zip》資料免費下載
    發(fā)表于 06-09 15:19 ?1次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>迷宮</b>游戲開源分享

    DIY安卓+Arduino控制迷宮游戲

    電子發(fā)燒友網(wǎng)站提供《DIY安卓+Arduino控制迷宮游戲.zip》資料免費下載
    發(fā)表于 06-29 14:53 ?0次下載
    DIY安卓+<b class='flag-5'>Arduino</b>控制<b class='flag-5'>迷宮</b>游戲

    Arduino 3D迷宮

    電子發(fā)燒友網(wǎng)站提供《Arduino 3D迷宮.zip》資料免費下載
    發(fā)表于 07-10 09:44 ?0次下載
    <b class='flag-5'>Arduino</b> 3D<b class='flag-5'>迷宮</b>
    主站蜘蛛池模板: 成人在线免费 | 性生生活三级视频在线观看 | 欧美成人免费大片888 | 精品成人在线观看 | 亚洲一区二区三区在线视频 | 亚洲图片欧美色图 | 亚洲精品一卡2卡3卡三卡四卡 | 俺去鲁婷婷六月色综合 | 精品你懂的 | 性夜影院午夜看片 | 视色4se视频在线观看 | 49pao强力免费打造在线高清 | 天天色影院 | 色婷婷六月丁香在线观看 | 亚洲乱亚洲乱妇13p 亚洲免费mv | 在线播放91灌醉迷j高跟美女 | 777奇米影视笫四色88me久久综合 | 最新理论三级中文在线观看 | 阿v视频在线观看免费播放 爱爱视频天天干 | 亚洲欧洲无码一区二区三区 | 天天干夜夜爽 | 狠狠干天天操 | 国产精品看片 | 免费精品99久久国产综合精品 | 大量国产后进翘臀视频 | 婷婷了五月色香综合缴情 | 色婷婷五 | 男女交性高清视频无遮挡 | 伊人成人在线 | 你懂得网址在线观看 | eeuss秋霞成人影院 | 日本亚洲视频 | 在线免费国产 | 亚洲精品二区中文字幕 | 在线女同免费观看网站 | 天堂bt种子资源地址在线 | 日本免费性 | 禁漫画羞羞动漫入口 | 狠狠五月深爱婷婷网免费 | 亚洲资源在线视频 | fc2 ppv sss级素人美女 |