【立创·泰山派】基于ICN6211驱动Sony CXN0102激光振镜的Android TV智能投影机DIY全攻略
【立创·泰山派】基于ICN6211驱动Sony CXN0102激光振镜的Android TV智能投影机DIY全攻略
最近有不少朋友在问,能不能用开发板自己做一个智能投影仪?正好,我之前用立创的泰山派开发板,搭配索尼的一款激光振镜光机,成功DIY了一台功能完整的Android TV投影机。从硬件设计、系统定制到外壳组装,整个过程踩了不少坑,也积累了不少经验。今天,我就把这个项目的完整过程分享出来,手把手教你如何从零开始,打造一台属于自己的智能投影仪。
这个项目以立创·泰山派开发板为核心,通过ICN6211芯片将MIPI DSI信号转换成RGB信号,来驱动索尼CXN0102激光振镜光机。最终我们得到一个运行Android 11 TV系统、支持HDMI输入、千兆网、无线投屏的智能投影设备。整个教程会涵盖硬件原理、软件编译、以及详细的装配步骤,即使你是嵌入式新手,跟着做也能成功。
重要安全提示:本项目使用的索尼CXN0102是激光振镜光机,内部有精密的激光器和振镜系统,非常怕震动和颠簸,因此绝对不适合用在车载等移动场景。另外,为了保护光机,关机时请务必先按电源键关机或待机,等待光机完全熄灭后再断电,切勿直接拔电!
1. 项目核心:硬件设计与原理
咱们先来搞清楚,要让泰山派驱动这个索尼光机,需要解决哪些关键问题。泰山派开发板自带的是MIPI DSI视频输出接口,而索尼CXN0102光机需要的是传统的RGB并行信号。这就需要一个“翻译官”——桥接芯片。
1.1 核心芯片:信号转换与接口扩展
我的方案里用了好几颗关键芯片,它们各司其职,共同构成了投影机的主控板:
- ICN6211:这是本项目的核心桥接芯片。它的作用就是把泰山派输出的MIPI DSI信号,转换成光机能识别的RGB信号。你可以把它想象成一个高级的视频格式转换器。
- MS2109:这是一颗HDMI采集芯片。为了实现HDMI输入功能(比如接游戏机、电脑),我用它把HDMI信号转换成USB视频流(UVC协议),这样Android系统就能像识别普通USB摄像头一样识别HDMI输入的画面了。这颗芯片需要搭配一颗24C16 EEPROM来存储配置程序。
- RTL8211F:千兆以太网PHY芯片。为了让投影仪有稳定高速的有线网络,我选用了这颗成熟的千兆网芯片。
- CH334R:USB 2.0 HUB芯片。泰山派自带的USB接口可能不够用,用这颗芯片可以扩展出多个USB口,方便接U盘、键盘鼠标、空中飞鼠等外设。
- CH213K:理想二极管芯片。我把它用在USB接口上,主要作用是防止电流倒灌。简单说,就是确保电流只能从主控板流向USB设备,而不能反向流动,保护电路安全。
- CH224K:USB PD协议诱骗芯片。它可以让投影机通过一个Type-C接口,直接接受12V的供电,简化了电源设计。
整个系统的数据流可以这样理解:泰山派作为大脑,输出MIPI DSI画面给ICN6211,ICN6211转换后驱动光机显示。同时,外部的HDMI信号通过MS2109变成USB视频流送回泰山派处理。网络、USB外设等都通过相应的芯片与泰山派连接。
1.2 关键物料清单与采购
DIY硬件项目,找对零件很重要。下面这个表格列出了除泰山派开发板和常见阻容元件外,你需要额外准备的核心物料。这些物料在立创商城可能不全,我把自己实际购买过的渠道也附上了,供你参考。
| 编号 | 型号/名称 | 位号 | 说明 | 推荐购买渠道(仅供参考) |
|---|---|---|---|---|
| 1 | 索尼CXN0102光机 | - | 核心显示部件,1280x720分辨率,常见于“打令小宝”机器人等设备拆机 | 在闲鱼搜索“小宝机器人 光机” |
| 2 | MS2109 | U4 | HDMI转USB芯片,需烧录程序 | 淘宝链接1(提供烧录服务)或链接2(拆机芯片) |
| 3 | 24C16 EEPROM | U5 | 配合MS2109使用,存储配置程序 | 同上,通常与MS2109成套购买 |
| 4 | ICN6211 | U2 | MIPI DSI转RGB桥接芯片 | 淘宝链接 |
| 5 | CH213K | U6/U7/U8 | 防倒灌理想二极管芯片 | 淘宝链接 |
| 6 | 12V散热风扇(505010mm) | - | 给光机散热用 | 淘宝链接 |
| 7 | 散热片(454510mm带背胶) | - | 必须安装在光机上,如果不用风扇,可以选更大的 | 淘宝链接 |
| 8 | 扬声器(2030腔体) | - | 单声道扬声器,装在主控板右侧 | 淘宝链接 |
| 9 | RTC电池(CR2032, B线序) | - | 用于系统断电后保持时钟 | 淘宝链接 |
| 10 | FPC排线(0.3mm间距, 39pin同向) | - | 连接主控板与泰山派 | 淘宝链接 |
| 11 | FPC排线(0.3mm间距, 31pin同向) | - | 连接主控板与泰山派 | 淘宝链接 |
| 12 | FPC排线(0.5mm间距, 6pin同向) | - | 连接主控板与泰山派 | 淘宝链接 |
注意:以上链接仅为作者个人采购过的渠道示例,不构成购买建议,售前售后请自行与商家沟通。所有设计文件(原理图、PCB)可以在文章末尾提供的开源仓库中找到。
2. 软件系统:Android TV的定制与编译
硬件搭好了,还得有软件才能动起来。我们需要为泰山派编译一个深度定制的Android TV系统。
2.1 获取与打补丁
立创官方提供了泰山派的Android SDK,我们基于这个基础进行修改。我已经把针对本投影机项目的所有修改做成了一个补丁包。
获取补丁仓库:
git clone https://gitee.com/fengmoxi/tspi-cxn0102.git cd tspi-cxn0102应用补丁: 首先,确保你已经从立创官方获取了基础的Android SDK(例如
tspi_android_sdk_repo_20240202)。然后运行补丁脚本,将<泰山派Android SDK路径>替换成你本地SDK目录的实际路径。chmod a+x projector.sh ./projector.sh <泰山派Android SDK路径>这个脚本会自动完成内核驱动、设备树、系统配置等所有必要的修改。其中最重要的改动包括:
- 添加了ICN6211的MIPI DSI转RGB驱动。
- 完成了CXN0102光机的电源初始化、开关机、信号输出控制代码。
- 将系统桌面替换为专为本项目开发的CTV桌面,这个桌面集成了应用启动、HDMI输入切换、光机参数调整等功能。
2.2 完整系统编译
打完补丁后,就可以进入SDK目录开始编译了。这个过程比较耗时,且需要一台性能不错的Linux电脑(建议16GB内存以上)。
编译U-Boot(引导程序):
cd u-boot ./make.sh rk3566 cd ..编译Linux内核:
cd kernel # 加载专为投影机配置的内核配置 make ARCH=arm64 tspi_defconfig rk356x_evb.config android-11.config # 开始编译内核 make ARCH=arm64 tspi-rk3566-user-v10.img -j16 cd ..这里的
-j16表示用16个线程并行编译,你可以根据自己电脑的CPU核心数调整。编译Android系统:
# 设置Android编译环境 source build/envsetup.sh # 选择泰山派盒子的编译目标 lunch rk356x_box_tspi-userdebug # 开始编译Android,同样使用多线程加速 make -j16打包完整固件: 编译完成后,需要将U-Boot、内核、Android系统打包成一个完整的、可以烧录的固件镜像。
./mkimage.sh ./build.sh -u执行成功后,在
rockdev/Image-xxx/目录下会生成update.img文件,这就是我们最终要烧录到泰山派eMMC里的完整固件。
2.3 系统烧录与功能
使用瑞芯微官方工具(如RKDevTool)将update.img烧录到泰山派。系统启动后,你会看到一个为投影定制的Android TV界面。
这个定制系统实现了以下关键功能:
- 完整的Android TV 11体验。
- HDMI输入:插入HDMI线,系统会自动识别并显示信号源画面。
- 千兆有线网络与Wi-Fi。
- 红外遥控:适配了百度影棒、华为、爱奇艺、百视通、当贝等常见盒子的遥控器。
- 无线投屏:集成当贝投屏,支持DLNA、Miracast、华为Cast等协议。
- 智能温控:系统会监测光机温度,高于45°C自动开启散热风扇,低于35°C自动关闭。
- 丰富的按键:操控板提供了10个实体按键(方向、确认、返回、音量等),方便操作。
3. 手把手装配:从零件到整机
所有硬件和软件都准备好后,最激动人心的组装环节来了。你需要准备好3D打印的外壳(顶盖、底盖、按键帽)和一大堆螺丝螺母。别怕,跟着我的步骤一步步来。
3.1 准备阶段:热熔螺母植入
这是组装的第一步,也是最需要耐心的一步。你需要根据下图示意,在3D打印的底盖和顶盖的特定孔位里,植入热熔铜螺母。用烙铁头加热螺母,将其压入塑料孔中,冷却后就会牢牢固定。这是后续所有螺丝固定的基础。
所需紧固件清单:
| 类型 | 尺寸 | 用量 | 说明 |
|---|---|---|---|
| 热熔铜螺母 | M1.2 | 2颗 | 用于固定光机 |
| 热熔铜螺母 | M3 | 11颗 | 用于固定主板、铜柱等 |
| 热熔铜螺母 | 1/4英寸 | 1颗 | 用于安装三脚架 |
| 平头螺丝 | M3*12 | 4颗 | 固定顶盖与底盖 |
| 单头六角铜柱 | M3*8(带6mm螺纹) | 4根 | 支撑主控板 |
| 单头六角铜柱 | M3*12(带6mm螺纹) | 4根 | 支撑泰山派 |
| 圆头螺丝 | M1.2*6 | 2颗 | 固定光机 |
| 圆头螺丝 | M3*6 | 2颗 | 固定操控板 |
| 圆头螺丝 | M3*8 | 2颗 | 辅助固定 |
| 圆头螺丝 | M3*30 | 3颗 | 长螺丝,用于贯穿固定 |
3.2 核心电路组装
- 安装主控板:将4根M3*8的铜柱用螺丝固定在已植入螺母的底盖上,然后将主控板放上去,从背面拧紧螺丝。
- 连接泰山派:使用那三根不同规格的FPC排线(39pin, 31pin, 6pin),按照接口方向仔细连接主控板和泰山派开发板。排线很脆弱,动作要轻。
- 安装RTC电池:把CR2032电池按正负极方向装入主控板上的电池座。
- 固定泰山派:在刚才的铜柱上,再叠加4根M3*12的铜柱,然后将泰山派开发板放上,用螺丝固定。这样泰山派就被架高了。
- 插入操控板:将操控板(带按键的小板)直接插到泰山派的GPIO排母上。
- 固定操控板:在操控板图示的两个位置,拧入两颗M3*6的螺丝,使其与主控板固定,防止松动。
3.3 光机与声学部件安装
- 连接光机:将索尼CXN0102光机通过其BTB(板对板)连接器,小心地插到主控板对应的座子上。务必对准再用力,避免针脚弯折。
- 固定光机:使用两颗M1.2*6的微型螺丝,将光机两侧的固定耳锁紧在主控板上。这是光机唯一的机械固定点,一定要拧紧。
- 贴上散热片:这一步非常重要!将带背胶的散热片贴在光机金属外壳上,帮助导热。
- 连接扬声器:将2030腔体扬声器的线焊或插接到主控板的扬声器接口上。
3.4 总装与收尾
- 安装散热风扇:将12V散热风扇用螺丝固定在顶盖内部预留的位置上。
- 连接风扇:将风扇的电源线接到主控板的FAN接口。
- 理线:用扎线带将顶盖内部的扬声器线和风扇线整理好,避免干扰或碰到运动部件。
- 安装按键帽:将10个短的3D打印按键帽塞进顶盖的按键孔,对应操控板的10个按键。将1个长的按键帽塞进顶盖的电源键孔,这个长按键帽会一直延伸到泰山派的PWR按键上方。
- 合盖:将顶盖对准底盖,使用4颗M3*12的平头螺丝从底部锁紧。
- 装饰:最后,贴上你喜欢的前后面板贴纸。我提供了简约版、二次元版和小熊版三种样式。
大功告成!接通12V电源,按下那个长长的电源键,享受你自己打造的智能投影仪吧。
4. 资源获取与后续
所有的设计文件、源码、3D模型和编译好的固件,我都已经开源。
- 项目源码(SDK补丁、定制APP):
- SDK补丁仓库:
https://gitee.com/fengmoxi/tspi-cxn0102 - 定制桌面APP仓库:
https://gitee.com/fengmoxi/tspi-cxn0102-app
- SDK补丁仓库:
- 固件与3D打印文件:
- 网盘链接:
https://pan.baidu.com/s/1C0nd4XRrlDxFH-a9CVPCKA?pwd=TSPI - 提取码:
TSPI网盘内包含最新编译的固件镜像、3D外壳的STL文件以及详细的装配示意图。
- 网盘链接:
这个项目我从电路设计、驱动调试、Android定制到结构设计,全程走了一遍,确实是个不小的工程。最大的难点在于让ICN6211和CXN0102稳定协同工作,以及Android系统层的深度定制。过程中光机驱动和温控逻辑调试花费了不少时间。希望这份详细的攻略能帮你少走弯路。如果你在复刻过程中遇到问题,或者有更好的改进想法,欢迎到开源仓库提交Issue,我们一起让这个项目更完善。
