基于Arduino与MAX7219的亮片时钟DIY:从电路设计到艺术创作
1. 项目概述当时间遇见璀璨又到情人节你是不是又在为送什么礼物而头疼鲜花、巧克力、首饰这些传统选项虽然稳妥但总觉得少了点新意和专属感。今年我决定自己动手做一个能“发光”的礼物——不是指那种会亮灯的摆件而是一个真正能显示时间并且每一秒都闪烁着独特光芒的“Sequino亮片时钟”。这个项目的核心是把我们小时候玩的那种随着角度变化会折射出不同颜色的亮片Sequins与一个精准的电子时钟模块结合起来。想象一下当数字在深色的背景上跳动时每一个数字的笔画都由无数细小的亮片组成随着光线的流转或观看角度的变化时钟的显示会呈现出流光溢彩的效果从深邃的蓝紫色渐变到热烈的金粉色。它不仅仅是一个报时工具更是一件充满动态美感和手工温度的装饰品。无论是放在书桌、床头柜还是作为一份独一无二的情人节心意都能瞬间抓住眼球承载比普通商品更深的情感价值。这个项目适合所有喜欢动手创造、追求个性表达的朋友。你不需要是电子或编程专家只要你有耐心、愿意尝试就能跟着步骤完成。它融合了基础电子焊接、简单的Arduino编程或者使用现成的时钟模块避免编程以及最关键的手工拼贴与创意设计。接下来我会详细拆解从构思、选材到制作、调试的全过程并分享我踩过的坑和总结出的技巧让你也能复现这份“会发光的时光”。2. 核心设计思路与材料选型制作一个亮片时钟听起来复杂但拆解开来主要是三大模块的协同显示载体、驱动核心、以及装饰层。我的设计思路是“模块化堆叠”便于调试和后期维护。2.1 整体架构设计我采用了三层结构。最底层是驱动与供电层包含主控板、实时时钟模块RTC和电源。中间层是显示层即LED点阵屏负责生成需要显示的图形和数字。最上层是装饰与衍射层也就是我们手工制作的亮片面板。LED点阵屏发出的光穿过一层半透明的扩散膜均匀化后照射在背后的亮片层上亮片再将光线反射和折射出去形成璀璨的视觉效果。这种结构的好处是显示逻辑和装饰效果物理分离我们可以独立优化显示程序的清晰度也可以自由创作亮片图案而不影响电路。为什么选择点阵屏而不是段码数码管段码数码管显示固定造型呆板难以实现更丰富的图形比如心形动画。而LED点阵屏如常见的8x8或32x8模块则像一块微型的画布我们可以通过编程控制每一个“像素”LED的亮灭从而显示任何自定义的数字字体、图案甚至简单动画可玩性和定制化程度高得多。2.2 关键材料与工具清单工欲善其事必先利其器。以下是经过我实测后推荐的清单我会解释每一项选择的理由。电子部分主控板Arduino Nano 或 ESP8266开发板。Nano性价比高引脚够用体积小巧易于隐藏。如果希望未来扩展联网功能如自动对时、天气预报显示ESP8266是更好的选择。本项目以Arduino Nano为例。LED点阵显示屏MAX7219驱动的8x8点阵模块4块级联。单个8x8模块只能显示很少的内容4块级联形成32x8的点阵区域足以清晰显示4位数字时间和一些装饰图标。MAX7219芯片大大简化了编程只需3根线DIN CLK CS即可通过SPI协议控制大量LED刷新率高且稳定。实时时钟模块DS3231 RTC模块。这是项目的“心脏”负责精确计时。DS3231是业内公认的高精度、低漂移的RTC芯片自带温补年误差可控制在分钟级远比DS1302或板载时钟可靠。务必选择带备份电池座通常配CR2032电池的模块断电后时间不会丢失。电源5V 2A直流电源适配器 Micro USB接口。点阵屏全亮时功耗较大USB供电可能不稳建议使用独立的5V 2A电源。通过Micro USB给Arduino供电最为方便。连接线杜邦线公对公、公对母、导线。用于连接各模块。其他洞洞板、排针、焊锡、电烙铁。用于固定和焊接电路使其成为一个整体而非一堆用杜邦线连着的松散模块。手工与结构部分亮片Sequins这是灵魂材料。建议选择混色亮片特别是包含紫色、蓝色、粉色、金色、银色的混合包。单一颜色效果单调混色能产生更丰富的色彩过渡。尺寸建议选择中小号直径约3-6mm太大会显得粗糙太小则粘贴工作量巨大。基底面板深色亚克力板或硬卡纸。深色背景如深灰、黑色能最大化衬托亮片的闪耀。亚克力板坚固耐用透光性可通过打磨背面变成半透明来实现光扩散。硬卡纸成本低易于裁剪但耐久性差。我选择的是3mm厚的黑色亚克力板。粘合剂UV无影胶紫外线胶。这是关键技巧普通胶水或热熔胶会留下明显胶痕影响透光和美观。UV胶在紫外线照射下迅速固化几乎完全透明且固化后强度很高。你需要配套的UV紫外线灯小型手持式即可。光扩散层磨砂半透明白色亚克力板或专业的光扩散板。它的作用是让背后点阵屏的每一个LED光点模糊化形成均匀的面光源避免观众直接看到清晰的LED阵列。可以网购“LED灯光扩散板”效果最好。外框木质相框或定制亚克力框。用于封装所有层让作品更精致。框的深度要能容纳所有电路层。工具紫外线灯、镊子、切割刀/亚克力勾刀、尺子、铅笔、电钻用于在亚克力上打孔走线。注意购买亮片时注意区分“Sequins”和“Glitter”。Glitter是粉末状闪粉难以固定且易弄脏。我们要的是片状的、中间有孔的Sequins。3. 电路连接与核心程序解析这一部分我们将把零散的模块连接成一个可靠工作的系统并理解驱动它的代码逻辑。3.1 硬件电路焊接与集成松散连接容易出故障所以建议将核心电路焊接在洞洞板上。以下是接线图以Arduino Nano 4块MAX7219点阵模块 DS3231为例的焊接步骤固定接口将Arduino Nano、DS3231模块、以及一个4Pin的排母用于连接点阵屏的DIN CLK CS GND焊接在洞洞板上。规划好布局确保紧凑。电源总线在洞洞板上建立清晰的5V和GND总线所有模块的VCC和GND都连接到这两条总线上。务必确保极性正确接反会烧毁模块。信号线连接MAX7219级联第一块点阵模块的DIN接Arduino的D11MOSICLK接D13SCKCS接D10可自定义。然后第一块的DOUT接第二块的DIN第二块的DOUT接第三块的DIN以此类推。所有模块的CLK和CS引脚并联都接到Arduino的D13和D10。这样数据就像水流一样从第一块“流”到最后一块。DS3231连接采用I2C接口SDA接Arduino的A4SCL接A5。VCC和GND接入电源总线。最终检查焊接完成后用万用表通断档检查是否有短路或虚焊。确认无误后先只连接电源观察各模块指示灯是否正常DS3231可能有电源灯不要立刻接点阵屏。3.2 Arduino程序核心逻辑剖析代码是时钟的大脑。我们使用Arduino IDE进行开发。你需要安装两个库MD_MAX72xx用于驱动MAX7219点阵和RTClib用于读取DS3231。#include MD_MAX72xx.h #include SPI.h #include RTClib.h // 定义硬件连接 #define HARDWARE_TYPE MD_MAX72XX::FC16_HW // 常见的点阵模块类型 #define MAX_DEVICES 4 // 级联的模块数量 #define CLK_PIN 13 #define DATA_PIN 11 #define CS_PIN 10 // 创建点阵和RTC对象 MD_MAX72XX mx MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES); RTC_DS3231 rtc; // 自定义数字字体数组精简示例只定义0-9每个数字宽5像素高8像素 const uint8_t font[10][5] { {0x3E, 0x51, 0x49, 0x45, 0x3E}, // 0 {0x00, 0x42, 0x7F, 0x40, 0x00}, // 1 // ... 2-9的定义 }; void setup() { mx.begin(); // 初始化点阵 mx.control(MD_MAX72XX::INTENSITY, 5); // 设置亮度0-15 mx.clear(); // 清屏 if (!rtc.begin()) { // 初始化RTC失败通常是因为接线问题或模块损坏 while (1); // 停在这里 } if (rtc.lostPower()) { // 如果RTC曾掉电需要重新设置时间 // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // 设置为编译时间 // 更佳做法通过串口输入时间这里省略 } } void loop() { DateTime now rtc.now(); // 获取当前时间 displayTime(now.hour(), now.minute()); // 显示时分 // 可以添加秒点闪烁、日期轮播等效果 delay(500); // 半秒刷新一次平衡实时性和功耗 } void displayTime(uint8_t hour, uint8_t minute) { mx.clear(); uint8_t xPos 0; // 起始绘制位置 // 显示小时十位如果小于10则显示0 drawChar(xPos, hour / 10); xPos 6; // 字符宽度5 1像素间隔 // 显示小时个位 drawChar(xPos, hour % 10); xPos 6; // 显示冒号闪烁 if ((millis() / 500) % 2 0) { // 每秒闪烁一次 mx.setPoint(1, xPos, 1); // 在(xPos, 行1)和(xPos, 行3)画点作为冒号 mx.setPoint(3, xPos, 1); } xPos 2; // 冒号占2像素宽 // 显示分钟十位和个位 drawChar(xPos, minute / 10); xPos 6; drawChar(xPos, minute % 10); } void drawChar(uint8_t x, uint8_t num) { if (num 9) return; for (uint8_t col 0; col 5; col) { uint8_t colData font[num][col]; for (uint8_t row 0; row 8; row) { mx.setPoint(row, x col, (colData (7 - row)) 0x01); // 逐位判断点亮 } } }程序要点解析字体定义点阵显示的本质是控制一个矩阵中每个点的亮灭。我们用一个字节8位的每一位来代表一列中从上到下8个点的状态1亮0灭。0x3E这样的十六进制数就是二进制0011 1110的简写。你可以用在线点阵编辑器设计自己喜欢的字体。亮度控制mx.control(MD_MAX72XX::INTENSITY, 5);中的5是亮度值建议设置在3-8之间。太亮在暗环境下刺眼且可能透过亮片层太暗则效果不明显。时间处理rtc.now()返回一个DateTime对象从中可以获取年、月、日、时、分、秒。我们只取时和分。hour()和minute()返回的是整数。冒号闪烁(millis() / 500) % 2 0利用系统运行毫秒数实现每500毫秒半秒状态切换一次从而实现冒号每秒闪烁一次的效果让时钟看起来是“活”的。实操心得在最终封装前务必长时间至少24小时测试电路和程序。检查DS3231的走时精度观察点阵屏是否有异常发热、个别LED常亮或常灭坏点。在这个阶段解决问题比封装好后拆开要容易一百倍。4. 亮片面板的艺术创作与封装这是最具创意也最需要耐心的一步直接决定了作品的最终视觉效果。4.1 亮片粘贴工艺详解基底处理将黑色亚克力板切割成与外框内径匹配的尺寸。用酒精湿巾彻底清洁表面避免灰尘影响粘贴。设计定位不要直接在亚克力板上粘贴先用铅笔在纸张上画出点阵屏显示区域32列 x 8行的边界。然后将这张纸贴在亚克力板背面作为定位参考。因为亮片最终是贴在亚克力板背面的光线从后面打过来所以你的创作是“镜像”的但观看时是正的。涂抹UV胶在亚克力板背面对应显示区域一小块区域约5x5厘米均匀涂抹一层薄薄的UV胶。胶层太厚固化慢且可能溢出太薄则粘不牢。摆放亮片用镊子夹取亮片亮片的凸面朝向亚克力板即背面轻轻放在UV胶上。这是关键凸面接触胶水固化后我们从正面看到的就是亮片光滑、凹陷的正面这是反光效果最好的面。摆放时可以刻意制造色彩渐变比如左上角多放蓝色、紫色右下角多放粉色、金色中间区域混合过渡。固化摆放好一小片区域后用紫外线灯照射30-60秒直到胶水完全固化从液态变成坚硬的透明固体。然后继续下一区域直至覆盖整个显示区域。务必确保亮片被胶水充分浸润并固定否则日后可能脱落。填充与修饰第一层铺完后可以在空隙处点少量UV胶补上更小的亮片或不同颜色的亮片增加层次感和密度。同样照射固化。4.2 多层结构组装与总装制作光扩散层将磨砂亚克力板或光扩散板切割成与亮片层相同的尺寸。如果使用透明亚克力板可以用细砂纸均匀打磨背面使其变成磨砂状。层叠顺序从后往前从观看方向来说是从里到外的顺序是外框背板 - 电路板点阵屏朝外- 光扩散层 - 亮片面板 - 外框前盖。固定与绝缘用尼龙柱或小块泡棉胶将电路板固定在背板上确保点阵屏正面紧贴光扩散层。所有电线要整理好用扎带固定避免短路。在电路板与金属背板之间垫一层绝缘纸如电工胶带或亚克力板。合盖测试在最终拧紧螺丝或卡死外框前通电测试。从正面观察显示效果。你可能需要微调点阵屏的亮度或者检查是否有区域因为亮片太厚而遮光严重。最终封装效果满意后合上外框。可以在框体侧面钻一个小孔让USB电源线穿出。一个完整的Sequino亮片时钟就诞生了。5. 调试优化与问题排查实录即使按照步骤操作也可能会遇到一些问题。以下是我在制作和帮助他人制作过程中遇到的典型情况及解决方案。5.1 显示相关问题问题1点阵屏部分不亮或显示乱码。排查首先检查级联顺序和数据线DIN DOUT连接是否正确。确认MAX_DEVICES数量定义是否与实际相符。用万用表检查CSCLK信号线是否连通。解决尝试逐块测试。只连接第一块屏看是否正常。然后依次连接第二块、第三块找出问题模块。可能是某块屏的MAX7219芯片损坏或级联接口虚焊。问题2显示亮度不均能看到明显的LED光点。排查光扩散层效果不足或与点阵屏之间有间隙。解决确保光扩散层紧贴点阵屏。可以尝试使用更专业的光扩散膜如3M的投影膜或者叠加两层扩散材料。适当降低点阵屏亮度也有助于柔和光点。问题3亮片区域有暗斑或亮度不一致。排查亮片粘贴不均匀某些区域亮片太密太厚完全挡住了光某些区域又太稀疏光线直接透出。解决在粘贴时应有意识地将亮片铺得均匀但不必追求100%覆盖。稀疏的地方可以后期用UV胶补上小亮片。这是一个手工过程轻微的明暗变化反而会增加质感。5.2 时间与电路问题问题4时钟走时不准或断电后时间重置。排查DS3231模块的备份电池CR2032没电或未安装I2C总线SDA SCL上拉电阻缺失有些模块已集成有些需要外接。解决更换新的CR2032电池。如果模块没有集成上拉电阻需要在SDA和SCL线路上各接一个4.7kΩ的电阻到5V。检查rtc.begin()是否初始化成功。问题5整体功耗大电源发热。排查4块8x8点阵屏全亮时电流可能接近1A。劣质电源或线径太细的USB线会导致压降和发热。解决务必使用足额5V 2A的电源适配器。降低点阵屏的全局亮度如设置强度为3或4可以显著降低功耗。检查是否有短路点。5.3 效果优化技巧动态效果增强在程序中可以不是简单显示静态时间。例如整点可以做一个简单的庆祝动画如爱心扩散或者让背景的亮片色彩通过缓慢改变LED的色温如果使用RGB点阵屏来模拟“呼吸”效果。即使单色屏也可以通过亮度缓变来增加灵动感。环境光感应加入一个光敏电阻根据环境光线自动调节屏幕亮度。晚上自动变暗不刺眼白天则足够清晰。这需要增加一个模拟引脚读取和相应的逻辑判断。外观装饰外框可以用木器漆改色或者贴上木纹贴纸。在时钟非显示区域也可以用UV胶粘贴一些散落的亮片作为装饰与主显示区呼应。制作这样一个时钟最大的成就感不仅在于它最终闪耀的效果更在于从无到有、将想法变为实物的过程。它需要你像工程师一样思考电路像程序员一样编写逻辑像艺术家一样设计画面。当你在情人节晚上点亮它看到时间在璀璨的亮片背后静静流淌时你会觉得所有耐心和努力都是值得的。这份独一无二的光胜过任何流水线上的礼物。

