
嵌入式
文章平均质量分 74
LS_learner
业精于勤,荒于嬉;
行成于思,毁于随。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RL电路(一阶系统)和RLC电路(二阶系统)
在控制系统中,系统的阶数由描述其动态行为的微分方程最高阶数决定。一阶系统(如RL电路)仅含一阶导数,响应由单一时间常数决定,表现为指数变化。二阶系统(如RLC电路)包含二阶导数,响应更复杂,可能呈现振荡特性,由阻尼比决定其动态行为。系统阶数直接影响控制参数的选择和性能分析,高阶系统需要更复杂的控制策略。理解系统阶数是分析控制系统动态特性的基础。原创 2025-08-06 19:33:52 · 372 阅读 · 0 评论 -
机械臂的轨迹生成的多种方案
摘要:机械臂轨迹生成方法主要包括多项式插值法(三次/五次多项式)、样条插值法、贝塞尔曲线法、傅里叶级数法、基于物理模型法、优化法和学习法等。这些方法各有特点,如三次多项式简单易实现但灵活性不足,五次多项式运动更平稳但计算复杂;样条插值能生成平滑轨迹但计算量较大。选择时需综合考虑任务需求、机械臂特性和计算资源等因素,也可采用混合方法取长补短。(150字)原创 2025-08-02 21:40:12 · 390 阅读 · 0 评论 -
Galaxea机器人由星海图人工智能科技有限公司研发的高性能仿人形机器人
Galaxea机器人由星海图人工智能科技研发,包括R1和R1 Pro两款高性能仿人形机器人。R1具备24自由度、5kg负载能力,R1 Pro升级至26自由度、10kg负载。配备360度感知系统、Jetson AGX Orin计算平台,支持ROS2开发。广泛应用于工业自动化、物流搬运、商业服务等领域,R1售价约40万,R1 Pro约50万,是具身智能领域的先进代表。原创 2025-08-01 20:28:03 · 466 阅读 · 0 评论 -
A∗算法(A-star algorithm)一种在路径规划和图搜索中广泛使用的启发式搜索算法
摘要: A*算法是一种高效的启发式搜索算法,用于路径规划与图搜索。它结合Dijkstra算法的广度优先思想与启发式估计,通过代价函数$f(n)=g(n)+h(n)$(实际代价$g(n)$+启发式估计$h(n)$)优先扩展最小总代价节点,确保最短路径。算法依赖开放列表(待处理节点)和闭合列表(已处理节点),需启发式函数满足可接受性(不高估代价)和一致性。常用启发式包括欧几里得距离、曼哈顿距离等。优点为高效且最优,但依赖启发式函数且内存消耗较大,广泛应用于机器人导航、游戏开发及物流规划等领域。原创 2025-08-01 16:06:24 · 803 阅读 · 0 评论 -
Dijkstra算法一种用于求解单源最短路径问题的经典算法
Dijkstra算法是解决单源最短路径问题的经典算法,由Edsger W. Dijkstra于1956年提出。它采用贪心策略,逐步扩展已知最短路径集合,适用于非负权重的加权图。算法通过初始化距离数组、优先队列和已处理顶点集合,迭代更新邻接顶点的最短距离。时间复杂度取决于优先队列的实现方式:从O(V²)到O(E+VlogV)。需要注意的是,该算法不能处理负权边。示例展示了从源点A到其他顶点的最短路径计算过程,并附有Python实现代码,使用优先队列优化效率。原创 2025-08-01 09:41:08 · 1289 阅读 · 0 评论 -
几种仿真引擎和仿真环境,用于机器人学、计算机图形学、物理模拟、机器学习等领域
摘要:本文介绍了多种机器人学、计算机图形学和机器学习领域常用的仿真引擎与环境,包括V-rep(CoppeliaSim)、MuJoCo、Bullet等物理仿真引擎,以及Isaac Sim、RLbench、Gazebo等专用仿真平台。这些工具提供逼真的3D环境和物理模拟功能,支持机器人建模、传感器仿真和强化学习研究,能有效降低硬件测试成本,加速开发进程。各平台具有不同的专业侧重,如MuJoCo擅长关节动力学,RLbench专注强化学习任务,Gazebo则与ROS深度集成。原创 2025-07-31 18:52:32 · 370 阅读 · 0 评论 -
常用的ROS(Robot Operating System,机器人操作系统)包,用于机器人软件开发的工具和库
本文介绍了ROS(机器人操作系统)中四个核心功能包:ROS2 Control(控制管理器和资源管理器)、ROS2 Navigation(导航功能)、Rviz2(3D可视化工具)和MoveIt2(运动规划框架)。这些包为机器人软件开发提供了完整的工具链,涵盖硬件控制、自主导航、环境可视化及路径规划等关键功能,共同支持机器人应用的开发与测试。原创 2025-07-31 18:47:38 · 316 阅读 · 0 评论 -
CMSIS-RTOS线程创建osThreadNew
osThreadNew是CMSIS-RTOS API中用于创建新线程的关键函数。该函数接受三个参数:线程执行函数指针、传递给线程的参数指针,以及定义线程属性的结构体指针(可设为NULL使用默认值)。函数返回线程ID,创建失败时返回NULL。示例展示了如何定义线程函数、设置线程属性(名称、优先级、栈大小等),并使用该函数创建线程。需注意线程函数应为无限循环,合理设置栈大小,并正确管理线程优先级。该函数是嵌入式系统多线程编程的基础工具,用于实现任务并发执行。原创 2025-07-20 19:15:20 · 353 阅读 · 0 评论 -
MPU6050 六轴传感器驱动库函数解析
摘要: 本文解析了 MPU6050 六轴传感器驱动库中的 getDeviceID() 函数,该函数通过 I2C 协议读取 WHO_AM_I 寄存器(0x75)获取设备 ID。函数使用 I2Cdev_readBits() 读取 6 位标识数据,返回的典型值为 0x68,用于验证传感器连接状态。注意事项包括确保缓冲区大小、检查 I2C 地址(0x68/0x69)及排查硬件连接问题。该函数是传感器通信验证的基础功能。(150字)原创 2025-07-20 11:41:02 · 283 阅读 · 0 评论 -
函数句柄(Function Handle)一种可调用对象的引用
函数句柄(Function Handle)是一种将函数作为变量传递和操作的编程特性,支持间接调用和匿名函数绑定。它在各语言中名称不同(如Python的callable、C++的std::function),但都实现了函数作为"一等公民"的核心思想,可用于回调、高阶函数等场景,是函数式编程和模块化设计的基础工具。典型应用包括事件处理、动态调用等,通过代码示例展示了Python、MATLAB等语言中的具体实现方式。原创 2025-07-20 11:15:14 · 285 阅读 · 0 评论 -
DH(Denavit–Hartenberg)矩阵
DH矩阵是机器人运动学建模的核心方法,通过4个参数(θ,d,a,α)描述相邻连杆的空间关系。本教程系统讲解DH矩阵原理与应用:1)对比Classic DH和Modified DH两种规范;2)详解四个参数的物理意义;3)提供5步建系流程和2自由度机械臂实例;4)指出常见陷阱如坐标系混淆、零位校准等;5)给出Python实现代码。DH矩阵将复杂机构转换为4×4矩阵的乘积链,是机器人正运动学、仿真和控制的基础工具。掌握正确的DH建模方法,可准确建立从关节空间到末端位姿的映射关系。原创 2025-07-13 15:08:21 · 661 阅读 · 0 评论 -
CMSIS(Cortex Microcontroller Software Interface Standard)ARM公司为 Cortex-M 系列处理器
摘要: CMSIS是ARM为Cortex-M系列处理器设计的软件接口标准,包含硬件抽象层(Core)、信号处理库(DSP)、RTOS接口(RTOS2)、驱动框架(Driver)和软件包格式(Pack)。其优势在于跨芯片兼容性(如STM32/NXP)、工具链支持和厂商SDK集成。开发者可通过芯片厂商工具(如STM32CubeMX)快速配置,或直接调用标准化API操作内核、外设和算法。典型应用场景包括中断管理(NVIC_EnableIRQ)、DSP加速(arm_fft_f32)和RTOS抽象(osThreadN原创 2025-07-13 11:07:25 · 410 阅读 · 0 评论 -
同步(Synchronization)和互斥(Mutual Exclusion)关系
摘要: 同步与互斥是并发编程的核心概念,但目标不同:同步协调线程执行顺序(如生产者-消费者模型),依赖信号量、条件变量等机制;互斥确保共享资源独占访问(如变量修改),通过互斥锁等实现。关键区别在于,同步解决执行顺序问题,而互斥防止数据竞争。两者常结合使用(如锁+条件变量)。类比:互斥像独享厕所,同步像接力赛交接。实际开发中,互斥是同步的基础工具之一。原创 2025-07-05 00:05:17 · 342 阅读 · 0 评论 -
FreeRTOS 中任务控制块(Task Control Block,TCB)用于管理和描述任务的核心数据结构
FreeRTOS任务控制块(TCB)是任务管理的核心数据结构,包含任务名称、优先级、栈指针等关键信息。其主要功能包括存储任务状态、管理任务上下文(通过pxTopOfStack指针)以及支持任务调度(使用xStateListItem和xEventListItem)。TCB结构体包含栈指针、优先级、任务名等成员变量,在任务创建、调度和删除过程中发挥关键作用。创建任务时需要初始化TCB,调度器通过TCB管理任务状态,删除任务时则标记TCB为待清理。TCB是FreeRTOS实现高效任务管理的基础机制。原创 2025-07-04 09:05:53 · 458 阅读 · 0 评论 -
HAL库(Hardware Abstraction Layer,硬件抽象层)核心理解
HAL库(硬件抽象层)核心解析 HAL库是ST为STM32单片机设计的标准化驱动框架,通过统一API屏蔽底层差异,显著提升开发效率。其核心特性包括: 模块化设计 - 提供GPIO、UART等外设的通用函数接口 工具链支持 - 配合STM32CubeMX自动生成初始化代码 跨平台兼容 - 相同API适配不同STM32系列芯片 优势在于快速原型开发(10分钟实现串口通信)和降低移植成本,但存在代码体积较大(比寄存器操作多占20-30% Flash)和实时性稍逊的局限。建议开发中根据需求混合使用HAL库与LL库(原创 2025-07-03 23:04:42 · 432 阅读 · 0 评论 -
嵌入式系统中实现串口重定向
摘要:嵌入式系统中实现串口重定向的常用方法包括:1)重写fputc函数(裸机环境基础方案);2)Keil环境下使用MicroLIB库优化;3)RTOS系统中的设备驱动框架实现;4)直接寄存器操作(极致性能需求);5)Linux系统通过设备文件重定向。选择方法需考虑开发环境(裸机/RTOS/Linux)、性能要求和资源限制,其中重写fputc是最通用方案,RTOS和Linux系统则需结合各自特性实现。原创 2025-07-03 23:00:13 · 729 阅读 · 0 评论 -
MDK(Keil MDK)工具链
摘要: Keil MDK是ARM官方推出的嵌入式开发工具链,专为Cortex-M系列MCU设计,提供集成开发环境(μVision)、高效编译器(ARM Compiler)及丰富调试功能(支持J-Link等)。适用于IoT、工业控制等实时性要求高的场景,具备代码优化、中间件(如RTOS)和安全认证优势。商业授权分为MDK-ARM/Plus/Professional三档,对比GCC或IAR时,其ARM架构适配性更优但需付费。建议通过官网试用版快速上手,结合内置示例和调试工具(如Trace)加速开发。原创 2025-07-02 23:46:41 · 423 阅读 · 0 评论 -
Dummy机械臂主控板main函数源码解析
机器人控制与状态显示系统 该系统实现了一个机器人控制框架,包含以下核心功能: 硬件接口: 使用I2C接口连接OLED显示屏(SSD1306)和MPU6050传感器 配置多个定时器(htim7等)用于控制循环 支持PWM输出和RGB灯效控制 控制线程: 固定频率控制循环(200Hz),处理关节运动和位姿更新 支持多种控制模式:顺序目标点、可中断目标点、连续轨迹、电机调参 独立命令解析线程处理控制指令 状态显示: OLED实时显示IMU传感器数据(加速度) 展示6个关节角度和6D位姿信息(XYZ坐标和ABC角度原创 2025-06-27 09:01:40 · 487 阅读 · 0 评论 -
JDY-23蓝牙模块与电脑的连接方式
JDY-23蓝牙模块连接电脑方法 JDY-23蓝牙模块可通过**SPP(串口)和BLE(低功耗蓝牙)**两种模式连接电脑: SPP模式:使用USB转TTL模块连接TX/RX引脚,通过串口工具(如XCOM)以9600波特率通信,支持AT指令配置。 BLE模式:需电脑支持BLE协议,用调试工具(如Lightblue)扫描连接,实现数据透传。 注意事项:模块默认为从机模式,需被动连接;确保波特率一致;微信小程序可能受限。若连接失败,可检查驱动或固件版本。原创 2025-06-27 08:56:56 · 342 阅读 · 0 评论 -
OpenOCD(Open On-Chip Debugger)一种开源的硬件调试工具,用于对嵌入式系统进行调试和编程
OpenOCD是嵌入式开发的开源调试工具,支持设备调试和固件烧录。在CLion中配置OpenOCD需要安装软件、设置路径并创建配置文件,指定芯片和调试器参数。调试时可使用单步执行、断点等功能。注意事项包括正确编写配置文件、选择合适的调试器(如ST-Link)及解决可能的权限问题。该方案为嵌入式开发提供了高效的调试环境。原创 2025-06-22 10:10:41 · 347 阅读 · 0 评论 -
MagnTek MT6816-ACD 一款基于各向异性磁阻(AMR)技术的磁性角度传感器 IC
摘要:MagnTek MT6816-ACD是一款高性能AMR磁性角度传感器IC,具有14位分辨率(0-360°)、最高25,000RPM转速和2微秒快速响应。支持ABZ/UVW/PWM/SPI多种接口,工作电压3-5.5V,温度范围-40至125°C。可编程输出分辨率(1-1024PPR)使其适用于工业自动化、伺服/步进/BLDC电机控制及光学编码器替代等场景。采用SOP-8封装,提供精确角度检测和恶劣环境下的稳定性能,是运动控制系统的理想选择。(149字)原创 2025-06-21 23:10:07 · 813 阅读 · 0 评论 -
磁性传感器在电机控制闭环系统中的反馈作用
摘要:磁性传感器通过霍尔效应或磁阻效应检测磁场强度与方向,在电机控制闭环系统中发挥核心作用。霍尔传感器和磁阻传感器分别基于电压输出和电阻变化原理,适用于不同磁场强度检测。在无刷直流电机应用中,磁性传感器实时监测转子位置和转速,为控制器提供反馈信号,通过PID算法调节电机驱动电流,实现精准的位置控制和速度稳定。这种闭环控制结构由传感器、控制器、功率放大器和电机组成,广泛应用于工业自动化、电动汽车等领域,显著提升系统精度与动态性能。原创 2025-06-21 23:05:46 · 556 阅读 · 0 评论 -
谐波减速器 MINIF8 和 MINIF11 的区别
MINIF8:结构更为紧凑,尺寸更小,重量更轻,非常适用于对空间要求严格的应用场景,如小型机器人关节、微型光学器械等,能帮助设备实现小型轻量化设计。 MINIF11:相对来说尺寸稍大,在一些对空间限制不太极端的情况下使用,例如在部分中型自动化设备或中小型医疗器械中,在安装空间和设备整体布局上有一定的灵活性。原创 2025-06-15 18:31:55 · 963 阅读 · 0 评论 -
Autodesk Fusion 360 一款由 Autodesk 公司开发的基于云的三维建模、CAD、CAM、CAE 和 PCB 软件平台
Autodesk Fusion 360是一款集成3D建模、仿真、制造及电子设计的云端平台。主要功能包括参数化建模、自由造型、生成式设计、钣金设计、渲染可视化;提供结构分析、热分析、动力学仿真等CAE功能;支持多轴数控编程和PCB设计。优势在于全流程整合、云端协作、低成本订阅和跨平台支持,广泛应用于产品设计、机械工程和电子开发领域。其云端存储和实时审阅功能提升了团队协作效率,适用于分布式工作场景。提供教育版免费使用,商业版订阅价格亲民。原创 2025-06-15 11:51:44 · 1225 阅读 · 0 评论 -
Raspberry Pi Zero 2 W 的详细信息以及树莓派相关文档
Raspberry Pi Zero 2 W 是一款高性能迷你计算机,搭载 Broadcom BCM2710A1 四核芯片(1GHz)和 512MB RAM,支持 2.4GHz WiFi、蓝牙 4.2 及多种接口(Micro USB、Mini HDMI、CSI-2 摄像头等)。采用单面布局和铜层散热设计,支持 1080p 视频编解码。官网提供详细参数对比、多种扩展套餐(视觉、USB HUB、以太网等)及相关文档资源,适用于各类嵌入式项目开发。尺寸小巧但功能全面,是树莓派 Zero 系列的升级版本。原创 2025-06-15 10:38:01 · 1023 阅读 · 0 评论 -
树莓派上遇到插入耳机后显示“无输入设备”问题
摘要:树莓派插入耳机显示“无输入设备”的常见解决方案包括:1)通过桌面设置或终端命令切换音频输出到3.5mm接口;2)检查声卡驱动(aplay/alsamixer);3)测试音频输出并指定声卡;4)调整PulseAudio配置或禁用HDMI音频;5)检测硬件接触/兼容性。若问题依旧,需更新系统或检查日志,硬件损坏时可改用USB声卡。原创 2025-06-04 22:19:53 · 418 阅读 · 0 评论 -
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备的简明指南:支持USB麦克风(即插即用)、3.5mm接口(需配置)或HDMI捕获卡。关键步骤包括:1)连接设备后通过arecord -l检测;2)使用alsamixer配置输入音量;3)测试录音。推荐USB麦克风方案最简便,遇到问题时检查驱动权限或更换接口。专业用户可通过GPIO连接I2S麦克风。原创 2025-06-04 22:03:31 · 1103 阅读 · 0 评论 -
PCM(Pulse - Code Modulation)数据格式和Opus 数据格式
PCM(脉冲编码调制)是一种无损的模拟信号数字编码方法,通过采样和量化将模拟信号转换为数字形式,具有高保真度但数据量大的特点,适用于专业音频录制和高质量音频传输。LINEAR PCM是其基本形式,而μ-law和A-law PCM通过非线性量化减少数据量。Opus是一种高效、低延迟的开源音频编码格式,结合了多种先进技术,在低比特率下仍能保持良好音质,适用于实时通信(如VoIP)和流媒体服务。相比MP3,Opus压缩效率更高;相比PCM,Opus数据量更小但略有音质损失,广泛应用于Zoom、Spotify等。原创 2025-05-27 08:27:08 · 573 阅读 · 0 评论 -
使用虚拟python环境访问树莓派GPIO引脚出现 `RuntimeError: No access to /dev/mem. Try running as root!`
当程序访问/dev/mem设备文件时出现权限错误,可通过以下方式解决:1) 以root权限运行VS Code或特定脚本;2) 谨慎修改设备文件权限;3) 检查代码是否必须访问硬件资源,考虑使用模拟器或用户空间驱动替代。更安全的长期方案包括将用户加入特权组、配置udev规则或使用Linux Capabilities授权特定权限。嵌入式开发建议优先采用硬件厂商提供的用户空间工具库。原创 2025-05-23 21:52:16 · 541 阅读 · 0 评论 -
Teensy LC 一款由 PJRC 公司开发的高性能 32 位微控制器开发板
Teensy LC 是 PJRC 公司推出的一款高性能 32 位微控制器开发板,搭载 ARM Cortex-M0+ 处理器,运行频率为 48MHz,提供 62KB Flash 内存和 8KB RAM。该开发板具备丰富的接口,包括 27 个数字 I/O 引脚、13 个模拟输入引脚和 11 个电容感应引脚,支持触摸传感功能。其强大的通信能力包括 USB、串行通信、SPI 和 I2C 接口,适用于多种外设连接。Teensy LC 支持 Arduino IDE 和 Teensyduino 编程环境,提供丰富的库函数原创 2025-05-23 08:58:42 · 608 阅读 · 0 评论 -
PAM8403 一款由 NCP推出的微型 D 类音频功率放大器
PAM8403 是一款由 NCP 于 2014 年推出的微型 D 类音频功率放大器,具有以下特点:原创 2025-05-08 06:57:13 · 955 阅读 · 0 评论 -
基于 ESP32 和 GC9D01 0.71寸TFT屏幕的逼真眼睛与写轮眼动态显示
近期,我利用 ESP32 和 GC9D01 0.71’'TFT 进行了一次有趣的显示项目开发,成功实现了在该小尺寸屏幕上绘制逼真眼睛和写轮眼的效果。原创 2025-05-04 20:23:53 · 1314 阅读 · 7 评论 -
GC9D01 和 GC9A01两种TFT 液晶显示驱动芯片
GC9D01 和 GC9A01 都是晶门科技(Galaxy Core)推出的 TFT 液晶显示驱动芯片,以下是对它们的对比:原创 2025-05-02 17:13:51 · 540 阅读 · 0 评论 -
LCD(Liquid Crystal Display)屏幕和TFT(Thin Film Transistor)屏幕两种常见的显示技术
LCD(Liquid Crystal Display)屏幕和TFT(Thin Film Transistor)屏幕是两种常见的显示技术,它们在工作原理、显示效果和应用场景上有一些区别。原创 2025-05-02 12:09:38 · 555 阅读 · 0 评论 -
开发板型号 ESP32-DevKitC-32模块型号 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3
以下是关于开发板型号 ESP32-DevKitC-32、模块型号 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3 的详细介绍:原创 2025-05-01 22:08:55 · 916 阅读 · 0 评论 -
国内外学习 ESP32 基于 MicroPython 的相关网站
汇集了 ESP32、ESP8266、MicroPython 相关的资料、教程和最新资讯等,有丰富的教程和项目案例供学习交流,如 ESP32 系列教程、精华项目汇总等。:部分博主会分享自己在学习 ESP32 和 MicroPython 过程中的经验和见解,包括环境搭建、固件编译、编程技巧等内容,对深入学习有一定帮助。:其 ESP32 MicroPython 上手指南等文档,详细介绍了从硬件准备、环境搭建到基本编程操作等方面的内容,适合初学者系统学习。原创 2025-04-24 07:31:44 · 499 阅读 · 0 评论 -
树莓派系统中设置固定 IP
这些方法可以满足在基于 Ubuntu 的树莓派系统中设置固定 IP 地址的需求,你可以根据具体情况选择合适的方法进行操作。修改完成后保存并退出编辑器。原创 2025-04-20 11:52:14 · 1134 阅读 · 0 评论 -
局域网下ESP32-S3 LED灯的UDP控制
在局域网下通过IP地址控制ESP32-S3上的LED,可以使用UDP或TCP协议。以下是一个基于UDP协议的完整示例,包括ESP32-S3的服务器代码和一个简单的Python客户端代码。原创 2025-04-12 22:01:35 · 467 阅读 · 0 评论 -
ESP32S3 链接到 WiFi
通过以上步骤,你可以成功让 ESP32 连接到 WiFi 并进行网络通信。如果需要更复杂的网络功能(如 HTTP 请求或 TCP 通信),可以参考 MicroPython 的官方文档或相关教程。连接成功后,可以使用网络调试助手或简单的 UDP 示例代码测试网络连接。,让 ESP32 连接到无线路由器。在本例中,我们将使用。原创 2025-04-11 23:38:09 · 1365 阅读 · 0 评论 -
Python和MicroPython的解释器区别
Python和MicroPython的解释器是不同的实现,分别针对不同的应用场景。如果您需要在微控制器上运行Python代码,应该使用MicroPython解释器;如果您在桌面或服务器上开发,应该使用Python解释器。原创 2025-04-08 07:34:48 · 605 阅读 · 0 评论