【星汇极客】嵌入式竞赛实战:STM32+OpenMV智能识别系统开发与调试避坑指南

图谱后端选型:Memgraph vs Neo4j vs 嵌入式 SQLite,什么时候该切换? 本文通过脚本自动探测代码图谱规模,对比SQLite、Memgraph与Neo4j在不同节点量级下的性能表现。实测表明:10万节点内嵌入式SQLite凭借低延迟和轻量部署仍具竞争力;超15万节点后,Memgraph适合低延迟、高并发场景;而Neo4j仅在百万级图谱且需复杂查询时才具备优势。配套提供一键测试延迟与平滑迁移后端的Python工具链,实现按需选型与无缝切换。 阅读详情

1. 项目概述与硬件选型指南

参加嵌入式竞赛时,STM32+OpenMV组合是视觉识别类项目的黄金搭档。我当年第一次用这个方案做垃圾分拣小车时,深刻体会到硬件选型的重要性——选对了事半功倍,选错了比赛现场直接翻车。

核心控制器选择:STM32F4系列是性价比之王,比如STM32F407,主频168MHz足够处理OpenMV传回的坐标数据。如果要做更复杂的图像处理,建议上STM32H7系列,比如STM32H743,480MHz主频加上硬件浮点单元,跑简单神经网络都没问题。记得我那个国赛项目用的就是H743,同时处理摄像头数据和机械臂控制依然流畅。

OpenMV选型要点:OpenMV4 H7版本是当前主流,OV7725传感器性价比高,最高30fps的识别速度足够应对大多数竞赛场景。如果预算充足,可以考虑OpenMV5,全局快门传感器在物体快速移动时表现更好。千万别为了省钱用旧型号,我在省赛就吃过亏——OpenMV3的帧率根本跟不上小车移动速度。

电源设计坑点:舵机瞬间电流可能达到2A!很多新手直接拿开发板的5V引脚接舵机,结果摄像头工作时不时重启。我的经验是:电机必须独立供电,STM32和OpenMV共用一套稳压电路,最好加上磁珠隔离数字和模拟部分。省赛时我们就是因为电源干扰,摄像头在演示时突然重启,差点失去答辩机会。

通信方式选择:UART串口是最稳定的通信方式,我建议用115200波特率,每帧数据加校验位。曾经试过I2C通信,结果现场电磁干扰严重,数据丢包到怀疑人生。如果传输数据量大,可以用SPI,但一定要做好屏蔽。

2. OpenMV视觉识别实战技巧

OpenMV的视觉识别看起来简单,实际调试中会遇到各种意想不到的问题。这是我踩过无数坑总结出的实战经验。

环境光适应处理:比赛现场的光线永远和实验室不一样!省赛时我们的摄像头在白色背景前几乎失明,就是因为没做自动曝光补偿。正确的做法是:

import sensor
sensor.reset()
sensor.set_auto_gain(False) # 必须关闭自动增益
sensor.set_auto_whitebal(False) # 关闭白平衡
sensor.set_auto_exposure(True, exposure_us=5000) # 手动设置曝光时间

然后根据现场光线调整曝光值,最好预留串口命令可以实时调整。

色块识别优化:不要直接用IDE默认的参数!先采集现场环境的图像,用工具->机器视觉->阈值编辑器获取准确的LAB值。记得保存多组阈值应对不同光线:

# 红色色块阈值
red_thresholds = [(30, 60, 40, 80, 20, 60), (60, 80, 30, 60, 10, 50)]
for blob in img.find_blobs(red_thresholds, pixels_threshold=50):
    print(blob.cx(), blob.cy())

形状识别技巧:圆形识别最容易受反光影响,建议先用色块定位再用圆检测:

blobs = img.find_blobs([threshold], pixels_threshold=100)
for blob in blobs:
    # 在色块区域内找圆
    roi = (blob.x(), blob.y(), blob.w(), blob.h())
    circles = img.find_circles(roi=roi, threshold=2000)

