0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让小型双轮差速底盘实现双灰度循迹功能?

jf_72402704 来源: jf_72402704 作者: jf_72402704 2023-03-03 17:14 次阅读

1. 功能说明

机器人车体上安装2个 灰度传感器 ,实现机器人按照下图所指定的路线进行导航运动,来模拟仓库物流机器人按指定路线行进的工作过程。

poYBAGQBunOASTMhAAAKFq8KLBY492.jpg

2. 使用样机

本实验使用的样机为R023e样机。

pYYBAGQBunOAXdKYAAAzQLttQpU100.png

3. 功能实现

3.1 电子硬件

在这个示例中,我们采用了以下硬件,请大家参考:

主控板 Basra(兼容Arduino Uno)
扩展板 SH-01外围电路扩展板(与Bigfish扩展板相似)‍
传感器 灰度传感器
电池 7.4V锂电池

电路连接说明:

电机连在D6,D10及D5,D9接口上;

② 2个灰度传感器分别接在扩展板的传感器接口A0、A4上。

poYBAGQBunSAM95xAABJ5nC9_hg047.jpgpYYBAGQBunSAaYDPAABMPEqvuIw607.jpg

3.2 编写程序

传感器触发情况、小车行驶状态、对应行为策略表:

传感器1 传感器2 小车状态 动作
0 1 小车左偏 向右调整
1 0 小车右偏 向左调整
1 1 到达终点 停止
0 0 正常 前进

① 根据实验内容,利用多分支结构设计出程序流程图。

pYYBAGQBunWAaEB9AABITBJQRrM211.png机器人轨迹导航任务流程图

② 根据设计好的程序流程图进行编程,编写并烧录以下程序(blackline_4if.ino),该程序将实现演示视频中的动作【完整例程源代码下载详见https://www.robotway.com/h-col-113.html】

编程环境:Arduino 1.8.19

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

  版权说明: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 机器谱 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);

}


审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2522

    文章

    47984

    浏览量

    739698
  • 机器人
    +关注

    关注

    206

    文章

    26974

    浏览量

    201308
收藏 人收藏

    评论

    相关推荐

    小型平行履带底盘的制作分享

    小型平行履带底盘可以通过两侧履带的 差速运动 来实现前进、后退、原地转向、大半径转向等基本行驶功能
    的头像 发表于 01-12 14:50 2704次阅读
    <b class='flag-5'>小型</b>平行履带<b class='flag-5'>底盘</b>的制作分享

    怎样用Labview的vision相关模块实现图像的灰度扫描以及灰度

    怎样用Labview的vision相关模块实现图像的灰度扫描以及灰度分,可以详细点:具体用到哪些模块,求赐教。
    发表于 06-26 20:08

    循迹智能小车是由哪些部分组成的

    循迹智能小车 循黑线文章目录循迹智能小车 循黑线硬件菜单硬件使用硬件组装程序设计前的理解程序代码硬件菜单单片机型号:STC16F40K1284路红外循迹模块小车底盘套件(一个
    发表于 07-14 06:56

    基于51单片机的循迹小车的设计资料分享

    # 基于51单片机的循迹小车(详细讲解+源码)作为一名大学生,这里我就简单谈谈我们小组做这个循迹小车的一个过程。主要是实现小车寻黑线行驶的这样一个功能,速度可以调节(定时器中断模拟PW
    发表于 11-18 07:55

    如何搭建实体机器人ros底盘

    目录介绍一、底盘主控板二、嵌入式开发板1. 与上位机pc的关系2. 与STM32主控板的关系介绍自下而上的分析实体机器人(分轮机器人)搭建中的关键过程。一、底盘主控板本部分搭建实体
    发表于 01-20 07:36

    底盘的设计资料分享

    SLAM+语音机器人DIY系列:(四)底盘设计——1.stm32主控硬件设计摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达、IMU、麦克风、音响、摄像头这些通用部件可以直接买到,很难
    发表于 02-14 06:29

    使用以双灰度传感器实现的曲线循迹以及矩形循迹的资料说明

    在这次课程中,我们小组选定的课题是循迹小车,在长达数周的辛苦付出中,我组小车已能实现功能有1.红遥控小车2.以灰度传感器实现矩形
    发表于 12-23 08:00 12次下载
    使用以双<b class='flag-5'>灰度</b>传感器<b class='flag-5'>实现</b>的曲线<b class='flag-5'>循迹</b>以及矩形<b class='flag-5'>循迹</b>的资料说明

    小型双节履带底盘的制作

    1.运动功能说明 双节履带车可以通过两个驱动轮的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能,并可通过舵机关节模块进行小臂的抬起和落下。通过底盘运动与小臂运行的结合,
    的头像 发表于 01-07 10:56 588次阅读
    <b class='flag-5'>小型</b>双节履带<b class='flag-5'>底盘</b>的制作

    小型双轮差速底盘的制作

    小型双轮差速底盘可以通过两个驱动轮的 差速运动 来实现前进、后退、原地转向、大半径转向等基本行驶功能
    的头像 发表于 01-13 15:17 2463次阅读
    <b class='flag-5'>小型</b><b class='flag-5'>双轮</b>差速<b class='flag-5'>底盘</b>的制作

    小型双轮差速底盘视觉循迹功能实现

    1. 任务描述       在机器人小车上搭载摄像头,摄像头采集图像信息并通过WiFi将信息传递给PC端,然后PC端使用OpenCV对摄像头读取到的视频进行灰度化、高斯滤波、腐蚀、膨胀等处理,使图像
    的头像 发表于 03-03 17:05 317次阅读
    <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>

    如何实现双轮差速底盘躲避悬崖的功能

    1. 功能说明        本实验使用的样机为R023样机小型双轮差速底盘。在样机前方安装3个近红外传感器 ,实现机器人躲避悬崖、在某平台
    的头像 发表于 03-03 17:08 239次阅读
    如何<b class='flag-5'>实现</b><b class='flag-5'>双轮</b>差速<b class='flag-5'>底盘</b>躲避悬崖的<b class='flag-5'>功能</b>?

    双轮差速底盘灰度循迹功能实现

    1. 功能说明     在小型双轮差速底盘样机前方安装3个 灰度传感器 ,实现机器人沿下图所指定
    的头像 发表于 03-03 17:29 395次阅读
    <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>

    小型平行履带底盘实现红外避障功能

    1. 功能说明    本实验使用的样机为R026a样机小型平行履带底盘。在样机前方安装1个 近红外传感器 ,如果遇到障碍,机器人后退,否则机器人前进,实现机器人避障的效果。 2. 电子
    的头像 发表于 03-09 08:46 310次阅读
    <b class='flag-5'>小型</b>平行履带<b class='flag-5'>底盘</b><b class='flag-5'>实现</b>红外避障<b class='flag-5'>功能</b>

    小型平行履带底盘实现超声避障功能

    1. 功能说明    本实验使用的样机为R026a样机小型平行履带底盘。在样机前方安装1个 超声波传感器 ,如果遇到障碍,机器人后退、转向,否则机器人前进,实现机器人避障的效果。 2.
    的头像 发表于 03-09 08:49 271次阅读
    <b class='flag-5'>小型</b>平行履带<b class='flag-5'>底盘</b><b class='flag-5'>实现</b>超声避障<b class='flag-5'>功能</b>

    小型平行履带底盘实现灰度循迹功能

    1. 功能说明    在小型平行履带底盘样机上安装2个 灰度传感器 ,实现机器人沿指定路线进行运动的效果。 2. 使用样机    本实验使用
    的头像 发表于 03-09 08:52 252次阅读
    <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>