0.96英寸OLED模块从入门到精通:SSD1306驱动、I2C/SPI接口与Arduino实战
1. 项目概述从像素点开始认识OLED如果你玩过Arduino、树莓派或者ESP32这类微控制器大概率见过那种比指甲盖大不了多少的黑色小屏幕上面能显示几行白色的文字或者简单的图形。没错我说的就是0.96英寸OLED模块。别看它个头小在创客和嵌入式开发圈子里它可是个“万金油”级别的存在。从显示传感器读数、制作迷你游戏机到充当智能设备的微型状态屏它的应用场景多得数不过来。这个模块的核心就是那块0.96英寸的OLED显示屏。“OLED”是“有机发光二极管”的缩写它和我们手机、电视上用的屏幕在原理上是亲戚但结构简单得多。与我们更熟悉的LCD液晶显示屏需要背光灯不同OLED的每个像素点都能自己发光。这意味着当显示黑色时像素点直接关闭可以实现真正的纯黑对比度极高而且在显示深色内容时更省电。0.96英寸指的是屏幕对角线的长度换算下来其分辨率常见的有128x64和128x32两种。我手头这个也是最主流的一款就是128x64的这意味着它在横向上有128个像素点纵向上有64个像素点。为什么它如此受欢迎首先当然是体积小巧非常适合空间受限的项目。其次它功耗极低尤其显示内容以深色为主时对电池供电的设备非常友好。再者它的接口通常很简单最常见的就是I2C和SPI两种通信协议用几根线就能和主控板“对话”极大地简化了硬件连接。最后它的驱动生态非常成熟无论是Arduino IDE、MicroPython还是PlatformIO都有现成的、经过千锤百炼的库可以直接调用让开发者能快速上手把精力集中在功能实现上而不是底层驱动上。2. 核心硬件解析与接口选择拿到一个0.96英寸OLED模块第一件事不是急着通电而是先把它翻过来看看背面的芯片和引脚定义。这个步骤至关重要它直接决定了你后续的接线方式和代码编写。2.1 驱动芯片SSD1306的统治地位市面上绝大多数的0.96英寸OLED模块无论显示颜色是单色白、黄蓝双色其核心驱动芯片几乎都是Solomon Systech公司的SSD1306。这是一款专为小尺寸OLED设计的驱动控制器它内部集成了显存RAM我们主控板只需要通过I2C或SPI协议向SSD1306发送指令和数据它就会负责控制屏幕上每一个像素点的亮灭。理解SSD1306的工作模式很重要。它支持两种内存寻址模式页模式Page Mode和水平/垂直模式Horizontal/Vertical Mode。在Arduino常用的Adafruit_SSD1306或U8g2库中默认通常使用页模式。页模式将屏幕在垂直方向对于128x64屏幕分为8个“页”Page每页包含8行像素即8个bit横向128列。向显存写入数据时是按“页”为单位进行的。这种模式在绘制文本和某些图形时效率较高但理解这一点有助于你后续调试时如果发现图形显示错位能知道可能是寻址模式设置有问题。2.2 接口对决I2C vs. SPI模块通常提供两种接口选项通过模块上的焊盘或跳线帽进行选择。I2C接口 这是最常用、最省线的方式。只需要4根线VCC 电源正极通常接3.3V或5V务必查阅模块手册多数兼容3.3V-5V但稳妥起见接3.3V。GND 电源地。SCL 时钟线。SDA 数据线。I2C是总线协议这意味着你可以在同一条总线上挂载多个设备每个设备地址不同。OLED模块的I2C地址通常是0x3C或0x3D可以通过模块上的一个电阻焊点来改变。它的优点是接线极其简单占用主控板IO口少。缺点是刷新速度相对SPI慢一些但在显示文本和简单动画时完全够用。SPI接口 需要更多连线通常为6-7根VCC/GND 同上。SCK/SCLK 时钟线。SDA/MOSI 数据线主设备输出从设备输入。RES/RST 复位引脚用于硬件复位屏幕。DC 数据/命令选择引脚用于告诉驱动芯片当前发送的是命令如设置对比度还是数据实际的像素点信息。CS 片选引脚当总线上有多个SPI设备时用于选择当前通信的设备。SPI的优点是通信速度更快适合需要高速刷新、显示复杂动态图形的场景。缺点是占用IO口多接线稍复杂。实操心得对于绝大多数入门和中级项目我强烈推荐使用I2C接口。它节省下来的IO口可以用于连接更多传感器或执行器。只有在你的项目对屏幕刷新率有极高要求比如快速滚动显示、游戏时才需要考虑SPI。购买模块时也建议选择默认焊好I2C电阻的版本开箱即用。2.3 引脚识别与电源注意事项模块背面通常会丝印引脚名称。对于I2C模块除了VCC、GND、SCL、SDA你通常还会看到一个“RES”引脚。这个复位引脚在某些库的初始化中需要连接你可以将它接到主控板的一个空闲数字IO上通过程序控制复位如果不需要硬件复位也可以直接接到VCC正极上让其保持高电平。关于电源一个常见的坑是虽然很多模块标称支持3.3V-5V但屏幕本身和SSD1306芯片是3.3V器件。模块上的PCB通常集成了一颗LDO低压差线性稳压器或电平转换电路来兼容5V输入。但为了绝对稳定和延长屏幕寿命我个人的习惯是统一使用3.3V供电。特别是使用像ESP32、STM32这类3.3V逻辑电平的主控时务必确保主控板和屏幕共地并且使用3.3V为屏幕供电以避免逻辑电平不匹配导致通信失败或损坏。3. 软件驱动与库函数选型硬件连接妥当后下一步就是让屏幕亮起来。这里有几个久经考验的库可供选择它们各有侧重。3.1 Adafruit_SSD1306 Adafruit_GFX 组合这是Arduino生态中最经典、最入门友好的组合。Adafruit公司提供了高质量的硬件和软件支持。Adafruit_SSD1306 这个库负责底层与SSD1306芯片的通信处理初始化、清屏、发送缓冲区数据等基础操作。Adafruit_GFX 这是一个核心图形库提供了丰富的绘图函数如画点、线、矩形、圆、三角形以及显示文本的功能。SSD1306库依赖于GFX库来实现这些高级功能。安装与初始化 在Arduino IDE的库管理中搜索“Adafruit SSD1306”和“Adafruit GFX Library”并安装。初始化代码通常如下以I2C为例#include Wire.h #include Adafruit_GFX.h #include Adafruit_SSD1306.h #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // 如果共用Arduino的复位引脚则填-1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, Wire, OLED_RESET); void setup() { Serial.begin(9600); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 地址0x3C Serial.println(F(SSD1306 allocation failed)); for(;;); // 死循环初始化失败 } display.display(); // 显示Adafruit的Logo库自带的 delay(2000); display.clearDisplay(); // 清屏 }基本绘图与文本显示Adafruit_GFX库的函数非常直观。例如display.drawPixel(x, y, color)画一个点display.drawLine画线display.println(“Hello World!”)打印文本。但需要注意的是任何绘图或文本操作最后都必须调用display.display()函数才会真正将内存中的图形数据发送到屏幕显示出来。这是一个常见的“坑”新手写了绘图代码却发现屏幕没变化往往就是因为忘了调用display()。3.2 U8g2库功能强大的全能选手如果说Adafruit组合是“标准套餐”那U8g2就是“满汉全席”。它是一个单库解决方案支持海量的显示控制器包括SSD1306和几乎所有的单片机平台字体渲染能力极其强大。优势字体支持 U8g2内置了多种字体并且支持从.ttf或.otf字体文件创建自定义字体这对于非英语字符如中文显示是巨大优势。你可以将需要的汉字生成一个字体子集嵌入到程序中。图形原语丰富 除了基本图形还支持圆角矩形、椭圆、多边形等。缓冲模式灵活 支持全屏缓冲和部分缓冲模式可以在内存和速度之间做权衡。初始化示例U8g2lib for I2C#include U8g2lib.h #include Wire.h U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset*/ U8X8_PIN_NONE); void setup(void) { u8g2.begin(); } void loop(void) { u8g2.clearBuffer(); // 清除内部内存缓冲区 u8g2.setFont(u8g2_font_ncenB08_tr); // 选择字体 u8g2.drawStr(0, 20, Hello World!); // 在坐标(0,20)处绘制字符串 u8g2.sendBuffer(); // 将缓冲区内容发送到显示器相当于display() delay(1000); }注意事项 U8g2功能强大但相对也更消耗内存RAM。在像ATmega328PArduino Uno这样只有2KB RAM的芯片上使用全缓冲模式_F_显示大量内容时可能会遇到内存不足的问题。此时可以考虑使用_1_或_2_单页或双页缓冲版本或者换用内存更大的主控。3.3 选择建议与性能考量对于初学者或快速原型开发Adafruit组合是绝佳起点文档丰富例子多容易理解。 当你需要显示非拉丁字符、使用特殊字体或者项目对图形功能要求更高时U8g2是更专业的选择。 在性能上由于U8g2的抽象层级更高其原始绘图速度可能略慢于高度优化的Adafruit GFX但这种差异在0.96寸OLED这种小尺寸、低刷新率的应用上几乎可以忽略不计。真正的瓶颈往往在于微控制器向屏幕发送数据的速度I2C的时钟频率而不是库本身的效率。4. 实战应用从静态显示到动态界面掌握了基础显示后我们可以做一些更实用的项目。这里我分享两个经典场景的代码框架和思路。4.1 场景一环境数据监测仪表盘假设我们有一个DHT11温湿度传感器和一个BMP280气压传感器我们需要在OLED上实时显示这些数据并做一个简单的历史趋势图以温度为例。硬件连接OLED (I2C): SCL - A5, SDA - A4, VCC - 3.3V, GND - GND。DHT11: 数据脚 - D2。BMP280 (I2C): 与OLED共用I2C总线SCL-A5, SDA-A4注意地址不能冲突。软件思路界面布局规划 在纸上或心里把128x64的像素画布分区。例如顶部20像素显示标题“Env Monitor”中间区域用大字体显示当前温湿度数值底部44像素留作绘制24小时温度曲线图。数据获取与滤波 传感器读数可能有毛刺。可以采用简单的移动平均滤波创建一个数组存储最近N次的温度值每次显示时取平均值。曲线图绘制 这是难点。我们需要将一段时间内的温度值映射到底部44像素高的区域内。假设我们显示最近24个数据点每小时一个。确定Y轴范围例如10°C到40°C。映射函数y_pixel bottom_y - (current_temp - temp_min) / (temp_max - temp_min) * graph_height。用drawLine函数将相邻的数据点连接起来形成曲线。定时刷新 使用millis()函数进行非阻塞定时比如每2秒读取一次传感器并更新显示避免使用delay()导致程序卡顿。代码片段示意使用U8g2// ... 省略库引入和对象定义 float tempHistory[24]; // 存储24个历史温度值 int historyIndex 0; void updateDisplay(float temp, float humidity, float pressure) { u8g2.clearBuffer(); // 1. 绘制标题 u8g2.setFont(u8g2_font_7x13B_mf); u8g2.drawStr(10, 12, Environment Dashboard); u8g2.drawHLine(0, 15, 128); // 画一条分隔线 // 2. 绘制当前数据大字体 u8g2.setFont(u8g2_font_fub20_tn); char tempStr[10]; dtostrf(temp, 5, 1, tempStr); // 浮点数转字符串宽度5小数点后1位 u8g2.drawStr(5, 40, tempStr); u8g2.drawStr(85, 40, C); // 3. 绘制曲线图区域框 u8g2.drawFrame(0, 44, 128, 20); // 在(44,20)像素区域画框 // 4. 更新历史数据并绘制曲线 tempHistory[historyIndex] temp; historyIndex (historyIndex 1) % 24; for (int i 0; i 23; i) { int x1 i * 5; int x2 (i 1) * 5; // 映射温度到Y坐标假设范围10-40度图框内高度18像素 int y1 44 18 - mapFloat(tempHistory[i], 10, 40, 0, 18); int y2 44 18 - mapFloat(tempHistory[(i1)%24], 10, 40, 0, 18); u8g2.drawLine(x1, y1, x2, y2); } u8g2.sendBuffer(); }4.2 场景二简易菜单系统与交互很多项目需要通过有限的按键比如一个旋转编码器或3个按钮来操作OLED菜单实现模式切换、参数设置等功能。设计思路状态机模型 这是实现菜单系统的核心思想。将整个界面划分为不同的“状态”State例如主页面状态、设置菜单状态、子项编辑状态。每个状态知道自己该显示什么以及如何处理按键输入。菜单结构定义 可以用一个结构体数组来定义菜单。struct MenuItem { const char* name; // 菜单项名称 void (*action)(); // 选中后执行的函数指针 MenuItem* subMenu; // 子菜单指针 int value; // 可编辑的数值 };显示与导航 由于屏幕小一次只能显示几行。我们需要一个“光标”或“选中项”高亮显示反色处理。通过上下键移动光标确认键进入子菜单或执行动作返回键退出。交互反馈 在编辑数值时可以通过闪烁被选中的数字来提供视觉反馈。实现要点显示优化 只绘制当前需要显示的部分避免全屏刷新导致的闪烁。U8g2的clearBuffer()和sendBuffer()本身是双缓冲机制能很好解决这个问题。按键消抖 必须对物理按键进行软件消抖处理通常检测到按下后延时10-50ms再次检测。EEPROM存储 修改后的参数如报警阈值需要保存到EEPROM中下次上电后能读取。实操心得 在资源紧张的单片机如Uno上实现复杂菜单一定要精简字符串使用PROGMEM将常量字符串存放到程序存储空间以节省宝贵的RAM。菜单的层级不宜过深一般2-3层为宜否则用户体验会变差。5. 常见问题排查与性能优化实录即使按照教程操作你也可能会遇到屏幕不亮、显示乱码、内容错位等问题。下面是我踩过的一些坑和解决方案。5.1 硬件连接与电源问题排查表现象可能原因排查步骤与解决方案屏幕完全不亮1. 电源接反或电压不对。2. I2C地址错误。3. 复位引脚状态不对。1.首要检查用万用表测量VCC和GND之间电压是否为3.3V/5V。确认线序正确。2. 使用I2C扫描程序Arduino IDE有示例File - Examples - Wire - scanner查找设备地址。确认代码中地址0x3C/0x3D与实际一致。3. 检查RESET引脚如果未使用尝试在代码初始化前用digitalWrite(RESET_PIN, HIGH);将其拉高或直接硬件接VCC。屏幕亮但无内容白屏1. 对比度设置问题。2. 初始化序列未正确执行。3. 通信协议选择错误代码用了SPI初始化硬件是I2C接线。1. 在setup()中初始化后尝试display.setContrast(255);调到最高对比度看是否有显示。2. 确保初始化函数如begin()成功执行检查返回值。3.仔细核对你用的库构造函数和begin函数参数是否与你的硬件接口匹配。I2C和SPI的构造函数是不同的。显示乱码、雪花点1. 电源不稳定有噪声。2. I2C时钟速度过快通信不稳定。3. 屏幕本身损坏。1. 在VCC和GND之间并联一个10uF-100uF的电解电容和一个0.1uF的瓷片电容这是解决电源噪声的经典方法。2. 尝试降低I2C时钟频率。对于Arduino Wire库可以在Wire.begin()后加Wire.setClock(400000L);400kHz或降到100000L100kHz试试。3. 更换模块或屏幕测试。显示内容错位、镜像库的初始化参数设置不正确。在U8g2构造函数中U8G2_R0代表不旋转U8G2_R1代表旋转90度以此类推。检查这个参数。在Adafruit库中可能需要调用setRotation()函数。5.2 软件与内存优化技巧使用F()宏节省RAM 在Arduino中字符串常量默认存放在RAM中。对于调试信息或固定文本一定要使用F()宏将其存放在Flash中。例如Serial.println(F(“Initializing OLED...”));和display.println(F(“Hello”));。这个小习惯能为内存紧张的项目省出可观的空间。避免频繁全屏刷新 特别是需要显示动画或快速更新数据时只刷新变化的部分区域而不是每次都调用clearDisplay() 重绘所有内容 display()。例如更新一个数字时可以先在旧数字位置用背景色黑色重写一遍再在新位置如果位置变了绘制新数字。合理使用局部刷新U8g2 U8g2的sendBuffer()会更新整个屏幕。对于极速刷新需求可以研究使用setClipWindow和updateDisplayArea函数进行局部更新但这属于高级用法需要对显存布局有更深理解。帧率控制与视觉流畅度 人眼对流畅度的感知有上限。对于数据监测1-2Hz的更新率足够对于简单动画10-15帧每秒FPS就已流畅。使用millis()控制刷新间隔避免无节制地高速刷新这既无必要也可能给I2C总线带来不必要的压力。unsigned long previousMillis 0; const long updateInterval 500; // 每500ms更新一次 void loop() { unsigned long currentMillis millis(); if (currentMillis - previousMillis updateInterval) { previousMillis currentMillis; // 执行数据读取和屏幕更新 updateDisplay(); } // 其他非阻塞任务可以放在这里 }处理I2C总线锁死 在极端情况下如热插拔、电源浪涌I2C总线可能锁死表现为后续所有通信失败。一个简单的恢复技巧是尝试软件复位总线void resetI2CBus() { Wire.end(); // 关闭I2C pinMode(SDA, INPUT_PULLUP); // SDA和SCL设为输入上拉 pinMode(SCL, INPUT_PULLUP); delay(250); Wire.begin(); // 重新初始化I2C }在通信超时后调用此函数有时能奇迹般恢复。6. 进阶探索与项目灵感当你玩转了基础显示后可以尝试一些更有挑战性的项目把这块小屏幕的潜力发挥到极致。1. 帧缓冲动画与游戏 利用Adafruit_GFX或U8g2的绘图函数你可以制作简单的逐帧动画。原理是预先计算或实时生成每一帧的画面然后快速切换。例如实现一个“太空侵略者”的简化版。关键点在于将游戏元素飞船、子弹、敌人用结构体表示包含位置、速度、状态。在loop()中先清除上一帧的元素用背景色重画然后根据逻辑更新所有元素的位置再绘制新位置下的元素。碰撞检测通过比较元素之间的坐标来实现。为了流畅需要精细控制每个元素的绘制区域尽量减少每帧的绘制操作。2. 自定义字体与图标设计 U8g2库的u8g2_font_系列字体虽然多但可能没有你想要的风格。你可以使用其提供的字体转换工具如bdfconv通常随库提供或在U8g2的GitHub仓库wiki中有指导将.ttf字体文件转换成.c文件然后包含进你的项目。这对于显示中文、特殊符号或设计一套项目专属的像素图标集非常有用。通常你需要先确定要显示的字符然后用工具生成一个只包含这些字符的子集字体以控制字体文件大小。3. 多屏协同与级联 SSD1306支持硬件上改变I2C地址。你可以购买多个地址不同的OLED模块或自己修改电阻将它们连接到同一条I2C总线上用一个主控同时驱动。这样可以构建一个“仪表盘群”比如一个屏显示系统状态一个屏显示网络信息一个屏显示图表。在代码中你需要为每个地址实例化一个显示对象然后分别控制。4. 低功耗优化 对于电池供电项目OLED的功耗需要关注。SSD1306提供了完整的睡眠模式。在不需要显示时可以调用display.ssd1306_command(SSD1306_DISPLAYOFF);关闭显示功耗可降至微安级在需要时再SSD1306_DISPLAYON。此外尽量使用深色背景因为OLED显示黑色像素时不发光。定期刷新而非持续刷新也能节省能量。这块小小的0.96英寸OLED屏幕就像一个微型的画布限制你的是分辨率但绝不限制你的创意。从最简单的“Hello World”到复杂的交互式界面每一步实践都会加深你对嵌入式图形显示、微控制器编程和硬件交互的理解。我最开始用它只是显示一下传感器的数字后来慢慢尝试做菜单、做动画过程中遇到的每一个问题——无论是通信失败、内存溢出还是显示错乱——都成了宝贵的经验。我的建议是不要只停留在调用库函数显示文字不妨试着去读一读驱动芯片SSD1306的数据手册看看那些库函数背后到底发送了什么命令和数据或者尝试用最基本的Wire.write()去直接控制它这会让你的理解提升一个层次。当你真正驾驭了它你会发现在有限的像素里呈现无限的想法本身就是一件极具成就感的事情。

相关新闻

树莓派Zero W Package B套件深度解析:从开箱到项目实战

树莓派Zero W Package B套件深度解析:从开箱到项目实战

1. 项目概述:Raspberry Pi Zero W Package B 是什么?如果你对树莓派(Raspberry Pi)稍有了解,那么“Raspberry Pi Zero W”这个名字你一定不陌生,它被誉为性价比最高的微型计算机之一。而“Package B”这个后…

2026/8/1 11:36:06 阅读更多 →
澜起科技率先试产CXL® 3.2内存扩展控制器

澜起科技率先试产CXL® 3.2内存扩展控制器

广东横琴--澜起科技今日宣布,率先在业界试产CXL 3.2内存扩展控制器(MXC)芯片。该产品面向人工智能、云计算、数据中心等场景的内存扩展与资源池化需求,旨在通过CXL技术助力客户构建更大容量、更高利用率、更加灵活的内存基础设施。…

2026/8/1 11:36:06 阅读更多 →
STFT时频分析实战:从原理到scipy.signal.stft参数调优与应用

STFT时频分析实战:从原理到scipy.signal.stft参数调优与应用

1. 项目概述:从全局振动到局部细节的“听诊器” 在信号处理的世界里,我们常常面对一个核心矛盾:我们想知道一个信号在某个特定时刻的频率成分是什么。比如,一段音频信号,我们想知道第2秒到第3秒之间,是钢琴…

2026/8/1 11:35:06 阅读更多 →

最新新闻

树莓派CM4 PCIe NVMe存储扩展实战:从硬件设计到系统调优

树莓派CM4 PCIe NVMe存储扩展实战:从硬件设计到系统调优

1. 项目概述:为树莓派扩展高速存储的利器最近在折腾一个树莓派上的边缘计算项目,需要处理大量从摄像头采集的原始视频流数据。数据量一大,树莓派板载的MicroSD卡读写速度就成了最大的瓶颈,频繁的I/O等待让整个处理流程卡顿不堪。相…

2026/8/1 13:04:37 阅读更多 →
2026实测8款AI录音转文字 转写速度最快最慢差4.8倍 哪款值得办公场景使用

2026实测8款AI录音转文字 转写速度最快最慢差4.8倍 哪款值得办公场景使用

简短结论 这次我实测了8款主流AI录音转文字工具,本次实测数据显示,最快和最慢转写速度差4.8倍。不同工具适配不同场景,没有适合所有需求的最优解:只需要单次短音频转写可以选轻量化工具,需要把录音整理成可复用知识、纪…

2026/8/1 13:04:37 阅读更多 →
如何让Foobar2000歌词像KTV一样逐字跳动:ESLyric-LyricsSource的魔法配置

如何让Foobar2000歌词像KTV一样逐字跳动:ESLyric-LyricsSource的魔法配置

如何让Foobar2000歌词像KTV一样逐字跳动:ESLyric-LyricsSource的魔法配置 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000单…

2026/8/1 13:04:37 阅读更多 →
Open WebUI:构建离线AI平台的终极完整指南

Open WebUI:构建离线AI平台的终极完整指南

Open WebUI:构建离线AI平台的终极完整指南 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui 你是否厌倦了依赖云端AI服务带来的隐私担忧和数据安全…

2026/8/1 13:04:37 阅读更多 →
Zenodo数据下载神器:zenodo_get让你的科研数据获取效率提升500%

Zenodo数据下载神器:zenodo_get让你的科研数据获取效率提升500%

Zenodo数据下载神器:zenodo_get让你的科研数据获取效率提升500% 【免费下载链接】zenodo_get Zenodo_get - a downloader for Zenodo records 项目地址: https://gitcode.com/gh_mirrors/ze/zenodo_get 还在为从Zenodo平台下载大型科研数据集而烦恼吗&#x…

2026/8/1 13:04:37 阅读更多 →
LVDS转MIPI转接板在树莓派摄像头接口转换中的工程实践

LVDS转MIPI转接板在树莓派摄像头接口转换中的工程实践

轩展|索尼FCB-CH6300如何对接树莓派芯片MIPI接口——LVDS转MIPI转接板 在嵌入式视觉项目开发中,经常会遇到不同接口标准的摄像头模组与主控板不兼容的问题。最近在做一个安防监控项目时,需要将索尼FCB-CH6300这款高性能摄像机模组接入树莓派平台&#xf…

2026/8/1 13:03:36 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/8/1 13:02:46 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →