Adafruit眼球动画系统:JSON配置与Arduino开发全解析

news2026/5/16 0:39:12
1. 项目概述与核心思路如果你玩过Adafruit的M4SK或者HalloWing M4肯定会被它们那双活灵活现的“眼睛”吸引。这可不是简单的两个OLED屏幕在播放GIF而是一套完整的、基于物理模拟和纹理映射的实时眼球动画系统。它的核心秘密就藏在一个看似简单的JSON配置文件里。今天我就来拆解这套系统从配置文件的结构解析到Arduino环境的搭建与代码适配分享我折腾这两个“小怪物”时积累的一手经验。简单来说这个项目让你能通过编辑一个文本文件就定义出眼睛的几乎所有视觉属性大小、形状、虹膜纹理、巩膜颜色、眼皮动作甚至让瞳孔根据环境光线变化。无论是想做一个人眼般逼真的可穿戴装置还是一个拥有猫眼或龙瞳的奇幻生物这套基于ATSAMD51M4SK或ATSAMD21HalloWing M4微控制器的方案都提供了极高的自由度和相对友好的开发门槛。整个过程融合了嵌入式开发、图形学基础和一些巧妙的优化技巧非常值得深入把玩。2. JSON配置文件深度解析与设计哲学JSON文件是这个眼球动画系统的“灵魂”。它采用了一种声明式的配置方法将复杂的图形渲染参数抽象成一组键值对。这种设计的好处是即使你不懂底层C代码也能通过修改几个数字和文件路径创造出截然不同的眼睛效果。我们先拿官方提供的“hazel”淡褐色人眼配置作为模板逐项拆解其含义和设计逻辑。2.1 基础几何结构构建眼球的骨架眼球动画的物理基础由几个半径参数定义它们共同决定了眼睛在屏幕上的“占位”和基本形态。{ eyeRadius : 125, irisRadius : 60, slitPupilRadius : 0 }eyeRadius(眼球半径)这是最基础的参数单位是像素。它定义了从眼球中心到边缘的距离。注意这是一个半径值所以实际眼球宽度是它的两倍。例如eyeRadius:125意味着一个250像素宽的眼球。这里有个关键细节M4SK和HalloWing M4的屏幕宽度是240像素为什么要把眼球做得比屏幕还宽10个像素实操心得这10个像素的“溢出”是个视觉欺骗技巧。代码在模拟眼球一个球体转动时当瞳孔靠近边缘简单的2D投影会穿帮。通过将眼球模型做得比屏幕略大然后让眼皮图像去覆盖这些多出来的边缘区域就能在视觉上营造出眼球在眼窝内转动的立体感而不会让瞳孔“撞”在屏幕边框上。如果你在设计一个没有眼皮的骷髅眼睛或者希望眼球完美贴合屏幕圆形那么将eyeRadius设置为120会是更合适的选择。irisRadius(虹膜半径)同样以像素为单位定义了虹膜的大小。irisRadius:60会得到一个120像素宽的虹膜。这里需要考虑一个硬件因素很多玩家会给屏幕加上凸面透镜来增强立体感。透镜会放大图像因此如果你计划加装透镜可能需要将irisRadius的值适当调小例如55或50以抵消放大效果让最终看到的虹膜大小符合预期。slitPupilRadius(狭缝瞳孔半径)这个参数让眼睛从“普通”变得“奇幻”。默认值为0时瞳孔是圆形的。当你设置一个大于0的值最大不能超过irisRadius瞳孔就会变成垂直的狭缝像猫或龙的眼睛一样。这个值定义的是狭缝的高度半高。例如irisRadius:80搭配slitPupilRadius:60会得到一个160像素宽、120像素高的垂直狭缝瞳孔。踩过的坑启用slitPupilRadius后程序初始化时间会显著变长可能多出好几秒屏幕在此期间是黑的。这不是程序卡死了而是在进行更复杂的几何计算来生成狭缝形状。耐心等待即可属于正常现象。2.2 色彩与纹理赋予眼球生命眼睛的“灵魂”很大程度上来自其色彩和纹理。配置文件提供了极大的灵活性允许你混合使用纯色和位图纹理。{ pupilColor : [ 0, 0, 0 ], backColor : [ 140, 40, 20 ], irisTexture : hazel/iris.bmp, scleraTexture : hazel/sclera.bmp, scleraColor : [ 255, 255, 255 ], eyelidIndex : 0x00 }纹理与颜色的抉择irisTexture和scleraTexture用于指定虹膜和巩膜的位图文件BMP格式。使用高质量的自定义纹理可以产生极其逼真的效果。但位图会占用大量的闪存空间。如果你的设计允许使用纯色是更经济的选择。例如用scleraColor: [255, 255, 255]替代scleraTexture可以得到一个纯白的巩膜同时节省宝贵的存储空间。backColor(背景色)的妙用这个参数定义了眼球最外围、巩膜纹理覆盖不到的区域的颜色。当眼球转动看向一侧时这部分区域会显露出来。如果你使用了巩膜纹理务必要让backColor的颜色与纹理边缘的颜色相匹配或渐变融合否则会看到一个生硬的、新月形的色块破坏真实感。一个技巧是从你的巩膜纹理图片的边缘取色作为backColor的值。eyelidIndex(眼皮索引色)这是一个为了性能优化而做出的特殊设计。眼皮图像是1位深度的BMP即黑白二值图但代码允许通过一个8位的调色板索引值来为眼皮“上色”。这个值必须是十六进制字符串如0x00代表黑色0xFF代表白色其他值对应调色板中的其他颜色。之所以不用标准的RGB三元组是为了在渲染眼皮时使用一种更快的位操作技巧。如果你不需要彩色眼皮保持默认的黑色0x00即可。2.3 动态行为与交互配置静态的眼睛再好看也是标本动态和交互才让它活起来。{ upperEyelid : hazel/upper.bmp, lowerEyelid : hazel/lower.bmp, tracking : true, lightSensor : 102 }眼皮图像与跟踪upperEyelid和lowerEyelid分别指定上下眼皮的图片。这些图片必须是240x240像素、1位深度的BMP文件。一个重要的设计考量是镜像问题对于M4SK这种双眼设备通常需要准备两套眼皮图片或者设计一套对称的图片因为左眼和右眼是镜像关系。tracking参数控制上眼皮是否跟随瞳孔向下看而闭合模拟真人眼的联动。设为false可以让眼睛始终保持“瞪大”的状态适合表现惊讶或亢奋的角色。光线传感器集成lightSensor参数是让眼睛与环境互动的关键。它指定了连接光线传感器的引脚号。对于M4SK其板载光线传感器连接在Seesaw协处理器上因此引脚号需要加100即102。对于HalloWing M4传感器直接连接在主MCU的引脚21上。启用后瞳孔会根据环境光强度进行缩放模拟真实的瞳孔对光反射极大地增强了沉浸感。注意事项在JSON中除了最后一个配置项每行末尾都需要有逗号。漏掉或多出一个逗号是导致配置文件解析失败的最常见原因。建议使用支持JSON语法高亮和校验的编辑器如VSCode、Sublime Text可以帮你快速定位这类格式错误。3. Arduino开发环境搭建与核心库配置要让写好的配置和代码在M4SK或HalloWing M4上跑起来必须先搭建好Arduino开发环境。这个过程对于新手可能有些繁琐但只要按步骤来完全可以一次成功。3.1 安装Arduino IDE与板卡支持包首先确保你使用的是Arduino IDE 1.8或更高版本。旧版本可能无法支持新的板卡定义。安装好IDE后最关键的一步是添加Adafruit的板卡管理器网址。打开首选项在Arduino IDE中点击文件-首选项Windows/Linux或Arduino-首选项macOS。添加附加开发板管理器网址在首选项窗口的底部找到“附加开发板管理器网址”的输入框。点击右侧的图标在弹出的窗口中添加以下网址https://adafruit.github.io/arduino-board-index/package_adafruit_index.json如果你还需要其他开发板如ESP8266可以用逗号分隔多个网址。安装板卡支持包点击工具-开发板-开发板管理器...。等待索引更新完成后在搜索框中输入“Arduino SAMD”找到由Arduino官方提供的“Arduino SAMD Boards”点击安装。这个包提供了对SAMD21/SAMD51架构的基础支持。安装Adafruit SAMD Boards继续在开发板管理器中搜索“Adafruit SAMD”找到并安装“Adafruit SAMD Boards”。这个包包含了Adafruit所有基于SAMD芯片的开发板的定义、核心库和优化设置是我们项目必需的。完成这两步后关闭并重新打开Arduino IDE。现在你可以在工具-开发板菜单下找到“Adafruit SAMD Boards”分类并在其中选择“MONSTER M4SK”或“Hallowing M4”。3.2 安装必要的库文件眼球动画项目依赖于几个特定的库。你可以通过Arduino IDE的库管理器进行安装。点击项目-加载库-管理库...。在库管理器中搜索并安装以下库务必安装最新版本Adafruit_GFX图形底层库。Adafruit_ST7735或Adafruit_ST7789用于驱动M4SK和HalloWing M4上特定型号的TFT屏幕请根据你的硬件型号确认。Adafruit_Seesaw用于M4SK上与协处理器通信控制光线传感器等。Adafruit_DotStar如果项目涉及控制板载RGB LED。SdFat - Adafruit Fork用于从SD卡读取配置文件如果使用。项目特定的眼球动画库通常命名为Adafruit_Eye或类似可能需要在Github上手动下载并放入Arduino的libraries文件夹。3.3 基础测试上传Blink程序在深入复杂项目前用一个最简单的程序验证开发环境是否正确配置。在开发板列表中正确选择你的设备如“MONSTER M4SK”。在工具-端口菜单中选择你的设备对应的串口。打开文件-示例-01.Basics-Blink。点击上传按钮。如果一切顺利你将看到IDE下方输出“上传成功”的信息并且板载的LED通常是引脚13开始闪烁。对于M4SK你可能需要观察板载的DotStar RGB LED。这个简单的测试确认了编译器、烧录器和板卡连接都工作正常。常见问题排查上传失败提示“无法打开端口”检查USB线是否连接牢固尝试拔插一次。确保没有其他程序如串口监视器占用了该端口。开发板列表中找不到M4SK或HalloWing确认已正确安装“Adafruit SAMD Boards”包并重启了Arduino IDE。上传后程序不运行对于SAMD系列板卡有时需要手动进入引导程序模式。快速双击板卡上的RESET按钮直到板载LED呈现呼吸灯或特定颜色如绿色表示已进入引导程序然后再次尝试上传。4. 从源代码构建与项目适配要点当你从Github克隆或下载了眼球动画项目的源代码后需要将其在Arduino IDE中打开并根据你的硬件进行一些适配。4.1 项目结构与核心文件典型的项目结构包含以下关键文件项目名称.ino主Arduino程序文件。eye_config.json我们之前详细讨论的JSON配置文件。data/文件夹存放虹膜、巩膜、眼皮的BMP纹理文件。各种.h和.cpp库文件。你需要将整个项目文件夹放在Arduino的工程目录下通常在文档/Arduino内。用Arduino IDE打开.ino文件。4.2 针对M0/M4核心的代码适配虽然Adafruit的SAMD核心已经做了很多兼容性工作但从传统AVR Arduino转向32位的ARM Cortex-M0/M4仍有几个关键点需要注意我直接分享在移植和编写代码时最容易踩的坑。1. 模拟输入基准电压AREF 在AVR上你使用analogReference(EXTERNAL)来设置外部基准电压。在SAMD上这个宏的名字变了。// AVR (如 Uno) 上的写法 // analogReference(EXTERNAL); // SAMD (M0/M4) 上的正确写法 analogReference(AR_EXTERNAL);2. 引脚上拉电阻的设置 在8位AVR上一种常见的设置引脚上拉的方法是先设为输入再输出高电平。这在SAMD上无效。// AVR上可行SAMD上无效的旧方法 // pinMode(pin, INPUT); // digitalWrite(pin, HIGH); // 在SAMD以及现代Arduino编程中的正确方法同时兼容AVR pinMode(pin, INPUT_PULLUP);3. 串口打印 如果你曾经使用过官方的Arduino SAMD核心非Adafruit版可能会遇到Serial.print()不输出到USB串口的问题那时需要用SerialUSB。但Adafruit SAMD核心已经修复了这个问题你可以像在AVR上一样放心使用Serial。这是一个巨大的便利。4. 模拟写入PWM的细微差别 在AVR上analogWrite(pin, 255)会将引脚设置为完全高电平。在SAMD上它产生的是255/256占空比的PWM意味着仍有极其短暂的关闭脉冲。如果需要真正的、持续的高电平应该用digitalWrite(pin, HIGH)。// 如果需要完全打开例如驱动LED到最亮 if (brightness 255) { digitalWrite(ledPin, HIGH); } else { analogWrite(ledPin, brightness); }5. 内存与性能优化 ATSAMD21有32KB RAMATSAMD51有更大的RAM但对于复杂的图形和动画仍需精打细算。将常量字符串存入Flash在AVR上用PROGMEM在SAMD上更简单直接用const修饰。const char welcomeMessage[] Hello, Monster M4SK!; // 此字符串被存储在Flash中检查空闲RAM在调试时可以使用以下函数来监控内存使用防止堆栈溢出。extern C char *sbrk(int i); int FreeRam () { char stack_dummy 0; return stack_dummy - sbrk(0); } void setup() { Serial.begin(115200); Serial.print(Free RAM: ); Serial.println(FreeRam()); }4.3 M4专属性能调优选项对于使用ATSAMD51的M4SK和HalloWing M4Arduino IDE的工具菜单里隐藏着几个“性能秘籍”。它们能提升运行速度但需要谨慎使用。CPU速度你可以超频CPU。默认是120MHz但可以提高到更高的频率如150MHz, 180MHz, 200MHz甚至更高。注意超频可能带来不稳定性且某些严格依赖CPU时序的库如早期的NeoPixel库可能会工作不正常。如果遇到奇怪的问题首先调回默认速度。优化等级-Os最小尺寸默认选项生成最小的代码。-O2快速进行速度优化代码体积会稍大但通常能获得可观的性能提升推荐尝试。-O3更快更激进的优化可能带来最大速度提升但也有极小的概率改变程序行为例如某些依赖特定循环次数的延时。如果程序在-O2下正常而在-O3下异常就退回-O2。缓存默认启用。它允许CPU更快地访问指令和数据几乎对所有项目都有益保持开启即可。最大SPI慎用这个选项改变了SPI外设的时钟源允许对纯写入设备如某些OLED屏使用更高的时钟频率如60MHz。但是任何涉及SPI读取的操作如读取SD卡将完全无法工作。除非你确定只使用SPI写操作并且需要极限刷新率否则不要动它。5. 高级技巧、问题排查与项目拓展掌握了基础配置和开发流程后我们可以探讨一些让项目更出彩的高级技巧并系统梳理可能遇到的问题。5.1 纹理制作与优化技巧眼球逼真度的上限往往取决于你的纹理图片质量。虹膜纹理寻找高分辨率的人眼或动物眼睛特写照片。使用Photoshop、GIMP等软件裁剪出虹膜部分并处理成无缝贴图。关键是要消除光源方向性因为代码会模拟光照。最终输出应为正方形BMP文件建议尺寸为512x512或256x256程序会自动缩放。巩膜纹理不要用纯白。真实眼白的纹理有细微的血管和色泽变化。可以在白色基底上添加极其微弱的红色或黄色噪点或纹理。眼皮纹理这是1位BMP只有黑和白。黑色部分代表完全透明显示眼球白色部分代表不透明显示眼皮颜色由eyelidIndex决定。设计时注意眼皮边缘的灰度过渡需要用抖动算法如Floyd-Steinberg转换成黑白点阵才能获得平滑的边缘否则会出现锯齿。文件大小管理纹理文件是占用存储空间的大户。如果使用SD卡问题不大。但如果想将一切编译进程序内部存储在SPI Flash中就需要精简。将纹理尺寸减半如从512降到256或者将部分纹理换成纯色如scleraColor能显著减少体积。5.2 常见问题与解决方案速查表问题现象可能原因解决方案编译错误提示找不到头文件依赖库未安装或安装不正确通过库管理器重新安装所有必需的库检查库名称是否完全匹配。上传成功但屏幕无显示1. 屏幕背光未开启2. 引脚定义不匹配3. 供电不足1. 在setup()中检查并点亮背光控制引脚。2. 对照原理图检查代码中SPI引脚MOSI, SCK, DC, CS, RST定义是否正确。3. 使用高质量的USB线或外部5V电源供电特别是双屏的M4SK功耗较大。JSON配置文件被忽略眼睛使用默认设置1. 文件未放入正确目录2. JSON格式错误缺少逗号、括号3. 文件名或路径在代码中指定错误1. 确认eye_config.json放在SD卡根目录或代码指定的SPI Flash位置。2. 使用在线JSON校验工具检查语法。3. 检查主程序中loadConfig()函数加载的文件路径。瞳孔对光线无反应1.lightSensor引脚号配置错误2. 传感器硬件故障或遮挡3. 代码中未启用光线读取逻辑1. M4SK确认使用102HalloWing M4确认使用21。2. 清洁传感器窗口检查焊接。3. 确保主循环中调用了读取光线传感器并映射到瞳孔大小的函数。动画卡顿、不流畅1. 图形计算过于复杂2. SPI时钟设置过低3. 未启用编译器优化1. 减少纹理分辨率或使用纯色替代部分纹理。2. 在屏幕驱动库初始化中尝试提高SPI时钟频率需在屏幕允许范围内。3. 在工具-优化菜单中选择-O2。设备连接电脑后无法识别串口1. 驱动程序问题Windows 7/8.1常见2. 板卡处于非正常模式1. 对于较新板卡Win7/8.1可能无驱动建议升级到Win10。或尝试使用Zadig工具安装通用驱动。2. 双击RESET按钮使板卡进入引导程序模式LED脉冲再尝试连接。5.3 项目创意与扩展方向当你熟练掌握了基础就可以尝试更酷的玩法多配置切换在SD卡中存放多个不同的eye_config.json文件如cat_eye.json,dragon_eye.json,human_eye.json通过一个按钮或传感器如加速度计来动态切换让一个设备呈现多种性格。网络控制为HalloWing M4或M4SK需添加WiFi/蓝牙模块添加网络功能。通过WebSocket或MQTT接收来自手机或电脑的控制信号远程改变眼睛注视的方向、表情眨眼频率或瞳孔大小制作一个网络互动的数字宠物或艺术装置。声音互动利用板载麦克风部分型号具备或外接传感器让眼睛对声音做出反应。例如大声喧哗时眼睛眯起安静时睁大实现更生动的交互反馈。机械联动将M4SK作为头部显示装置配合舵机驱动脖子实现眼睛注视方向与头部转动的协同制作一个更具实体感的机器人或玩偶。折腾Adafruit M4SK和HalloWing M4的过程就像在给一个电子生物赋予视觉灵魂。从冰冷的JSON参数到屏幕上灵动的目光每一次调试成功的喜悦都来自于对细节的掌控。最让我受用的经验是一定要先吃透JSON配置这个“控制面板”它决定了效果的八成而在代码层面理解M4/M0与传统Arduino的差异能帮你避开许多隐形的坑。先从模仿一个官方的眼睛例子开始然后试着改颜色、换纹理最后创造属于自己的独一无二的眼睛这个过程本身就充满了创造的乐趣。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2612999.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…