机械花—一款基于arduino的情人节礼物

2024-02-15 07:10

本文主要是介绍机械花—一款基于arduino的情人节礼物,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

构思

材料清单

传动设计

电路设计

软件设计

效果


构思

受了国外一个视频的启发,我也打算做一个机器花,送给老婆做情人节礼物。花朵应该具备张开和关闭两个功能,最好能便捷的用手势控制。为了让产品更生动,表现力更强,机械花的旁边还应有LED作点缀。

自制机器花效果展示

材料清单

一个微型电机从x宝上购买,

一卷细铜线,

再加上两块铝板(自行切割),

若干螺栓,螺母

橡皮2块,

手术刀一把,

Arduino Leonardo开发板一块,

吸管一根,

烤串用木签一根,

502胶水一管,

LED两个,

一个塑料花盆,

红外传感器一个,购自x宝

电钻台一个,

手摇钻,

硬纸壳若干。

 

传动设计

1先用手术刀将一块橡皮镂空,刚好把螺母塞入.塞入后,为保证两者牢固连接,可以用胶水粘连两者相接处。(502凝固的时间为24小时)

2 用钻台在一块铝板上打孔,将微型电机安装到铝板上。

3 在第一步的橡皮上再钻一个小孔,孔的直径应能允许木签穿过该孔,但被孔夹紧。

4 将塞入螺母的橡皮安装到微型电机的螺杆上。

5 将两块铝板上下重叠放置,确定木签的位置。然后在木签将要穿过的位置打孔。考虑到测量误差等因素,孔径应留余量,最好略大于吸管的直径。

6 在两块铝板的四个角附近打孔,然后用四根螺栓穿过这八个孔,固定铝板的上下位置。

7 以如下尺寸剪切3片硬纸壳:单位厘米

8 将另一块橡皮切割为边长2厘米的正三角形。并用手摇钻在橡皮中心钻开一个圆孔,供吸管插入。

9 用手摇钻在三角形橡皮的三个顶角处,沿平行于三角形的方向,钻三个细小的孔,供铜线穿过。

10 截取三条足够长的铜线,沿木签轴向,贴木签表面放置,用透明胶带固定。三条铜线分隔120°。铜线应比木签至少长出9厘米

11 将吸管插入上层铝板的孔内,用胶水固定,如下图所示

12 将木签从吸管上端插入,穿过与电机螺杆相连的橡皮,一直插到超过底层铝板的孔位。

13 将第7步准备的纸壳掰成下图所示的花瓣形状,并在每片花瓣的底角处扎三个孔,供细铜丝穿过.在每片花瓣中轴线距底部2厘米处也扎一个细孔。

14 截取三根细铜丝,先穿过正三角形的橡皮顶角,然后铜丝两端各自穿过花瓣的底角的三个孔,然后用胶水或者透明胶固定:

15 三片花瓣组装在一起的效果:

16 从木签顶端伸出三条细铜丝。三条铜丝分别穿过三片花瓣的中间小孔(第13步).穿过花瓣后,铜丝末端用透明胶带粘在花瓣背面。

机器花原理解释

 

电路设计

第一张电路图展示驱动电路。D2与D6分别是arduino leonardo的数字引脚2、6.

根据软件设计(见后面),2与6不会同时高电平。当D2处于高电平时,D6低电平。此时左半边晶体管Q1 Q2导通。电机正转。反之,Q3 Q4导通,电机反转。

第二张电路图展示手势控制电路。手第一次扫过传感器,Vout+与Vout-电压差为9伏。则Arduino的模拟输入口A1 A3之间电压差为4.5V左右。再次扫过传感器,Vout+与Vout-之间压差为零,A1 A3之间压差也为零。

软件设计

int iReadIR = 0;
int iPrevIR = 0;
bool bBloom = false;
int analogPin1 = A1, analogPin2 = A3;void setup() {// put your setup code here, to run once:int iV1 = analogRead(analogPin1);int iV2 = analogRead(analogPin2);if(iV1 - iV2 > 512){iReadIR = 1;}else{iReadIR = 0;}iPrevIR = iReadIR;pinMode(6, OUTPUT);pinMode(2, OUTPUT);pinMode(13, OUTPUT);digitalWrite(13, LOW);
}void loop() {// put your main code here, to run repeatedly:if(iPrevIR != iReadIR){if(bBloom){vClose();//花瓣收起bBloom = false;}else{vBloom();//开花bBloom = true;}}iPrevIR = iReadIR;int iV1 = analogRead(analogPin1);//读取A1 A3电压int iV2 = analogRead(analogPin2);if(iV1 - iV2 > 512)//arduino的模拟口以1024为最大值。当arduino的电源电压为9伏时,512就代表4.5伏{iReadIR = 1;}else{iReadIR = 0;}delay(100);
}void vClose(void)
{digitalWrite(6, HIGH);//D6高电平digitalWrite(2, LOW);//D2低电平digitalWrite(13, LOW);delay(45000);digitalWrite(6, LOW);//待花瓣闭合,D6低电平
}void vBloom(void)
{digitalWrite(6, LOW);//D6低电平digitalWrite(2, HIGH);//D2高电平for(int k = 0; k < 45; k++){digitalWrite(13, LOW);delay(500);digitalWrite(13, HIGH);delay(500);}digitalWrite(2, LOW);//待花瓣完全绽放,D2低电平
}

 

效果

自制机器花效果展示

 

这篇关于机械花—一款基于arduino的情人节礼物的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/710724

相关文章

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

有关机械硬盘的基础知识

1,机械硬盘的品牌   目前市场中常见的笔记本电脑的机械硬盘品牌主要有希捷、西部数据、三星等。   2,机械硬盘的容量   硬盘容量,即硬盘所能存储的最大数据量。虽然笔记本电脑硬盘的容量会因单位密度的提升而增加,不过和台式电脑的大容量比起来,笔记本电脑硬盘的容量仍然落后许多。笔记本电脑的硬盘除了对磁盘有体积较小和数量较少的要求之外,对功耗、耐用程度、抗震性及成本等的考虑,也让笔记

推荐一款强大的OCR软件,请低调使用!

今天给大家分享一款开源的OCR识别软件,可以提升大家的办公效率——Umi-OCR,支持window​和Linux系统。 Umi-OCR支持提取一张图片或者多张图片的信息,只需通过右边的功能页选择相应的功能。 点击左边的“截图OCR”进入页面 点击“截图”按钮选取截图区域,直接在右边的记录中​提取出截图中的信息。 批量OCR功能也一样,点击左边菜单的“批量OCR”菜单

828华为云征文|基于Flexus云服务器X实例的应用场景-拥有一款自己的ssl监控工具

先看这里 写在前面效果图华为云Flexus云服务器X实例介绍特点可选配置购买 连接服务器Uptime-kuma简介开源信息部署准备工作:docker部署命令访问uptime-kuma 基本配置总结 写在前面 作为一个个人开发者,相信你手里肯定也有不少自己的服务,有的服务呢也是https的。 以前ssl各厂都是可以免费申请一年的,我们更换的频率还好,比较小;但是最近,各厂都

AI文献综述神器,有这一款就够了!

我是娜姐 @迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 当前的AI辅助文献综述的工具有很多,如果说功能最强大的,娜姐无疑要推SciSpace了。 SciSpace利用强大的AI算法,理解并建立研究论文之间的联系,可以大大提升文献综述的质量和效率。并且其功能还在不断更新和完善。        1 强大的语义搜索功能 传统的关键词搜索可能会遗漏相关文献,Sc

一款云端测试平台是如何炼成的?

有一款应用,它具备了让人眼前一亮的创意和一个非常专业的初创团队,所有人都认为成功离它只有一步之遥。但在上线一两天内竟由于用户流量太大,导致应用频繁宕机,而不得不暂停服务。 当技术团队通宵达旦的查找问题时,却发现是当初设计的架构导致了今天的严重故障。在无奈的回炉再造后,新推出的版本不仅后台架构变了,UI 也变了,造成了非常大的人力和时间的浪费。甚至可能在回炉期间错过转瞬即逝的市场先机。 以上这个

思路与实现:一个人如何独立完成一款双端App

作为一名独立开发者,经常需要掌握各方面的技术与方法,无论是构思还是设计还是开发,都需要自己一个人去完成。 这时候,利用一些省力高效的诀窍便可以事半功倍,下面小编就来和大家分享一下小编的作品《跑车之家》的开发过程。 【灵感篇】 小编是名汽车迷,尤其是性能车、跑车迷,突然就想起做一款炫酷的跑车展览App,让用户以一种欣赏的方式去了解跑车。 首先想到的展览方式就是比较流行的卡片式滑动

胖哥的经验 | 一款普适的实时数仓架构设计

什么?胖哥的经验,没错这是来自我们大数据成神之路小伙伴的经验。有什么问题,欢迎大家加群讨论,公众号回复【加群】。 一、实时数仓的架构背景 首先我们来聊一聊实时数仓是怎么诞生的,在离线数仓的时候数据是T+1的也就是隔一天才能看到昨天的数据,这种形式持续了很久的时间,但是有些场景真的只有实时的数据才有用武之地。例如推荐、风控、考核等。那么这个时候实时指标也就应运而生,在最开始的时候,采用flink\

moonlight串流配置太复杂?推荐一款无需配置的宝藏串流软件GameViewer远程

moonlight支持将PC游戏实时串流到安卓、iOS、Apple TV、Chromebook、PS Vita甚至Raspberry Pi等设备上,让用户无需携带笨重的游戏设备,即可随时随地进行游戏。 但是moonlight的门槛较高,很多串流新手不懂得如何配置,同时如果没有IPV6内网穿透则无法使用,这也是很多玩家想尝试moonlight但是被复杂的设置劝退了的原因。如果你因为配置门