极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2974|回复: 0

全地形比赛小车的制作

[复制链接]
发表于 2022-12-5 08:56:15 | 显示全部楼层 |阅读模式
1. 比赛场地
       场地中设定四种五个不同特点、不同难度的障碍物,每种障碍物均有一定的分值,参赛队根据比赛规则自主设计制作机器人,完成穿越各个障碍物的比赛。
       障碍物分别为模拟工业用栅格地毯、楼梯、管道、独木桥,各障碍物由黑色引导线连接,形成完整的比赛赛道,并设置比赛起点和终点,比赛场地由组委会统一布置。
       比赛场地及四种障碍物(栅格地面,管道,窄桥,楼梯)尺寸标记(含引导黑线、比赛起点和终点)。

场地整体图:




全地形赛场地尺寸图详见 https://www.robotway.com/h-col-120.html

2. 示例样机
       本文采用的示例样机是由月球车样机改造而来的。在四个前后轮上缠绕了履带片以增大轮径,提高越障的性能。两侧摇臂用零件固定在了一起,单侧摇臂不能单独摆动,只能同时摆动,损失了一些灵活性,但是增加了行驶中的稳定性,尤其是增加了攀爬越障时的稳定性,车身不容易跑偏。车头位置并排安装3个灰度传感器。




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);   //经过左移运算和或运算后,按照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. 样机扩展
也可以使用探索者的各类兼容零件制作样机。


  


5. 资料内容
① 月球车底盘-全地形比赛-样机3D文件
② 月球车底盘-全地形比赛-例程文件
③ 全地形赛-场地制作文件

资料下载链接 https://www.robotway.com/h-col-120.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-28 23:52 , Processed in 0.060487 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表