机器谱 发表于 2023-5-17 09:51:56

小型双轮差速底盘实现触须避障功能

本帖最后由 机器谱 于 2023-5-17 09:51 编辑

1. 功能说明
      在R023d机器人车体上安装2个 触须传感器【https://www.robotway.com/h-col-137.html】 ,实现机器人小车避障功能。
https://28846868.s21i.faiusr.com/2/ABUIABACGAAg15mYogYo7v-pjwMwnBA4pw8!300x300.jpg.webp2. 电子硬件
      在这个示例中,我们采用了以下硬件,请大家参考:


主控板Basra主控板(兼容Arduino Uno)‍

扩展板Bigfish2.1扩展板‍

传感器触须传感器
电池7.4V锂电池

电路连接:小车左轮电机连到Bigfish扩展板的D9,D10接口,小车右轮电机连到Bigfish扩展板的D5,D6;左侧触须传感器连接在Bigfish扩展板A4端口,右侧触须传感器连接在Bigfish扩展板A0端口(如下图所示)

https://28846868.s21i.faiusr.com/2/ABUIABACGAAglJyYogYogMDbwgYwoBc4wA8!600x600.jpg.webp
3. 功能实现
编程环境:Arduino 1.8.19
实现思路:机器人小车前进过程中,左边触须传感器触发后,小车右转;右边触须传感器触发后,小车左转;两个传感器同时触发后,小车后退、转弯并前进。
将参考例程(sketch_apr23a.ino)下载到主控板,小车将实现避障功能,实验效果可参考官网演示视频。
/*------------------------------------------------------------------------------------

版权说明: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-04-23 https://www.robotway.com/

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

void tui();

void youzhuan();

void zuozhuan();

void go();


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) ))

{

    tui();

    delay( 1000 );

    zuozhuan();

    delay( 1000 );

}

else

{

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

    {

      tui();

      delay( 1000 );

      youzhuan();

      delay( 1000 );

    }

    else

    {

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

      {

      tui();

      delay( 1000 );

      youzhuan();

      delay( 1000 );

      }

      else

      {

      go();

      }

    }

}

}


void zuozhuan()

{

analogWrite(6 , 0);

analogWrite(10 , 0);

analogWrite(5 , 80);

analogWrite(9 , 0);

}


void youzhuan()

{

analogWrite(6 , 80);

analogWrite(10 , 0);

analogWrite(5 , 0);

analogWrite(9 , 0);

}


void go()

{

analogWrite(6 , 80);

analogWrite(10 , 0);

analogWrite(5 , 80);

analogWrite(9 , 0);

}


void tui()

{

analogWrite(6 , 0);

analogWrite(10 , 80);

analogWrite(5 , 0);

analogWrite(9 , 80);

}
4. 资料下载
资料内容:
​①触须避障-例程源代码
​②触须避障-样机3D文件
​资料下载地址:https://www.robotway.com/h-col-113.html

想了解更多机器人开源项目资料请关注 机器谱网站 https://www.robotway.com
页: [1]
查看完整版本: 小型双轮差速底盘实现触须避障功能