全地形比赛小车制作分享

1. 比赛场地

      场地中设定四种五个不同特点、不同难度的障碍物,每种障碍物均有一定的分值,参赛队根据比赛规则自主设计制作机器人,完成穿越各个障碍物的比赛。

      障碍物分别为模拟工业用栅格地毯、楼梯、管道、独木桥,各障碍物由黑色引导线连接,形成完整的比赛赛道,并设置比赛起点和终点,比赛场地由组委会统一布置。

      比赛场地及四种障碍物(栅格地面,管道,窄桥,楼梯)尺寸标记(含引导黑线、比赛起点和终点)。

(1)场地整体图:

全地形比赛小车制作分享_第1张图片

全地形比赛小车制作分享_第2张图片 

 (2)窄桥尺寸图:

                        单位:cm

                        材料:发泡EVA

                        颜色:黑色

全地形比赛小车制作分享_第3张图片

(3)台阶尺寸图:

                    单位:cm

                    材料:发泡EVA

                    颜色:黑色

全地形比赛小车制作分享_第4张图片

(4)管道尺寸图:

                        单位:cm

                        材料:亚克力

                        颜色:透明

全地形比赛小车制作分享_第5张图片

(5)栅格地面尺寸图:

                               单位:cm

                               材料:工程塑料

                               颜色:蓝色

全地形比赛小车制作分享_第6张图片

2. 示例样机

本文采用的示例样机,在四个前后轮上缠绕了履带片以增大轮径,提高越障的性能。

 全地形比赛小车制作分享_第7张图片

两侧摇臂用零件(下图所示蓝色零件)固定在了一起,单侧摇臂不能单独摆动,只能同时摆动,损失了一些灵活性,但是增加了行驶中的稳定性,尤其是增加了攀爬越障时的稳定性,车身不容易跑偏。

全地形比赛小车制作分享_第8张图片 

车头位置并排安装3个灰度传感器。

全地形比赛小车制作分享_第9张图片 

全地形比赛小车制作分享_第10张图片 

3. 示例程序

电子模块:Arduino UNO(Basra控制板)×1,Bigfish扩展板×1,灰度传感器×3。

编程环境:Arduino1.8.19

程序源代码如下:

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

  版权说明:Copyright 2022 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 机器谱 2022-5-26 https://www.robotway.com/

  --------------------------------

  实验功能:

          实现小车沿黑线行驶,遇到黑线构成的路口能够按既定策略执行.

          假想循迹场地,有直线、左转弯、右转弯、十字路口;

  --------------------------------

  实验接线:

      小车车头并排安装三个灰度传感器

                车头

             .------------.

             |        |

             |        |

     左侧轮   |        |   右侧轮

      D5, D6 *------------* D9, D10

     

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

//

//;

int pin[3] = {A4, A3, A0};           //按车头前进方向,从右至左定义,后面经过公式计算,会转化为从左至右的顺序

int s;

void setup()

{

  pinMode( 5 , OUTPUT);

  pinMode( 6 , OUTPUT);

  pinMode( 9 , OUTPUT);

  pinMode( 10 , OUTPUT);

}

void loop()

{

   s = 0;

        for(int i=0; i<3; i++)                 //循环获取三个传感器的值

        {

            s|= (!digitalRead(pin[i]) << i);   //经过左移运算和或运算后,按照A0、A3、A4的顺序产生一个三位2进制数值,表示3个传感器的组合触发状态

        }

        switch (s)

        {

          case 0x00: //三个均未触发

          Forwards();

          break;

          case 0x01: //右侧传感器触发,直线上摆动或遇到右转弯

          Right();

          break;

          case 0x02: //中间传感器触发,直线上直行

          Forwards();

          break;

          case 0x03: //右侧两个触发,遇到右转弯

          Right();

          break;

          case 0x04: //左侧传感器触发,直线上摆动或遇到左转弯

          Left();

          break;

          case 0x06: //左侧两个触发,遇到左转弯

          Left();

          break;

          case 0x07: //三个同时触发,遇到十字路口

          Forwards();

          break;

          default:;break;

        }

  }

void Left()

{

digitalWrite( 5 , HIGH );

digitalWrite( 6 , LOW );

digitalWrite( 9 , LOW );

digitalWrite( 10 , LOW );

}

void Right()

{

digitalWrite( 5 , LOW );

digitalWrite( 6 , LOW );

digitalWrite( 9 , HIGH );

digitalWrite( 10 , LOW );

}

void Forwards()

{

digitalWrite( 5 , HIGH );

digitalWrite( 6 , LOW );

digitalWrite( 9 , HIGH );

digitalWrite( 10 , LOW );

}

 4. 样机扩展

也可以使用探索者的各类兼容零件制作样机

 全地形比赛小车制作分享_第11张图片

5. 资料下载

资料内容:月球车底盘-全地形比赛-样机3D文件、月球车底盘-全地形比赛-例程文件、全地形赛-场地制作文件

详情请参考: 全地形比赛-月球车

你可能感兴趣的:(机器人)