東風帥客,車載電腦壞了兩年了,終於抽空給做了一個,windows 11 arm64 + raspberry pi 4b。

原廠

diy

實現功能:

  1. 電子模組外置,原來的機位改成了收納空間
  2. 屏幕採用10.1英寸電容屏。 微雪的屏不支援lineageOS。
  3. windows系統。 對比了ubuntu、rasbian、android【國外的一個開源組弄的lineageOS,還蠻有名】,感覺這個windows 11 arm64最流暢,而且目前也沒有哪家的車載電腦採用windows

模組:

  • 螢幕 * 1
  • 樹莓派4b * 2,一塊用來裝系統,一塊用來做路由器。 操作系統的樹莓派4b 8G記憶體版,做路由器的樹莓派4b 2G記憶體版。
  • 功放模組 * 1
  • 電源模組 * 3,把車載12v降壓到5V3A,分別給樹莓派主機板和屏幕供電
  • 開關模組,用洞洞板飛線

其他結構件均廢物利用,如:

  • 收納空間的外殼是學校裡面工業設計實習學生用剩下的木板
  • 樹莓派3b的支撐板是從廢的亞克力板上裁下來的一塊
  • 屏幕的支持結構是報廢筆記本螢幕上拆下來的

問題與解決

對比嘗試了raspbian arm32、ubuntu 21.04 arm64和window 11 arm64,還是windows最流暢,但是Windows由於不是官方發佈,是國外的大神從預覽版修改而來的,沒有預置wifi的驅動,所以不支援無線網卡。 為了解決這個問題,將一塊2G記憶體的樹莓派刷openwrt做路由,wifi用client模式接手機熱點,橋接到乙太網口,windows通過乙太網口接入。

update 2021.7.31.

bug:

關機的時候直接切斷電源導致

1、windows 11某應用程式配置檔丟失

2、樹莓派3b上的openwrt的sd卡被置為只讀,下次開機無法連接手機熱點,且無法修改配置

上述問題,判斷皆由非安全關機導致,解決辦法:

1、開啟openwrt的root帳戶ssh登錄,且使用公鑰和私鑰,不用密碼,這樣可以實現在命令行用ssh命令免密碼自動登錄,適用於批處理。

2、用poweroff指令遠端關機openwrt。 嘗試中發現openwrt的關閉過程很漫長,所以後續批處理需要判斷openwrt是否已經關閉。 如果不做判斷,windows關閉后將失去對openwrt的控制

3、判斷openwrt是否成功關閉,我採用ping命令,並判斷回顯中是否帶有TTL字串,如果能夠ping通,則回顯字元串中包含TTL,如果ping不同,則不包含TTL。

4、當openwrt關閉后,批處理關閉windows 11。

文稿代碼如下:

rem @ echo off
title poweroff monitor
set ip=192.168.1.1
ssh root@%ip% poweroff

:p
timeout /nobreak /t 5
ping %ip% | find “TTL”
if %errorlevel% == 0 (
echo remote poweroff failed
goto p
)

echo remote poweroff success, shutdown local immediately
timeout /nobreak /t 3
shutdown /t 0 /f /s

最後,批處理執行關機,需要給管理員許可權,這個失誤耽誤了我個把小時。

update 2022.7.30.

最近做了一次大升級:

  1. raspberry pi4b替換成Celeron J4125。 主要為了獲取視頻播放高清解碼的能力,樹莓派無法播放4k視頻,x86上很流暢
  2. 電源管理部分更換了統一的DC12vtoDC5v電源轉換器。 減少空間佔用,走線更精簡有序,便於維護管理
  3. 4個usb電源介面,主機和螢幕用2個,剩餘2個保留給以後的擴展設備
  4. 螢幕下方加了支架,行車途中不會上下顛簸,保持屏幕穩定