1. 功能说明
在机器人车体上安装2个 灰度传感器 ,实现机器人按照下图所指定的路线进行导航运动,来模拟仓库物流机器人按指定路线行进的工作过程。
2. 使用样机
本实验使用的样机为R023e样机。
3. 功能实现
在这个示例中,我们采用了以下硬件,请大家参考:
主控板 | Basra(兼容Arduino Uno) |
扩展板 | SH-01外围电路扩展板(与Bigfish扩展板相似) |
传感器 | 灰度传感器 |
电池 | 7.4V锂电池 |
电路连接说明:
② 2个灰度传感器分别接在扩展板的传感器接口A0、A4上。
3.2 编写程序
传感器触发情况、小车行驶状态、对应行为策略表:
传感器1 | 传感器2 | 小车状态 | 动作 |
0 | 1 | 小车左偏 | 向右调整 |
1 | 0 | 小车右偏 | 向左调整 |
1 | 1 | 到达终点 | 停止 |
0 | 0 | 正常 | 前进 |
① 根据实验内容,利用多分支结构设计出程序流程图。
机器人轨迹导航任务流程图
② 根据设计好的程序流程图进行编程,编写并烧录以下程序(blackline_4if.ino),该程序将实现演示视频中的动作【完整例程源代码下载详见https://www.robotway.com/h-col-113.html】
编程环境:Arduino 1.8.19
/*------------------------------------------------------------------------------------ 版权说明: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-02-09 https://www.robotway.com/ ------------------------------------------------------------------------------------*/ void turnleft_slow(); void forward(); void carstop(); void turnright_slow(); 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) )) { forward(); } if (( !( digitalRead(14) ) && digitalRead(18) )) { turnleft_slow(); } if (( digitalRead(14) && !( digitalRead(18) ) )) { turnright_slow(); } if (( !( digitalRead(14) ) && !( digitalRead(18) ) )) { carstop(); delay( 5000 ); } } void turnright_slow() { analogWrite(6 , 80); analogWrite(10 , 0); analogWrite(5 , 0); analogWrite(9 , 0); } void carstop() { analogWrite(6 , 0); analogWrite(10 , 0); analogWrite(5 , 0); analogWrite(9 , 0); } void turnleft_slow() { analogWrite(6 , 0); analogWrite(10 , 0); analogWrite(5 , 80); analogWrite(9 , 0); } void forward() { analogWrite(6 , 80); analogWrite(10 , 0); analogWrite(5 , 80); analogWrite(9 , 0); }
也可以使用if…else嵌套写法(blackline_ifelse.ino)。
void stop(); void left(); void right(); void forwards(); 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) )) { right(); } else { if (( digitalRead(14) && !( digitalRead(18) ) )) { left(); } else { if (( !( digitalRead(14) ) && !( digitalRead(18) ) )) { stop(); } else { forwards(); } } } } void stop() { analogWrite(5 , 0); analogWrite(9 , 0); analogWrite(6 , 0); analogWrite(10 , 0); } void right() { analogWrite(5 , 150); analogWrite(9 , 0); analogWrite(6 , 0); analogWrite(10 , 150); } void forwards() { analogWrite(5 , 150); analogWrite(9 , 0); analogWrite(6 , 150); analogWrite(10 , 0); } void left() { analogWrite(5 , 0); analogWrite(9 , 150); analogWrite(6 , 150); analogWrite(10 , 0); }
审核编辑黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
传感器
+关注
关注
2522文章
47984浏览量
739698 -
机器人
+关注
关注
206文章
26974浏览量
201308
发布评论请先 登录
相关推荐
怎样用Labview的vision相关模块实现图像的灰度扫描以及灰度差分
怎样用Labview的vision相关模块实现图像的灰度扫描以及灰度差分,可以详细点:具体用到哪些模块,求赐教。
发表于 06-26 20:08
循迹智能小车是由哪些部分组成的
循迹智能小车 循黑线文章目录循迹智能小车 循黑线硬件菜单硬件使用硬件组装程序设计前的理解程序代码硬件菜单单片机型号:STC16F40K1284路红外循迹模块小车底盘套件(一个
发表于 07-14 06:56
基于51单片机的循迹小车的设计资料分享
# 基于51单片机的循迹小车(详细讲解+源码)作为一名大学生,这里我就简单谈谈我们小组做这个循迹小车的一个过程。主要是实现小车寻黑线行驶的这样一个功能,速度可以调节(定时器中断模拟PW
发表于 11-18 07:55
如何搭建实体机器人ros底盘
目录介绍一、底盘主控板二、嵌入式开发板1. 与上位机pc的关系2. 与STM32主控板的关系介绍自下而上的分析实体机器人(差分轮速机器人)搭建中的关键过程。一、底盘主控板本部分搭建实体
发表于 01-20 07:36
差分底盘的设计资料分享
SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达、IMU、麦克风、音响、摄像头这些通用部件可以直接买到,很难
发表于 02-14 06:29
使用以双灰度传感器实现的曲线循迹以及矩形循迹的资料说明
在这次课程中,我们小组选定的课题是循迹小车,在长达数周的辛苦付出中,我组小车已能实现的功能有1.红遥控小车2.以灰度传感器实现矩形
发表于 12-23 08:00
•12次下载
小型双节履带底盘的制作
1.运动功能说明 双节履带车可以通过两个驱动轮的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能,并可通过舵机关节模块进行小臂的抬起和落下。通过底盘运动与小臂运行的结合,
小型双轮差速底盘视觉循迹功能的实现
1. 任务描述 在机器人小车上搭载摄像头,摄像头采集图像信息并通过WiFi将信息传递给PC端,然后PC端使用OpenCV对摄像头读取到的视频进行灰度化、高斯滤波、腐蚀、膨胀等处理,使图像
小型平行履带底盘实现红外避障功能
1. 功能说明 本实验使用的样机为R026a样机小型平行履带底盘。在样机前方安装1个 近红外传感器 ,如果遇到障碍,机器人后退,否则机器人前进,实现机器人避障的效果。 2. 电子
小型平行履带底盘实现超声避障功能
1. 功能说明 本实验使用的样机为R026a样机小型平行履带底盘。在样机前方安装1个 超声波传感器 ,如果遇到障碍,机器人后退、转向,否则机器人前进,实现机器人避障的效果。 2.
评论