帧率优化:分辨率越高处理越慢,QVGA(320x240)是最佳选择。如果识别距离近,甚至可以降到160x120:

sensor.set_framesize(sensor.QVGA)  # 不要用VGA!
sensor.set_windowing((160, 120))   # 进一步缩小识别区域

3. STM32与OpenMV通信协议设计

通信稳定性直接决定项目成败,我见过太多队伍因为通信问题在现场翻车。这套经过国赛验证的协议框架请你收好。

数据帧设计:一定要包含帧头、校验和帧尾!最简单的协议格式:

帧头(2字节) | 数据长度(1字节) | 数据(N字节) | 校验和(1字节) | 帧尾(2字节)

具体实现:

// STM32端接收解析
typedef struct {
    uint8_t header[2];  // 比如0xAA,0xBB
    uint8_t length;
    uint8_t data[256];
    uint8_t checksum;
    uint8_t footer[2];  // 比如0xCC,0xDD
} SerialFrame;

void parse_serial_data(uint8_t byte) {
    static uint8_t buffer[256], index=0;
    static enum {HEADER1, HEADER2, LENGTH, DATA, CHECKSUM, FOOTER} state = HEADER1;
    
    switch(state) {
        case HEADER1:
            if(byte == 0xAA) { buffer[index++]=byte; state=HEADER2; }
            break;
        // ... 完整的状态机解析
    }
}

差错处理机制:串口必定会出错!必须加入超时重传和校验:

// 添加CRC校验
uint8_t calculate_checksum(uint8_t *data, uint8_t len) {
    uint8_t sum = 0;
    for(int i=0; i<len; i++) sum += data[i];
    return ~sum;
}

// 超时检测
if(HAL_GetTick() - last_receive_time > 100) {
    // 超过100ms没收到数据,重置状态机
    reset_parser();
}

数据压缩技巧:如果传输坐标数据,不需要发送完整32位整数。比如图像分辨率320x240,用两个字节就够了:

# OpenMV端发送坐标
def send_coordinates(x, y):
    data = bytearray([x>>8, x&0xFF, y>>8, y&0xFF])  # 压缩为4字节
    uart.write(data)

流量控制:OpenMV的串口缓冲区只有128字节!如果STM32处理不过来,会导致数据丢失。我的解决方案是:

// STM32端定期发送心跳包
if(timer_count % 100 == 0) {
    send_heartbeat();  // 告诉OpenMV可以继续发送
}

4. 机械臂控制与运动规划

机械臂控制是项目中最容易出问题的环节,国赛时我们的机械臂就因为线缆松动当众抽搐,现在想起来还心有余悸。

舵机控制稳定性:别用开发板直接驱动舵机!舵机瞬间电流会导致电压跌落,STM32可能复位。一定要用独立的舵机控制板,比如PCA9685。控制代码要加入缓动效果:

// 平滑移动舵机
void servo_move_smooth(uint8_t id, uint16_t target_angle, uint16_t time_ms) {
    uint16_t current = servo_current_angle[id];
    uint16_t steps = time_ms / 20;  // 每20ms一帧
    
    for(int i=1; i<=steps; i++) {
        uint16_t angle = current + (target_angle - current) * i / steps;
        set_servo_angle(id, angle);
        HAL_Delay(20);
    }
}

抓取策略优化:直接冲向目标物容易碰倒!应该先Approach再Grab:

  1. 机械臂移动到物体上方50mm处
  2. 缓慢下降直到接触物体
  3. 闭合夹爪并提升
  4. 省赛时因为没做接触检测,直接把瓶子拍飞了

坐标变换基础:OpenMV返回的是图像坐标,需要转换成机械臂的世界坐标:

