Nexus 7 平板汽車安裝

在某天看完 NASIOC 討論區的平板安裝討論串後,手開始癢了= =”

目標很簡單,成品看起來要簡單乾淨,並且盡量不要犧牲我常用的原廠功能。花了幾天在網路上做功課,車上拆東拆西,看我的鬼點子是可不可行??

結果當然是可行啦,不然也不會有這篇了。這裡簡單錄了一段實際使用影片
http://www.youtube.com/watch?v=f6AZKEBFkHg

這是四代 Impreza 的原廠音響主機。很陽春的設計,就中間挖個洞然後塞主機進去。不過也因為這樣才好改~ 不然現在很多車都是這種不規則設計,這個我就沒轍了。

2012-04-08_IMG_0019

中間這個洞大概是八吋,所以選用了七吋的 Nexus 7。

要把 N7 塞進去當然得弄出點空間來,做法是把音響主機的面板跟主機分家。拆面板大概就幾個螺絲卡榫,這個沒什麼,麻煩的是線。拆了後發現面板跟主機是用兩個 board to board connector 連接。我很痛苦把兩個接頭解焊下來,然後繼續很痛苦的焊上新的線…沒錯,這是 ATA33 古董排線 XD

IMG_5454

土法煉鋼的面板延長線完成了。後面貼了一片透明 vinyl 絕緣用。這大概是整個 project 最醜的地方吧 = =|| 做完後跟自己說了一句 I can’t believe I did this. 比較正確的做法應該是去買新的接頭來做延長線…

其實我還有另一台音響主機裝在車上,所以才敢大膽亂搞這台。

最後這個面板會塞到主機下面。

IMG_5463

接下來處裡外觀。直接把 N7 貼到那個八吋的 opening 後面倒也不是不行,但那樣真的不太好看而且會有不小的縫隙。所以自己設計一個面板送去 Shapeways 給他們 3D 列印。

bezel_sketchup

三個星期後東西送來啦。材質是 frosted detail plastic. 這個材質夠細緻, 防水, 也相對耐高溫。缺點是比較脆弱一點,但畢竟不會被摔來摔去,應該還好。

IMG_1587

上圖左邊一個孔是開給感光元件,左下麥克風,右邊三孔會裝上相當於是平板的電源跟音量按鍵。按鍵也是 3D 印出來的,下面是噴漆後的成品。

IMG_5404

Mic 孔後面貼了 grill,這個 grill 是… iPhone 聽筒的。eBay 上很好買。

IMG_5407

這是右邊三個按鍵的小電路板。

IMG_5409

預留空間。

IMG_5410

裝上電路板。

IMG_5411

接下來 test fit 一下。上面幾張圖都可以看到面板上下有設計幾個卡榫,下面是切給這些卡榫用的凹槽之一。用 Dremel 挖的~

IMG_5429.

從背面裝上。

IMG_5430

翻過來正面長這樣。

IMG_5435

上面這個角度”看起來”還不錯,其實有點問題。印出來面板比我設計的寬度少了將近2mm,也就是說左右的縫比原來預計的多了 1mm… 換成百分比大概是縮了1%,而 Shapeways 號稱他們的誤差最多 0.1%. 不過這家公司很夠意思啦,跟他們 email 來來回回幾次後最後決定給我全額退費@@

外觀差不多就這樣了,接下來電子方面要處裡方向盤控制鍵(SWC)跟平板供電。翻翻原廠 service manual 就會知道 SWC 基本上就是一個簡單的 resistor network, 然後走3條線接到主機。下面有標出我測量後算出來的電阻值~

swc_scheme

為了要好好利用這些按鍵,最後決定用 Arduino Leonardo 來讀這些電阻。這傢伙竟然是 Made in Italy o_O

IMG_1571

把它放在 SWC 跟主機中間”攔截”所有 SWC key press. 讀取電阻值後可以
1. 模擬鍵盤 key press 傳給 N7.
2. 模擬原廠 SWC 的功能.

第一點很簡單,Leonardo 有內建模擬鍵盤,然後透過 USB OTG 接 N7 就可以。第二個則是設計了一個可以裝在 arduino 上的 SWC 模擬電路,這個電路就接到原廠主機。按鍵變成 relay,也就是說可以用 arduino 上灌的程式來”按”這些假的按鍵。

這樣就可以做到譬如說方向盤某按鍵, 按一下就模擬原廠的功能,
按住超過 500ms 則傳 Win + M(開地圖) 給 N7 之類的。 甚至要做 double click 都可以。

main_scheme

上面是 SWC 模擬電路,供電部分也弄在同一張板子上了~ 反正就是要把車子的 12V 降到 5V。這裡用的是 LM2576-5 switching regulator.  輸出有 3A,應該足夠了。零件跟電路的話就完全照 datasheet 的 spec 做而已。沒什麼創意 XD

克難的供電測試~ 12V 由電腦的 Power 提供。

IMG_1572

然後把電路 layout 成電路板~ 剛開始還怕這個免費軟體沒有 auto routing…
還好是我多慮了 = =

