基于Arduino的宠物食物分配器
创作本文的初衷是本人的一个养宠物的梦想(因为家里人对宠物过敏,因此养宠物的action一直没有落实),但是梦想总是要有的哈哈哈哈哈。上周正好是和一个很好的朋友见面,聊到了养宠物的事情,她大概是讲到了喂宠物以及对宠物的日常打理是最头疼的事情。基于这样的一个问题,我想能不能设计一款喂养宠物的食物分配器,来减轻喂养宠物的繁杂的工作。
此外,由于本人以前没有使用过舵机,因此舵机部分参考了网上的一些教程,因此项目目前不是太成熟,如果大家有好的想法可以和我一起交流,谢谢!!
基于Arduino的宠物食物分配器
- 一、关于项目的说明
- 二、需要的器件
- 三、Arduino代码和电路
- 四、测试电路
- 五、硬件设置
- 六、机械结构设计
- 七、使用方法
一、关于项目的说明
嘿,宠物爱好者们,这篇教程对你们可能非常有帮助!的确是这样,因为它是宠物主人的救星!宠物主人最常见的活动就是按时喂养他们的宠物,但许多人都有忘记喂食他们可爱宠物的习惯。
你有没有想过使用微控制器和一些电子设备会有什么结果?这将导致一个非常有用的产品的诞生,它绝对可以节省时间并确保每个饥饿的肚子都得到满足。
首先,让我来解释一下这个项目是如何工作的,如果你是新接触项目制作的话。在这个项目中,我们使用了2个HC-SR04传感器,也就是超声波传感器,它以发射和接收超声波波而闻名。在它们的传输路径上,如果遇到任何物体,那么接收信号的时间延迟将被用来控制伺服电机。伺服电机连接到宠物食物储存容器,根据设置它会分配出所需的食物量。
实物图如下:

视频展示:
基于Arduino的宠物食物分配器
二、需要的器件
准备好所有这些材料,这样你就可以顺利地进行这个项目了。
- Arduino Uno
- 超声波传感器(HC-SR04) x2
- 跳线
- 微型伺服电机
- Arduino编程线
- 小型面包板
- 塑料瓶(回收的水瓶)
- 切割工具
- 纸板
- 宠物喜欢的食物颗粒
- 热熔胶
- 宠物
三、Arduino代码和电路


第一步是上传代码,这是一项非常简单的任务,只需打开电脑上的Arduino IDE,如果你没有IDE,你可以从官方的Arduino网站下载。打开它并粘贴Arduino代码,选择正确的主板类型和端口类型,然后点击上传按钮。代码上传到你的主板上之后,我们可以开始用跳线连接组件。
我将把电路分成两部分:
- HC-SR04部分和伺服部分。
我们使用了2个超声波传感器,两个传感器的作用是相同的。两个传感器的Gnd和Vcc都连接到面包板上的Gnd和5V电源轨。
- 第一个传感器的Trig和Echo引脚分别连接到D9和D8引脚,第二个传感器连接到D7和D6引脚,按照给定的顺序。
伺服电机有3个引脚:信号、Gnd和Vcc。
在这里,信号引脚连接到D3,Gnd连接到Gnd,Vcc连接到5V引脚。面包板上的Gnd和5V引脚连接到Uno主板,这样就完成了分配器的电路。
四、测试电路



就像我之前提到的,我们使用超声波传感器作为一个开关,电路应该这样工作:
每当在8厘米范围内检测到任何障碍物时,伺服电机的角应该在特定时间内移动到某个特定的角度。这个参数可以调整,以控制食物的分配流动以及伺服电机应该分配食物的距离。你可能会想为什么我使用了2个逻辑引脚而不是1个,因为2个超声波传感器执行相同的动作。原因是我们使用来自传感器1和2的独立信号,以便无缝控制伺服电机。
五、硬件设置




我将把所有电子组件放置在一块纸板上,使用少量的热熔胶将所有组件粘在板上,确保没有裸露的电线,并使用热熔胶密封连接处。这种分配器没有固定的设置类型,根据你的需求,传感器可以放置在适合我的案例中,这种设置最适合像猫、狗和鸡这样的宠物。
使用适量的热熔胶来固定所有电子设备,确保使用食品级塑料来填充储存容器,并在需要时覆盖容器。完成这些后,我们可以开始制作食物分配机制。
六、机械结构设计



该机制由伺服电机的角驱动,每当伺服电机的角移动时,它就控制着一个小滑块,而这个滑块反过来又控制着它后面的储存容器。这意味着该机制需要足够坚固,既要能够支撑住,也要允许食物通过。
我使用了塑料容器的盖子和倒置的瓶子顶部来制作食物通道区域。你也可以在里面添加一些小滑块,让食物可以从两侧滑下。不要使用过热的热熔胶,因为我们在这里处理的是塑料。看看我在这个项目中将要使用的机制,从第二张图片中可以看到,根据你的需求自由定制这个机制。
由于考虑到成本问题采用的现有的化学品瓶做的容器,但是现实中大家还是选择标准的容器制作吧
七、使用方法

使用这个设备并不复杂,只需将储存容器填满你的宠物喜欢的食物,在我这个例子中,我填入了未去壳的大米。轻敲分配区域,以便食物流动没有任何延迟。
将主板连接到USB电源,我建议使用大容量的充电宝。只需将你的手放在传感器前面,伺服电机就会移动分配食物。如果你觉得正在分配的食物量太大,你可以通过代码减少伺服电机角的移动角度。
这就是关于这个食物分配器的全部内容,如果你有任何问题,请在评论中提问,感谢阅读。
我没有宠物来去测试项目的实际应用效果。这个项目就介绍到这里了,如果你制作了这个项目,请发布你的图片,谢谢,祝搭建愉快
希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。
作者:Svan.
注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!
相关文章:
基于Arduino的宠物食物分配器
创作本文的初衷是本人的一个养宠物的梦想(因为家里人对宠物过敏,因此养宠物的action一直没有落实),但是梦想总是要有的哈哈哈哈哈。上周正好是和一个很好的朋友见面,聊到了养宠物的事情,她大概是讲到了喂宠…...
make和Makefile
make是一个命令工具,用于读取并执行名为Makefile(makefile)的文件中定义的规则。 Makefile是一个文本文件,它告诉make哪些文件依赖于其他文件,以及如何从这些依赖项生成最终的目标文件。 我们先简单看一下使用make的…...
【数学分析笔记】第4章第4节 复合函数求导法则及其应用(2)
4. 微分 4.4 复合函数求导法则及其应用 【例4.4.3】 y e 1 cos x ye^{\sqrt{1\cos x}} ye1cosx ,求 y ′ y y′ 【解】 y ′ e 1 cos x ⋅ 1 2 1 cos x ⋅ ( − sin x ) − sin x 2 1 cos x e 1 cos x ye^{\sqrt{1\cos x}}\cdot\f…...
【预备理论知识——2】深度学习:线性代数概述
简单地说,机器学习就是做出预测。 线性代数 线性代数是数学的一个分支,主要研究向量空间、线性方程组、矩阵理论、线性变换、特征值和特征向量、内积空间等概念。它是现代数学的基础之一,并且在物理学、工程学、计算机科学、经济学等领域有着…...
【目标检测】yolo的三种数据集格式
目标检测中数据集格式之间的相互转换--coco、voc、yolohttps://zhuanlan.zhihu.com/p/461488682?utm_mediumsocial&utm_psn1825483604463071232&utm_sourcewechat_session【目标检测】yolo的三种数据集格式https://zhuanlan.zhihu.com/p/525950939?utm_mediumsocial&…...
数据分析案例-机器学习工程师薪资数据可视化分析
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
Django连接Dify、ChatGPT4o并计算tokens数量方法
通过Dify可以连接很多模型国内、国外的都可以进行选择可以到Dify里创建一个空白应用,然后点击进入就可以看到API了api_url "http://192.168.15.131/v1/chat-messages" api_key "app-UtzTpVNwpTLUcGvRNnnK9QNY" headers {"Authorization…...
面试系列-淘天提前批面试
00-淘天提前批面试 在牛客上看到了淘天提前批的面试题目,这里分析一下淘天面试的问了有哪些内容,面试的重点 是偏向哪些方面 项目相关 1、秒杀架构如何设计? 问了秒杀的架构如何设计,对于秒杀的设计,秒杀符合 写多读少…...
计算机中科学中有哪些空间换时间的操作??
计算机中科学中有哪些空间换时间的操作?? 1. SPOOLing (Simultaneous Peripheral Operations On-Line) 原理:SPOOLing 是一种将输入/输出操作缓存到磁盘或内存中的技术,从而在后台处理它们。这可以防止 CPU 等待慢速的外部设备&…...
Mac安装Manim并运行
1.在macOS上创建Python虚拟环境,可以使用venv模块,这是Python自带的库,也可以使用conda。以下是使用venv创建和使用Python虚拟环境的步骤: 打开终端。 创建一个新的目录来存放你的项目,并进入该目录: mk…...
leetcode58:最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大 子字符串 。 示例 1: 输入:s "Hello World" 输出ÿ…...
18448 最小生成树
### 思路 使用Kruskal算法求解图的最小生成树。Kruskal算法通过对所有边按权值排序,然后逐步选择最小权值的边,确保不会形成环,直到构建出最小生成树。 ### 伪代码 1. 读取输入的结点数n和边数m。 2. 读取每条边的信息,存储在边列…...
前端工程化 - Vue
环境准备 Vue-cli是Vue官方提供的一个脚手架,用户快速生成一个Vue的项目模板。 Vue-cli提供了如下功能: 统一的目录结构本地调试热部署单元测试集成打包上线 需要安装Node.js 安装Vue-cli npm install -g vue/cli通过vue --version指令查看是否安装成…...
使用 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力
通过 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力 文章目录 前言一、机密计算二、使用 NVIDIA H100 Tensor Core GPU 的 Azure 机密计算1. 安全功能2. 可扩展性和可编程性三、场景1. 模型机密性2. 推理/提示机密性3. 使用私有数据进行微调4. 多方培训结论前言 这是…...
目标检测与图像分类:有什么区别?各自的使用场景是什么?
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
Lua 数据类型
Lua 数据类型 Lua 是一种轻量级的编程语言,因其简单性和灵活性而广受欢迎。在 Lua 中,数据类型是编程的基础,它们决定了变量能够存储哪种类型的数据。Lua 的数据类型可以分为以下几个类别: 1. nil nil 是 Lua 中的一个特殊类型…...
复现文章:R语言复现文章画图
文章目录 介绍数据和代码图1图2图6附图2附图3附图4附图5附图6 介绍 文章提供画图代码和数据,本文记录 数据和代码 数据可从以下链接下载(画图所需要的所有数据): 百度云盘链接: https://pan.baidu.com/s/1peU1f8_TG2kUKXftkpYq…...
东方仙盟——软件终端架构思维———未来之窗行业应用跨平台架构
一、创生.前世今生 在当今的数字化时代,我们的服务覆盖全球,拥有数亿客户。然而,这庞大的用户规模也带来了巨大的挑战。安全问题至关重要,任何一处的漏洞都可能引发严重的数据泄露危机。网络带宽时刻面临考验,稍有不足…...
支持向量机(SVM)基础教程
一、引言 支持向量机(Support Vector Machine,简称SVM)是一种高效的监督学习算法,广泛应用 于分类和回归分析。SVM以其强大的泛化能力、简洁的数学形式和优秀的分类效果而备受机器学 习领域的青睐。 二、SVM基本原理 2.1 最大间…...
Python小示例——质地不均匀的硬币概率统计
在概率论和统计学中,随机事件的行为可以通过大量实验来研究。在日常生活中,我们经常用硬币进行抽样,比如抛硬币来决定某个结果。然而,当我们处理的是“质地不均匀”的硬币时,事情就变得复杂了。质地不均匀的硬币意味着…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
