LV. 45
GP 326

【心得】Simhub 使用 MINI F56 真車儀表板

樓主 北南拍狼

小朋友才選稱號

Hwh
GP19 BP-

作者標示-非商業性

本授權條款允許使用者重製、散布、傳輸以及修改著作,但不得為商業目的之使用。使用時必須按照著作人指定的方式表彰其姓名。

之前用Arduino搞了MINI R53儀表板
原本是要發個心得的給之後有興趣的人自行參考
但越寫越多.. 還有一堆照片沒搞.
所以那篇慢慢寫..
先發一篇看圖說故事的儀表板..
首先要感謝 r00li 這位大神..

他在網路上發表了BMW F10系列的ESP改裝.
請參考 https://github.com/r00li/CarCluster
然後從這邊延伸出好幾套可以直接使用的儀表
F10系列比起其他的儀表板,好處理多了..
再加上程式碼都寫得好好的. 所以很適合入門使用
基本上就直接抓他的程式碼和參考他的改法就可以處理了
因為BMW F10和MINI F56的canbus id用的是同樣的.
所以我這邊使用了F56的儀錶板. 直接從日亞拍買進來.很便宜.
運費都比本體貴.
本文分成兩部分
第一部分是ESP32的安裝與使用. (有ESP32的經驗的可以直接跳過)
第二部分為Simhub的設定.


一:ESP32的安裝與使用. (已經熟悉ESP32的大部分都可以跳過了, 可以直接跳SIMHUB)
購買ESP32和MCP2515 Canbus的模板後
如果沒有ESP32使用經驗的.
那麼要先在電腦上安裝ESP32相關的軟體

首先, 要先安裝ESP32的USB驅動程式
由於ESP32的版本眾多. 請依照自己購買的板子
這個部分請自行參考這個網頁來確定要使用哪個驅動

再來要安裝Arduino IDE

安裝玩Arduino IDE之後
再來要安裝Arduino 下給ESP32開發版的library
請參考底下圖片.
首先在 Arduino 選單中.找到檔案 -> 偏好設定

在偏好設定當中
額外的開發板管理員網址部分填入
https://dl.espressif.com/dl/package_esp32_index.json


再來. 一樣找到選單中的工具 -> 開發板 -> 開發板管理員
照片中. 因為我有安裝一堆東西了, 正常不會有這麼多東西


點進去後,類型後面填入ESP32
會找到底下的ESP32
在下面的ESP32那個選安裝


接下來安裝r00li CarCluster 會用到的libaray
安裝時有兩種必要的安裝, 一種是內建在程式庫的. 只要搜尋關鍵字就可以找到
這部分有底下幾個
有時候搜尋時東西比較多, 稍微找一下要同名字的
至於版本可以用最新的, 如果有錯誤,在原作者測試時使用的版本就好.
mcp_can by coryjfowler - tested using 1.5.0
ArduinoJson -  tested using 6.20.1
ESP-Dash -  tested using 4.0.1
X9C10X -  tested using 0.2.2
WifiManager -  tested using 2.0.16-rc.2
MultiMap -  tested using 0.2.0


搜尋lib

再來是安裝需要抓下來的檔案的
這部分有兩個檔案. 直接進到github後抓下來就好

AsyncTCP -
https://github.com/me-no-dev/AsyncTCP

ESPAsyncWebServer -
https://github.com/me-no-dev/ESPAsyncWebServer

像照片一樣, 先點1 <> Code
然後會出現2 , 就可以Download了..


抓下來後
一樣從草稿碼這邊處理。
草稿碼 -> 匯入程式庫 -> 加入.ZIP程式庫

然後選擇剛剛抓下來的lib檔案.來安裝就好.

接下來要搞些硬體設定
首先把ESP32插到電腦. (先不要接MCP5215)
(在Windows圖示上按滑鼠右鍵就會出現這個選單, 選擇裝置管理員)


插入電腦後,
找一下連接埠- 確定ESP32這個位置. 我的ESP32是Silcon的CP210X系列.
這邊就是看前面說到的ESP版本不同會有不同選擇
從裝置管理員中可以看到通訊埠是COM5 (每台電腦可能會不同)



在正式把ESP32程式寫入起來之前.
當然要先把CarCluster程式碼抓下來
一樣從Code那邊 download就好.
https://github.com/r00li/CarCluster?tab=readme-ov-file
抓下來解壓縮後, 裡面有許多的目錄
依照不同車型放在不同目錄, 有興趣的再自行研究它可以用的車款儀表。
我還是比較建議用F10或者MINI F56的.
我們會用到的程式碼在
CarCluster-main ->  Dashboard sketches ->  BMW_F
進到目錄裡面會出現5個檔案
直接打開 BMW_F.ino 就好
打開後長這樣..
請注意左上角的那個 V 和右箭頭 .. 後面寫入要用到.


先設定好要使用的開發版
工具 -> 開發板 ->  ESP32 Arduino -> 選擇使用的ESP32廠牌
在這裡, 我使用的是WROOM-DA 的板子.
所以這邊就選這個, 請依照購買的板子來修改..


選擇好之後, 底下還有一個要選擇

8.
都設定好之後, 就可以把ESP32先寫入了.
記得, 先寫入完再來插那些線
原作者有提到, 如果先插線再寫入,可能會有一些問題
寫入方法..
直接按剛剛提到的那個右箭頭就好了. 當然嚴謹一點可以先打勾在右箭頭..
如果設定都沒有狀況
按下箭頭後, Arduino IDE的右下角就會出現一個方塊跑
這邊要等待幾分鐘
完成之後可以看到底下兩個關鍵
(我這邊故意把視窗拉大來看..基本上重點只有兩個.
1. 上傳完畢.
2. Hard resetting via RTS pin...
這樣就表示寫入完成了..


如果出現其他的訊息,那代表有問題. 需要排除.
通常都是library沒裝好或者硬體沒設定好.


二: 硬體接線部分

參考了r00li 的圖. 如果有興趣要搞其他儀表板的
一樣要找到這些東西, 很重要.
F系列的部分很簡單. 只要1,2,11 要接12V. 7,8,接地線.
如果自己能焊接的話, 可以買個2.5mm的DC母座來搞定


F56的針腳定位和F10不相同. 有興趣玩F56的可以看我的圖.


如果不會焊接, 那可以向我一樣直接用麵包板就好了,
或者到五金行之類的賣場買個 "零地排" 來鎖上就好
然後買個12v變壓器. 基本上1A應該就夠用了
好友提醒, F10系列的要5A才夠
當然.焊接起來的話就不會有那麼大的東西卡在那了.
至於接到儀錶板的部分, 以我買的這個板子可以直接用杜邦線(母對公) 就搞定.
如果怕不夠緊.可以購買6P雙排的杜邦母頭.
把原本的杜邦頭退pin後.換到6p雙排上.
這樣會比較緊, 也比較不用擔心會掉下來.
至於Canbus那兩條.一樣用杜邦線就好.
(依照規格是需要絞線, 但因為線很短, 差異可能不大)
Can_H 接 MCP2515 Can_H
Can_L 接 MCP2515 Can_L


ESP32和MCP2515的連接方法如下
請注意到MCP2515 的腳位不一定是按照順序從上到下都一樣的
這邊一定要看清楚板子上的腳位
不然會像我第一次接的時候就是腳位接錯
後續還以為是ESP32壞掉.
最後還好有找到這邊接線問題..
不然就尷尬了~~



所以依照這樣的定義
我買的ESP32和 MCP2515 的接線方法如下.
這邊也要注意到每款ESP32的腳位也有可能不同.
請自行確認 2, 5, 18, 19, 23, GND, 5V 這幾個針腳位置


如果程式焊接線都沒問題
應該就可以正常啟動了.
啟動後燈號不確定是不是我照片中這樣.
我照片是連結到他的ip設定後的結果的..
PS.
啟動後.可以透過wifi連結的方式進到Carcluster 這個ap..
然後連結到他預設的ip. 192.168.4.1 做設定
這邊可以讓ESP32連接到你自己的ap上.讓他變成一個網路設備
透過網頁來控制燈號.測試儀表.還有可以讓FH5直接透過UDP來連接
詳細設定這邊不說明. 請自行研究.
本篇主要是以Simhub為主..


機會教育:
如果你在路上開車..
這三個燈號千萬要小心..
不要隨便亮... !!!!!!!
如果你在路上亮了這三個燈 (遠光燈, 前霧燈, 後霧燈)
一定會被問候家裡長輩問候老師 !!!!!


三: Simhub 設定
接下來進入Simhub設定..
當然.. 請先至Simhub網站抓下最新的版本
https://www.simhubdash.com/

我這邊使用的圖片是 V9.2.12
版本更改的話, 請找相同文字就好..
Simhub功能實在太多太強大了. 我這只針對我這儀表板的設定
這邊會以 FH5 和 GT7為範例.
其他更多的遊戲和應用請參考youtube或者自行摸索..

安裝完Simhub後
(我這個後面寫Assetto Corsa不用管他.每個人可能都不同)
啟動Simhub 進入 Settings


進入Settings 後
點選 Plugins



找到Custom Serial Devices, 把右邊的選項打開成綠色
(圖片中灰色表示未開啟)


開啟後. 會在Simhub的選單上出現
Custom Serial Devices的選項.
點選進入


點選左邊的箭頭進入設定

如果有其他裝置了. 選右邊ADD new device來開新的設定


設定前一樣先從裝置管理員當中確定一下COM port..
我這邊因為用的電腦不同. 這個圖片當中已經變成了COM3了.


然後按照圖片填入資訊
1. 首先把COM選擇到適合的COM Port.
2. 然後左邊兩個綠色取消掉.
3. 再來是點EDIT輸入參數..
4. 最後記得把右上角Enable.


輸入參數的方法.
點了EDIT後會出現Biding這個畫面
選擇下面的Use NCALC




把r00li 設定參數全部貼上來

=======================不要COPY這行========================

'{"action":10' +
', "spe":' + truncate(format([SpeedKmh], 0)) +
', "gea":"' + isnull([Gear], 'P') + '"' +
', "rpm":' + truncate(isnull([Rpms], 0)) +
', "mrp":' + truncate(isnull([MaxRpm], 8000)) +
', "lft":' + isnull([TurnIndicatorLeft], 0) +
', "rit":' + isnull([TurnIndicatorRight], 0) +
', "oit":' + truncate(isnull([OilTemperature], 0)) +
', "pau":' + isnull([DataCorePlugin.GamePaused], 0) +
', "run":' + isnull([DataCorePlugin.GameRunning], 0) +
', "fue":' + truncate(isnull([DataCorePlugin.Computed.Fuel_Percent], 0)) +
', "hnb":' + isnull([Handbrake], 0) +
', "abs":' + isnull([ABSActive], 0) +
', "tra":' + isnull([TCActive], 0) +
'}\n'

=======================不要COPY這行========================



然後記得最後要把右上角打開


以上..基本設定都完成了
接下來就可以設定遊戲的部分
如果擔心硬體部分沒有設定好
可以從左邊的Dash Studio 隨便選一個簡單的儀表來顯示
如果這邊顯示不出來.可能要先處理遊戲設定.
如果這邊有顯示. 再來判斷是不是硬體的部分有問題


四:遊戲設定部分
以FH5為例 (FH4, FM7, FM8 都一樣, 走UDP規格的方法大同小異)
FH5是屬於遊戲資料傳送到儀表的類型.
所以這邊要設置到Simhub 的IP位置

========== 感謝Google的資料 ===============
如何查詢電腦IP?
按下「開始」
點選「執行」
在「開啟」一欄中輸入「cmd」
按下「確定」
輸入「ipconfig/all 」,按下Enter.
畫面顯示的「IPV4」即為IP位址:例192.168.X.X.
========== 感謝Google的資料 ===============


1. FH5 的設定.
Simhub部分只要找到FH5的設定.
像上面那張圖.基本上不用設定任何東西,只要開著就好,
如果是PC版,可以設定一下Start Game的遊戲位置
或者完全不用管他...
進入FH5的設定後找到抬頭顯示器與遊戲
把資料輸出開啟
IP部分填入Simhub電腦的IP (依照自己的電腦填入)
資料輸出IP Port 填入8000 (這邊是Simhub預設值)
儲存後.基本上就可以使用了
沒有問題.參考我前面那一張儀表的.
可以在遊戲那邊看到藍色的燈號旁邊寫著 Running
這代表遊戲和Simhub溝通沒有問題...
如果設定都正常.. 畫面顯示一定可以跑
然後. ESP32儀錶板也應該要跟著跑..
如果不行. 檢查一下接線有沒有問題..


影片為FM8


2. GT7 的設定
GT7 的UDP設定和 FH5剛好顛倒
GT7是屬於要去跟遊戲取得資料的方法
所以這邊的要設定PS4的IP位置
從PS4的設定 -> 網路 -> 查看連線狀態
來找到PS4的IP
然後填入GT7
首先.找到Simhub GT7的圖示.
選擇它裡面的Game/ Temetry config


填入PS4的IP
然後最重要的是下面那個UDP PORT
一定要33740
這個是GT7內建的UDP PORT.
基本上GT7的定這樣就好了..
底下的Forward不用動..除非有特殊需求..
打開GT7開始比賽後, 原本上方綠色Waiting  for data會變成藍色的Running
一樣可以先叫出個簡單的儀表來測試
不過GT7會有個問題.
儀錶板在比賽結束後並不會自行歸0
這部分只能忽視了..




最後
希望大家都能開開心心的玩遊戲~~~

PS
本篇文章同步發表於個人小屋、極限競速哈拉板、跑車浪漫旅哈拉板





===================================================
2024/04/29補充
第4,5 pin 裝上 "室外溫度感知器"
這樣, 儀表中的溫度顯示就可以正常顯示室溫..
買個二手的殺肉零件來用就好..
朋友笑稱這是高檔的溫度計..




19
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員: