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

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 athttps://opensource.org/licenses/MITby 机器谱 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);   // 左太阳翼舵机连接到数字引脚 4rightSolarPanel.attach(3); // 右太阳翼舵机连接到数字引脚 3mast.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文件资料详见 行星探测车-概述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音小程序制作源码系统 带完整搭建教程

在当今社交媒体时代&#xff0c;抖音作为一款备受欢迎的短视频应用&#xff0c;已经拥有了庞大的用户群体。与此同时&#xff0c;抖音小程序也成为了商家和开发者们关注的热点。今天小编就来给大家介绍一款抖音小程序制作源码系统&#xff0c;五分钟确实创建一个小程序。 系统特…

音乐播放器VHDL蜂鸣器数码管显示简谱,视频/代码

名称&#xff1a;音乐播放器数码管显示简谱蜂鸣器 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; 设计音乐播放器&#xff0c;播放一首歌&#xff0c;使用开发板的蜂鸣器播放音乐&#xff0c;使用Quartus内的ROM IP核存储音乐文件&#xff0c;使用数…

《golang设计模式》第三部分·行为型模式-01-责任链模式(Chain of Responsibility)

文章目录 1 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1 概念 责任链&#xff08;Chain of Responsibility&#xff09;是指将客户端请求处理的不同职责对象组成请求处理链。 客户端只需要将请求交付到该链上&#xff0c;而不需要关心链上含有哪些对象。请求…

首次建站用香港服务器有影响没?

​  对于首次租用香港服务器的朋友来说&#xff0c;难免会对它没有一个很清晰的认知。因此&#xff0c;本文就从香港服务器适用人群&#xff0c;以及建站影响&#xff0c;选择技巧上做一个全方位的解答。 1. 哪一类人群适合使用香港服务器建站? 做外贸业务的网站。香港走的国…

时间序列预测 Graph-WaveNet:Graph WaveNet for Deep Spatial-Temporal Graph Modeling

Graph-WaveNet Graph WaveNet for Deep Spatial-Temporal Graph Modeling1.概述2.提出问题 & 解决策略 & 模型结构3.实验结果 ** Graph WaveNet for Deep Spatial-Temporal Graph Modeling ** 1.概述 时空图建模是分析系统中各组成部分的空间关系和时间趋势的一项重…

上海市教委产学研教师沙龙成功举办,共研大模型AI人才培养与插件生态

10月15日&#xff0c;百度飞桨携手上海市教育委员会、上海市学位委员会、上海物联网行业协会联合举办的“AI大模型产学研融合创新”上海研究生导师沙龙&#xff0c;在百度飞桨&#xff08;张江&#xff09;人工智能产业赋能中心顺利召开。来自上海地区20位高校及科研机构在聘研…

正向代理与反向代理

正向代理 客户端想要直接与目标服务器连接&#xff0c;但是无法直接进行连接&#xff0c;就需要先去访问中间的代理服务器&#xff0c;让代理服务器代替客户端去访问目标服务器 反向代理 屏蔽掉服务器的信息&#xff0c;经常用在多台服务器的分布式部署上&#xff0c;像一些大型…

C#快速排序算法

快速排序实现原理 快速排序&#xff08;Quick Sort&#xff09;是一种常用的排序算法&#xff0c;它基于分治的思想&#xff0c;通过将一个无序的序列分割成两个子序列&#xff0c;并递归地对子序列进行排序&#xff0c;最终完成整个序列的排序。 其基本思路如下&#xff1a; 选…

屏幕录制视频编辑软件 Camtasia 2023 mac中文版软件功能

Camtasia 2023 mac是一款功能强大的屏幕录制和视频编辑软件&#xff0c;可以用于制作教育课程、演示文稿、培训视频等。它具有一系列工具和功能&#xff0c;包括屏幕录制、视频编辑、音频编辑、字幕、特效等&#xff0c;使用户可以轻松地创建高质量的视频内容。 Camtasia2023的…

计算机基础知识34

进程锁 # 锁在IT界很重要&#xff0c;不但在Python中出现&#xff0c;尤其是数据库中得锁更多&#xff0c;比如&#xff1a;表锁、行锁、 悲观锁、乐观锁、进程锁、互斥锁、递归锁、可重入锁、死锁等 # 保证安全 import time # 导入time&#xff0c;执行顺序乱了 from…

服务CPU异常飙高问题分析和解决

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

1208. 翻硬币

题目&#xff1a; 1208. 翻硬币 - AcWing题库 思路&#xff1a; 1.对于要求从A变化到B的这类题&#xff0c;可以采用开关控制的方法。 2.一次翻转连续两个硬币&#xff0c;求origin变为result 最少需要翻转多少次。我们在origin的两个硬币中间放一个开关&#xff0c;开关变换…

除静电感测型离子风棒在无尘车间中的应用

除静电感测型离子风棒是一种能够检测静电并及时释放离子的离子风棒&#xff0c;在无尘车间中应用非常广泛。以下是除静电感测型离子风棒在无尘车间中的应用&#xff1a; 防止静电干扰&#xff1a;在无尘车间中&#xff0c;静电干扰会影响电子元器件和仪器设备的正常工作&#x…

MySQL学习(八)——锁

文章目录 1. 锁概述2. 全局锁2.1 全局锁的必要性2.2 语法2.3 全局锁的特点 3. 表级锁3.1 表锁3.2 元数据锁3.3 意向锁3.4 自增锁 4. 行级锁4.1 介绍4.2 记录锁4.3 间隙锁4.4 临键锁 1. 锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传…

2023亚马逊下半年的旺季选品攻略,黑五网一圣诞爆单机会不再错过

万圣节、黑五、网一和圣诞节是西方重要销售活动&#xff0c;也是跨境电商的一场重要考试&#xff0c;相对于国内的双十一双十二&#xff0c;这些节日的形成更为久远&#xff0c;需求也更加深入人心&#xff01;卖家需要根据市场需求和竞争情况选择细分品类&#xff0c;为更好的…

LabVIEW建立生产者消费者

LabVIEW建立生产者消费者 生产者/消费者设计模式由并行循环组成&#xff0c;这些循环分为两类&#xff1a;生产者循环和消费者循环。生产者循环和消费者循环间的通信可以使用队列或通道连线来实现。 队列 LabVIEW内置的队列操作VI可在函数选板>>数据通信>>队列操…

Nginx正向代理,反向代理,负载均衡

Nginx正向代理&#xff0c;反向代理&#xff0c;负载均衡 Nginx当中有两种代理方式&#xff1a; 七层代理&#xff08;http协议&#xff09; 四层代理&#xff08;tcp/udp流量转发&#xff09; 七层代理&#xff1a;七层代理&#xff0c;代理的是http的请求和响应 客户端请求…

开源Vue盲盒商城4.0源码/网页盲盒源码/前端uniapp后端thinkphp+安装教程/亲测

源码简介&#xff1a; 开源Vue盲盒商城4.0源码&#xff0c;它是打包小程序app的网页盲盒源码,亲测可用&#xff0c;它是采用vueTP5框架开发开源盲盒网站源码&#xff0c;附带了安装教程。 简单测试过了&#xff0c;可以使用&#xff0c;大家可以自测下。 前端uniapp后端think…

Elasticsearch Relevance Engine---为AI变革提供高级搜索能力[ES向量搜索、常用配置参数、聚合功能等详解]

Elasticsearch Relevance Engine—为AI变革提供高级搜索能力[ES向量搜索、常用配置参数、聚合功能等详解] 今天要介绍的 Elasticsearch Relevance Engine™ (ESRE™)&#xff0c;提供了多项用于创建高度相关的 AI 搜索应用程序的新功能。ESRE 站在 Elastic 这个搜索领域的巨人…

数据库设计与前端框架

数据库设计与前端框架 学习目标&#xff1a; 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型理解前端工程的基本架构和执行流程 完成前端工程企业模块开发 多租户SaaS平台的数据库方案 多租户是什么 多租户技术&#xff08;Multi-TenancyTechnology&a…