基于电容触控与伺服电机的互动雪人制作:嵌入式编程与物理计算实践

news2026/5/16 9:00:13
1. 项目概述与核心思路又到了可以折腾点有趣小玩意儿的季节。这次我想分享一个特别适合在室内营造节日气氛又能把嵌入式编程和手工制作结合起来的项目一个会跳舞的互动雪人。这个项目的核心很简单——你触摸雪人的帽子它就会随着音乐扭动身体。听起来像是魔法但背后其实是电容触控、伺服电机控制和嵌入式编程这些硬核技术的巧妙结合。无论你是刚接触物理计算的爱好者还是想找一个综合性项目来练手的学生或开发者这个项目都能让你在动手的过程中直观地理解传感器如何“感知”世界以及程序如何“驱动”物理设备做出反应。整个项目的硬件核心是 Adafruit 的 Circuit Playground Express后面简称 CPX微控制器板以及它的“力量倍增器”——CRICKIT 扩展板。CPX 本身集成了多种传感器和 LED而 CRICKIT 则为其增加了安全驱动电机、舵机、继电器等大电流设备的能力让创意可以轻松落地。我们通过一根鳄鱼夹引线和一个铜箔胶带制作的“帽子”将人体触摸的电容信号传递给 CPXCPX 上的程序我们用 MakeCode 编写检测到这个触摸事件后便会控制 CRICKIT 上的一个微型伺服电机快速往复运动从而带动雪人的身体摇摆。同时CPX 内置的扬声器还会播放一首节日歌曲让互动体验更加完整。这个项目的魅力在于它的“全栈”性你需要完成电路连接、图形化编程、泡沫球雕刻、机械结构搭建以及最后的装饰美化。它不仅仅是一段代码或一个电路而是一个从电子信号到物理动作再到最终艺术呈现的完整闭环。接下来我会详细拆解每一个环节包括为什么选择这些组件、编程逻辑如何设计、机械结构如何保证有效传动以及在制作过程中我踩过的那些坑和总结出的技巧。2. 硬件选型与电路连接解析工欲善其事必先利其器。选择合适的硬件并正确连接是整个项目稳定运行的基础。这里的选择背后都有其考量。2.1 核心控制器Circuit Playground Express 与 CRICKIT 扩展板我选择 Adafruit 的 Circuit Playground ExpressCPX作为主控主要是因为它的“开箱即用”特性。这块板子集成了10个可编程RGB LEDNeoPixels、运动传感器、温度传感器、光线传感器、声音传感器甚至还有一个迷你扬声器和一个麦克风。对于这个项目我们主要用到它的电容触摸输入引脚和音频输出能力。其内置的 ATmega32u4 微处理器也完全能胜任我们的控制任务。然而CPX 的 GPIO 引脚驱动能力有限无法直接安全地驱动伺服电机这类需要较大电流且可能产生反向电动势的设备。这就是 CRICKIT 扩展板出场的原因。CRICKIT 的全称是 Creative Robotics and Interactive Construction Kit它通过一个专用连接器扣在 CPX 背面提供了4个带过流保护的伺服电机接口、2个直流电机/步进电机接口、4个大功率数字输出口可驱动继电器或LED灯带、以及一个音频功率放大器。它本质上是一个安全的“驱动盾”将脆弱的逻辑电路与动力电路隔离开。注意务必使用 CRICKIT 来驱动伺服电机而不是直接连接 CPX。伺服电机在堵转或启动瞬间电流可能超过 CPX 引脚的承受能力有损坏主控板的风险。CRICKIT 的驱动接口内置了保护电路安全得多。2.2 执行器与传感器微型伺服电机与电容触控方案伺服电机我们选用的是常见的微型 9g 舵机如 SG90。它的工作电压通常是 4.8V-6V扭矩约为 1.6kg-cm旋转角度为 0-180度。选择它的理由很简单尺寸小、重量轻、功耗低足以驱动我们泡沫雪人的身体摆动。它的三根线电源正极、电源负极、信号线需要连接到 CRICKIT 上标有“Servo 1-4”的接口。电容触控的实现是项目的互动关键。CPX 的多个引脚包括 A1-A7都支持电容触摸感应。其原理是这些引脚可以检测微小的电容变化。当你的手指一个导电体接近或触摸连接到该引脚的导体如我们的铜箔帽子时相当于增加了一个电容到地CPX 能检测到这个变化并判断为“触摸”。我们使用铜箔胶带和鳄鱼夹测试线来构建这个传感器。铜箔胶带导电性好且有背胶方便粘贴在雪人表面鳄鱼夹则用于可靠地将铜箔与 CPX 的 A3 引脚连接起来。2.3 电源系统独立供电的必要性这是新手最容易忽略也最容易出错的地方。伺服电机在运动时尤其是快速启停或遇到阻力时会产生较大的瞬时电流。如果仅通过连接电脑的 USB 口为整个系统供电USB 端口可能无法提供足够的电流导致电机抖动、CPX 复位甚至电脑 USB 端口保护性关闭。因此必须为 CRICKIT 提供独立的 5V 2A2000mA直流电源。CRICKIT 上有一个专用的 5V DC 插孔旁边还有一个微小的电源开关。在编程和调试阶段你可以只用 USB 线连接电脑和 CPX。但当你要让雪人真正“跳舞”时务必断开 USB 供电或确保 CRICKIT 的电源开关是关闭的然后插入 5V 2A 的电源适配器并打开 CRICKIT 上的电源开关。这样CPX 的逻辑电路由 USB 或 CRICKIT 上的稳压器供电而伺服电机则由独立电源直接驱动互不干扰。电路连接步骤总结连接 CPX 与 CRICKIT将 CPX 背面的金色引脚对齐 CRICKIT 中央的插座轻轻按压直至扣紧。听到“咔哒”声最好确保接触牢固。连接伺服电机将伺服电机的三针杜邦线插到 CRICKIT 上标有“Servo 1”的接口。务必注意线序通常棕色或黑色线是接地GND应靠近板子边缘标注“GND”的一侧红色线是电源5V黄色或白色线是信号Signal应靠近板子内侧。连接电容触控线将一根鳄鱼夹测试线的一端夹在 CPX 上标有“A3”的引脚上。另一端暂时空置后续会连接到雪人帽子上的铜箔。连接电源最终运行时将 5V 2A 电源适配器的直流插头插入 CRICKIT 的 “5V DC” 插孔。先不要打开开关等所有代码上传并检查完毕后再开启。3. 软件编程MakeCode 图形化逻辑实现对于嵌入式编程入门者或者想快速实现想法的人来说图形化编程工具是福音。Microsoft MakeCode for Adafruit 正是这样一个基于 Blocks积木块的在线编辑器它让控制硬件变得像搭积木一样直观。3.1 开发环境搭建与项目初始化首先访问https://makecode.adafruit.com/创建一个新项目。你会看到一个类似 Scratch 的编程界面左侧是硬件模块分类中间是编程区右侧是虚拟的 CPX 模拟器。在开始编程前必须添加 CRICKIT 扩展。因为默认的积木库只包含 CPX 本身的功能。点击界面最下方的“扩展”按钮或齿轮图标在搜索框中输入“crickit”然后选择 Adafruit 官方发布的 “crickit” 扩展并添加。添加成功后左侧模块栏会出现一个新的“CRICKIT”类别里面包含了控制伺服电机、驱动电机、信号引脚等所有 CRICKIT 专属功能块。3.2 程序逻辑深度剖析我们的程序需要实现两个主要功能循环播放背景音乐以及响应触摸事件控制舵机跳舞。让我们拆解一下代码积木背后的逻辑。音乐播放部分basic.forever(function () { music.setVolume(140) deckthehalls() })basic.forever块这是一个无限循环。里面的代码会一遍又一遍地重复执行直到断电。这是嵌入式程序的主循环常见模式。music.setVolume(140)设置内置扬声器的音量范围是0-255。140是一个中等偏响的音量确保在环境噪声下也能听清。deckthehalls()这是一个自定义函数的调用。将一首较长的歌曲分解成几个部分并为每个部分创建函数是保持代码整洁、可读性高的关键技巧。在“函数”类别中创建名为deckthehalls的函数里面包含了用music.playMelody块编写的《Deck the Halls》整首曲子的音符和节拍。在forever循环里直接调用这个函数逻辑非常清晰。触摸触发与舵机控制部分input.onPinTouch(TouchPin.A3, function () { for (let i 0; i 10; i) { crickit.servo1.setAngle(0) basic.pause(100) crickit.servo1.setAngle(120) basic.pause(100) } })input.onPinTouch(TouchPin.A3, ...)这是一个事件监听器。它不像forever循环那样主动运行而是“等待”事件发生。当检测到连接到 A3 引脚的电容值超过阈值即被触摸时它内部包含的代码块就会立刻执行一次。for (let i 0; i 10; i)这是一个循环会重复执行10次。这意味着每次触摸舵机会完成10个来回的摆动周期。crickit.servo1.setAngle(0)和crickit.servo1.setAngle(120)这两条命令控制连接到 CRICKIT Servo 1 接口的舵机角度。我们让它从 0 度转到 120 度。这个角度范围需要根据你实际组装雪人时舵机摇臂与传动钢丝的连接方式来微调目标是让雪人身体有足够幅度的摇摆但又不会让机械结构卡死。basic.pause(100)这是至关重要的延时。每条角度设置命令发出后程序都会暂停100毫秒0.1秒。这个时间是为舵机留出的物理运动时间。如果没有这个延时程序会以电子速度瞬间发出“0度”和“120度”指令舵机根本来不及反应你只会看到它抖动一下或者停在某个中间位置。这个延时值可以根据你想要的舞蹈速度调整100ms 会产生一个比较快而有力的摇摆效果。实操心得在 MakeCode 中调试事件驱动程序时可以利用板载的 NeoPixel LED。例如可以在onPinTouch事件开始时设置所有 LED 为红色事件结束时再关闭。这样可以通过视觉清晰确认触摸事件是否被正确触发尤其是在电容触摸灵敏度需要调整时。3.3 代码上传与硬件测试编写完代码后点击编辑器左下角的“下载”按钮。MakeCode 会将你的项目编译成一个.uf2格式的文件并下载到电脑。进入引导加载模式用 USB 数据线连接 CPX 和电脑。按下 CPX 板子上的“Reset”按钮一次。此时板子上所有的 NeoPixel LED 会变成绿色并且电脑上会出现一个名为CPLAYBOOT的可移动磁盘。如果第一次按没反应快速按两次试试双击复位。拖放固件将刚刚下载的.uf2文件直接拖拽或复制到CPLAYBOOT磁盘里。复制完成后CPLAYBOOT磁盘会自动消失CPX 会自动复位并开始运行新程序。初步测试此时你应该能听到 CPX 开始播放音乐。暂时不要连接独立电源和舵机。用手直接触摸 CPX 上连接鳄鱼夹的 A3 引脚金属部分如果程序正确你应该能听到板载扬声器在播放音乐虽然事件触发本身没有声音反馈但你可以通过后续连接舵机测试。这是一个好的开始证明编程部分基本正确。4. 雪人机械结构与传动机构制作这是将电子项目转化为实体互动物品的关键一步也是最需要耐心和手工技巧的部分。核心目标是将舵机的旋转运动转化为雪人身体中部的摇摆运动。4.1 泡沫球处理与核心骨架搭建材料准备三个直径分别为13cm、10cm、7cm的白色泡沫球代表身体下、中、上一根长约36cm、直径约1.6mm16号的硬质钢丝或铁丝以及热熔胶枪。稳定底座将最大的泡沫球身体底部底部切掉约5mm形成一个平坦的切面这样雪人才能稳定站立在底座上。创建摆动腔体将中等大小的泡沫球身体中部水平切成两半。这是最关键的一步因为这里要容纳舵机和传动机构。然后用美工刀或小锯子在两个半球的内侧中心小心地挖出大约能放入舵机的空间。不要挖穿只需挖出凹槽。植入传动钢丝将约36cm长的硬钢丝从下半球底部中心穿入从上半球顶部中心穿出。让钢丝大致位于球的中心轴上。此时先不要固定钢丝。定位与固定舵机取下上半球将微型舵机放入下半球挖好的凹槽中。手动将舵机的其中一个摇臂通常是十字形或一字形安装到舵机输出轴上。然后将钢丝移动到紧贴着这个摇臂边缘的位置。用力将舵机向钢丝方向按压使其在泡沫上留下一个清晰的压痕。这个压痕就是舵机最终的位置标记。固定舵机与钢丝取出舵机在凹槽和压痕处涂抹足量的热熔胶然后将舵机牢牢按回标记位置。等待胶水冷却固化。之后将钢丝穿回并使用尖嘴钳或小扳手将紧贴舵机摇臂的那段钢丝紧密地弯曲并缠绕在摇臂上。确保钢丝与摇臂之间没有松动任何松动都会导致传动效率大幅下降雪人摆动无力。最后在钢丝穿过泡沫球的入口和出口处点一些热熔胶将其与泡沫球固定防止钢丝上下滑动。组装身体将上半球盖回确保钢丝从顶部穿出。然后将最小的泡沫球头部和最大的泡沫球身体底部依次穿到钢丝上。在组装底部大球时注意将其平坦的切面朝下与钢丝穿入点相对以保证站立平稳。在各球体接触面涂抹热熔胶将它们粘合在一起。4.2 传动优化与底座制作初步组装后你可能发现摆动不理想。问题通常出在传动环节。传动优化技巧杠杆效应舵机摇臂到钢丝固定点的距离构成了一个杠杆。这个距离越长在舵机转动相同角度时钢丝末端的位移就越大雪人摇摆幅度也越大。但距离过长会要求舵机输出更大扭矩。对于9g微型舵机建议这个力臂长度在1-1.5cm左右。减少摩擦确保钢丝在穿过泡沫球时路径顺畅没有被泡沫碎屑或胶水卡住。可以在穿钢丝前在孔洞里涂一点蜡或润滑剂。重心调整雪人头部的装饰如帽子、鼻子可能会使重心偏前或偏后影响摆动流畅性。可以通过在身体后部内部粘贴配重如小螺母来平衡重心。底座制作剪一块18cm x 18cm的硬纸板作为底座。用白纸或白布包裹粘贴使其美观。将雪人底部用热熔胶牢固地粘在底座中心。一个稳固的底座能防止雪人在跳舞时倾倒。4.3 功能测试与机械调试在粘贴外部装饰之前进行机械测试至关重要。将舵机插回 CRICKIT 的 Servo 1 接口。连接 CRICKIT 的独立 5V 电源并打开开关。此时音乐应该响起。用手触摸 CPX 的 A3 引脚观察舵机和雪人身体的运动。如果摆动幅度很小检查钢丝与舵机摇臂的连接是否牢固是否有打滑。检查舵机角度设置0度和120度是否合适可以尝试调整为如 30度和150度以增大运动范围。如果身体不摆动只有头部或底部乱转这说明中间球体包含舵机与上下球体之间的连接太松。需要将上下球体拆下在钢丝与球体接触的孔洞内注入更多热熔胶确保它们与钢丝是固定死的动力只能通过钢丝的推拉传递给整个身体而不是球体之间相互滑动。如果舵机发出“滋滋”声且不动这是舵机堵转的典型声音意味着负载阻力太大。立即断电检查可能是钢丝弯曲卡死或者泡沫球内部空间太小挤压了舵机。扩大舵机舱空间确保舵机可以自由运动。5. 电容触控帽子的制作与系统集成让互动变得优雅的关键是将裸露的鳄鱼夹隐藏起来并通过一个美观的帽子来触发触摸事件。5.1 制作与安装礼帽计算与裁剪用黑色泡沫纸制作一个圆筒形礼帽。帽顶半径决定了帽子大小。假设雪人头部直径7cm帽顶半径设为3cm比较合适。计算帽筒的矩形展开面长度等于帽顶周长2πr ≈ 23.143 ≈ 18.8cm高度根据喜好设定比如4cm。帽檐是一个外径10cm、内径6cm的圆环内径等于帽筒直径。组装将矩形泡沫纸卷成圆筒粘好粘上帽顶圆片最后将帽檐粘在帽筒底部。安装将雪人头顶多余的钢丝剪短至略低于帽顶内部高度。将帽子套在雪人头上用热熔胶固定。确保钢丝不会顶到帽子。5.2 铺设电容感应“天线”这是实现触摸感应的核心步骤。铺设主铜箔路径取一段长约36cm的铜箔胶带。从帽子顶部正中心开始撕开背胶将铜箔沿着帽子后侧中线向下粘贴经过帽筒、帽檐一直贴到雪人背部最终延伸到雪人底座的背面。这条连续的铜箔就是我们巨大的触摸感应电极。关键技巧在拐角处如帽顶到帽筒的直角将铜箔胶带轻轻折叠而不是剪断以保证导电路径的连续性。粘贴时尽量平整减少皱褶。增强顶部触摸点剪一小块圆形铝箔直径约3cm用胶水贴在帽子顶部中央。然后再用一小段铜箔胶带一端压在这块铝箔上另一端向下与之前铺设的主铜箔路径重叠粘贴一段。这相当于在触摸最频繁的帽子顶部增加了一个大面积、灵敏的感应区域。电气连接将之前连接 CPX A3 引线的鳄鱼夹空置端用两小段铜箔胶带牢牢地夹紧并粘贴在雪人底座背面的铜箔路径末端。确保鳄鱼夹的金属齿与铜箔有良好接触。可以用胶带多缠绕几圈固定防止拉扯脱落。5.3 最终装饰与系统总装用橙色模型粘土捏一个胡萝卜鼻子粘上。用黑色 Rhinestone 珠子粘出眼睛和微笑的嘴巴。用黑色纽扣装饰身体。在身体两侧插上小树枝作为手臂。最后系上一条彩色围巾。总装与最终测试流程电路连接确保 CPX 稳固插在 CRICKIT 上。伺服电机插在 CRICKIT 的 Servo 1 口。鳄鱼夹一端在 A3另一端连接雪人底座铜箔。电源管理先不要接独立电源。用 USB 线连接电脑和 CPX测试音乐是否正常播放。用手触摸帽子顶部观察舵机是否动作此时舵机由 USB 供电可能动力不足但应能观察到尝试运动。独立供电测试拔掉 USB 线。将 5V 2A 电源适配器插入 CRICKIT 的 DC 插孔。确认 CRICKIT 上的电源开关处于 OFF 状态后再接通电源插座。然后打开 CRICKIT 的电源开关。此时系统完全由独立电源供电。触摸帽子雪人应能有力地随着音乐节奏跳舞。收纳与展示将多余的线缆用扎带捆好隐藏在底座后方。一个既高科技又充满手工温度的互动雪人就完成了。6. 常见问题排查与进阶优化即使按照步骤操作也可能会遇到一些问题。这里总结一些常见故障和解决方法。6.1 电容触摸不灵敏或无效问题现象触摸帽子时雪人没有反应。排查步骤检查连接首先确认鳄鱼夹是否牢固地夹在 CPX 的 A3 引脚和雪人铜箔上。铜箔胶带是否有断裂或起翘导致接触不良可以用万用表通断档检查从 A3 引脚到帽子顶部铝箔的电路是否连通。检查程序在 MakeCode 中确认onPinTouch事件块绑定的是正确的引脚A3。可以临时修改程序在触摸事件发生时点亮 CPX 上的某个 LED来验证程序逻辑是否被触发。环境干扰电容感应易受干扰。确保雪人没有靠近大型金属物体或显示器等强电场源。尝试调整触摸灵敏度在 MakeCode 高级代码中可设置阈值但图形化界面默认值通常可用。接地参考电容感应需要有一个相对的参考地。确保 CRICKIT/CPX 系统的 GND 是稳定的。如果使用独立电源确保电源适配器是两脚插头不接地线且质量良好。有时用手同时触摸一下 CPX 的 GND 引脚或金属外壳能改善感应效果。6.2 伺服电机运动异常问题现象电机不转、只振动、转动角度不对或无力。排查步骤电源问题最常见这是首要怀疑对象。确认你为 CRICKIT 提供了5V 2A 或以上的独立电源并且开关已打开。USB 供电绝对不足以驱动舵机正常运动。接线问题再次确认舵机三根线在 CRICKIT 上的连接是否正确信号、电源、地。接反可能烧毁舵机或板子。机械卡死断开舵机与钢丝的连接单独给舵机上电用程序控制它转动。如果空载时运动正常一旦连接钢丝就出问题说明机械负载过大。检查钢丝是否弯曲顺畅泡沫球内部空间是否足够舵机摇臂与钢丝的连接是否过紧导致阻力大。角度范围设置在代码中setAngle(0)和setAngle(120)是控制角度。有些舵机的实际范围可能不是严格的0-180度。如果舵机在某一个角度点发出异响到达机械限位请尝试将角度范围缩小例如改为20和100。6.3 音乐播放断断续续或无声音问题现象音乐播放卡顿或者完全没有声音。排查步骤供电不足当舵机运动时瞬时电流需求很大可能导致 CPX 的电压瞬间被拉低影响音频放大器工作。这再次强调了独立供电的重要性。确保舵机电源CRICKIT 的 DC 口与逻辑音频电源CPX 的 USB 或 CRICKIT 的 5V 输出来自同一个充足的电源即使用独立电源为 CRICKIT 供电时CPX 也由其供电。程序冲突检查forever循环中的音乐播放代码和onPinTouch事件中的舵机控制代码。虽然 MakeCode 底层是单线程的但复杂的音乐旋律块在播放时可能会占用大量处理器时间轻微影响事件响应。可以尝试简化音乐旋律或使用更短的音效进行测试。扬声器连接CPX 板载有一个小型扬声器同时也有一个外接扬声器接口。确保你没有意外地将外部扬声器插入了接口而板载扬声器被禁用。6.4 项目进阶优化思路当基础功能实现后你可以尝试以下优化让雪人更智能、更有趣多段舞蹈与随机动作在 MakeCode 中创建多个不同的函数比如danceSlow()、danceFast()、spin()。在触摸事件中使用随机数块来选择执行其中一个舞蹈函数让雪人的动作每次都有变化。灯光效果同步利用 CPX 上自带的 10 个 NeoPixel LED在跳舞时编程让它们随着音乐节奏闪烁或变换颜色。例如在onPinTouch事件中加入light.showAnimation(light.rainbowAnimation, 500)来展示一段彩虹动画。触摸灵敏度调节如果你发现触摸太灵敏容易误触发或不灵敏可以尝试在代码中更高级的“JavaScript”视图下使用input.setTouchThreshold(TouchPin.A3, 500)这样的语句来手动设置触摸阈值数字越大越不灵敏。使用其他传感器除了电容触摸你还可以用 CPX 上的其他传感器来触发。比如用光线传感器实现“天黑就跳舞”用声音传感器实现“拍手就跳舞”或者用加速度计实现“拿起雪人就跳舞”。这个项目从电路连接到代码编写再到机械制作和外观装饰完整地走完了一个创意电子产品的原型开发流程。它最宝贵的价值不在于做出了一个会跳舞的雪人而在于通过这个有趣的过程你亲手实践了信号输入、逻辑处理、动力输出这一套物理计算的核心范式。希望你在遇到问题时耐心排查享受调试的过程在成功时获得那份独有的创造者的快乐。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…