// 简单的坐标转换
void image_to_world(int img_x, int img_y, float *world_x, float *world_y) {
    // 校准参数需要在现场重新标定
    *world_x = (img_x - 160) * 0.2;  // 假设每个像素0.2mm
    *world_y = (img_y - 120) * 0.2;
}

现场标定方法:准备一张棋盘格标定板,记录4个角点在图像坐标和机械臂坐标的对应关系,用最小二乘法计算变换矩阵。国赛前我们花了2小时重新标定,就是因为场地灯光和实验室差异太大。

5. 现场调试与故障排除

比赛现场永远会出现实验室里没遇到过的问题,提前准备调试工具能救命。

便携式调试装置:一定要带一个USB转串口模块!当现场电脑没有串口接口时,这就是救命稻草。我还会准备一个4路舵机测试仪,快速检查是不是机械硬件问题。

状态监控系统:在STM32上实现一个简单的状态监控:

// 通过串口发送系统状态
void send_debug_info(void) {
    printf("Voltage:%.1fV, Temp:%.1fC, Servo1:%d, Servo2:%d\r\n", 
           get_voltage(), get_temperature(), 
           servo1_angle, servo2_angle);
}

常见故障处理:

  1. 摄像头白屏:大概率是光线太强,用手遮挡测试,立即调整曝光参数
  2. 机械臂抖动:检查电源电压,低于4.8V时舵机会异常
  3. 通信中断:用逻辑分析仪抓串口波形,检查波特率是否准确
  4. STM32死机:可能是看门狗没喂,或者堆栈溢出

演示应急预案:

  • 准备手动控制模式,当自动识别失败时可以手动补救
  • 关键功能要有备用方案,比如颜色识别失败就用形状识别
  • 省赛时我们就是靠手动控制挽回局面,评委还夸我们准备充分

6. 竞赛答辩与展示技巧

答辩环节往往比技术实现更重要,同样的作品,展示方式不同得分可能差一个等级。

演示脚本设计:不要想到哪演示到哪!提前设计演示流程:

  1. 首先展示最稳定的功能建立信心
  2. 然后演示核心创新点
  3. 最后展示附加功能
  4. 国赛时我们先演示了物联网监控网页,评委立刻产生兴趣

问答准备:提前预测评委问题并准备标准答案:

  • 为什么用两个STM32?:解释分工协作和冗余设计的好处
  • 识别精度多少?:给出实测数据,比如"在50cm距离下精度±2mm"
  • 成本多少?:如实回答但强调性价比

文档整理要点:作品说明书要有这些内容:

  • 系统架构图(硬件+软件)
  • 创新点详细说明
  • 实测数据表格
  • 关键算法流程图

实物展示技巧:

  • 线路要用扎带整理整齐,裸露电路用热熔胶固定
  • 准备一个5分钟的介绍视频,万一现场演示失败还有补救
  • 省赛时因为作品太大搬运困难,后来我们都改用模块化设计

记得国赛时有队伍做了个精致的展示箱,内部有LED照明和亚克力隔层,评委还没看功能就先印象加分。我们的垃圾回收车虽然技术更复杂,但外观粗糙吃了亏。从此我明白了一个道理:嵌入式竞赛不仅是技术比拼,更是综合实力的较量。

Keil调试技巧:3种方法查看Cortex-M4的SCB寄存器(含CPUID内存映射解析) 本文详细介绍了在Keil MDK中查看Cortex-M4内核SCB寄存器的三种实战方法:使用Watch窗口进行符号化观察、通过Memory窗口直接查看物理内存映射,以及利用SFR寄存器浏览器解析位域信息。文章重点解析了CPUID寄存器的内存映射地址(0xE000ED00)及其位域含义,帮助开发者深入理解处理器身份识别与底层调试技巧,提升嵌入式系统调试效率。 阅读详情

相关推荐

【实战】ComfyUI-Impact-Subpack插件安装与UltralyticsDetectorProvider节点修复全流程

本文详细解析了ComfyUI中UltralyticsDetectorProvider节点缺失的原因,并提供了完整的ComfyUI-Impact-Subpack插件安装与修复全流程。核心在于Impact Pack插件架构调整导致节点被拆分至子插件包。指南涵盖手动安装、依赖安全配置、模型文件管理及深度排错步骤,帮助用户彻底解决节点缺失问题,恢复工作流正常运行。

weixin_29290947的博客 438

[学习笔记]超越超级大循环与原生RTOS:事件驱动架构如何改变嵌入式固件的可扩展性

RTC:事件处理器一旦开始,全部状态迁移、进出动作、输出事件必须全部执行完毕才返回;同一个组件,当前处理没结束,不会开始下一条事件。这不是架构给状态机额外施加的限制,这是UML状态图等全部状态机形式化本身固有的语义要求。如果迁移中途可以被打断,状态机会停留在未定义的中间状态。RTC保证两次事件之间,状态机永远处于明确定义的合法状态,便于分析与测试。

MiKiJT的博客 238

如何用Python分析20年投资者情绪数据(附ISI和CICSI完整数据集)

本文提供了一份利用Python分析2003-2023年投资者情绪数据的实战指南。文章详细介绍了如何获取并清洗ISI和CICSI数据集,运用Pandas、Matplotlib等工具进行数据探索、可视化与深度分析,包括趋势分解、成分关联及情绪状态划分,旨在帮助读者掌握从数据到洞察的完整流程,为量化金融研究提供方法论支持。

gpu4optimizer的博客 470

DPU安全组与ACL性能测试:从规则爆炸到线速卸载的实战指南

本文深入剖析DPU安全组与网络ACL的底层卸载架构,通过两个完整实战测试矩阵,量化评估规则复杂度、有状态连接跟踪(Conntrack)及OVS Offload协同对RoCEv2性能的影响。结合真实故障排查案例与工具输出矩阵,揭示大规模云环境中安全组性能跌落的根因,并给出基于规则聚合与硬件表项优化的最优配置指南。

专注分享DPU、RDMA智能网卡/SSD(固态硬盘)产品测试与优化 352

基于Python的FTA协定内容爬虫实战:从数据抓取到智能分析

本文将详细介绍如何使用Python构建一个高效的FTA(自由贸易协定)内容爬虫,涵盖最新技术如Playwright、异步IO、智能解析等。通过本教程,您将学会如何从各类政府网站和国际组织平台抓取结构化FTA数据,并对其进行清洗、存储和分析。文章包含完整的代码实现和最佳实践指南,适合中高级Python开发者学习网络爬虫开发。

2201_76125261的博客 994

基于龙虾Claw的会议纪要自动提取与重点内容总结办公场景实践

本文介绍如何使用龙虾Claw构建会议纪要自动提取与重点内容总结系统,实现会议内容的智能处理。

一键难忘的博客 256

嵌入式:2.STM32底层基础(存储、寄存器、时钟、总线、GPIO、寄存器点灯)

存储系统用来存放程序、数据、设备状态,核心三大作用:存放程序代码、保存运行时数据(全局、局部、栈、堆)、数据持久化(比如W25Q64 Flash,可以搭配文件系统)。

2401_86731574的博客 379

【OpenClaw】Edict 三省六部制部署与启动

文章摘要 本文聚焦Edict系统的本地部署与启动,提供三种安装方式:Docker快速体验、macOS/Linux原生安装和Windows生产仿真。核心目标是让用户能够独立完成系统启动和基础问题排查,确保看板、后端服务、同步脚本和网关正常运行。文章强调环境检查的重要性,并给出具体验收标准:浏览器能访问看板页面(http://127.0.0.1:7891)和接口返回JSON数据。同时提供一键启动/停止脚本和常见问题处理建议,帮助用户快速验证部署结果。配套系列教程涵盖部署启动、使用实战、二次开发和封装版本使用等内

Mr数据杨 2904

基于STM32的智能浇花系统

本文设计基于STM32F103C8T6的智能浇花系统,集成DHT11、YL-69、MQ-135、GL5528四类传感器,实现温湿度、土壤湿度、CO₂浓度与光照的实时监测。系统支持自动、手动、远程三模式联动控制,通过ESP8266-01S以MQTT协议上云,配合手机APP实现数据可视化与远程指令下发。硬件采用多通道ADC采样、继电器驱动与OLED显示,软件实现精准时序控制与双向通信。测试表明系统稳定可靠,完整覆盖“感知—控制—云联”IoT全链路,具备高扩展性与工程实践价值。

weixin_45732499的博客 176

Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新)

自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-优快云博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-优快云博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-优快云博客_qt实现好看侧边栏。...

抵抗时间扭曲,坚持做一件有意义的事 2万+

4 屏 + 8 摄像头一开,谁在悄悄拖慢你的座舱域控?

如果你觉得座舱卡顿:❌ 别第一反应怪 SoC❌ 别盲目堆算力。

weixin_43199439的博客 152

MCU复位电路不加单片机可行吗?PCB踩坑记

第一版板子长按偶发不触发,经查为Key脚走线穿越DC-DC电感下方,受开关噪声干扰导致判定失败。改用丽晶微EY407-383329(SOT23-6)专用复位ASIC,硬件实现3秒长按、1秒双路互补脉冲输出,无需MCU参与,省去软件消抖与定时器资源。关键点:Key线避开通路、就近加104P去耦、低有效接法正确、输出极性匹配、RESET上拉可靠、扩流器件靠近输出。全靠硬件实现稳定复位,主控死机仍可工作。建议依8项排查清单验证,量产前索取规格书并打样验证。

ELITECHIP_ECM的博客 283

利用人工神经网络在Abaqus中实现本构模型的网格粗化计算框架:详细指南与实践

在这篇文章中,我们详细介绍了如何在Abaqus中实现基于人工神经网络(ANN)的本构模型以进行网格粗化的计算框架。我们通过两个主要模块——数据生成器模块和ANN训练模块,实现了这一计算框架,并将训练好的ANN集成到Abaqus的用户材料子程序(UMAT)中,创建了一个基于ANN的本构模型。我希望这篇文章能帮助到那些希望在Abaqus中实现基于ANN的本构模型的读者,同时,我也非常欢迎大家提出宝贵的意见和建议,让我们共同进步。

qq_38334677的博客 1717

锅炉房已经有PLC,还需要IoT吗?从安全控制到全局能效的智能化升级

无论是工业蒸汽锅炉房,还是酒店、医院等商业热水场景,改造都可以从现有条件出发:先梳理控制系统、仪表和通信情况,再明确安全边界与数据需求;盈电物联网的云边协同思路,是在尽量保留原有控制与仪表设备的基础上,通过IOT控制器补齐数据接入和边缘处理能力,再与云端平台协同,逐步建立运行、能耗与运维之间的数据闭环。锅炉房智能化,不是用IoT取代PLC,也不是简单增加一块远程大屏,而是在保障安全控制独立可靠的基础上,让分散的数据真正服务于运行管理。将告警、排查、处理、复核和维修记录串联起来,形成可追溯的设备档案。

olzorange的博客 291

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

20 嵌入式系统架构:架构模式、实时操作系统、鸿蒙案例

嵌入式架构模式怎么选、RTOS 和通用操作系统差在哪、优先级反转怎么破?本篇把前后台、中断驱动、管态目态几种结构排成一条演进线,手把手算 RMS 可调度界限、判断任务集能不能跑得动,再把优先级继承与优先级天花板两种解法对上号,配鸿蒙案例讲清工程落地。

weixin_46316564的博客 230

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

重复网格自动实例化:6400个方块背后的提交成本

这项夹具关闭了G-buffer、AO、GI、阴影、AA、MSAA和大气,用来隔离不透明实例提交成本。本文依据2026年11月9日已合并的PR #792及其中的验证记录撰写,数字不是本次重新运行的测试。这次实现把符合条件的重复不透明网格与材质组合,自动送入现有Vulkan实例化间接绘制路径。EVEngine最近合并的自动实例化改动,针对的正是这段重复工作。它们看起来不像渲染大功能,但位于每对象、每帧的循环里,数量一多就值得测量。真正可复用的是保留场景、构建参数、预热时间和日志汇总工具,再对照同源代码开关。

西风世界 143

注塑机数据采集网关 ZK-D1/D3 如何与 MES/IOT 平台对接并展示数据

本文系统阐述注塑车间数据采集难题及ZK-D1/D3网关解决方案,聚焦设备异构协议统一、数据建模规范与四层链路对接。通过明确设备唯一标识、统一命名规则与上行协议选择,实现多品牌注塑机数据标准化采集与传输。结合MQTT/HTTP/OPCUA多协议支持,构建从设备层到MES/IOT平台的完整链路,支撑实时看板、历史趋势、OEE分析与报警管理。强调前期标准化与端到端验证的重要性,确保数据可靠落地,赋能智能制造。

专业采集注塑机数据,为mes系统提供数据服务! 254

中科晟达注塑机数据采集网关 ZK-D1/D3:如何读取各品牌注塑机系统数据并对接 MES/IoT 平台

注塑车间数字化改造核心挑战在于多品牌、多协议设备的数据采集。中科晟达ZK-D1/D3网关通过边缘计算,兼容海天、发那科等主流机型及私有协议,支持EUROMAP63/77、Modbus、OPCUA等标准,实现南向多协议解析与北向标准化上行(MQTT/OPCUA/HTTP)。结合统一点位模型设计与断网续传机制,助力MES高效对接。部署中需重点确认通信权限、合理配置轮询周期、保障时间同步与数据去重,可有效解决“采不到数”“数据不准”等痛点,为OEE分析、工艺追溯与智能运维提供可靠数据底座。

专业采集注塑机数据,为mes系统提供数据服务! 299

越华环保集团碳惠小屋|面向碳普惠场景的 IoT 终端与碳数据链路设计方案

越华环保集团碳惠小屋这套 IoT 碳数据方案,把物联网感知技术和碳普惠业务规则深度绑定,补齐了碳普惠线下可信数据源短板。相比通用回收设备,它的核心价值在于标准化碳数据链路与可对接上层碳普惠平台的开放能力。随着各地碳普惠数字化建设提速,对合规、可溯源线下采集终端需求持续增长。这套架构具备良好扩展性,后续可以继续接入骑行、节水节电等更多低碳感知终端,作为统一的公众低碳数据采集底座,支撑区域碳普惠数字化体系持续迭代升级。

MuMuMu1223的博客 198

python标准库使用总结

它跟着 Python 解释器一起发布,跨平台(Windows / Linux / Mac / 嵌入式),文档统一,稳定性高。TCP/UDP,和 C 的 socket API 思想几乎一致,嵌入式网络开发必看。和第三方库(requests、numpy)对比:第三方要 pip 装;:IO 多路复用(epoll/poll),写服务端、高并发网络。包(标准库 HTTP 请求,不用装 requests)内置模块是标准库的子集。,是内置模块,不需要 import。包(标准库自带 HTTP 组件)

qq_28576837的博客 212

STM32串口DMA+IDLE空闲中断接收不定长数据:完整代码与避坑指南

串口接收不定长帧是嵌入式通信中最普遍的工程难题:轮询占用 CPU、定长 DMA 接收不齐、逐字节中断在 115200 波特率下每 86.8 μs 打断一次主循环。本文基于 STM32F103C8T6(72 MHz),采用 USART1

12 年嵌入式一线固件工程师。只写两种内容:板上量到的真实数据,和照着做就能定位到代码行的排查步骤。主攻 STM32 现场故障、RTOS 与显示驱动。 312

【成品设计】基于51单片机的智能鱼缸控制系统设计

本文介绍基于51单片机的智能鱼缸控制系统,实现水位、温度、浑浊度实时采集与LCD显示,支持按键手动投喂及参数设置。通过蓝牙模块连接手机APP,实现远程监测,并具备自动加水与排水功能。版本V2在V1基础上优化蓝牙通信与APP交互体验,提升智能化水平。作品设计完整,展示详实,适合爱好者参考学习。

Dev_XH 's HOME 172

软考嵌入式工程师笔记复盘

迎来正式的考试,无论是临时抱佛脚还是巩固知识,我个人总结了一份冲刺笔记。2027年上半年考试科目。

u012890771的博客 212

【嵌入式与机器人实战笔记05】用 PWM 驱动履带电机:从占空比到实际转速

电机转起来只是第一步,真正难的是"给多少占空比,车就跑多快"。本篇把 duty_u16 的 0~65535 一路拆到履带线速度:占空比决定平均电压,平均电压决定空载转速,减速箱再把它降到履带能用的转速。中间有三段完全不同的行为——死区(占空比太小,静摩擦和履带张力吃掉了全部扭矩,电机只会"嗡嗡"不转)、线性区(转速大致与占空比成正比)、饱和区(电压不够,再加占空比也没用)。文章给出死区、线性区、饱和区的判据与经验区间,说明为什么电池从 29.4V 掉到 24V 后同样的占空比会变慢,PWM 频率该怎么选(1

xinjiyaya的博客 135

六轴机械臂的关节里,是一颗 600MHz 的国产 MCU

electronica 2026 慕尼黑开幕,兆易创新(GigaDevice)把一台由 GD32H77R 驱动的六轴协作机械臂搬进了展台:Cortex-M7 跑到 600MHz,绝对值编码器反馈加 EtherCAT 总线,协同六轴做联动控制。当"物理 AI"的叙事全部集中在 GPU 和大模型上时,展台上这台机械臂提醒了一件事:让机器真正动起来的,是一颗实时控制芯片。📌 全文 7 章 · 7 张图 · 一条主线:物理 AI 的下半场,控制层国产化正在悄悄提速。

嵌入式单片机实验室 489

物联网卡如何实现景观灯智能化管控?智慧亮化工程解决方案

该方案无需复杂布线、不用搭建专网,依托运营商无线网络,就可以实现灯具批量在线监测、智能开关、故障上报、能耗统计,有效降低亮化工程的长期运营成本。景观灯属于长期待机、无人值守、批量部署的工业终端,对通信稳定性要求高,需要满足低功耗长待机、心跳在线、支持批量统一管理、降低停机风险等要求,因此亮化项目一般优先选用工业级物联网卡。平台支持单灯、分区、全局控制,可配置日常、节假日、深夜节能等多种模式,跟随昼夜时长变化自动调整,节约电力资源。2. 下行指令:平台下发远程开灯、关灯、调光、定时策略、分组控制指令;

sms159753的博客 252

不用买开发板:用 QEMU 走通嵌入式 Linux 全流程(五)在 macOS 上搭 Linux 构建环境

前面四篇都在 QEMU 里操作。从这一篇开始要编译内核和 Buildroot,需要一个真正的 Linux 构建环境。本篇讲为什么不能直接在 macOS 上编、用什么方案、以及一个很常见的 root 构建报错。

博客 153
上一篇: 嵌入式开发中的RTOS选择困境:从FreeRTOS到鸿蒙,如何避免‘选择恐惧症’?
下一篇: NFC技术演进与PN532的生态位:从卡片读写到物联网边缘智能
随身带U盘
博客等级 码龄4年 30粉丝 1526原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值