# 20210909麗寶紀錄 ###### tags: `電系組` ### 出發前: * CAN不通 * 詳細情形: * RPi只收得到前軸箱的訊號,RPi以後節點全部收不到,Inverter也傳不到 * RPi CANH CANL沒有短路,但後方CANH CANL短路 * 原因: * IMU處CAN接頭可能有被扯到導致 * 解決辦法 * 電池每箱每個cell電壓 * 詳細情形: * 好像說某一箱有些cell電壓比較高,有些電壓比較低 * 好幾個人提出了一些想法希望可以從BMS看到一些資訊,但程式好像一直沒有被生出來 * 原因: * maybe人多嘴雜、要求開的不夠明確,搞的高仕懷也搞不清楚到底要收些什麼資料 * BMS document沒有看熟導致也不太清楚BMS到底會傳哪些東西回來 * 解決辦法: * 大家要求開的明確一點,除了最重要的傳達「要收的資料」外,如果可以明確表達輸出格式(如:要分成幾個檔案、csv的每個column代表什麼數據等等)的話也有助於軟體組把程式生出來 * 在看document的時候要把大概會有哪些資訊記起來,不用把每個id或data記起來,但是至少要知道這份document裡面大致上會有哪些數據(如:分箱電壓、各箱溫度等),要用到的時候要有辦法立刻去找到正確的reference * 其他建議: * 在寫程式的時候如果有固定id的data,不要讓這些id散落在程式碼的各個角落 ```python # good format ids = [0x10, 0x20, 0x30...] # 用一個list把id全部裝起來 if msg.data[0] == ids[0]: # do something elif msg.data[0] == ids[1]: # do something # bad format if msg.data[0] == 0x10: # do something elif msg.data[0] == 0x20: # do something #---------------------------------------# # good format ids = [0x10, 0x20, 0x30...] if msg.data[0] in ids: # do something # bad format if msg.data[0] == 0x10 or mag.data[0] == 0x20 ...: # do something ``` 反正就是要能夠好維護,不然這些id寫完後三個月你一定不會記得是什麼東西 * 如果你已經生出一個部份的程式碼了,其他部份要做的事情一模一樣時,請想辦法善用你已經寫好的東西,可以用迴圈就不要複製貼上一大堆一樣的東西,很冗 ### 麗寶: * 峻生爆衝事件 * 詳細情形: * 峻生在第一圈進大直道後電門踩到底,到直線尾時發現開始有延遲,過彎時發現全電門輸出鎖死,嘗試救回未果,拍下shutdown button * 把車推回時小電一直開著,代表arduino沒有被reset,rpi端也有連上,程式看起來還是在正常運行,推回來後重開大電踩電門輸出正常,期間小電沒有被關掉過 * arduino1的log不知道為什麼顯示從頭到尾電門行程都是0,但重跑程式後又收到正常的log * Inverter端的CAN訊號沒有被收集,因此無法得知Inverter是否出問題 * 原因: * 尚未有明確的證據顯示是哪一方面出問題 * 小電在沒有重開的情況下保持正常運作,間接說明小電可能沒有出問題 * 目前的猜測是Inverter熱當,但熱當時照理來說Inverter應直接shutdown或至少降功率,若熱當還持續輸出高功率這東西也太危險 * 如果是Inverter的CAN transceiver或controller突然當掉,但Inverter本身沒過熱,搞不好說得通(? * 解決辦法: * 把Inverter的CAN訊號收集 * 若電門行程為0持續一段時間後重置Inverter
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up