小型双轮差速底盘机器人实现无线遥控功能

1. 功能说明

      本文示例实现的功能为:利用 探索者Birdmen手柄扩展板探索者NRF无线通信模块 遥控R023样机小型双轮差速底盘做出前进、后退以及转向的动作。

 2. 电子硬件

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

主控板

Basra主控板(兼容Arduino Uno) x2

扩展板

Bigfish2.1扩展板x1

Birdmen手柄扩展板x1

通信

NRF无线通信模块x2

电池7.4V锂电池

3. 功能实现

      编程环境:Arduino 1.8.19

3.1下载固件

      分别下载master_.ino和slave_.ino到两个Basra主控板(软件解析:master_.ino为上位机程序,slave_.ino为下位机程序)。

      注意:先不要堆叠NRF无线通信模块,因为会占用串口,造成下载失败。

① 参考例程(master_.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-07-21 https://www.robotway.com/------------------------------*/int _ABVAR_1_A0Value = 0 ;int _ABVAR_2_A1Value = 0 ;void ADGet();void SerialPrint();void setup(){Serial.begin(9600);}void loop(){ADGet();SerialPrint();delay( 100 );}void SerialPrint(){if (( ( ( _ABVAR_1_A0Value ) == ( 0 ) ) && ( ( _ABVAR_2_A1Value ) == ( 1 ) ) )){Serial.print("1");Serial.println();}if (( ( ( _ABVAR_1_A0Value ) == ( 1 ) ) && ( ( _ABVAR_2_A1Value ) == ( 0 ) ) )){Serial.print("2");Serial.println();}if (( ( ( _ABVAR_1_A0Value ) == ( 1 ) ) && ( ( _ABVAR_2_A1Value ) == ( 1 ) ) )){Serial.print("3");Serial.println();}if (( ( ( _ABVAR_1_A0Value ) == ( 1 ) ) && ( ( _ABVAR_2_A1Value ) == ( 2 ) ) )){Serial.print("4");Serial.println();}if (( ( ( _ABVAR_1_A0Value ) == ( 2 ) ) && ( ( _ABVAR_2_A1Value ) == ( 1 ) ) )){Serial.print("5");Serial.println();}}void ADGet(){_ABVAR_1_A0Value = analogRead(14) ;_ABVAR_2_A1Value = analogRead(15) ;_ABVAR_1_A0Value = map ( _ABVAR_1_A0Value , 0 , 1024 , 0 , 3 )   ;_ABVAR_2_A1Value = map ( _ABVAR_2_A1Value , 0 , 1024 , 0 , 3 )   ;}

② 参考例程(slave_.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-07-21 https://www.robotway.com/------------------------------*/int _ABVAR_1__data = 0 ;int _ABVAR_2__data_his = 0 ;int _ABVAR_3_0 = 0 ;void Right();void Select();void Left();void Stop();void Forward();void Back();void setup(){Serial.begin(9600);pinMode( 5 , OUTPUT);pinMode( 6 , OUTPUT);pinMode( 9 , OUTPUT);pinMode( 10 , OUTPUT);_ABVAR_1__data = 3 ;_ABVAR_2__data_his = 3 ;}void loop(){_ABVAR_1__data = Serial.parseInt() ;if (( ( _ABVAR_1__data ) > ( 0 ) )){Select();}else{_ABVAR_1__data = _ABVAR_2__data_his ;Select();}_ABVAR_2__data_his = _ABVAR_1__data ;_ABVAR_1__data = _ABVAR_3_0 ;delay( 50 );}void Left(){digitalWrite( 5 , LOW );digitalWrite( 6 , HIGH );digitalWrite( 9 , HIGH );digitalWrite( 10 , LOW );}void Stop(){digitalWrite( 5 , LOW );digitalWrite( 6 , LOW );digitalWrite( 9 , LOW );digitalWrite( 10 , LOW );}void Back(){digitalWrite( 5 , LOW );digitalWrite( 6 , HIGH );digitalWrite( 9 , LOW );digitalWrite( 10 , HIGH );}void Forward(){digitalWrite( 5 , HIGH );digitalWrite( 6 , LOW );digitalWrite( 9 , HIGH );digitalWrite( 10 , LOW );}void Select(){if (( ( _ABVAR_1__data ) == ( 1 ) )){Forward();}if (( ( _ABVAR_1__data ) == ( 2 ) )){Back();}if (( ( _ABVAR_1__data ) == ( 3 ) )){Stop();}if (( ( _ABVAR_1__data ) == ( 4 ) )){Left();}if (( ( _ABVAR_1__data ) == ( 5 ) )){Right();}}void Right(){digitalWrite( 5 , HIGH );digitalWrite( 6 , LOW );digitalWrite( 9 , LOW );digitalWrite( 10 , HIGH );}

3.2 硬件连接

     ① 将Birdmen手柄扩展板堆叠到下载了master_.ino的Basra主控板上,然后堆叠上NRF无线通信模块。

     ② 将Bigfish扩展板堆叠到下载了slave_.ino的Basra主控板上,再堆叠上NRF无线通信模块。

③ 将小型双轮差速底盘的直流电机连到Bigfish扩展板的电机接口上。

④ 用master右侧的摇杆遥控slave,调整电机的接线,直到摇杆动作和小车动作匹配。

程序源代码资料下载详见 小型双轮差速底盘-无线遥控

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

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

相关文章

unity 发布apk,在应用内下载安装apk(用于更大大版本)

*注意事项: 1,andriod 7.0 和 android 8.0是安卓系统的分水岭,需要分开来去实现相关内容2,注意自己的包名,在设置一些共享文件的时候需要放自己的包名3,以下是直接用arr包放入unity中直接使用的,不需要导入…

阿桂天山的技术小结:Flask+UEditor实现图片文件上传富文本编辑

话不多说,有图有源码 先看效果: 1.前端html页面index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><script src"{{ url_for(static,filenameueditor/ueditor.config.js) }}"></script…

一篇文章帮你拯救70%的购物车放弃率

想象一下&#xff0c;您倾注所有的心血到您的在线业务中&#xff0c;却面临着令人痛苦的购物车放弃率。这可能会让你痛苦不堪&#xff0c;错失了销售和收入的机会。 此外&#xff0c;你忠实的顾客可能会叛逃去使用竞争对手的产品&#xff0c;雪上加霜。通过再次在广告上支付客…

介绍一下我们的开源“充电之旅” - 两位新晋 Apache Flink Committer 专访

本文出自字节跳动流式计算团队的方勇、胡伟华同学专访。两位同学在 Apache Flink 社区主要贡献了包括 Runtime Coordinator、Streaming Warehouse 等相关 Feature。于2023年7月正式受邀成为 Apache Flink Committer。 在软件开发的世界中&#xff0c;开源已成为普遍关注的话题。…

Vite打包性能优化及填坑

最近在使用 Vite4.0 构建一个中型前端项目的过程中&#xff0c;遇到了一些坑&#xff0c;也做了一些项目在构建生产环境时的优化&#xff0c;在这里做一个记录&#xff0c;以便后期查阅。(完整配置在后面) 上面是dist文件夹的截图&#xff0c;里面的内容已经有30mb了&#xff…

E8267D 是德科技矢量信号发生器

描述 最先进的微波信号发生器 安捷伦E8267D PSG矢量信号发生器是业界首款集成式微波矢量信号发生器&#xff0c;I/Q调制最高可达44 GHz&#xff0c;典型输出功率为23 dBm&#xff0c;最高可达20 GHz&#xff0c;对于10 GHz信号&#xff0c;10 kHz偏移时的相位噪声为-120 dBc/…

QWidget的ui界面绘制成图片

文章目录 源文件源码解释效果修复图片清晰度 源文件 #include "widget.h" #include "ui_widget.h"#include <QPixmap> #include <QDir>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 构造…

神经网络与卷积神经网络

全连接神经网络 概念及应用场景 全连接神经网络是一种深度学习模型&#xff0c;也被称为多层感知机&#xff08;MLP&#xff09;。它由多个神经元组成的层级结构&#xff0c;每个神经元都与前一层的所有神经元相连&#xff0c;它们之间的连接权重是可训练的。每个神经元都计算…

cobbler自动化安装CentOS、windows和ubuntu

环境介绍 同时玩cobbler3.3和cobbler2.8.5 cobbler3.3 系统CentOS8.3 VMware虚拟机 桥接到物理网络 IP: 192.168.1.33 cobbler2.8.5 系统CentOS7.9 VMWare虚拟机 桥接到物理网络 IP&#xff1a;192.168.1.33 安装cobbler3.3 yum源修改 cat /etc/yum.repo.d/Cento…

如何通过内网穿透实现外部网络对Spring Boot服务端接口的HTTP监听和调试?

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

一篇文章带你了解-selenium工作原理详解

前言 Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Google Chrome&#xff0c…

Spring Security存在认证绕过漏洞 CVE-2021-22096

文章目录 0.前言1.参考文档2.基础介绍漏洞影响范围&#xff1a;官方说明&#xff1a;修复版本&#xff1a;漏洞利用步骤&#xff1a;修复方式&#xff1a; 3.解决方案 0.前言 背景&#xff1a;项目被扫到Spring Boot 的漏洞&#xff0c;严格的说应该是Spring Security 组件的漏…