Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartBox - ARM Linux 智能魔方应用盒子

项目简介

SmartBox 是一个基于 ARM Linux 平台的嵌入式多媒体应用盒子,运行在树莓派 5 上,配备 TFT LCD 触摸液晶屏。

核心技术

  • 开发环境: VMware + Ubuntu, VSCode
  • 编程语言: C语言
  • 目标平台: 树莓派 5 (ARM Linux)
  • 核心技术: 多进程/多线程、管道通信、双向循环链表、mplayer 移植

系统架构

采用界面逻辑与业务主逻辑分离架构,通过管道实现进程间通信,大幅提升程序运行稳定性与功能可扩展性。

┌─────────────────────────────────────────────────────────┐
│                    Application Main                      │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │   UI Layer  │  │Business Logic│  │  Data Layer │     │
│  │  (UIManager)│  │  (Modules)   │  │  (Lists)    │     │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘     │
│         │                │                │             │
│         └────────────────┴────────────────┘             │
│                     Pipe Communication                   │
└─────────────────────────────────────────────────────────┘

功能模块

1. 媒体播放器 (Media Player)

  • 完成mplayer开源播放器移植
  • 采用链表统一管理音视频资源
  • 支持播放、暂停、停止、上一曲、下一曲
  • 音量控制、播放进度显示
  • 支持多种播放模式:顺序播放、循环播放、单曲循环、随机播放
  • 无卡顿无音画不同步

2. 相册管理 (Photo Album)

  • 通过递归搜索文件目录
  • 采用双带头双向循环链表存储图片和缩略图
  • 优化大数量图片加载逻辑,缩略图加载耗时降低30%
  • 支持图片切换、删除操作
  • 缩略图视图和全屏视图切换

3. 五子棋游戏 (Gomoku Game)

  • 基于多线程并发开发
  • 通过子线程处理背景音乐与界面刷新
  • 解决画面卡顿问题,游戏帧率稳定在30fps以上
  • 支持双人对战和人机对战
  • 完整实现悔棋、和棋判断等核心功能
  • AI难度可调:简单、中等、困难

4. 飞机大战游戏 (Airplane Game)

  • 多线程架构:渲染线程、逻辑线程、音乐线程
  • 道具系统:生命、武器升级、护盾、炸弹
  • 多种敌人类型:普通、快速、坦克、Boss
  • 关卡切换系统,最高10关
  • 爆炸效果动画
  • 游戏帧率稳定在30fps以上

目录结构

smartBox/
├── include/              # 头文件目录
│   ├── common.h          # 公共定义
│   ├── list.h            # 双向循环链表
│   ├── framebuffer.h     # 帧缓冲绘图
│   ├── touch.h           # 触摸输入
│   ├── ui.h              # UI界面管理
│   ├── app.h             # 应用主控
│   ├── player.h          # 媒体播放器
│   ├── album.h           # 相册管理
│   ├── gomoku.h          # 五子棋游戏
│   └── airplane.h        # 飞机大战游戏
├── src/                  # 源代码目录
│   ├── main/             # 主程序
│   │   ├── main.c
│   │   └── app.c
│   ├── lib/              # 公共库
│   │   ├── list.c
│   │   ├── framebuffer.c
│   │   └── touch.c
│   ├── ui/               # UI模块
│   │   └── ui.c
│   ├── player/           # 播放器模块
│   │   └── player.c
│   ├── album/            # 相册模块
│   │   └── album.c
│   └── games/            # 游戏模块
│       ├── gomoku.c
│       └── airplane.c
├── config/               # 配置文件
│   └── smartbox.conf
├── resources/            # 资源文件
│   ├── images/           # 图片资源
│   ├── sounds/           # 音频资源
│   └── fonts/            # 字体资源
└── Makefile              # 编译脚本

编译说明

交叉编译环境设置

  1. 安装 ARM 交叉编译工具链
  2. 配置环境变量
export PATH=/path/to/arm-toolchain/bin:$PATH
export CC=arm-linux-gcc

编译项目

make clean
make

编译生成的可执行文件位于 bin/smartbox

运行说明

  1. 将编译好的程序传输到目标板
  2. 确保媒体资源目录存在:
    • /mnt/music - 音乐文件
    • /mnt/video - 视频文件
    • /mnt/pictures - 图片文件
  3. 确保mplayer已正确移植并可用
  4. 运行程序:
./bin/smartbox

硬件要求

  • 树莓派 5 (ARM Linux)
  • TFT LCD 触摸液晶屏
  • 屏幕分辨率: 800x480

软件依赖

  • ARM Linux 内核 (支持Framebuffer)
  • mplayer (移植版本)
  • 触摸屏驱动 (/dev/input/event0)
  • Framebuffer设备 (/dev/fb0)

作者

SmartBox Development Team

许可证

MIT License

About

智能魔方应用盒子 - 基于树莓派5 (ARM Linux) 的嵌入式多媒体应用:音乐/视频播放器、电子相册、五子棋与飞机大战游戏,支持TFT触摸屏

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages