您的位置:首页 > 财经 > 产业 > 网站免费制作教程_郑州小程序开发制作_深圳营销型网站设计公司_营销手段

网站免费制作教程_郑州小程序开发制作_深圳营销型网站设计公司_营销手段

2024/12/23 10:04:18 来源:https://blog.csdn.net/weixin_51141489/article/details/142895349  浏览:    关键词:网站免费制作教程_郑州小程序开发制作_深圳营销型网站设计公司_营销手段
网站免费制作教程_郑州小程序开发制作_深圳营销型网站设计公司_营销手段

打造你的完美泡茶助手

引言

你是否曾遇到过泡出的茶太淡或太苦?通过这个项目,你可以创建一个设备,为你的茶包提供完美的浸泡时间。只需附上一个茶包并放置你的杯子,设备就会开始工作!它将完美地按照你的喜好浸泡你的茶。
实物图:
在这里插入图片描述
在这里插入图片描述

材料清单

  • 4毫米厚的木材
  • Arduino Uno
  • SG90伺服电机
  • 超声波传感器
  • Arduino电缆和软排线
  • 胶带
  • 双面胶带
  • 夹子(或其它小夹具)
  • 杯子

所需机器/工具:

  • 3D打印机
  • 激光木材切割机
  • 热熔胶枪

制作步骤

步骤1:切割木质基座

在这里插入图片描述

首先,我们需要一个基座来构建我们的泡茶机器。使用激光切割机切割4毫米厚的木材。

开始根据提供的模板激光切割4毫米木材。如果你的激光切割机支持svg文件,可以使用.svg文件。我也包含了原始的Adobe Illustrator文件,以防你的激光切割机需要特定的导出设置。

注意:附带的图片中的前面板没有为超声波传感器预留孔。但是.svg和.ai文件中为这个传感器预留了空间。

步骤2:组装木质基座

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当然,在我们切割出木质模板后,我们还需要将其组装起来。

这一步你需要以下材料:

  • 胶带
  • 双面胶带
  • 步骤1中切割的木材
  • 热熔胶枪
  • 超声波传感器

首先,取“前面板”(带有两个小孔的面板),将你的超声波传感器“眼睛”插入孔中。然后使用一些热熔胶保持超声波传感器的位置。我不得不弯曲我的4个连接针脚,因为它们朝下。针脚应该像图片中那样朝外。

基座板
开始组装,在“基座1”模板顶部添加一些双面胶带。确保不要在圆形开口处粘贴胶带。

在“基座1”和“基座2”之间夹上双面胶带,然后将“基座2”板紧紧压在“基座1”板上。这将形成一个约8毫米厚的基座板,由两个基座板组成。

盒子
在组装基座板后,我们需要制作放在上面的“盒子”。首先取一个“侧板”并将其滑入基座板,另一侧重复此步骤。

现在插入带有已连接超声波传感器的前面板。你可能需要稍微抬起侧面以将其放入。

通过将“顶部”件放在侧面和前板上来组装屋顶。

你可以用一些胶带或热熔胶来固定“盒子”,具体取决于你的喜好。我使用了胶带将盒子的侧面固定在一起。

注意:完成所有这些步骤后,你应该还剩下一块木材,这块木材将在后面的步骤中使用。

步骤3:打印

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

现在我们想要打印一个保护和安装套件,用于我们的Arduino。下载并打印2个Arduino.stl文件,以获得套件的顶部和底部。

组装套件
首先将你的Arduino放入套件的底部部分。如果你有所需的螺丝,可以用螺丝固定,但我直接放了进去。然后取套件的顶盖,轻轻地将其放在底部盖和Arduino上,封闭套件。

对于我们的伺服电机,我们需要一些铰链系统来允许提起茶包。为此,请使用附件中提供的“臂”,“基座”和“盖子”.stl文件。

组装伺服铰链
首先取你的伺服电机,将其放入base.stl的合适插槽中。取cover.stl打印件并像图片一样放在基座上。我使用了双面胶带来固定它,但如果你有合适的螺母和螺栓,也可以使用它们。

在盖子上好后,你可以将臂部连接到基座上。为此,取下伺服臂,将大孔放在现在空的伺服臂连接部分上,然后轻轻旋转臂部,直到另一端适合基座孔。在它点击到位后,用螺丝将原始伺服臂连接到伺服上,并确保你得到所需的旋转,以不限制后续的旋转。

步骤4:电子设备

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

让我们使其移动。

这一步你需要以下材料:

  • 你的Arduino Uno及其套件
  • 超声波传感器(在前木板上)
  • 伺服电机
  • Arduino电缆和软排线
  • 双面胶带或热熔胶枪

电子设备
我们想要将Arduino Uno连接到伺服电机和超声波传感器。为了连接这些组件,我使用了第一张图片中提供的布线方案。

首先,将超声波传感器的GND和VCC引脚连接到Arduino的GND和3.3V端口。TRIG和ECHO引脚应按顺序连接到端口2和3。

你想将伺服电机的GND和PWR引脚连接到Arduino的5V和GND引脚。伺服数据应连接到引脚4。理想情况下,你只会将伺服PWR连接到外部电源,但在我的情况下,我不需要它。

代码

#include <Servo.h>
// pins
const int trigPin = 2; // trig pin for ultrasonic sensor
const int echoPin = 3; // echo pin for ultrasonic sensor
const int servoPin = 4; // pin for writing to servo// distance
float minCheckDistance = 2.0; // min check distance in CM
float maxCheckDistance = 8.0; // max check distance in CM
float echoDuration, distance;
float averageDistance[10] = {0};// servo
Servo serv;
const int minPos = 75; // servo maximum position while dipping
const int maxPos = 100; // servo minimum position while dipping
const int restingPos = 130; // servo resting position when not dipping
int targetPos = restingPos;
int pos = restingPos;// time
unsigned long time = millis();
unsigned long startTime = time;
unsigned long dipDuration = 60000; // duration of commenced dipping in milliseconds
bool dipping = false;
bool reset = false;void setup() {// enable pinspinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);serv.attach(servoPin);serv.write(pos);delay(300);
}void loop() {time = millis();// insert a distance into the arraydistance = checkDistance();for (int i = 0; i < 9; i++) {averageDistance[i] = averageDistance[i + 1];}averageDistance[9] = distance;// handle the setting down cup and removing it againif (checkAverageDistance()) {if (time >= startTime + dipDuration && dipping) {dipping = false;reset = true;} else if (!dipping && !reset) {startTime = time;dipping = true;}} else if (!checkAverageDistance()) {dipping = false;reset = false;}// handle servoif (!dipping) {targetPos = restingPos;} else {if (pos >= maxPos) {targetPos = minPos;} else if (pos <= minPos) {targetPos = maxPos;}}moveServo();delay(50);
}void moveServo() {if (pos < targetPos) {pos += 1;serv.write(pos);} else if (pos > targetPos) {pos -= 1;serv.write(pos);}
}float checkAverageDistance() {// check if the average distance in the last 10 echoes is still around our target (3 echoes or more)int avg = 0;for (byte i = 0; i < 10; i++) {if (averageDistance[i] <= maxCheckDistance && averageDistance[i] >= minCheckDistance) {avg++;}}return avg >= 3;
}float checkDistance() {// pulse the signal so we get echoesdigitalWrite(trigPin, LOW);delayMicroseconds(2);digitalWrite(trigPin, HIGH);delayMicroseconds(10);digitalWrite(trigPin, LOW);echoDuration = pulseIn(echoPin, HIGH);return (echoDuration * 0.0343) / 2;
}

这段代码为我们的泡茶设备提供动力,通过使用超声波传感器读取物体(茶杯)的距离,我们可以选择开始移动伺服电机。如果茶杯放在传感器前,伺服电机将开始在两个位置(minPos和maxPos)之间来回摆动,持续选择的时间(dipDuration)。如果杯子被移除,伺服电机将被告知返回到休息位置(restingPos)。通过改变这4个值(minPos,maxPos,dipDuration,restingPos),你可以告诉伺服电机浸泡的高度、低度、持续时间和不浸泡时的位置。

将代码更改为你首选的设置,并上传到你的Arduino Uno。

步骤5:手臂

在这里插入图片描述

对于设备的最后部分,我们需要一些东西来握住茶包。

这一步你需要以下材料:

  • 步骤1中的最后一块木材
  • 双面胶带
  • 胶带
  • 热熔胶枪
  • 夹子或其它小夹

完成结果

在这里插入图片描述
是时候测试你的泡茶助手了。

首先,将Arduino连接到电源。然后选择你最喜欢的茶叶,烧些开水,倒入杯中。使用夹子将茶包固定在泡茶机的臂上。然后,魔法就发生了。将你的杯子放在圆形的凹槽上,让它将茶包浸入杯中。

希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。

作者:Svan.


注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com