相关新闻

Snowflake Connector for Python扩展开发:自定义认证插件实现

Snowflake Connector for Python扩展开发:自定义认证插件实现

Snowflake Connector for Python扩展开发:自定义认证插件实现 【免费下载链接】snowflake-connector-python Snowflake Connector for Python 项目地址: https://gitcode.com/gh_mirrors/sn/snowflake-connector-python Snowflake Connector for Python是连接…

2026/10/20 14:42:50 阅读更多 →
Instagram-mass-reporter高级用法:命令行参数与自定义设置

Instagram-mass-reporter高级用法:命令行参数与自定义设置

Instagram-mass-reporter高级用法:命令行参数与自定义设置 【免费下载链接】Instagram-mass-reporter This bot helps users to mass report Instagram accounts 项目地址: https://gitcode.com/gh_mirrors/in/Instagram-mass-reporter Instagram-mass-repo…

2026/10/20 7:35:20 阅读更多 →
2026年SEO外链建设:策略、挑战与实战指南

2026年SEO外链建设:策略、挑战与实战指南

1. 外链建设现状与挑战2026年的搜索引擎优化领域,外链建设依然是影响网站排名的核心因素之一。但经过多年算法迭代,传统的外链发布方式已经发生了根本性变化。作为一名从业12年的SEO顾问,我见证了从早期目录提交、论坛签名到如今内容驱动的外…

2026/10/16 21:19:37 阅读更多 →

最新新闻

DNS故障排查与监控实战:从原理到告警SOP

DNS故障排查与监控实战:从原理到告警SOP

作为常年跟线上故障打交道的运维,我最大的感受就是:DNS问题是最让人头疼的“隐形杀手”。表面上看,用户访问不了服务,监控面板上数据库、缓存、带宽全都正常,但服务就是进不去。前几天某知名国际化社交平台出现的大规模…

2026/10/21 6:15:31 阅读更多 →
Hadoop+Spark+Hive游戏推荐系统毕业设计全流程实战

Hadoop+Spark+Hive游戏推荐系统毕业设计全流程实战

1. 项目概述与整体认知如果你正在为毕业设计发愁,看到“hadoopsparkhive游戏推荐系统”这种组合,大概率心里没底:这三样东西都是大数据领域绕不开的重型框架,单拎一个出来都够写好几篇论文,三个放一起还要做一个推荐系…

2026/10/21 6:15:31 阅读更多 →
教培机构销售工作台:公海与私海客户流转机制设计

教培机构销售工作台:公海与私海客户流转机制设计

1. 公海与私海:先搞清楚客户池怎么分干教培销售管理这些年,我见过太多团队死磕“线索分配不均”这个问题。新顾问抱怨拿到的名单质量差,老顾问嫌手里的客户跟不动,主管夹在中间天天当裁判。其实问题往往不在人,而在客户…

