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

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

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

如何讓小型雙輪差速底盤實現(xiàn)雙灰度循跡功能?

jf_72402704 ? 來源: jf_72402704 ? 作者: jf_72402704 ? 2023-03-03 17:14 ? 次閱讀

1. 功能說明

機(jī)器人車體上安裝2個 灰度傳感器 ,實現(xiàn)機(jī)器人按照下圖所指定的路線進(jìn)行導(dǎo)航運動,來模擬倉庫物流機(jī)器人按指定路線行進(jìn)的工作過程。

poYBAGQBunOASTMhAAAKFq8KLBY492.jpg

2. 使用樣機(jī)

本實驗使用的樣機(jī)為R023e樣機(jī)。

pYYBAGQBunOAXdKYAAAzQLttQpU100.png

3. 功能實現(xiàn)

3.1 電子硬件

在這個示例中,我們采用了以下硬件,請大家參考:

主控板 Basra(兼容Arduino Uno)
擴(kuò)展板 SH-01外圍電路擴(kuò)展板(與Bigfish擴(kuò)展板相似)?
傳感器 灰度傳感器
電池 7.4V鋰電池

電路連接說明:

電機(jī)連在D6,D10及D5,D9接口上;

② 2個灰度傳感器分別接在擴(kuò)展板的傳感器接口A0、A4上。

poYBAGQBunSAM95xAABJ5nC9_hg047.jpgpYYBAGQBunSAaYDPAABMPEqvuIw607.jpg

3.2 編寫程序

傳感器觸發(fā)情況、小車行駛狀態(tài)、對應(yīng)行為策略表:

傳感器1 傳感器2 小車狀態(tài) 動作
0 1 小車左偏 向右調(diào)整
1 0 小車右偏 向左調(diào)整
1 1 到達(dá)終點 停止
0 0 正常 前進(jìn)

① 根據(jù)實驗內(nèi)容,利用多分支結(jié)構(gòu)設(shè)計出程序流程圖。

pYYBAGQBunWAaEB9AABITBJQRrM211.png機(jī)器人軌跡導(dǎo)航任務(wù)流程圖

② 根據(jù)設(shè)計好的程序流程圖進(jìn)行編程,編寫并燒錄以下程序(blackline_4if.ino),該程序?qū)崿F(xiàn)演示視頻中的動作【完整例程源代碼下載詳見https://www.robotway.com/h-col-113.html】

編程環(huán)境:Arduino 1.8.19

/*------------------------------------------------------------------------------------

  版權(quán)說明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

           Distributed under MIT license.See file LICENSE for detail or copy at

           https://opensource.org/licenses/MIT

           by 機(jī)器譜 2023-02-09 https://www.robotway.com/                                   

------------------------------------------------------------------------------------*/

void turnleft_slow();

void forward();

void carstop();

void turnright_slow();



void setup()

{

  pinMode( 18, INPUT);

  pinMode( 14, INPUT);

  pinMode( 10, OUTPUT);

  pinMode( 6, OUTPUT);

  pinMode( 5, OUTPUT);

  pinMode( 9, OUTPUT);

}



void loop()

{

  if (( digitalRead(14) && digitalRead(18) ))

  {

    forward();

  }

  if (( !( digitalRead(14) ) && digitalRead(18) ))

  {

    turnleft_slow();

  }

  if (( digitalRead(14) && !( digitalRead(18) ) ))

  {

    turnright_slow();

  }

  if (( !( digitalRead(14) ) && !( digitalRead(18) ) ))

  {

    carstop();

    delay( 5000 );

  }

}



void turnright_slow()

{

  analogWrite(6 , 80);

  analogWrite(10 , 0);

  analogWrite(5 , 0);

  analogWrite(9 , 0);

}



void carstop()

{

  analogWrite(6 , 0);

  analogWrite(10 , 0);

  analogWrite(5 , 0);

  analogWrite(9 , 0);

}



void turnleft_slow()

{

  analogWrite(6 , 0);

  analogWrite(10 , 0);

  analogWrite(5 , 80);

  analogWrite(9 , 0);

}



void forward()

{

  analogWrite(6 , 80);

  analogWrite(10 , 0);

  analogWrite(5 , 80);

  analogWrite(9 , 0);

}

也可以使用if…else嵌套寫法(blackline_ifelse.ino)。

void stop();

void left();

void right();

void forwards();



void setup()

{

  pinMode( 18, INPUT);

  pinMode( 14, INPUT);

  pinMode( 10, OUTPUT);

  pinMode( 6, OUTPUT);

  pinMode( 5, OUTPUT);

  pinMode( 9, OUTPUT);

}



void loop()

{

  if (( !( digitalRead(14) ) && digitalRead(18) ))

  {

    right();

  }

  else

  {

    if (( digitalRead(14) && !( digitalRead(18) ) ))

    {

      left();

    }

    else

    {

      if (( !( digitalRead(14) ) && !( digitalRead(18) ) ))

      {

        stop();

      }

      else

      {

        forwards();

      }

    }

  }

}



void stop()

{

  analogWrite(5 , 0);

  analogWrite(9 , 0);

  analogWrite(6 , 0);

  analogWrite(10 , 0);

}



void right()

{

  analogWrite(5 , 150);

  analogWrite(9 , 0);

  analogWrite(6 , 0);

  analogWrite(10 , 150);

}



void forwards()

{

  analogWrite(5 , 150);

  analogWrite(9 , 0);

  analogWrite(6 , 150);

  analogWrite(10 , 0);

}



void left()

{

  analogWrite(5 , 0);

  analogWrite(9 , 150);

  analogWrite(6 , 150);

  analogWrite(10 , 0);

}


審核編輯黃宇

?

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

    關(guān)注

    2552

    文章

    51360

    瀏覽量

    755692
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28618

    瀏覽量

    207927
收藏 人收藏

    評論

    相關(guān)推薦

    小型平行履帶底盤的制作分享

    小型平行履帶底盤可以通過兩側(cè)履帶的 運動 來實現(xiàn)前進(jìn)、后退、原地轉(zhuǎn)向、大半徑轉(zhuǎn)向等基本行駛功能
    的頭像 發(fā)表于 01-12 14:50 ?3164次閱讀
    <b class='flag-5'>小型</b>平行履帶<b class='flag-5'>底盤</b>的制作分享

    怎樣用Labview的vision相關(guān)模塊實現(xiàn)圖像的灰度掃描以及灰度

    怎樣用Labview的vision相關(guān)模塊實現(xiàn)圖像的灰度掃描以及灰度分,可以詳細(xì)點:具體用到哪些模塊,求賜教。
    發(fā)表于 06-26 20:08

    循跡智能小車是由哪些部分組成的

    循跡智能小車 循黑線文章目錄循跡智能小車 循黑線硬件菜單硬件使用硬件組裝程序設(shè)計前的理解程序代碼硬件菜單單片機(jī)型號:STC16F40K1284路紅外循跡模塊小車底盤套件(一個
    發(fā)表于 07-14 06:56

    底盤的設(shè)計資料分享

    SLAM+語音機(jī)器人DIY系列:(四)底盤設(shè)計——1.stm32主控硬件設(shè)計摘要 運動底盤是移動機(jī)器人的重要組成部分,不像激光雷達(dá)、IMU、麥克風(fēng)、音響、攝像頭這些通用部件可以直接買到,很難
    發(fā)表于 02-14 06:29

    智能車模電機(jī)控制的可行性研究

    智能車模電機(jī)控制的可行性研究
    發(fā)表于 12-11 16:21 ?5次下載

    深度解析一汽-大眾騰GLI底盤

    大眾對中國市場有著特殊的情懷,從一開始的捷達(dá),再到現(xiàn)階段的騰,曾一度國人瘋狂戀上。這一點至今并沒有多少個品牌做得到?,F(xiàn)在購車人群逐步年輕化,年輕的小伙子在購車考慮舒適性的同時也注重了駕駛樂趣。
    的頭像 發(fā)表于 07-24 14:49 ?8834次閱讀
    深度解析一汽-大眾<b class='flag-5'>速</b>騰GLI<b class='flag-5'>底盤</b>

    使用以灰度傳感器實現(xiàn)的曲線循跡以及矩形循跡的資料說明

    在這次課程中,我們小組選定的課題是循跡小車,在長達(dá)數(shù)周的辛苦付出中,我組小車已能實現(xiàn)功能有1.紅遙控小車2.以灰度傳感器實現(xiàn)矩形
    發(fā)表于 12-23 08:00 ?12次下載
    使用以<b class='flag-5'>雙</b><b class='flag-5'>灰度</b>傳感器<b class='flag-5'>實現(xiàn)</b>的曲線<b class='flag-5'>循跡</b>以及矩形<b class='flag-5'>循跡</b>的資料說明

    小型節(jié)履帶底盤的制作

    1.運動功能說明 節(jié)履帶車可以通過兩個驅(qū)動輪的運動來實現(xiàn)前進(jìn)、后退、原地轉(zhuǎn)向、大半徑轉(zhuǎn)向等基本行駛
    的頭像 發(fā)表于 01-07 10:56 ?868次閱讀
    <b class='flag-5'>小型</b><b class='flag-5'>雙</b>節(jié)履帶<b class='flag-5'>底盤</b>的制作

    小型雙輪底盤的制作

    小型雙輪底盤可以通過兩個驅(qū)動輪的 運動 來
    的頭像 發(fā)表于 01-13 15:17 ?2926次閱讀
    <b class='flag-5'>小型</b><b class='flag-5'>雙輪</b><b class='flag-5'>差</b><b class='flag-5'>速</b><b class='flag-5'>底盤</b>的制作

    小型三節(jié)履帶底盤的制作

    節(jié)履帶車可以通過兩個驅(qū)動輪的運動來實現(xiàn)前進(jìn)、后退、原地轉(zhuǎn)向、大半徑轉(zhuǎn)向等基本行駛功能,并可通過舵機(jī)關(guān)節(jié)模塊進(jìn)行小臂的抬起和落下。通過
    的頭像 發(fā)表于 01-29 09:15 ?1233次閱讀
    <b class='flag-5'>小型</b>三節(jié)履帶<b class='flag-5'>底盤</b>的制作

    小型雙輪底盤視覺循跡功能實現(xiàn)

    1. 任務(wù)描述 ? ? ? 在機(jī)器人小車上搭載攝像頭,攝像頭采集圖像信息并通過WiFi將信息傳遞給PC端,然后PC端使用OpenCV對攝像頭讀取到的視頻進(jìn)行灰度化、高斯濾波、腐蝕、膨脹等處理,使圖像
    的頭像 發(fā)表于 03-03 17:05 ?500次閱讀
    <b class='flag-5'>小型</b><b class='flag-5'>雙輪</b><b class='flag-5'>差</b><b class='flag-5'>速</b><b class='flag-5'>底盤</b>視覺<b class='flag-5'>循跡</b><b class='flag-5'>功能</b>的<b class='flag-5'>實現(xiàn)</b>

    如何實現(xiàn)雙輪底盤躲避懸崖的功能?

    1. 功能說明 ? ? ? ?本實驗使用的樣機(jī)為R023樣機(jī)小型雙輪底盤。在樣機(jī)前方安裝3個
    的頭像 發(fā)表于 03-03 17:08 ?400次閱讀
    如何<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>雙輪</b><b class='flag-5'>差</b><b class='flag-5'>速</b><b class='flag-5'>底盤</b>躲避懸崖的<b class='flag-5'>功能</b>?

    雙輪底盤灰度循跡功能實現(xiàn)

    1. 功能說明 ? ? 在小型雙輪底盤樣機(jī)前方安裝3個
    的頭像 發(fā)表于 03-03 17:29 ?837次閱讀
    <b class='flag-5'>雙輪</b><b class='flag-5'>差</b><b class='flag-5'>速</b><b class='flag-5'>底盤</b>三<b class='flag-5'>灰度</b><b class='flag-5'>循跡</b><b class='flag-5'>功能</b>的<b class='flag-5'>實現(xiàn)</b>

    小型平行履帶底盤實現(xiàn)灰度循跡功能

    1. 功能說明 ? ?在小型平行履帶底盤樣機(jī)上安裝2個 灰度傳感器 ,實現(xiàn)機(jī)器人沿指定路線進(jìn)行運動的效果。 2. 使用樣機(jī) ? ?本實驗使用
    的頭像 發(fā)表于 03-09 08:52 ?459次閱讀
    <b class='flag-5'>小型</b>平行履帶<b class='flag-5'>底盤</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>雙</b><b class='flag-5'>灰度</b><b class='flag-5'>循跡</b><b class='flag-5'>功能</b>

    DGT-01M四輪移動機(jī)器人底盤

    DGT-01M 機(jī)器人底盤是一款多功能行業(yè)應(yīng)用的實用新型產(chǎn)品,是一種四輪運載平臺,采用四輪結(jié)構(gòu),原地轉(zhuǎn)向,體型小,靈活性強(qiáng),并且采用模塊化設(shè)計,具有相對獨立性、互換性、通用性,模塊
    發(fā)表于 12-23 09:37 ?2次下載