main_board

檔案送去 OSHPark 後又是漫長的等待… 三個星期後成品終於來了!
紫色真的還不錯看啊 =D

IMG_5396

跟最剛開始那主機的 16pin 20pin 接頭”延長線”比起來,焊這個是輕鬆多了 = =
下圖是已經接到 arduino 上了。左邊從上到下是 USB 5V 供電,12V 輸入,SWC輸入,SWC輸出。

IMG_5425

零件都是 Mouser 買的,稍微值得一提的就是那些是 low signal relay, low 到 arduino 的 digital IO pin 可以直接 drive 沒問題 =D

測試我的 “SWC 控制模組” 中…恩…? 模組聽起好像很高級 ¬¬ 我的餐桌就這樣淪陷了~~~ 整個變成 work bench…

IMG_5398

既然用的是 arduino, 免不了要寫點程式。這個感覺跟 C 差不多吧,沒什麼奇怪的 syntax 所以很好上手。

依我自己的使用需求…寫出來的功能大概如下:

  • Mode, Vol +/- 模擬原廠功能
  • Track Up/Down 變成 Android MEDIA_NEXT 跟 MEDIA_PREVIOS
  • Track Up 按住 500ms 是按 GUI+m(地圖).
    GUI 就是那個 Win 鍵, arduino 裡叫 GUI key
  • Track Down 按住是 MEDIA_PLAY_PAUSE
  • Talk 是 GUI+v(Voice Search), 按住則模擬原廠
  • 最後下排兩個接/掛電話分別是 Android BACK 跟 HOME, 按住則模擬原廠

程式碼在這裡 nexus_swc.ino

接下來比較瑣碎點,為了要能使用 USB 隨身碟,必須做一條轉接線。車上的 USB port 另一端是一個方形的母頭。公頭 Mouser 有賣。USB 線裡面的四條線要這樣焊。

IMG_5423

上面那張只拍重點,成品大概是這樣 (偷別人的圖XD)

再來是 NFC, 這個是 project 做到一半想到的,反正蠻簡單的就一起做一做~ 下面這個是中控台上方那片塑膠板的背面用 dremel 清出來一塊給我貼 NFC coil 的空間。

IMG_5413.

用家裡能找到最細的線,繞一繞。

IMG_5415

感應測試OK~ 手機放的位置下面就是線圈。線圈接到 N7 裡面。

IMG_5417

平板裡面是這樣焊。N7 後面的殼很好開,我用指甲就能挖開了 = =a

IMG_5437

然後是焊上外接音量跟電源鍵。其實這三個鍵平常不會用到,但當機的時候會需要他們,刷 ROM 也用的到。所以才決定拉出來面板上。

IMG_5436

下面是音響主機後面 20 pin 接頭的延長線,從這裡買的。有了這傢伙我就不用剪原廠的線了。大概就是把三條 SWC 線剪斷延長做成接頭。另外 12V 紅黑也做成接頭。

IMG_5428

其實原廠主機面板拿掉後騰出來的空間是不太夠塞平板的。記得是差了2mm, 所以要小改一下 mounting bracket 把主機稍微裝後面一點。下圖主機面板本來在右上方。兩個螺絲已經鎖在 bracket 新鑽的孔上。旁邊一點(往右上)是原廠用的孔。

IMG_5424.

接下來可以上平板啦。隨便固定一下就好,反正最後平板會被夾在主機跟中控台面板中間,不會掉下來。裝的時候會有點多餘塑膠要切掉。

IMG_5447

上車安裝無面板主機還有他後面的 20pin 延長線。最大的白色接頭是接 HVAC 控制器,跟這個 project 無關。

IMG_5456

接上主機面板,設定調整好後塞進去。以我的用途來說大概就是設定 speed volume 跟手機藍芽配對。電台的話我是沒在聽~

IMG_5464

一堆線~ 中間金屬頭是 3.5mm 音源,他旁邊是原廠 USB 接頭接上我的轉接線。下面是轉接線的另一端連到 USB hub。

IMG_5459

還是畫一張圖比較清楚吧~

chart

裝上貼了 NFC 線圈的那塊塑膠板。上面弄了一張小貼紙做記號。

IMG_5466

中央扶手裡面的 3.5mm aux in 孔要連到平板的耳機孔。 這條線是 6ft M/F.

IMG_5461

線繼續往中控台方向拉,線塞進去比較美觀。

IMG_5462

再往前拉到油門踏板那邊就可以拉進中控台,這邊是有開口的。手電筒一照就知道開口在哪裡。最後連接平板是1ft M/M 直角 3.5mm 的線。平板這端必須是直角的不然空間不夠。Micro USB 也一樣。

另一種作法是直接把 stereo 音源線剪開接到主機後面aux in的線,不過還是一句話,我不想動原廠的線~~ aux in 不在之前的 20 pin接頭裡面。

下圖那兩塊是用木頭+泡棉做的。用途是要把平板壓在中控台面板上。

IMG_5448

最後把線全部接好蓋上去。過程中平板免不了會卡到裡面一些塑膠,記得是有兩個地方會卡到,所以需要稍微修剪一下~

安裝完成後主畫面。

IMG_2368

地圖 + 交通。

IMG_2366

硬體部分差不多了~ 接下來是軟體設定。第一個最重要的是要讓 Android 看得懂 arduino 鍵盤是在按什麼東西。arduino 的鍵盤跟普通鍵盤的沒什麼兩樣,並不能直接去按 android 的 MEDIA_NEXT 等等,所以要修改系統裡的 key layout file.

這是我現在用的 KL 檔。Vendor_2341_Product_8036.kl 更動部分只有 Key 62-67. 基本上就是把 F key 重新 map,反正 F key 根本用不到。

接下來是 app 快捷鍵,android 有這個功能但是被藏起來了。以我用的 apex launcher 來說,開啟快捷鍵設定頁面必須要新增一個 activity shortcut, 然後選 settings/quicklaunch.

我只設了一個 Search + v 為語音搜尋, 方向盤按 TALK 就會啟動。
Search 就是鍵盤上的視窗鍵, 或是 arduino 裡的 KEY_GUI.

再來介紹幾個 app.

Tasker, 這是做 automation 用。最基本的大概就是偵測充電時 開始放音樂並且讓螢幕不要自動熄滅。斷電後音樂停止+設定 screen timeout 15 秒。我自己還加了像開機畫面啦~自動連接手機網路等等一些雜七雜八的。

Tablet Talk, 用藍芽跟手機配對後,他可以讓你透過平板控制手機通話/撥號功能。裝了這個再配合原廠主機就等於有免持聽筒功能了。

Stickmount, 這個可以自動 mount 插在 USB 上的隨身碟。

Bluetooth AutoTether/AutoConnect, 這個配合 Tasker 就可以做到自動跟手機分享 3G 上網功能。

最後是 ROM 的選擇,這其實沒什麼好選,我用的是 CM10.1 + Timur FI Kernel. 重點是 Timur 這個 kernel 可以做到同時充電並啟用 OTG. 現在 Timur 還出了完整的 USB ROM, 一堆功能根本就為汽車安裝量身訂做~

剩下要裝什麼就看個人喜好,譬如說聽電台的啦,放影片的啦,藍芽 OBDII 等等。但記得一切還是以安全為前提~ 開車要專心 XD

 

** 本文相關討論發表於 Mobile 01 以及 PCDVD **

15 thoughts on “Nexus 7 平板汽車安裝

  1. 請問何種方法可以讓平板接上電源後自動開機(or喚醒)及斷開電源後自動關機(or休眠)?謝謝!

  2. Hi
    this article is amazing and this is what exactly I am going to do on my car. But is it possible to extend the camera unit of the tablet to do the event data recorder and the parking camera? cuz the nexus 7 has the front and rear camera.

    thanks nic

    • It’s possible , but the hardest part would be to source the proper connectors and make your own camera extension cable. Another thing people do is hook up an USB camera, but that’s for 1st gen Nexus 7.

  3. 你好,看到你的文章非常興奮,我猜你跟我一樣在觸控產品氾濫的時代,車用觸控主機好像反應不太讓人接受,可惜要找到台灣像你這樣高手不多,資訊也取得不易,很幸運能看到您的文章,最近自己的小車HONDA FIT-S剛好也有這需求,不知是否能跟您請教一番?

    ps. 尺寸相容原本就是難題,3D列印讓我恍然大悟,另外難題就是怎麼跟車上功能整合。

  4. 能請問板大一些關於Tasker的問題嗎?

    您在上面說您是使用Tasker做 automation 。

    想請問一下,您設定斷電後 screen timeout 15 秒 是休眠還是關機?

    如果是休眠的話那就是平板是24hr開著嗎?還是會設定關機?

    如果是關機的話?那有辦法設定充電後自動開機嗎?

    麻煩您抽空幫忙解答!感謝!

  5. 真厲害XD, 我也喜歡東搞西搞, 不過我自己本身是搞軟體的比較多, 硬體上就比較弱,

    我想跟您請教一下, 在這邊你是在nexus 7上面接了一個USB hub (OTG) 他可以接受同時充電跟外接隨身裝置嗎?QQ, 還是有做了什麼招式XD 希望不吝指教, 我最近也想搞一下跟你很像的事情, 哈哈哈哈.

  6. Visited the blog’s owner last year and played with this Nexus 7-powered tablet. It was super awesome! And the fact that there’s an Arduino tugged into the car thrills me. LOL.

  7. 你好
    前輩,想請問可以詢問您arduino 程式碼問題嗎?
    我也買了arduino板子,目前讀SWC電阻作棟都正常
    但是按著時間幾秒內執行xx動作跟超過幾秒後執行yy動作
    這部分卡關
    想請教您,不知道方不方便

Leave a Reply

Your email address will not be published. Required fields are marked *