当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]该项目最初旨在通过构建一款便携式陪伴机器人,将定制硬件、嵌入式软件、娱乐功能和交互式应用整合到一个平台上,从而在现实生活中重现这一概念。

BMO一直是《探险活宝》中最喜欢的角色之一。它不仅仅是一台游戏主机,更被塑造为一个拥有自己个性的伙伴、朋友和娱乐设备。

该项目最初旨在通过构建一款便携式陪伴机器人,将定制硬件、嵌入式软件、娱乐功能和交互式应用整合到一个平台上,从而在现实生活中重现这一概念。

最终成果是BMO,这是一款搭载ESP32-S3芯片的伴侣机器人,配备定制3D打印外壳,采用基于FreeRTOS的软件架构,具备运动感应、音频播放、教育应用以及内置游戏功能。

设计与开发

整个系统从零开始设计,包括外壳、电子集成、软件架构和用户界面。

硬件以ESP32-S3微控制器为核心,集成了图形显示屏、运动传感器、音频播放、电池供电、物理控制按钮、SD卡存储、定制PCB板以及完全定制的3D打印外壳。

该外壳在Fusion 360中进行了建模,并经过优化,以容纳所有内部组件,同时保持BMO标志性的外观。

软件架构

该软件基于FreeRTOS,可使不同功能作为独立任务运行。

该架构将显示管理、用户输入、运动感应、音频播放、游戏执行、存储管理和系统事件分别划分为独立的任务。模块之间的通信通过队列和事件驱动机制实现,从而形成响应迅速且可扩展的设计。

这种方法可在保持系统响应性的同时,使多个功能平稳运行。

功能

BMO 设计为一款多功能的配套设备,目前包含:

娱乐

•内置游戏

•Flappy BMO,灵感源自经典游戏《Flappy Bird》

•交互式图形用户界面

•从SD卡存储播放音频

•音乐播放器功能

•录音回放功能

音频功能

•通过内置麦克风录音

•将录音音频文件存储在SD卡上

•播放已保存的录音

•通过内置扬声器系统播放音乐

教育功能

•互动测验应用

•TFT屏幕上显示的多项选择题

•成绩跟踪与进度监控

•旨在让学习更富吸引力的教育内容

陪伴与沟通功能

•使用集成IMU传感器进行运动检测

•RGB视觉反馈

•振动反馈

•菜单驱动的交互系统

Web门户集成

专门开发了一个网络门户,以扩展设备的功能,使其超越硬件本身。

通过网络门户,用户可以:

•提交自定义问题用于测验应用

•管理教育内容

•扩展可用的问题数据库

•个性化学习体验

这使得可以在不修改嵌入式固件的情况下添加新内容。

挑战

主要挑战之一是在保持可靠性能的同时,将多个外设集成到一个嵌入式系统中。

开发基于FreeRTOS的架构需要同时协调显示更新、用户输入、传感器读数、音频播放、SD卡访问以及游戏执行。

设计一个紧凑的外壳,既能容纳显示屏、电池、PCB、控制元件和音频硬件,又能保持BMO标志性的外观,是另一个重大挑战。

硬件调试、PCB集成、存储管理以及外设通信在整个开发过程中也发挥了重要作用。

未来发展

BMO旨在超越一款手持游戏设备。

未来版本将通过以下功能来拓展陪伴机器人概念:

•语音交互

•情绪识别

•AI辅助对话

•增强动画

•无线同步

•其他教育应用

•扩展的游戏库

长期目标是将BMO转变为一个完全交互式的陪伴机器人,将嵌入式系统、人工智能、教育和娱乐整合于一个便携平台之中。

结论

BMO 将嵌入式软件、硬件设计、实时操作系统、PCB开发、机械工程和交互式应用集成到一个设备中。

该项目不仅重现了深受喜爱的虚构角色,还展示了嵌入式系统如何用于创造引人入胜的教育与娱乐体验,同时为未来伴侣型机器人的开发奠定基础。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

实时系统最怕什么?不是任务跑得慢,是高优先级任务被低优先级任务"绑架"。这就是优先级反转——实时系统里最阴险的调度陷阱。FreeRTOS的互斥量(Mutex)内置了优先级继承协议(Priority I...

关键字: 优先级继承协议 FreeRTOS

电池供电的物联网设备中,MCU的功耗往往占据系统总功耗的相当比重。一个典型的传感器节点可能每秒采集一次数据,其余时间都在等待。如果让MCU在这段时间内全速运行,电池能量将很快耗尽。FreeRTOS提供了Tickless低...

关键字: FreeRTOS MCU

在嵌入式实时系统中,动态内存分配向来是一把双刃剑。一方面,它带来了灵活性,允许系统在运行时按需分配资源;另一方面,标准堆分配算法的时间不确定性和内存碎片问题,在实时系统中可能成为致命缺陷。FreeRTOS内核自身的任务、...

关键字: FreeRTOS 内存池

无线传感器节点通常依靠电池供电,一次部署需要持续工作数月甚至数年。对于这类设备,功耗是比计算性能更稀缺的资源。一个典型的传感器节点工作流程呈现明显的“脉冲”特征:99%的时间在休眠,只有1%的时间在执行采集、处理和上报。...

关键字: 传感器 FreeRTOS

当一个项目需要在STM32上运行FreeRTOS时,摆在工程师面前的不止一条路。STM32CubeMX图形化配置工具的出现,让RTOS的集成从“手工作坊”变成了“流水线作业”。但这是否意味着传统的手写移植已经过时?答案并...

关键字: STM32 FreeRTOS

项目中正在排查一个棘手的问题:系统在正常运行数小时后,突然毫无征兆地死锁。所有任务都停止了响应,但心跳定时器却还在走。他用了一周的时间排查内存泄漏、检查数组越界,甚至怀疑芯片有硬件bug。

关键字: FreeRTOS 中断管理

嵌入式系统崩在哪里?十有八九不是算法错了,是内存漏了。FreeRTOS把内存管理的选择权交给了开发者——五种heap方案,从"只分不收"到"多段合并",选对了系统稳如磐石,选错了就...

关键字: FreeRTOS 内存分配

调试一个基于 FreeRTOS 的多任务系统,有时候就像在漆黑的房间里找一只黑猫。程序跑飞或者卡死时,printf 日志像挤牙膏一样低效,断点调试又直接破坏了时序。这时候需要几件真正能“看见”系统运行状态的武器。

关键字: FreeRTOS 调试

一个实时操作系统的灵魂不在代码量,而在三根支柱:任务管调度,队列管通信,信号量管同步。FreeRTOS用不到10KB的内核,把这三件事做到了极致。理解它们,就是理解RTOS的全部。

关键字: FreeRTOS 内核架构

一个异常现象让你在调试器前坐了整整一下午:任务创建成功了,调度器启动了,但系统就是不运行,或者毫无征兆地跳入HardFault_Handler。你检查了所有代码逻辑,确认无懈可击,但问题依然存在。根源往往不在你的应用代码...

关键字: FreeRTOS Config.h
关闭