最终效果 最终效果 最终效果

一直对特斯拉不支持 CarPlay 耿耿于怀,但它好用的 AP 又无法让我选择其它品牌。无意间被淘宝上的 Model3仪表盘 勾起了兴趣,虽然我并不需要仪表盘,但如果能在方向盘前面放一个 CarPlay 也是极好的,念念不忘必有回响。

顺便打个广告:点此下单 获得免费超充里程。

TL; DR

  • 使用 CarKit 盒子通过 OTG 连接 Android 手机配合 CarKit App 实现 CarPlay 功能
  • 通过修改 Android 内核启用 USB ACA 功能,实现 OTG 同时给手机充电
  • 使用塑料板支架配合凹槽固定手机
  • 花了多少钱见文末

原型

早前看到过华强北有能把 Android 车机变身 CarPlay/AndroidAuto 的神器,在橙色软件上搜“CarPlay”就能找到,都是一个叫“CarLinKit车连易”品牌的产品(下称“CarKit”)。看了下用法,就是要先在车机上通过APK安装一个App,然后把 CarKit 插到车机USB口上,App就能检测到它:显示CarKit已连接并提示请连接手机;而当 iPhone 连接到 CarKit 后,App 就会显示 CarPlay 画面。看着有线版价格不贵,就先下单了一个。

除了 CarKit,我还需要一个 Android 车机,可这并不现实,没地方安这东西呀,但只要是 Android 就行吧,何必一定是车机呢?想着买个 Android 平板来代替应该也可行,但找了一圈也没找到合适的,要么屏幕大小不合适(太大了挡视野,7-8寸的不好找),要么是否支持App控制USB OTG不详,再或者价格高于预期。此时一切都还不确定,能否走通这个方案也是未知,贸然入手一个 Android 平板不是个明智之举,万一砸手里了呢?于是我翻出了几年前淘汰下来的 Xperia Z5 ,这机器支持 USB OTG 我是亲自试过的,屏幕虽然小了点吧也算可以接受,姑且先试试,万一成功了以后可以再收个屏幕更大的二手 Xperia。CarKit App 要求比较宽松,大于 Android 4.4 就行,这台 Z5 之前被我刷回了国行 Android 5.1.1 的系统,可以安装。

收到货后看了下CarKit上的标注,让我非常吃惊的是它的功耗非常非常低,彻底打消了我对手机USB供电带不起来的顾虑。通过 microUSB OTG线 把 CarKit 和 Z5 连了起来,打开 App,然而并没有检测到 CarKit 已经插上。想起来 Xperia 需要在设置里手动触发下“检查USB设备”才会去连接USB,点击后开始转圈,还是没有,有点气馁。反复插拔触发了几次,突然就识别到了,成功连接!然后把手机连接到 CarKit,App 立马就显示了 CarPlay 画面,可把我激动的。试了下播客、地图App都能正常工作。

有线连接实验

USB识别问题

感觉有线连接手机有点麻烦,询问了客服,无线版的功耗也只有 0.55w,完全没有问题,所以重新下单把有线版换成了无线版。在连接无线版时又发生了之前碰到的无法识别的问题,这次怎么插拔都没用了,而连接鼠标、U盘却都可以工作,非常绝望。无奈只能开脑洞,掏出 USB Hub 把鼠标、U盘和CarKit一股脑儿都插了上去试试呗,奇迹发生了,居然可以识别了。经过反复组合试验,发现只要 CarKit 通过 USB Hub 连接到手机上,就次次能识别。我对USB底层实现一窍不通,只能猜测是因为 CarKit 并不像鼠标、U盘、Hub这些通常的HID、MassStorage设备是由操作系统直接处理的而是要由 CarKit App 来控制,但 somehow 操作系统没有理会这个设备,除非它通过可以被正常识别的 Hub 来叩响 USB 的门。

处理完 USB 识别问题,还得面对另一个棘手的难题——如何让手机在 OTG 的同时也可以充电。一开始,naïve的我并没有意识到这是一个多大的问题。在试了一根号称可以“供电”的OTG线后,发现问题并不简单。这根OTG线公头插在手机上,另俩母头可以同时连接 CarKit 和 microUSB 供电,但这个供电是给 CarKit 供电,不是给手机供电。如果这个问题不解决,就意味着只能手动插拔OTG线和充电线来切换充电了,而且可能出现长时间 OTG 手机没电关机的情况,算是个半残方案,无法接受。继续找可以给手机供电的OTG线,找到一个看介绍感觉比较靠谱的,写明了哪些品牌的某某型号支持,并不是所有设备都支持,下单来试试,同时也得调研下 Z5 是否支持。跟老外相比,在中国的一个好处是这些华强北的产品只要花个十几二十几块就能包邮买到并在一两天后到手,试错成本极低。

OTG + 充电 同时!

(如果手机已经支持 USB ACA,那么跳过这一节。也可以使用无线充电方式避免占用USB口。)

此处篇幅过长,另成一文 Xperia Z5 和 Z3TC 如何实现 OTG + 同时充电 记述。

搞定OTG+充电后,把手机、支持给手机供电的OTG线、USB Hub、CarKit、电源线 都连接起来,手机在充电,USB设备识别到了,perfect!

OTG和充电一起 OTG和充电一起

安装

实验成功后就开始着手把屏幕固定到车上,参考了几款Model3仪表盘固定方式和手机支架的设计,想了几个方案:1. 拗一个支架用纳米胶粘在驾驶位正前方的木板上;2. 3D打印个支架扣在方向盘后面的盖板上;3. 用一个连接片粘在车载大屏幕左边。实测下来首先排除方案3,从驾驶位上看过去正好被方向盘给挡住了;方案2成本太高先跳过。在测试方案1时发现 Z5 的宽度恰好能卡进木板和塑料之间装饰条的凹槽里,再拿塑料板拗一个拗一个三角支架粘在手机背后固定到塑料板上,非常稳固。

临时方案

固定好屏幕后需要考虑走线问题,直接把 CarKit、USB Hub、OTG线都暴露在外面显然不够美观,打算把这些都藏进储物格里,通过一条支持OTG的 microUSB 延长线来连接。至于延长线能否承担OTG和充电同时工作,我心里是没底的,只能姑且买一根来试试。我买的是 1米长的,沿着木板到大屏幕后面再从充电板左边进到储物格里,长度正好。到货后接上一试,工作正常,几天用下来也很稳定,没有发生断连的情况。

收尾

最后还需要解决手机上的两个问题。

Xperia 可设置最长的无操作熄屏时间是 30分钟,没有“永不”(never)选项,而 CarKit App 本身也没有在 CarPlay 时阻止熄屏的功能(可能正经车机并不会熄屏)。所以如果驾驶超过 30分钟,屏幕就自己关了,需要手动再打开,有点尴尬。需要一个阻止熄屏的App,Android上此类 app 挺多,试了几个发现 “Stay Alive!”(com.synetics.stay.alive) 这款恰好满足我的需求:支持 Android 5.1,可以设置仅充电时阻止熄屏。这个设置比较关键,结合无操作熄屏=1分钟,当离车后切断电源,屏幕自动关闭。

另外一个问题是 Xperia 的启动器不支持横屏,看起来不舒服倒是其次,如果 CarPlay 连接触发了 CarKit App 启动,这一刻屏幕是竖屏,会进入竖屏CarPlay模式,而屏幕实际是横放的,需要断开连接重连才能变成横屏CarPlay。搜到 XDA 有人(很激动地)发帖说某个测试版本的 Xperia 启动器支持横屏了,就下载了之后正式版的apk试了下,打开设置后果然可以了,这个问题也解决了。

成本

  • 无线CarKit: ¥273
  • 可供电OTG线: ¥14.5
  • microUSB OTG延长线: ¥12.4
  • Xperia Z5: 废物利用
  • USB Hub: 闲置
  • microUSB电源线: 闲置
  • 塑料板: 闲置

所以标题也可以叫做:《震惊!300元搞定特斯拉CarPlay》

无线CarKit价格 有线CarKit价格

相关文件


更新

大屏

闲鱼¥360收了台二手 Z3 Tablet Compact,8寸 16:9 大小刚刚好。

Z5与Z3TC

3D打印支架

试用了一个月感觉效果还不错,搞个专门的支架来安装平板,比之前塑料板方案优雅一些。市面上的车载平板支架看着都比较臃肿,所以还是自己DIY一个。

脑补了支架形状,用 AutoCAD 简单画了个模型,先用纸打印出来试了下,反复调整到适合的大小和曲面。考虑到夏天车内问题比较高,所以用尼龙材料来进行3D打印。为了省钱,又调整一番尽可能减小体积,最后花了 ¥116。(拿到手后感觉尼龙的强度还可以,再偷工减料个30%不成问题)

我使用纳米胶来固定支架和平板,粘贴强度够,要拆卸的话也可以做到无痕。因为纳米胶比较厚,所以在模型上也事先预留了贴胶的凹槽。

3D打印支架 支架+平板