当前位置: 首页 > news >正文

机器人制作开源方案 | 莲花灯

1. 功能描述

       莲花灯是一款基于莲花形象设计的机器人,本文示例将用两种模式来实现莲花灯的亮灭功能。
       自主模式:用 光强传感器 控制莲花灯的灯叶开合。暗光情况下灯叶打开,灯亮;强光情况下灯叶闭合,灯灭。
       遥控模式:采用 蓝牙串口模块控制灯叶开合。灯叶打开,灯亮;灯叶闭合,灯灭。

0-机器人制作开源方案 | 莲花灯

2. 结构说明

       莲花灯采用“探索者”结构件搭建、辅以外观设计而成,由曲柄摇杆机构和平行四连杆机构构成一个二级升降机构,通过杠杆来控制莲花灯的开合。

       莲花灯的灯叶开合主要是由膨胀机构来控制的,膨胀轮是整个结构的核心部分,这种结构的优点是可实现收缩和膨胀,从而来控制灯叶的开合。

膨胀轮

3. 电子硬件

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

电路连接:

       ① 灯带:连在Bigfish扩展板的D9、D10接口上
       ② 舵机:连在Bigfish扩展板的D4端口上
       ③ 蓝牙串口模块:安装在Bigfish扩展坞上
       ④ 光强传感器:连在Bigfish扩展板的A0端口上

4. 功能实现

4.1自主模式
编程环境:Arduino 1.8.19
下面提供一个实现暗光情况下灯叶打开,灯亮;强光情况下灯叶闭合,灯灭的参考程序(light.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-10-25 https://www.robotway.com/------------------------------*//** Light测试例程* 2018/04/17* ————————————* 接线:*    灯带:9、10*    舵机:4*    蓝牙:Bigfish扩展坞*    光强:A0* ————————————* 功能:*    控制模式:蓝牙控制灯叶开合*    自主模式:光强传感器控制灯叶开合*   *    灯叶打开,灯亮;灯叶闭合,灯灭*/#include <ServoTimer2.h>#include "light.h"ServoTimer2 myServo;int servo_port = 4;       //定义舵机引脚int sensor_port = A0;     //定义光强传感器引脚int servo_value = 1550;   //定义舵机初始值 PWM/*int open_angle = 1150;    //灯叶打开时舵机的值int close_angle = 1550;   //灯叶闭合时舵机的值*/void setup() {Serial.begin(9600);PortInit();myServo.write(servo_value);delay(1000);}void loop() {/*Bluetooth Mode*/   if(SerialRead() == '1'){Serial.println("Bluetooth Mode");while(true){switch(SerialRead()){case '2':Serial.println("OPEN");ServoGo(1150);   //OPENbreak;case '3':Serial.println("CLOSE");ServoGo(1550);   //CLOSEbreak;default:break;}if(SerialRead() == '4') {Serial.println("Auto Mode");break;}}}/* Auto Mode*/AutoMode();  }/*端口初始化*/void PortInit(){pinMode(sensor_port, INPUT);pinMode(servo_port, OUTPUT);pinMode(9, OUTPUT);pinMode(10, OUTPUT);digitalWrite(9, LOW);digitalWrite(10, LOW);myServo.attach(servo_port);}/*串口控制*/char SerialRead(){char c;while(Serial.available()) {c = Serial.read();  }return c;}/*自主模式*/void AutoMode(){if(digitalRead(sensor_port)){   //亮光下,光强返回值1,灯叶闭合,灯光关闭ServoGo(1550);}if(!digitalRead(sensor_port)){   //黑暗中,光强返回0,灯叶打开,灯光开启ServoGo(1150);}}/*舵机控制*/void ServoGo(int where){   //舵机控制函数,参数:目标角度int delta = where - servo_value;    //delta < 0: OPEN ; delta > 0: CLOSEif(delta == 0) return;float light_value = delta < 0 ? 0 : 255;   int diff = delta < 0 ? -1 : 1;for(int i=0;i<abs(delta);i++){servo_value += diff;if(delta < 0){light_value += 0.65;   //0.65 (255 / delta);if(light_value > 255) light_value = 255;}else if(delta > 0){light_value -= 0.65;if(light_value < 0) light_value = 0;}LightState(&light_value);  myServo.write(servo_value);delay(10);  }}/*灯光控制*/void LightState(float * value){analogWrite(9, *value);analogWrite(10, 0);}

4.2遥控模式
APP设置:将文末资料中的“BLE_SPP_PRO.apk”安装到手机中。
① 搜索蓝牙

​② 连接蓝牙

③ 模式选择

④ 按键设置

​⑤ 各按键发送值

5. 资料清单

①程序源代码
②样机3D文件
资料下载链接:莲花灯-概述

相关文章:

机器人制作开源方案 | 莲花灯

1. 功能描述 莲花灯是一款基于莲花形象设计的机器人&#xff0c;本文示例将用两种模式来实现莲花灯的亮灭功能。 自主模式&#xff1a;用 光强传感器 控制莲花灯的灯叶开合。暗光情况下灯叶打开&#xff0c;灯亮&#xff1b;强光情况下灯叶闭合&#xff0c;灯灭。 …...

华为无线ac+fit三层组网,每个ap发射不同的业务vlan

ap管理dhcp在ac控制器上&#xff0c;业务dhcp在汇聚上 配置WLAN业务 &#xff08;1&#xff09;配置VAP模板 • 配置员工网络的VAP模板&#xff08;employee&#xff09; [AC-wlan-view] security-profile name employee //创建名为“employee”的安全模板 [AC-wlan-sec-prof-…...

人工智能:科技之光,生活之美

在科技飞速发展的今天&#xff0c;人工智能已经深入到我们的生活中&#xff0c;它如同一束璀璨的科技之光&#xff0c;照亮我们生活的每一个角落&#xff0c;使我们的生活更加美好。下面我将从人工智能的领域、应用以及对人工智能的看法三个方面来谈谈它对我们生活的影响。 一、…...

mysql8.0英文OCP考试第61-70题

Q61.You wish to protect your MySQL database against SQL injection attacks. Which method would fail to do this? A)using stored procedures for any database access B)using PREPARED STATEMENTS C)installing and configuring the Connection Control plugin ( …...

WaveletPool:抗混叠在微小目标检测中的重要性

文章目录 摘要1、简介2、相关研究2.1、微小物体检测2.2. 抗锯齿过滤器3、方法3.1. Wavelet Pooling3.2 一致顺序的Wavelet Pooling的WaveCNet3.3、Bottom-Heavy Backbone4、实验4.1、预训练数据集4.2、微小目标检测数据集4.3、抗混叠方法的选择及应用顺序4.4、小波的选择4.5、T…...

文章系列2:Unraveling the functional dark matter through global metagenomics

这篇文章发布于2023年10月nature。通讯作者是来自于 DOE Joint Genome Institute, Lawrence Berkeley National Laboratory, Berkeley, CA, USA. 背景介绍&目标 作者首先背景介绍了两种主流宏基因组分析方法&#xff0c;包括reads-based reference mapping&#xff08;eg…...

ubuntu 20.04 搭建crash dump问题分析环境

ubuntu 20.04 搭建crash dump问题分析环境 1 安装依赖软件1.1 linux-dump1.2 kexec-tools1.3 安装crash工具1.4 安装gdb调试工具1.5 安装ubuntu内核调试符号1.5.1 GPG 秘钥导入1.5.2 添加仓库配置1.5.3 更新软件包1.5.4 下载和安装内核调试符号1.5.5 验证内核调试符号已经被安装…...

算法训练营一刷 总结篇

今天就是Day60了&#xff0c;坚持了两个月的算法训练营在今天结束了。这两个月中&#xff0c;学习、练习了许许多多的算法&#xff0c;坚持每天完成博客来打卡&#xff0c;养成了写C的习惯&#xff0c;现在相比于Python我反而更喜欢思路严谨的C。感谢这个平台&#xff0c;感谢C…...

Linux中的MFS分布式文件系统

目录 一、MFS分布式文件系统 1、MooseFS简介 2、Moose File System的体系结构 &#xff08;1&#xff09;MooseFS Master &#xff08;2&#xff09;MooseFS Chunk Server &#xff08;3&#xff09;MooseFS Metalogger &#xff08;4&#xff09;MooseFS Client &…...

气相色谱质谱仪样品传输装置中电动针阀和微泄漏阀的解决方案

标题 摘要&#xff1a;针对目前国内外各种质谱仪压差法进样装置无法准确控制进气流量&#xff0c;且无相应配套产品的问题&#xff0c;本文提出了相应的解决方案和配套部件。解决方案主要解决了制作更小流量毛细管和毛细管进气端真空压力精密控制问题&#xff0c;微流量毛细管的…...

ArkTS基础知识

ArkTS基础知识 ArkUI开发框架 ArkTS声明式开发范式 装饰器&#xff1a; 用来装饰类&#xff0c;结构体&#xff0c;方法及变量。如&#xff1a; Entry&#xff1a;入口组件 Component &#xff1a;表示自定义组件 State 都是装饰器&#xff1a;组件中的状态变量&#xff0c;该…...

Kotlin学习(二)

2.kotlin学习&#xff08;二&#xff09; 1.条件控制 package com.simon.secondfun main(args: Array<String>) {//ifvar a 1var b 2var max:Intif (a > b){max a}else{max b}//作为表达式结果赋值给max1 感觉这个简单啊var max1 if(a>b)a else bprintln(ma…...

LangChain 6根据图片生成推广文案HuggingFace中的image-caption模型

根据图片生成推广文案&#xff0c; 用的HuggingFace中的image-caption模型 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数…...

QFontDialog开发详解

QFontDialog 类是 Qt 框架中用于选择字体的对话框类。它允许用户选择字体的各种属性,如字体名称、字号、粗体、斜体等。以下是 QFontDialog 的一些常见用法和详解: 一、QFontDialog基本用法 #include <QApplication> #include <QFontDialog> #include <QMes…...

【C++进阶之路】第七篇:异常

文章目录 一、C语言传统的处理错误的方式二、 C异常概念三、异常的使用1.异常的抛出和捕获2.异常的重新抛出3.异常安全4.异常规范 四、自定义异常体系五、C标准库的异常体系&#xff08;了解&#xff09;六、异常的优缺点 一、C语言传统的处理错误的方式 传统的错误处理机制&am…...

shell 判断文件是否存在(csh bash)

文章目录 前言1. -e 判断文件是否存在2. -f 判断文件是否存在且为普通文件3. -d 判断文件是否存在且为目录3. -s 判断文件是否存在且不为空4. -r 判断文件是否存在且可读5. -w 判断文件是否存在且可写6. -x 判断文件是否存在且可执行 前言 Shell 编程能提升我们工作效率&#…...

第六年到第十年是分水岭

我今年懈怠了&#xff0c;觉得就这样了&#xff0c;看到知乎上有个大神的帖子&#xff0c;深受触动&#xff0c;前五年都差不多&#xff0c;第六年到第十年才是分水岭&#xff0c;是否愿意继续努力&#xff0c;才是关键。拷贝如下&#xff1a; 作者&#xff1a;技术王 来源&…...

关于标准库中的string类 - c++

目录 关于string类 string类的常用接口 string类常用接口的简单模拟实现 关于string类 string类在cplusplus.com的文档介绍 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同&#xff0c;再添加了一些专门用来操作string的常规操作。 3. string在…...

Chrome添加扩展程序

Crx4Chrome 下载crx 打开扩展程序 如果拖动crx文件到扩展程序提示只能通过Chrome应用商店添加此项内容 修改crx文件后缀为zip并解压&#xff0c;再拖动到扩展程序 Vue.js devtools...

C++单调向量算法:132模式枚举1简洁版

本题不同解法 包括题目及代码C二分查找算法&#xff1a;132 模式解法一枚举3C二分查找算法&#xff1a;132 模式解法二枚举2代码简洁C二分查找算法&#xff1a;132 模式解法三枚举1性能最佳C单调向量算法&#xff1a;132 模式解法三枚举1代码更简洁C二分查找算法&#xff1a;1…...

GB 4943.1-2022和GB/T 9254.1-2021标准换版,企业如何抓住2024年7月31日前完成认证?

GB 4943.1-2022与GB/T 9254.1-2021标准换版实战指南&#xff1a;企业高效合规路径 2024年7月31日这个时间节点&#xff0c;正在成为电子产品制造企业质量负责人的重点关注日期。随着GB 4943.1-2022和GB/T 9254.1-2021两项新国标的发布&#xff0c;取代原有的四项标准&#xff0…...

别再只看K线了!用Python+TA-Lib实战ASI指标,5分钟搞定你的量化选股策略

用PythonTA-Lib实战ASI指标&#xff1a;量化选股策略的5分钟代码实现 在量化交易的世界里&#xff0c;技术指标如同航海图上的坐标&#xff0c;而ASI&#xff08;Accumulation Swing Index&#xff09;指标则是其中一把独特的量尺。不同于传统指标仅关注价格变动&#xff0c;AS…...

FIR威胁情报集成:如何利用YETI框架增强事件响应能力

FIR威胁情报集成&#xff1a;如何利用YETI框架增强事件响应能力 【免费下载链接】FIR Fast Incident Response 项目地址: https://gitcode.com/gh_mirrors/fi/FIR FIR&#xff08;Fast Incident Response&#xff09;作为一款高效的事件响应工具&#xff0c;通过与YETI威…...

独立开发者如何借助Taotoken为产品集成灵活的AI能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助Taotoken为产品集成灵活的AI能力 为SaaS产品添加智能对话或内容生成功能&#xff0c;已成为许多独立开发者提升…...

避坑指南:用51单片机驱动HC-SR04超声波模块,这5个细节没处理好,测距肯定不准!

51单片机驱动HC-SR04超声波模块的五大实战避坑指南 超声波测距在嵌入式开发中应用广泛&#xff0c;但很多开发者在使用51单片机驱动HC-SR04模块时&#xff0c;常常会遇到测距不准、数据跳变甚至完全无法工作的问题。本文将深入剖析五个最容易被忽视的关键细节&#xff0c;这些细…...

别再一帧帧画框了!用CVAT的Track模式,5分钟搞定视频目标追踪标注

别再一帧帧画框了&#xff01;用CVAT的Track模式&#xff0c;5分钟搞定视频目标追踪标注 视频标注是计算机视觉项目中最耗时的环节之一。想象一下&#xff0c;你需要标注一段30分钟的道路监控视频&#xff0c;其中包含数十辆移动的汽车和行人。如果采用传统逐帧标注的方法&…...

观测ubuntu服务器调用taotoken api的延迟与token消耗情况

观测 Ubuntu 服务器调用 Taotoken API 的延迟与 Token 消耗情况 在将大模型能力集成到生产环境时&#xff0c;开发者不仅关注功能的实现&#xff0c;更关心服务的稳定性和成本的可控性。对于在 Ubuntu 服务器上部署的应用&#xff0c;通过 Taotoken 平台统一接入多家模型后&am…...

AI记忆系统:为LLM应用构建长期、结构化记忆的架构与实践

1. 项目概述&#xff1a;AI记忆系统的核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫tlconde/ai-memory。光看名字&#xff0c;你可能会觉得这又是一个关于AI模型参数存储或者缓存机制的库。但深入探究后&#xff0c;我发现它的定位远比这要精巧和实用。简单来说…...

ChanlunX:通达信缠论分析插件的技术实现与应用实践

ChanlunX&#xff1a;通达信缠论分析插件的技术实现与应用实践 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 开发者的缠论分析困境 在量化交易与技术分析领域&#xff0c;缠论作为一种系统化的市场结构…...

别再只用`uvicorn main:app`了!这5个实战配置技巧让你的FastAPI服务性能翻倍

别再只用uvicorn main:app了&#xff01;这5个实战配置技巧让你的FastAPI服务性能翻倍 当你的FastAPI应用从开发环境走向生产环境时&#xff0c;简单的uvicorn main:app命令已经无法满足性能和安全需求。本文将深入探讨5个关键配置技巧&#xff0c;帮助你在真实流量场景下实现服…...