如何手搓一个智能激光逗猫棒

news2024/12/27 23:19:20

背景

最近家里的猫胖了,所以我就想做个逗猫棒。找了一圈市场上的智能逗猫棒,运行轨迹比较单一,互动性不足。

在这里插入图片描述

轨迹单一,活动范围有限
在这里插入图片描述

而我希望后续可以结合人工智能+物联网,通过摄像头来捕捉猫的位置,让小猫可以追着这个激光走。

第一个版本

这是刚刚做好的样子,实现了基本的机械结构,使用两个舵机分别控制激光头的照射方向,使用了一块ESP32 Mini来驱动舵机。

在这里插入图片描述

舵机的声音和镜片的光点吸引来了这个大胖子:
在这里插入图片描述
这个版本有几个问题

  1. 外壳前面出光的地方没有遮挡,容易暴露里面的元件,舵机动作还会分散小猫的注意力,于是就考虑给它加块玻璃。
  2. 激光运动存在梯形失真,光投出来之后因为是斜的,所以投在地面上的范围是一个梯形。
  3. 没有实现交互,还没有办法实现远程控制、按指定轨迹运行。
  4. 还没有实现智能化的控制,如拍照录像、远程查看宠物状态、远程互动等等。

最后这个问题优先级可以放低点,可以先解决玻璃面板和梯形失真的问题

加块玻璃

用一块红色的透明亚克力给它做个玻璃面板,这个玻璃面板费了老大劲。

首先直接贴,是不行的。

因为直接贴的话镜片会凸出来,要么就是凹了一层会很不好看啊。

第二个方案,是找淘宝的第三方去帮我代加工。

我本来预期可能是几十块钱解决的问题,结果它小小的一个镜片,他要收我180。

第三个方案,是购买雕刻机/铣床。

结果能用的产品,基本要2000块钱,而且体积不小,噪音还很大。

考虑到暂时没有空间,我决定用第四个方案:

动手做一个最简单的版本来解决这个问题。

一个小台钻和一个十字滑台,组成一个简单的铣床,把亚克力板四周铣出一个凹槽,就可以把它嵌入到出光口了。

小台钻现成的很多,买了100多块钱的
在这里插入图片描述
十字滑台的话要200多,性价比不高,而且尺寸满足不了要求,所以这个部分,用3D打印机和一些零件做了一个。
在这里插入图片描述
这是组装后的样子,压板牺牲了个铁皮扳手
在这里插入图片描述
因为是3D打印的原因,滑台的精度不是很高,结构也不是很结实,已经设计了个铝合金的,做好以后再发上来。

成品

这是装上面板后的效果,感觉高级了不少:)

在这里插入图片描述

猫咪们可以快乐 的玩耍了

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用

本篇将带你实现一个数字键盘应用,支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。 关键词 UI互动应用数字键盘按钮组件状态管理用户交互 一、功能说明 数字键盘应用将实现以下功能&…

泷羽sec-shell脚本(全) 学习笔记

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

Unity 利用Button 组件辅助Scroll View 滚动

实现 创建枚举类ScrollDir 以区分滚动方向。每组两个按钮负责同方向上左右/上下滚动。 Update 中实时获取Scroll View 滚动条当前位置。 if (dir.Equals(ScrollDir.vertical)) {posCurrent scroll.verticalNormalizedPosition; } else if (dir.Equals(ScrollDir.horizontal)…

微服务搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的,现在重新搭建一个2.0版本的,学如逆水行舟,不进则退,废话不多说,开搞 1、 nacos2.x搭建 1,首先第一步查询下项目之间的版本对照,不然后期会…

小程序 - 计算器

小程序交互练习 - 计算器小程序 目录 计算器 功能描述 准备工作 创建项目 配置导航栏 创建utils目录 math.js文件内容 calc.js文件内容 页面内容 页面样式内容 页面脚本事件 功能截图 总结 计算器 在日常生活中,计算器是人们广泛使用的工具&#xff0…

在wsl2中安装archlinux

在之前的博客中,我介绍了如何在虚拟机或者真实机上安装archlinux并且进行一定的配置,但是实际上Linux不管怎么配置在日常使用中都没有Windows简单便利,在开发有关Linux的程序时过去用虚拟机或者直接在Windows上使用ssh在远程服务器上进行开发…

Python毕业设计选题:基于大数据的淘宝电子产品数据分析的设计与实现-django+spark+spider

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 电子产品管理 系统管理 数据可视化分析看板展示 摘要 本…

点动和自锁混合控制

中继:KA 线圈有电,常开吸合,常闭断开 SB1——>电机转(自锁)——>KA1(自锁标志位) SB2——>电机停 SB3——>电机点动——>KA2(点动标志位) 严禁出现双…

Linux权限机制深度解读:系统安全的第一道防线

文章目录 前言‼️一、Linux权限的概念‼️二、Linux权限管理❕2.1 文件访问者的分类(人)❕2.2 文件类型和访问权限(事物属性)✔️1. 文件类型✔️2. 基本权限✔️3. 权限值的表示方法 ❕2.3 文件访问权限的相关设置方法✔️1. ch…

代码随想录算法训练营第51期第8天 | 344. 反转字符串、541.反转字符串 II、卡码网:54.替换数字

344. 反转字符串 344. 反转字符串https://leetcode.cn/problems/reverse-string/1.这道题很简单,直接使用双指针就可以 2.这里有一个可以优化的点,left和right-- 可以放在字符串替换的时候完成,没必要单独写 void reverseString(char* s, …

Linux CentOS

​阿里云开源镜像下载链接 https://mirrors.aliyun.com/centos/7/isos/x86_64/ VMware 安装 CentOS7 自定义 下一步 选择稍后安装操作系统 选择 输入 查看物理机CPU内核数量 CtrlShiftEsc 总数不超过物理机内核数量 推荐内存 自选 推荐 推荐 默认 拆分成多个 默认 自定义硬件…

NineData云原生智能数据管理平台新功能发布|2024年11月版

本月发布 8 项更新,其中重点发布 2 项、功能优化 6 项。 重点发布 数据库 Devops - 数据生成支持多个数据源 NineData 支持在数据库中自动生成符合特定业务场景的随机数据,用于模拟实际生产环境中的数据情况,帮助用户在不使用真实数据的情况…

Altium Designer基础知识2:交互式差分布线

Altium Designer基础知识2:交互式差分布线 一、本文内容与前置知识点1. 本文内容2. 所用软件 二、差分式布线介绍1. 介绍2. 使用场景 三、布线流程1. 创建差分式布线对2. 布线 一、本文内容与前置知识点 1. 本文内容 Altium Designer的基础知识,差分布…

【从零开始的LeetCode-算法】74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…

人工智能助力SEO优化关键词策略提升网站流量

内容概要 在当今数字化迅速发展的时代,人工智能(AI)已成为SEO优化中不可或缺的工具。通过使用先进的智能算法,AI可以分析用户行为数据,从而洞察用户的搜索意图和偏好。这样的分析不仅能帮助网站管理者了解目标受众&am…

GPT vs Claude到底如何选?

美国当地时间6月20日,OpenAI的“劲敌”Anthropic公司发布了最新模型Claude 3.5 Sonnet。据Anthropic介绍,该模型是Claude 3.5系列模型中的首个版本,也是Anthropic迄今为止发布的“最强大、最智能”的模型。它不仅在性能上超越了竞争对手和自家…

设计模式——Chain(责任链)设计模式

摘要 责任链设计模式是一种行为设计模式,通过链式调用将请求逐一传递给一系列处理器,直到某个处理器处理了请求或所有处理器都未能处理。它解耦了请求的发送者和接收者,允许动态地将请求处理职责分配给多个对象,支持请求的灵活传…

SQLite:DDL(数据定义语言)的基本用法

SQLite:DDL(数据定义语言)的基本用法 1 主要内容说明2 相关内容说明2.1 创建表格(create table)2.1.1 SQLite常见的数据类型2.1.1.1 integer(整型)2.1.1.2 text(文本型)2…

【Elasticsearch】实现分布式系统日志高效追踪

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

WEB安全 PHP学习

PHP基础 PHP编码显示问题 header ("Content-type: text/html; charsetgb2312"); header("Content-Type: text/html;charsetutf-8"); windows需要使用gbk编码显示 源码是 <?php header ("Content-type: text/html; charsetgb2312"); sys…