登录社区云,与社区用户共同成长
邀请您加入社区
本文介绍了四足机器人的实现原理及软硬件设计。硬件方面采用ESP8266 WiFi模块进行无线控制,通过PCA9685舵机驱动板调节8个舵机实现运动控制,选用椴木支架和7.4V聚合物锂电池。软件设计基于Arduino开发环境,实现了包括前进、后退等基本动作控制,并加入超声波避障功能。测试环节包含元器件检测、运动状态调试和避障功能验证,通过PWM信号协调各肢足完成预定动作。整个系统实现了无线控制下的四
本文介绍了基于Arduino平台的无刷直流电机(BLDC)控制系统构建SLAM导航AGV小车的技术方案。系统采用低成本传感器(超声波、IMU、激光雷达)和轻量级SLAM算法(EKF-SLAM/FastSLAM),实现环境感知与自主导航。通过多传感器数据融合和实时闭环控制,满足工业仓储、巡检等场景需求。文章分析了系统架构设计、典型应用场景及注意事项,包括传感器精度处理、算力优化、地图维护等关键技术挑
两轮平衡车姿态控制基于互补滤波融合MPU6050传感器数据,实现稳定控制。通过加速度计测量倾角,陀螺仪测量角速度,采用0.98权重系数进行数据融合。该方案计算量小、实时性强,适合Arduino平台,可精确输出车身倾角用于PID控制。硬件需注意电机与传感器的电磁隔离,软件需精确计算时间间隔并进行传感器零偏校准。融合后的角度通过PWM信号控制电机转速,维持车身平衡。典型应用还包括自平衡机器人、电动独轮
本文介绍了如何通过TRAE工具自动生成GY-30光感传感器的硬件控制代码。作者首先创建详细的需求文件,包括硬件配置、功能要求(周期性读取并转换光照数据)和编译部署任务。使用豆包的coder模型生成C语言代码,实现了I2C通信、数据转换和光照等级判断功能,并生成了VS Code的tasks.json文件用于交叉编译和部署。虽然部署任务存在转义字符问题,但整体实现了预期功能,验证了AI工具在硬件编程中
*SCB模块的32位寄存器AIRCR的位定义*/
AI服务器需求激增推动存储芯片价格暴涨,NAND闪存月涨38%,DRAM内存价格翻倍。在此背景下,SDNAND凭借成本低30%、体积小70%等优势,正加速替代eMMC存储方案。工业控制、车载电子和智能穿戴领域已开始广泛应用SDNAND,其智能管理功能和可靠性持续提升,在32Gb以下容量段尤其具备竞争力。存储市场变革促使嵌入式设备厂商重新评估方案选择,SDNAND成为AI时代高性价比的替代之选。
本文以移植名为MyProduct的开发板为例讲解移植过程,假定MyProduct是MyProductVendor公司的开发板,使用MySoCVendor公司生产的MySOC芯片作为处理器。定义产品在//vendor/MyProductVendor/{product_name}名称的目录下创建一个config.json文件,该文件用于描述产品所使用的SOC 以及所需的子系统。配置如下:},...主要
OpenHarmony系统的动态加载与链接机制由内核加载器和动态链接器组成,实现应用程序和共享库的运行时链接。动态链接的优势包括代码共享、节省存储空间、便于升级和地址随机化安全防护。内核通过mmap映射ELF文件,动态链接器负责符号重定位。此外,系统还采用VDSO(虚拟动态共享库)机制,通过内存映射方式让用户态程序快速读取内核数据,实现特定系统调用加速。当前VDSO支持clock_gettime的
本文详细介绍了鸿蒙5.0开发的核心知识点和实战项目,特别是启动恢复子系统的移植过程。
本文详细介绍了鸿蒙5.0系统中手势识别模块的开发与实现。
⑶处判断是否新的键值对,如果键值对数目超过缓存允许的最大数,并且需要设置的是新的缓存则返回EC_FAILURE。函数UtilsSetValue用于读取键名对应的值,第一个参数为输入参数键名,第二个参数为输出参数键名对应的值,第三个参数为值的字符串长度。读取时,会把读取到的键值对,放到缓存的键值对链表的头部,但不删除之前的键值对数据。在文件utils\native\lite\include\kv_s
在文件base\startup\bootstrap_lite\services\source\bootstrap_service.h中定义了2个宏函数INIT_APP_CALL和INIT_TEST_CALL,分别用来调用代码段&__zinitcall_app_XXX_start、&__zinitcall_app_XXX_end和&__zinitcall_test_start、&__zinitcal
在文件定义的信号量控制块结构体为LosSemCB,结构体源代码如下。信号量状态.semStat取值,其他成员变量的注释见注释部分。/**< 信号量状态 *//**< 可用的信号量数量 *//**< 可用的信号量最大数量 *//**< 信号量Id *//**< 阻塞在该信号量的任务链表 */} LosSemCB;系统支持创建多少信号量是根据开发板情况使用宏定义的,每一个信号量semId是UINT32
主要完成Codec/DMA/I2S驱动注册,使得ADM可以加载驱动节点;并注册ADM与Drivers交互的接口函数主要完成ADM Drivers adapter接口函数的实现,以及Codec_config.hcs/dai_config.hcs等配置信息的获取,并注册到对应的设备ADM Drivers impl可以直接阅读硬件手册,完成驱动端到端的配置;也可以借用Linux原生驱动实现与接口,减少开
编译构建流程、编译脚本编写、目录规则、独立编译单个组件、独立编译芯片解决方案等介绍请见 编译构建子系统介绍。
SPI即串行外设接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线。SPI是由Motorola公司开发,用于在主设备和从设备之间进行通信。SPI通常用于与闪存、实时时钟、传感器以及模数/数模转换器等支持SPI协议的设备进行通信。当驱动开发者需要将SPI设备适配到OpenHarmony时,需要进行SPI驱动适配,下文将介绍如何进行SPI驱动适配。
本文以yxml库为例,详细介绍了Makefile方式组织编译的库移植到OpenHarmony平台的过程。主要内容包括:1)获取yxml源码并了解其目录结构;2)修改Makefile配置交叉编译工具链,使用clang替换gcc并设置相关编译选项;3)执行编译命令生成静态库和测试用例;4)测试方法说明,由于OpenHarmony不支持脚本运行,需手动输入测试文件内容进行验证;5)将库整合到OpenHa
中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,出现了一个必须由CPU立即处理的事务。此时,CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断。如图:外设可以在没有CPU介入的情况下完成一定的工作,但某些情况下也需要CPU为其执行一定的工作。通过中断机制,在外设不需要CPU介入时,CPU可以执行其它任务,而当外设需要CPU时,将通过产生中断信号使
DAC(Digital to Analog Converter)是一种通过电流、电压或电荷的形式将数字信号转换为模拟信号的设备,主要用于:作为过程控制计算机系统的输出通道,与执行器相连,实现对生产过程的自动控制。在利用反馈技术的模数转换器设计中,作为重要的功能模块呈现。DAC接口定义了完成DAC传输的通用方法集合,包括:DAC设备管理:打开或关闭DAC设备。DAC设置目标值:设置DAC设备需要将数
设置全屏可以通过 ets 调用 window.setFullScreen(true),window 会占满全屏,并且状态栏与导航栏会消失。接下来来看看底层是如何实现的。setFullScreen 会走到 WindowImpl 中,其中主要做了 3 件事通过 SetSystemBarProperty 将状态栏与导航栏的 enable 置为 false代码会调用到 WindowController::
ArkUI是鸿蒙操作系统中用于构建用户界面(UI)的一套声明式编程语言和API集合。它旨在帮助开发者快速创建响应式、高性能的用户界面。ArkUI使用JS/TS语言,并且具有以下特点:声明式UI:通过直观的语法定义用户界面布局。高效的渲染引擎:优化的渲染算法确保了流畅的用户体验。丰富的内置组件:提供了众多预定义的UI组件,如按钮、文本框等。样式与动画支持:可以方便地添加样式和动画效果来增强视觉体验。
中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,出现了一个必须由CPU立即处理的事务,此时CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断。通过中断机制,可以使CPU避免把大量时间耗费在等待、查询外设状态的操作上,大大提高系统实时性以及执行效率。
本文研究了基于STM32的果实采摘机器人图像识别系统。系统通过摄像头获取RGB颜色模型的数字图像,采用快速FCM算法进行果实识别,将位置信息传送给STM32主控芯片。硬件采用STM32F103VET6单片机,软件基于MDK开发环境。实验表明,该系统能有效识别成熟果实并准确定位,机械臂采摘成功率高,且能对果实品质进行分类。研究实现了从图像采集、处理到采摘控制的完整流程,为自动化采摘提供了可行方案。
在工业自动化、精密测量等场景中,STM32板卡,核心原因是高精度、高稳定性、多通道同步。
SDIO(Secure Digital Input and Output)由SD卡发展而来,与SD卡统称为MMC(MultiMediaCard),二者使用相同的通信协议。SDIO接口兼容以前的SD卡,并且可以连接支持SDIO接口的其他设备。SDIO的应用比较广泛,目前,有许多手机都支持SDIO功能,并且很多SDIO外设也被开发出来,使得手机外接外设更加容易。常见的SDIO外设有WLAN、GPS、C
会分2部分来介绍结构体部分,先介绍LittleFS文件系统的结构体,然后介绍LiteOS-M内核中提供的和LittleFS相关的一些结构体。
上一篇介绍了鸿蒙业务模型中的三大概念以及简单的注册过程,相信读者已经对鸿蒙的业务逻辑有了一定的了解。简单的来说,就是将多个子功能注册到服务中,再把服务注册到全局系统功能管理器(Samgr)中。这样,一个服务包含零个或多个功能,而功能又绑定了对外接口,然后我们可以向暴露的接口发送消息,等服务执行特定的处理后再将响应消息发送回来。这是最简单最直观的一次交互过程,但是要完成这样的交互,鸿蒙的底层还需要做
基于事件采样原理,以性能事件为基础,当事件发生时,相应的事件计数器溢出发生中断,在中断处理函数中记录事件信息,包括当前的pc、当前运行的任务ID以及调用栈等信息。针对计数模式,系统在perf stop后会打印: 事件名称(cycles)、事件类型(0xff)、事件发生的次数(5466989440)。当采样事件为硬件PMU事件时,打印的事件类型为实际的硬件事件id,非enum PmuHWId中定义的
其中OHOS_SYSROOT_PATH需用绝对路径指定出sysroot所在目录,以OpenHarmony为例即源码根目录下out/hispark_xxx/ipcamera_hispark_xxx/sysroot目录的绝对路径。上述目录会在全量编译后生成,因此移植前先完成一次全量编译。yxml库添加的过程除了适配文件build.gn和config.gni有些许变化外,其他和double-conver
用户最常见到并与之交互的操作系统界面,其实只是操作系统最外面的一层。操作系统最重要的任务,包括管理硬件设备,分配系统资源等,我们称之为操作系统内在最重要的核心功能。而实现这些核心功能的操作系统模块,业界一般称之为操作系统“内核”。OpenHarmony的Linux内核基于开源Linux内核LTS分支演进,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Com
本文深度剖析了鸿蒙内核的进程管理机制,揭示了进程控制块(ProcessCB)的核心数据结构。进程作为资源管理单元,负责协调内存、任务、文件等系统资源。鸿蒙系统采用32级优先级(10-31为用户可配置)、抢占式调度和时间片轮转机制,支持高效的进程切换与通信。ProcessCB结构体详细定义了进程名称、ID、状态、优先级等关键属性,以及进程间的关系链表(父子、兄弟进程)、线程管理、信号处理和虚拟内存空
本文介绍了一种基于Arduino的BLDC视觉伺服分拣机器人系统。该系统通过视觉模块识别目标物体,由Arduino主控单元协调BLDC电机驱动机械臂完成分拣任务。系统采用模块化设计,包含视觉感知、运动控制、通信接口等核心模块,具有成本低、易扩展的特点。文章详细分析了系统架构、技术要点和应用场景,包括颜色特征分拣和深度学习目标检测两种实现方案,并探讨了实时性、精度控制等关键问题。该系统适用于教育科研
R52典型制造工艺是16纳米,最高时钟频率大约1.6GHz,性能一般是2.72DMIPS/MHz,S32N55的R52频率是1.2GHz,算力就是16*1200*2.72=52KDMIPS,景芯训练营A72的CPU最高频率做到了2.5GHz,未来MCU将会卷向高端工艺、高频、低功耗的场景,大家努力冲!闪存的制造工艺扩展到40nm以下非常困难,不仅要考虑各种参数和成本,同时很难集成到非常复杂的高K金
Imagination Technologies推出 Imagination E-Series GPU IP,重新定义了边缘人工智能和图形系统设计。E-Series凭借其高效的并行处理架构,在提供卓越图形性能的同时,针对人工智能工作负载,其 INT8/FP8 算力可在 2 到 200 TOPS 之间扩展。它为未来的边缘应用提供了一种通用且可编程的解决方案,涵盖图形渲染、桌面和智能手机等领域,可实现
高清IPC、人脸抓拍、移动侦测、云端对接,都对主控算力、接口资源、功耗成本提出更高要求。FT32系列32位MCU(Cortex-M0/M3内核,主频高达120 MHz,内置256 KB Flash、48 KB SRAM、硬件JPEG编解码、SDIO高速从接口)以“高集成+低功耗+国产化”优势,为安防前端IPC、边缘NVR、智能门铃、人脸门禁等场景提供一站式MCU级解决方案,整机BOM成本立降30%
人员检测是一种基于深度学习的对人进行检测定位的目标检测,能广泛的用于安防、生产安全等多种场景,是周界入侵检测、越界识别、聚众识别、徘徊识别、摔倒识别等多种算法的基石算法。
在文件components\fs\vfs\fs_operations.h中定义了VFS虚拟文件系统操作涉及的结构体。⑴处的struct MountOps结构体封装了挂载相关的操作,包含挂载、卸载和文件系统统计操作。⑵处的struct FsMap结构体映射文件系统类型及其对应的挂载操作和文件系统操作,支持的文件类型包含“fat”和“littlefs”两种,通过这个结构体可以获取对应文件类型的挂载操作
嵌入式硬件
——嵌入式硬件
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net