2026/10/21 6:15:31 阅读更多 →
VSCode搭建ROS开发调试环境全攻略:从配置到断点调试

VSCode搭建ROS开发调试环境全攻略:从配置到断点调试

用VSCode搭建ROS开发调试环境这件事,我从抗拒到真香,中间隔了一次难熬的排查经历。之前写ROS(Robot Operating System,机器人操作系统)代码,我习惯gedit开文件、终端敲命令、printf打印调试,这套…

2026/10/21 6:15:31 阅读更多 →
技能清单总白写?从四分类到能力地图,教你建立可验证的技能管理体系

技能清单总白写?从四分类到能力地图,教你建立可验证的技能管理体系

1. 先搞清楚一件事:为什么你的技能清单写了等于白写我见过太多人在简历、项目复盘或个人主页里放一大串技能关键词,从 Python、Excel、项目管理一路写到沟通能力、团队协作,看着挺全,真到面试官追问"你的 Python 到底做到什么…

2026/10/21 6:15:31 阅读更多 →
AHP层次分析法从原理到实战:判断矩阵、权重计算与一致性检验全解析

AHP层次分析法从原理到实战:判断矩阵、权重计算与一致性检验全解析

这份学习笔记断断续续改了三版。第一次只是抄了公式,第二次照葫芦画瓢跑通了案例,第三次才算真正想明白:层次分析法(AHP)这套东西,表面上是在算权重,本质上是逼着你把脑子里那团模糊的“我觉得”…

2026/10/21 6:14:30 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →