项目简介
本项目旨在借助蓝牙(BLE)技术,将DOOM、Strife、Heretic或Hexen等经典游戏从Linux系统流传输到PineTime智能手表上。项目结合了Python和C++技术,利用BlueZ蓝牙栈实现数据传输,同时运用图像处理技术使游戏画面适配PineTime的小屏幕。
项目的主要特性和功能
- 跨平台通信:运用Python和C++实现Linux与PineTime之间的蓝牙通信。
- 游戏流传输:支持将DOOM等经典游戏画面实时传输到PineTime智能手表。
- 低延迟优化:通过BlueZ的定制补丁和PID控制器优化数据传输,保证低延迟和高帧率。
- 图像处理:把游戏画面转换为适合PineTime显示的格式,并进行颜色深度优化。
- 多游戏支持:支持多种经典游戏,可依据不同游戏调整帧率和数据传输策略。
安装使用步骤
复制项目
sh
git submodule update --init
编译和安装BlueZ
安装依赖
sh
sudo apt install build-essential automake libtool pkg-config libglib2.0-dev libell-dev libdbus-1-dev udev libudev-dev libical-dev libreadline-dev systemd
复制BlueZ源码并打补丁
sh
git clone -b 5.55 --depth=1 https://git.kernel.org/pub/scm/bluetooth/bluez.git
patch -d bluez -p1 < chocolate-doom/doomtime/patches/bluez.patch
编译BlueZ
sh
cd bluez
./bootstrap
./configure --prefix=$PWD/_install --enable-external-ell
make
编译Chocolate Doom和客户端应用
安装依赖
sh
sudo apt install cmake libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libeigen3-dev libboost-dev libopencv-core-dev libopencv-dev libpython3-dev clang python3-dbus python3-numpy
配置并编译
sh
cmake -S . -B _build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
cmake --build _build
编译PineTime固件
安装依赖
sh
apt install python3-numpy
下载并配置GNU Arm Embedded Toolchain,并将其路径添加到环境变量中
使用newt
工具编译固件
sh
newt build boot-pinetime
newt build doomtime
运行项目
启动蓝牙守护进程
sh
sudo systemctl stop bluetooth
sudo bluez/src/bluetoothd
使用bluetoothctl
连接PineTime设备
启动Chocolate Doom并等待客户端连接
sh
cd chocolate-doom
._build/src/chocolate-doom
启动客户端应用
sh
python ./_build/doomtime/host/client/client.py
完成上述步骤后,即可在PineTime智能手表上体验DOOM等经典游戏的实时流传输。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】