机器人制作开源方案 | 行星探测车概述

这篇具有很好参考价值的文章主要介绍了机器人制作开源方案 | 行星探测车概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 功能描述

       行星探测车(Planetary Rover)是一种用于进行科学探索和勘测任务的无人车辆,它们被设计成能够适应各种复杂的地形条件和极端环境,以便收集数据、拍摄照片、采集样本等。行星探测车通常包含以下主要组件和功能:
       ① 底盘和轮子系统:底盘提供了行星探测车的支撑结构,轮子系统使其能够移动。轮子通常采用特殊设计,以适应不同地质条件和障碍物,并提供良好的牵引力和稳定性。
       ② 动力系统:行星探测车通常由电池或太阳能电池板供电,这些能源会驱动电动机,使车辆能够移动和执行其它任务。
       ③ 导航与控制系统:导航和控制系统帮助行星探测车感知周围的环境并自主导航,它们通常包括惯性测量单元(IMU)、陀螺仪、加速度、摄像头、激光雷达、GPS等传感器。
       ④ 通信系统:行星探测车需要进行通信以接收指令和发送数据,通常会使用无线电通信设备实现远距离通信。
本文示例将实现R261样机行星探测车在行进过程中避障,并且当光强传感器触发时实现太阳翼展开的功能。
 

机器人制作开源方案 | 行星探测车概述,机器人

机器人制作开源方案 | 行星探测车概述,机器人 

2. 电子硬件

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

主控板

Basra主控板(兼容Arduino Uno)

扩展板

Bigfish2.1扩展板

传感器
 
光强传感器
近红外传感器
电池 7.4V锂电池

电路连接图如下所示:

机器人制作开源方案 | 行星探测车概述,机器人

3. 功能实现

编程环境:Arduino 1.8.19
下面提供一个实现行星探测车在行进过程中避障,并且当光强传感器触发时实现太阳翼展开功能的参考程序(sketch_sep12a.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-09-21 https://www.robotway.com/

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

#include <Servo.h>

Servo leftSolarPanel;   // 左太阳翼舵机

Servo rightSolarPanel; // 右太阳翼舵机

Servo mast;           // 桅杆舵机

int irSensorPin = A0;     // 红外传感器的引脚(根据实际连接修改)

int lightSensorPin =A5;   // 光强传感器的引脚(根据实际连接修改)

bool irSensorTriggered = false; // 用于跟踪红外传感器触发状态

void setup() {

  pinMode(irSensorPin, INPUT);

  pinMode(lightSensorPin, INPUT);

 

  leftSolarPanel.attach(4);   // 左太阳翼舵机连接到数字引脚 4

  rightSolarPanel.attach(3); // 右太阳翼舵机连接到数字引脚 3

  mast.attach(7);            // 桅杆舵机连接到数字引脚 7

}

void loop() {

  // 读取红外传感器状态

  int irSensorValue = digitalRead(irSensorPin);

  // 如果红外传感器触发,小车后退并左转

  if (irSensorValue == HIGH && !irSensorTriggered) {

    irSensorTriggered = true;

    moveBackward();

    leftTurn();

  } else if (irSensorValue == HIGH && irSensorTriggered) {

    irSensorTriggered = false;

    moveForward();

    rightTurn();

  } else {

    // 如果未触发红外传感器,停止小车运动

    stopCar();

  }

  // 读取光强传感器状态

  int lightSensorValue = analogRead(lightSensorPin);

  // 如果光强传感器触发,执行太阳翼和桅杆展开和闭合操作

  if (lightSensorValue > 500) {

    expandSolarPanelsAndMast();

  } else {

    stopSolarPanelsAndMast();

  }

}

// 后退

void moveBackward() {

   digitalWrite( 5 , HIGH );   //右轮后退

  digitalWrite( 6 , LOW );

 

  digitalWrite( 9 , HIGH );   //左轮后退

  digitalWrite( 10 , LOW);

}

// 左转

void leftTurn() {

  digitalWrite( 5 , HIGH );

  digitalWrite( 6 , LOW );

  digitalWrite( 9 , LOW );

  digitalWrite( 10 , LOW );

}

// 前进

void moveForward() {

  digitalWrite( 5 , LOW );   //右轮前进

  digitalWrite( 6 , HIGH );

 

  digitalWrite( 9 , LOW );   //左轮前进

  digitalWrite( 10 , HIGH );

}

// 右转

void rightTurn() {

  digitalWrite( 5 , LOW );

  digitalWrite( 6 , LOW );

  digitalWrite( 9 , HIGH );

  digitalWrite( 10 , LOW );

}

// 停止

void stopCar() {

  analogWrite(5 , 0);

  analogWrite(6 , 0);

  analogWrite(9 , 0);

  analogWrite(10 , 0);

}

// 太阳翼和桅杆展开操作

void expandSolarPanelsAndMast() {

  // 左太阳翼展开至180°

  setServoAngle(leftSolarPanel, 180);

  delay(500);   // 暂停0.5秒

  // 右太阳翼展开至180°

  setServoAngle(rightSolarPanel, 180);

  delay(500);   // 暂停0.5秒

  // 桅杆展开至90°

  setServoAngle(mast, 90);

  delay(500);   // 暂停0.5秒

}

// 太阳翼和桅杆关闭操作

void stopSolarPanelsAndMast() {

  // 桅杆闭合至0°

  setServoAngle(mast, 0);

  // 左太阳翼闭合至0°

  setServoAngle(leftSolarPanel, 0);

  // 右太阳翼闭合至0°

  setServoAngle(rightSolarPanel, 0);

}

// 函数用于设置舵机角度,并控制舵机旋转速度

void setServoAngle(Servo servo, int targetAngle) {

  int currentAngle = servo.read();

  int step = 1; // 步进值,可根据需要调整

  int delayTime = 20; // 延迟时间,可根据需要调整

  if (targetAngle > currentAngle) {

    for (int angle = currentAngle; angle <= targetAngle; angle += step) {

      servo.write(angle);

      delay(delayTime);

    }

  } else if (targetAngle < currentAngle) {

    for (int angle = currentAngle; angle >= targetAngle; angle -= step) {

      servo.write(angle);

      delay(delayTime);

    }

  }

}

​4. 扩展样机

本样机的底盘方案是【R255】号机构,如下图所示:

机器人制作开源方案 | 行星探测车概述,机器人

程序源代码及样机3D文件资料详见 行星探测车-概述文章来源地址https://www.toymoban.com/news/detail-733585.html

到了这里,关于机器人制作开源方案 | 行星探测车概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人制作开源方案 | 核酸检测辅助机器人

    作者: 周文亚、胡冲、王晓强、张娟 单位:北方民族大学 指导老师: 马行、穆春阳       新型冠状病毒肺炎全球流行已近三年,其变异毒株不断增强的传播力同时其症状不断变轻,其中无症状(怎么确认是否被感染)导致人们产生放轻松“躺平”还是严控疑虑的心理交织

    2024年02月02日
    浏览(54)
  • 机器人制作开源方案 | AI校园服务机器人

    作者:李强、李振宁、毛维雷、李文文、张奥 单位:山西能源学院 指导老师:姚志广、程晟       在这个科技飞速发展的时代,在工业智造、人工智能的飞速发展中,出现了越来越多的智能化机械装置,也有许多创新类的比赛,本作品基于探索者创新套件设计平台设计出一

    2024年01月20日
    浏览(57)
  • 机器人制作开源方案 | 家庭清扫拾物机器人

    作者: 罗诚、李旭洋、胡旭、符粒楷 单位: 南昌交通学院 人工智能学院 指导老师: 揭吁菡       在家庭中我们有时无法到一些低矮阴暗的地方进行探索,比如茶几下或者床底下,特别是在部分家庭中,如果没有及时对这些阴暗低矮的地方进行清扫,则会导致这些地方不干

    2024年02月07日
    浏览(50)
  • 机器人制作开源方案 | 全自动导航分拣机器人

    作者:孙国峰 董阳 张鑫源 单位:山东科技大学 机械电子工程学院 指导老师:张永超 贝广霞 1.1 研究背景       在工业生产中,机器人在解决企业的劳动力不足,提高企业劳动生产率,提高产品质量和降低生产成本方面有着显著的意义。随着计算机自动化技术和社会的发展

    2024年01月23日
    浏览(57)
  • 机器人制作开源方案 | 乒乓球自动拾取机器人

    作者:刘众森、王森、王绘东、崔岳震、宋维鑫 单位:山东农业工程学院 指导老师:潘莹月、廖希杰       我们小组选择项目的任务方向乒乓球的捡取与存放,针对此问题我们研发了一款乒乓球自动拾取机器人。众所周知,乒乓球是一种世界流行的球类体育项目,而我国是

    2024年02月01日
    浏览(51)
  • 机器人制作开源方案 | 图书管理助手

    作者:丁位 朱红磊 程国正 杨秀萍 丁语林 单位:黑龙江科技大学 指导老师:邵文冕 刘安平 1.1 研究背景及意义        通过查阅资料,我们团队了解到自2015年起中国公共图书馆图书流通人次逐年增加,2019年中国公共图书馆图书流通人次达90135万人次,较2018年增加了8103万人

    2024年02月20日
    浏览(41)
  • 机器人制作开源方案 | 智能盲道除雪小车

    作者: 汪荣顺 李明旭 马晓乐 吴泽俊 李以陈 单位:江汉大学 指导老师: 张朝刚 张会利       本文论述了一种新型智能盲道除雪小车的设计与研发。由于目前的除雪设备集中在公路、城市道路、机场路面、高速公路等领域,但对于街道等路况的研究很少。因此,我们针对盲

    2024年02月02日
    浏览(53)
  • 机器人制作开源方案 | 智能垃圾桶

           智能垃圾桶是一种利用物联网技术和智能感知能力的智能设备,旨在提高垃圾分类和处理的效率。通常具备以下特点和功能: ① 智能感知:智能垃圾桶配备各种传感器,如压力传感器、红外线传感器等,可以实时感知垃圾桶内垃圾的填充情况和类型。 ② 垃圾分类:

    2024年02月16日
    浏览(56)
  • 机器人制作开源方案 | 森林管理员

    ​作者: 李佳骏、常睿康、张智斌、李世斌、高华耸 单位:山西能源学院 指导老师: 赵浩成、郜敏       森林作为地球上可再生自然资源及陆地生态的主体,在人类生存和发展的历史中起着不可代替的作用,它不仅能提供国家建设和人民生活所需的木材及林副产品,而且

    2024年02月03日
    浏览(45)
  • 机器人制作开源方案 | 滑板助力器

    我们可以用一块废滑板做些什么 呢 ?     如今,越来越多的人选择电动滑板作为代步工具或娱乐方式,市场上也涌现出越来越多的电动滑板产品。 (图片来源: Backfire Zealot X Belt Drive Electric Skateboard– Backfire Boards ) (图片来源: Electric Skateboards - Boosted USA ) 那么,这是不

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包