2026年4月14日 星期二

閒置物品再利用--2013 MBP + WTG 的測試

進行 Pi4 + 533MC + QHY5L + iOptron 的全系統 VirtualHere 連線測試








NINA 以 Loop 每 5 秒拍攝一張,PHD2 每 2 秒 Loop ,AllskEYE 執行中。


2026年4月13日 星期一

閒置物品再利用--過時的奢華

PI 4 2GB:

  1. 初期用來安裝 Home Assistant 把非 HomeKit 的智能設備轉到 Apple 「家庭」控制,後來改安裝到 NAS 開的 Virtual Machine 裡,就閒置了一陣子。
  2. 拿來安裝 Astroberry Server 使用 Kstar/Ecos 天文拍攝,在昆陽拍攝失敗後再次閒置
  3. 安裝 Android TV ,後來買了小米電視,內建 Google TV ,再度閒置。
  4. 再度復活,刷入輕量級的 Linux ( Raspberry Pi OS Lite) 並安裝 VirtualHere USB Server花了 NT$1560 買了授權,免費版只能有一個 USB 裝置),所有設備(ASI533MC-Pro、QHY5L-II-M、EAF、CEM25P 控制線、PoleMaster)的 USB 就可以全部插在 Pi 4 上,再用一條實體網路線連接另一端的筆電(Dell 筆電 或 2013 MBP),在筆電裡執行 VirtualHere Client。系統會在底層將 Pi 4 上的 USB 設備虛擬化成本地端 USB。(註: 已測試 Wi-Fi 雖可行,但頻寬不夠導星+拍攝的流量
  5. 在 Dell 筆電 (Windows) 裡的 NINA、PHD2 完全感覺不到差異,照常抓取相機與赤道儀。可在室內(或帳篷裡)以筆電直接控制免於露水摧殘,Pi 4 則承擔戶外嚴苛環境。同樣,由於 Pi 4 是跑 VirtualHere 而非 INDI,KStars 的設定必須是「本機 (Local)」,由 2013 MBP 本地端的 INDI 直接抓取 VirtualHere 轉發過來的硬體。
  6. 還有一種情境是 2013 MBP 安裝微軟 RDP 遠端遙控 Dell 筆電,這是當網路線不夠長時用,Dell 筆電放在有遮避的地方(要有 Wi-Fi)。透過 Tailscale 讓 2013 MBP 的微軟 RDP 直接遙控。(註:Dell 筆電的Windows 10 是隨機附的 8 升級過來的家用版,原不能被遙控,經 Google 後已可被遙控,且徹底清除了 windows update、Defender ,免得拍攝時被中斷,吐血都來不及。)

之前寫過這篇:Luke 的休閒筆記: 評估「小氣象台」製作的可行性 寫過也就不了了之,沒想到把
Luke 的休閒筆記: 零基础入门学用Arduino教程-智能应用篇 - 重點整理 拆了後,取得的 NodeNCU + 1602 LCD + DHT11 問 Gemini 能夠怎麼再利用,這就有了:



之後再把 Luke 的休閒筆記: 零基础入门学用Arduino-MeArm机械臂篇--重點整理拆了,NodeNCU + 1602 LCD + DHT11 升級為 UNO + 1602 LCD + DHT22( 蝦皮兩顆 NT$100) , 再加上淘寶買的四路 MOSFET( 約 NT$250, 買四路,原先的想法除了兩條除霧帶外,一路給主鏡自動開蓋用,一路給平場板用,後來因為難度太高了而放棄,要拍亮、暗平場,還是手動最簡單,拍好順便收拾器材)N MOS管模块 光耦 隔离 PWM开关 场效应管驱动模块 控制板 大功率-淘宝网 ,在 Gemini 的幫助下,花了近一個月的時間搞出了一個Luke 的休閒筆記: 全自動防結露天文中樞建置 ,老王賣瓜,覺得還不錯用,就順手再弄了個 Luke 的休閒筆記: 全自動防結露天文中樞建置 (番外篇):全自動智慧除霧中樞 (開源獨立版)

NINA 平場拍攝的半自動:==》實作測試中......

Dell 筆電

Luke 的休閒筆記: 天文攝影控制筆電升級 Dell vostro 14-5480 原本雙系統,現已刪除 Linux Mint,512G SSD 全部給 Windows 10 。

2013 MBP

  • 系統底層突破:詳述 OCLP 如何透過 EFI 攔截與 Root Patch,讓 2013 MacBook Pro 完美執行 macOS 12,解決雙螢幕 Lag 並支援最新天文軟體。

在天文攝影與自動化觀測的建置過程中,舊設備的軟硬體限制往往是最大絆腳石。所以將 2013 MacBook Pro 強制升級至 macOS 12 (Monterey)。

macOS 跨世代硬體限制破解 (OCLP 核心邏輯)

1. 痛點與底層分析

  • 軟體斷層:舊版 macOS 11 (Big Sur) 已無法安裝最新版的 Google Chrome 與 VirtualHere Client,導致遠端盲解與設備控制的建置受阻。
  • WindowServer 資源分配 Bug:在 macOS 11 環境下,闔蓋使用雙外接螢幕時,若關閉其中一個螢幕 (HDMI),系統會遺失 EDID 訊號,導致 WindowServer 誤判主顯示器狀態並啟動內顯省電機制。這使得剩餘螢幕的圖形渲染資源被大幅限縮,滑鼠游標與視窗拖動出現嚴重 Lag。

2. OCLP (OpenCore Legacy Patcher) 破解機制

將 2013 年的老機升級至 macOS 12,並非單純的軟體安裝,而是深入 EFI 層級的硬體欺騙與驅動重建。此工具在系統中扮演「心律調節器」的角色,絕對不可解除安裝。

  • EFI Bootloader 攔截:OCLP 在硬碟 EFI 分割區植入引導程式,搶在 macOS 啟動前將機器代號偽裝成新款 Mac,藉此繞過 Apple 的開機黑名單驗證。
  • GOP 路由重構:在開機初期,強制將 Graphics Output Protocol (GOP) 訊號導向外部顯示器,解決老機器闔蓋外接螢幕冷開機時,因找不到內建螢幕而卡死的問題。
  • Post-Install Root Patch:macOS 12 原廠已刪除舊硬體驅動。此補丁強制將 Intel Iris 5100 顯示卡、舊版 Broadcom Wi-Fi 與藍牙驅動植入系統內核 (Kext)。同時修正了舊版顯示驅動中激進的電源管理限制,強制顯示卡在單外接螢幕下維持滿血硬體加速。

3. 實戰成果

成功實現 2013 MacBook Pro 在 macOS 12 下的闔蓋雙螢幕冷開機。徹底消滅介面切換時的掉幀問題,並順利佈署最新版遠端控制軟體,轉型為極度穩定的高效能遠端中控台。

威剛 SC680 240GB 外接式固態硬碟SSD

重點摘要

  • 這顆 ADATA SC680 是做為 2013 MBP「尿袋 (WTG)」的絕佳完美選擇
  • 低功耗護城河: 從測速數據 (讀 530M / 寫 460M) 可以100%確定,它內部是傳統的 SATA 協議,而不是耗電量巨大的 NVMe。這意味著 MBP 老舊的 USB-A 孔 (僅供電 4.5W) 絕對推得動它,不需要雙頭供電線
  • 物理優勢: 重量僅 35 克,搭配 3M 子母扣貼在螢幕背面,穩如泰山。

硬體規格深度解析與實戰匹配度

1. 為什麼 SATA 協議反而更佳? 現在市面上一堆標榜破千兆 (1000MB/s) 的外接 SSD,內部都是 NVMe 晶片。NVMe 速度雖快,但啟動與大量讀寫時的「瞬間峰值電流」非常高,極易觸發 2013 MBP USB 接口的自我保護機制而瞬間斷電。 這顆 SC680 是 SATA 架構,功耗極低且平穩。對天文攝影這種要求「連續幾小時絕對不能斷線」的嚴苛環境來說,低功耗帶來的穩定度,遠比極限速度重要太多

2. 完美的效能天花板對接

  • SC680 極速:約 500 MB/s。
  • 2013 MBP USB 3.0 Type-A 極速:理論值 5Gbps,實際傳輸極限大約就是 450 MB/s。 兩者剛好完美匹配。這速度用來跑 Windows 10 系統、開啟 N.I.N.A.、載入 ASTAP 星表進行盲解,完全是秒開的順暢體驗,不會有任何卡頓感。

3. 最後一哩路:採購正確的實戰線材 這顆外接盒是 Type-C 孔,所以需去網購或實體店買一條符合以下三個嚴格條件的線:

  • 接頭形狀: 一頭是 Type-C (接 SSD),一頭是 USB-A 且必須是 L型彎頭 (接 MBP)。
  • 長度極短: 15 公分 到 30 公分最佳,絕對不要買超過 50 公分的線(線越短,電阻越小,供電越穩)。
  • 傳輸規格 (生死關鍵): 包裝上一定要明確標示 USB 3.0 / 3.1 Gen1 / 5Gbps / 10Gbps。千萬不要買到夜市或便利商店那種只標示「快充」的線,那種通常只有 USB 2.0 (480Mbps) 的資料傳輸能力,如果用那種線跑 Windows,系統會卡到滑鼠游標都移不動。


搞定這條短彎頭數據線,貼上 3M 子母扣, 2013 MBP 就能化身為一台兼具 Mac 頂級觸控體驗與 N.I.N.A. 強大火力的星空主機了。

Luke 的休閒筆記: 升級 2018 Mac Mini:Windows 外接硬碟 + eGPU + PSVR連接(不需 PS4)搞定 在 PS4 送人後,閒置了好久,而目前 2013 MBP 16G RAM 256G SSD ,剩下約 189G ,已升級 macOS 12, 能夠安裝的 Kstar/Ecos 為 3.6.8 ,對焦演算法比起 NINA 差很多,因此 Gemini 建議我安裝「Boot Camp 雙系統」,但裝在本機實在太浪費了,這才想起上述文章就玩過 WTG 的方,這就有了WTG 建置與安裝天文攝影所需的各種驅動、軟件及設定:
重點摘要

  • 最大優勢: 完美保留 2013 MBP 內部珍貴的 189G 空間,且這顆 ADATA SSD 未來還能無縫插上其他電腦作為備用控制台。
  • 唯一難關: Apple 專屬硬體的驅動程式(Wi-Fi、藍牙、主機板晶片),必須在 macOS 預先下載備用。

決定走「尿袋 (Windows To Go)」路線,以下是專為 2013 MBP 量身打造的無痛製作與驅動補完流程。

階段一:事前準備與驅動打包 (在 macOS 上執行)

剛裝好 Windows 時,Mac 所有的特規硬體(包含 Wi-Fi)都會失效。你必須先把救命藥打包好。

  1. 準備一個普通的 USB 隨身碟(格式化為 FAT32 或 ExFAT)。
  2. 在 macOS 中開啟 「啟動台」>「其他」>「啟動切換輔助程式 (Boot Camp Assistant)」
  3. 在上方選單列點擊「動作 (Action)」,選擇 「下載 Windows 支援軟體」
  4. 將這包支援軟體存入你準備好的 USB 隨身碟中備用。

階段二:製作 WTG 實戰系統碟 (需在一台 Windows 電腦上執行)

借用那台 Dell 筆電來製作這顆外接 SSD。

  1. 下載工具: 下載微軟官方的 Windows 10 ISO 映像檔,以及開源燒錄神器 Rufus

  2. 插上 ADATA 240G SSD。

  3. 開啟 Rufus,進行以下關鍵設定:

    • 裝置: 選擇 ADATA SSD。
    • 開機選項: 選擇剛下載的 Windows 10 ISO 檔。
    • 映像檔選項 (極重要): 下拉選單,從「標準 Windows 安裝」改為 「Windows To Go」
    • 資料分割配置: 選擇 GPT
    • 目標系統: 選擇 UEFI (無 CSM)
  4. 點擊「執行」。(若 Rufus 詢問要安裝哪個版本,請選擇 Windows 10 Pro;若詢問是否要略過隱私設定與建立本機帳號,可全部勾選以節省時間)。

階段三:Mac 硬體驅動與觸控板進化 (在 2013 MBP 上執行)

  1. 將製作好的 ADATA SSD 插上 2013 MBP。

  2. 按住 Mac 的 Option (Alt) 鍵不放,按下電源鍵開機。

  3. 畫面上會出現開機磁碟選擇,選擇橘色外觀的 「EFI Boot」(就是ADTATA SSD Windows 碟)。

  4. 進入 Windows 10 桌面後,插上階段一準備的 USB 隨身碟。

  5. 進入 WindowsSupport 資料夾,點擊 Setup.exe,安裝 Apple 原廠的所有底層驅動。安裝完畢後重開機(因為安裝了 OpenCore ,不用再按Option 就能直接進 windows),此時 Wi-Fi、藍牙、螢幕亮度調節都會恢復正常。

  6. 觸控板終極改造: * 上網搜尋並前往 GitHub 下載 mac-precision-touchpad 驅動程式。

    • 解壓縮後,對著 .inf 檔案按右鍵選擇「安裝」。
    • 重開機。你的 MBP 觸控板將在 Windows 10 下復活,獲得近乎 macOS 的多指手勢與流暢體驗。

實戰網路架構確認

  • 遠端遙控: 只要 MBP 透過 USB 3.0 轉 RJ45 接上實體網路,都能以近乎零延遲的狀態操作 N.I.N.A.。
  • 頻寬優勢: 實體區域網路 (LAN) 的頻寬,足夠把 N.I.N.A. 拍下的數十 MB 原始 FITS 檔,這顆 240G SSD 負責軟體運作與儲存。

兩大實戰情境的架構優化

1. 清境異地遠端: (雙跳板模式)

在這種跨民宿的遠端環境下, Dell 扮演了至關重要的「現場指揮官」角色:

  • 優點: Dell 透過 VirtualHere 接管 PI4 的 USB 訊號,即便民宿 A/B 之間的 Wi-Fi 偶爾波動,只要 Dell 與 PI4 之間的區域連網穩定,N.I.N.A. 的拍攝排程就不會中斷。
  • 遠端體驗: 在民宿 A 用 MBP 透過 RDP 連線 Dell,看到的只是「畫面更新」。這對頻寬要求極低,卻能讓您在溫暖的室內操作 N.I.N.A.,這是最專業的天文台遠端架構。

2. 頂樓練習:MBP (WTG) 模式的降維打擊

由於「執著於 KStars」的初衷——想要 MBP 的質感。現在有了 Windows To Go (WTG),變成可以直接把 Dell 踢出這條線路:

  • 架構簡化: 頂樓 PI4 (USB Hub) 實體網路線 MBP (跑 WTG Windows 10)
  • 操作爽度:MBP 的 2500x1600 高解析度螢幕搭配 mac-precision-touchpad 驅動,在操作 N.I.N.A. 的星圖與 Hocus Focus 面板時,流暢度遠勝那台 Dell。
  • 實戰優勢: 這樣一來,無論是頂樓練習還是未來上山,只需要帶這台 MBP 和「尿袋 SSD」。

天文軟體安裝與設定

  1. 先從Dell 筆電裡把 NINA PHD2 及 AllSkEYE 的 Profiles 抓出來。
  2. 抓取 Profiles 的精準路徑:Win + R輸入%LocalAppData%

天文指揮艙 WTG 必備軟體清單與下載連結

請依照以下的 1 ➔ 2 ➔ 3 順序 在 Mac WTG 環境中進行安裝:

Step 1: 核心底層 (最優先安裝)

這是一切天文軟體溝通的橋樑,沒裝這個後面都不用玩。

Step 2: 硬體驅動程式 (順序不拘,但必須在 ASCOM 之後)

因為有 ZWO 與 QHY 的相機,以及 iOptron 的赤道儀。

Step 3: 拍攝與控制軟體 (最後安裝)

Windows 徹底淨化 (打造純淨環境)

軟體裝完後,最後執行「系統封印」,避免系統在深夜拍攝時自行更新或掃描。

1. 徹底關閉 Windows Update (防範深夜重啟)

  • 按下 Win + R,輸入 gpedit.msc
  • 路徑:電腦設定 > 系統管理範本 > Windows 元件 > Windows Update
  • 右側找到 「設定自動更新」,設為 「已停用」
  • 按下 Win + R,輸入 services.msc,找到 Windows Update,將啟動類型改為 「已停用」 並點擊 「停止」

2. 徹底關閉 Windows Defender (釋放 CPU 效能)

  • 同樣在 gpedit.msc
  • 路徑:電腦設定 > 系統管理範本 > Windows 元件 > Microsoft Defender 防毒軟體
  • 右側找到 「關閉 Microsoft Defender 防毒軟體」,設為 「已啟用」

3. 電源與螢幕計畫 (防止休眠斷線)

  • 進入「控制台」>「電源選項」。
  • 選擇「高效能」,並點擊「變更計畫設定」。
  • 「關閉顯示器」「讓電腦睡眠」 全部設定為 「從不」
  • 關鍵設定: 點擊「變更進階電源設定」,找到 「USB 設定」 > 「USB 選擇性暫停設定」,將其改為 「已停用」。這能防止系統為了省電而切斷您赤道儀或相機的連線。

現在才知道 Windows 也可以很漂亮,之前用 Dell , 所以實在太傷眼力了, 現在好很多了.目前用 Logi 2s Mouse 還可以, 但若掛上 USB3.0 to RJ45 藍芽大概完蛋了,Gemini 建議可以去蝦皮或二手市場,買一條蘋果原廠的 「Thunderbolt 對 Gigabit 乙太網路轉換器」(型號:A1433)。

但這陣子與 Gemini 交手的經驗得知,要持續逼問才能得最優解,最後告訴我可以利用 USB 2.0 延長線連接網卡來「物理隔離 2.4GHz 藍牙干擾」的零成本方案。而我剛好有一條閒置的 USB 2.0 延長線。

零成本的防干擾密技

利用物理特性的零成本 B 計畫:

USB 2.0 延長線降頻大法: USB 3.0 會干擾 Logi 2S 藍牙滑鼠,是因為 USB 3.0 在高速傳輸時會產生 2.4GHz 的強烈頻段雜訊。 手邊剛好有一條老舊的 USB 2.0 延長線,把綠聯 RJ45 網卡先插在延長線上,再插進 MBP。這會強制網卡降級以 USB 2.0 模式運作。

  • 優點: 徹底消除 2.4GHz 干擾,滑鼠瞬間順暢。且天文連線(INDI/Alpaca 傳遞 JSON 數據或 FITS 檔案)的頻寬需求不大,USB 2.0 的 480Mbps 絕對夠用。
  • 缺點: 依然佔用一個 USB 孔,且多一條長線會比較雜亂。

設備校正後的頻寬壓力分析

1. ZWO ASI533MC-Pro (主相機負載)

  • 數據量: 正方形感光元件(3008 x 3008),單張 16-bit FITS 檔案大小僅約 18 MB
  • 佔用時間: 以 USB 2.0 實際網路傳輸速度 (約 30 MB/s) 計算,單張下載時間 不到 1 秒
  • 結論: 深空曝光結束後的瞬間傳檔,對這條降頻線路毫無壓力。

2. QHY5L-II-M (導星負載)

  • 數據量: 解析度 1280 x 960 (120 萬畫素)。在 PHD2 中運作時,通常只會傳輸星點周圍的 Subframe (區域裁切) 影像。
  • 佔用時間: 每 1 到 3 秒傳送一次數十 KB 到數百 KB 的微小封包。
  • 結論: QHY5L-II-M 在硬體規格上本來就是原生 USB 2.0 介面,走這條實體降頻線完全吻合其硬體極限,不會有任何效能折損。

3. 驅動程式相容性確認 目前的 WTG 系統中,已安裝了 ZWO Native/ASCOM 驅動(對應 ASI533MC-Pro)以及 QHY All-In-One 驅動(對應 QHY5L-II-M),系統端無須進行任何調整,兩部相機皆能被 N.I.N.A. 與 PHD2 正確識別。

戰術結論: 設備校正後的實際數據流極小,利用 USB 2.0 延長線連接網卡來「物理隔離 2.4GHz 藍牙干擾」的零成本方案,不僅 100% 可行,更是目前環境下最優的實體網路防護策略。

重點摘要

  • 戰略定調:最完美的「雙保險」底層邏輯。 這完全體現了控制下行風險的思維,不把所有雞蛋放在同一個作業系統裡。
  • 系統對沖: macOS (KStars) 負責主場主攻,WTG (N.I.N.A.) 作為終極後備。高山低溫下遇到突發 Bug,不要花時間除錯,直接物理切換系統重啟拍攝最有效率。

戰術深度分析

這招「尿袋+Option」的實體雙系統切換,堪稱星空攝影的頂級災備方案。

1. 沉沒成本極小化

上山拍攝最大的隱形成本是「時間與體力」。萬一 KStars 突然與 Pi4 斷聯或遇到不明的系統崩潰,原地抓 Bug 絕對會讓人崩潰。這時準備好的 ADATA 240G 系統碟就是救命符,重開機按住 Option,三分鐘內直接用另一套完全獨立的 ASCOM/Alpaca 生態系無縫接管硬體,確保整晚的曝光時間不會白白浪費。

2. 軟硬體徹底脫鉤

在 Pi4 端已經做好了 INDI 與 Alpaca 的雙向準備。這意味著:

  • Plan A (macOS): MBP 透過有線網路直連 Pi4,KStars 直接呼叫 INDI 服務器。

  • Plan B (WTG): MBP 掛上尿袋重啟進入 Windows,N.I.N.A. 透過網路呼叫 Alpaca 服務器。

    無論系統怎麼切換,頂樓或高山上的赤道儀、相機、自製除霧器等「硬體實體接線」完全不用去動它。

  • 極致物理隔離: 拔掉 SSD = 原生 MacBook Pro;插上 SSD = 滿血 Windows 天文指揮艙。這是最完美且無腦的雙系統切換邏輯。

  • 直接用「物理插拔」來決定這台機器的身份,簡單、粗暴、零失誤。

最終結論

2013 MBP 掛了尿袋真是吊打 Dell Vostro 14-5480 ,不說觸控板的體驗,那個有鍵盤背光就完勝 Dell ,尤其是天文攝影,具有雙重身份,可以 RDP 遠端 Dell,如果是在帳篷裡直連,Kstar 不行,秒換 NINA ,加上 Logi 2S 滑鼠,更是如虎添翼。

T7C

重點摘要

  • 硬體通訊降維:解析 T7C (ASI120MC) 晶片的 USB 3.0 封包 Bug,以及透過 compatible 韌體與 Windows 系統環境達成穩定連線的底層邏輯。
  • 物理極限封印:記錄使用快乾膠鎖死 M12 鏡頭螺紋的「破釜沉舟」戰術,徹底根絕戶外溫差導致的跑焦問題。

T7C 相機底層通訊降維與物理封印

T7C 作為 ASI120MC 的致敬版,常被用於導星或 AllSky 氣象監控。然而其底層硬體設計在現代作業系統中存在致命缺陷,必須透過軟硬體雙管齊下的方式進行「洗白」與封印。

1. USB 3.0 封包災難與韌體洗白

  • 硬體原罪:早期 T7C 使用的 Cypress FX2 晶片,其 USB 封包大小 (Packet Size) 被設定為非標準的 1024 bytes。這在寬鬆的老舊系統中可正常運作,但遇到嚴格規範的 Linux (如 Raspberry Pi 4 的 VL805 控制器) 或現代 USB 3.0 介面時,會因不合規直接被底層踢下線,導致頻繁斷線或死機。
  • 底層修復:強刷 ZWO 官方釋出的 ASI120MC compatible 韌體。此操作從相機靈魂深處將通訊封包強制閹割回標準的 512 bytes,取得相容現代控制器的「良民證」。
  • 環境轉移:放棄容錯率極低的 Linux Allsky 專案,將設備移交至 Dell 的 Windows 系統運行 AllSkEye。Windows 的 ASCOM 平台與 ZWO 原生驅動具備極強的錯誤處理 (Error Handling) 能力,能進一步穩固連線。

2. 硬體降級結界 (備援機制)

若在純 USB 3.0 環境下仍有不穩定的疑慮,可利用 USB 2.0 Hub 進行物理隔離。USB 3.0 介面具有 9 根針腳,而 USB 2.0 Hub 物理上缺失了 5 根高速針腳。將相機接上 Hub,等同強制電腦控制器切換回傳統 D+/D- 慢速通道,利用物理限制完美避開高速封包衝突。

3. 螺紋公差與快乾膠物理封印

  • 痛點:AllSky 監控所使用的廉價 M12 廣角鏡頭缺乏鎖定螺絲 (Locking Screw)。在頂樓歷經日夜極端溫差,金屬熱脹冷縮極易改變焦距,導致星點模糊。傳統的止洩帶 (Teflon Tape) 無法完全消除形變變數。
  • 終極解法:確認無限遠焦點後,直接使用快乾膠點死螺紋縫隙。
  • 硬核邏輯:捨棄未來重新對焦的可能性,利用液態膠完美填滿公差並脆化咬死。將低成本打工機與鏡頭「物理性融合」成不可分割的感測器模組,徹底消滅機械變數,達成一勞永逸的全天候監控佈署。

4. AllSky 與 NINA 的 Al Weather 或 Ground Station

Allsky T7C 監看天空狀況,在天氣變化時,NINA 的 Al Weather 或 Ground Station 讀取它存下來的即時影像,能即提出警告,趕快去收器材,同時在過去的過程中做好一些收尾動作,到了就能馬上收器材。==》實作測試中......

Lenovo 小筆電退休:

隨著我征戰多年的小筆電,雖然仍頭好壯壯,但如果要 PHD2 導星、NINA 拍攝,再加上跑 T7C(也是接在 PI 4) + AllskEYE 是難為它了,這任務就交給:Luke 的休閒筆記: 天文攝影控制筆電升級 Dell vostro 14-5480 來執行。(原本雙系統,現已刪除 Linux Mint,512G SSD 全部給 Windows 10 )


閒置物品再利用,希望達成的目標:跨平台天文觀測與運算終極拓撲

這套系統經過底層降級與儲存介質的重構,徹底消除了 I/O 瓶頸與軟體套件相容性問題,確立了「實體隔離、專機專用、算力極大化」的黃金三角架構。


一、 終極網路通訊架構 (ICS 實體內網 + Tailscale)

徹底捨棄現場 Wi-Fi 與路由器,全面改採網路線直連,確保高山極端環境下巨量 FITS 檔與 VirtualHere 轉發的絕對穩定。

  • 實體有線內網 (192.168.137.X 網段)
    • MacBook Pro (2013):IP 設為 192.168.137.12,作為深空攝影的指揮中心。
    • Dell Vostro 14-5480:IP 設為 192.168.137.1,啟用 Windows ICS 網際網路共用(全天球監控或 NINA 備援)。
    • Raspberry Pi 4:有線網卡 (eth0) 強制綁定靜態 IP 192.168.137.2,無論接上 Mac 或 Dell 皆可無縫通訊。
  • Tailscale 異地無縫遙控網
    • 免除路由器 Port Forwarding。將 Mac 與 Dell 綁定於同一個 P2P 虛擬區網。
    • 戰術應用:在帳篷內或遠端,使用 Mac 透過 Microsoft RDP 低延遲遙控屋簷下的 Dell 筆電。

二、 邊緣硬體與 I/O 伺服器 (Raspberry Pi 4)

Pi 4 卸載所有高耗能運算與介面,純粹作為「無頭 (Headless) USB 實體轉發站」與「氣象溫控中樞」。

  • 作業系統Bookworm 穩定版 + SD 卡,並且已經備妥 Image 映像檔作為最強後盾。
  • 全天球模式 (Micro SD 卡):用於連接 Dell 跑 AllSkEYE。將 T7C 相機接上 Pi 4,避免深空與全天球軟體環境互相干擾。
  • 後台自動化守護進程 (Systemd)
    • 所有 Python 腳本統一集中於 /home/pi/astro_scripts/
    • 開機自啟動 early_lcd.servicedht_reader.service (執行閉環溫控) ➔ lcd_display.service

三、 Pi 4 實體 USB 埠滿載配置策略

精準分配 4 個 USB 埠,避免供電超載與 2.4GHz 高頻干擾,確保資料流互不塞車。

  • 高頻寬/高 I/O 區 (藍色 USB 3.0)
    • Port 1:iOptron CEM25P 赤道儀。
    • Port 2:ZWO ASI533MC-Pro (巨量 16-bit 影像流穿透)。
  • 低頻寬/純指令區 (黑色 USB 2.0)
    • Port 3:CH340 / Arduino UNO (溫濕度字串與 PWM 訊號,避開 USB 3.0 干擾)。
    • Port 4:T7C 相機。

四、 主控端與光學設備拓撲 (KStars / Ekos)

Ekos 運行於 MacBook Pro,全權負責星圖盲解 (本機星表)、影像儲存與座標基準。

  • 設備連線 (VirtualHere 穿透)
    • Ekos Profile 設定為 Local 模式。
    • 掛載設備:ZWO CCD (ASI533MC)、QHY CCD (導星)、ZWO EAF (對焦)、iOptron CEM25 (赤道儀)。
  • 光學與對焦防護機制
    • 主副鏡光學拓撲分離,Secondary (導星) 光學鏈的焦點器強制設為 --,防止導星時誤觸 EAF 破壞主鏡焦平面。
  • 跨協定整合 (取代 Alpaca)
    • Arduino 溫控站 (Alpaca API) 在 Pi 4 背景獨立運行,不接入 Ekos 以免協定衝突。
    • LCD 光害控制與 PI 4 的系統更新:透過在 2013 MBP 桌面生成三個終端機指令,於拍攝時手動開啟/關閉 LCD 背光。透過 Astro_NAT.command ,PI4 就能上網自動更新,或者在有狀況時,能在遠端透過 TailScale ssh 進入 PI4 進行處理。

硬體 IO、核心運算、遠端遙控天文攝影架構

重點摘要

  • NINA 進階排程 (Advanced Sequencer) 的完全釋放:將主控權交給 Windows 上的 NINA 。
  • 零延遲的指揮中心:用 2013 MacBook Pro 跑 RDP,不僅徹底榨乾了老機器的剩餘價值,RDP 的底層協定也比 VNC 或 TeamViewer 順暢太多,體感就像直接坐在現操作一樣。

終極架構深度解析

這套「PI4 → Dell → Mac」的資料流向,完美避開了所有系統的軟肋,並把每一個硬體的強項發揮到極致:

1. 實體中繼層:PI4 + VirtualHere + 實體網路線

  • 物理防線:天文設備最怕 USB 掉線。PI4 放在赤道儀旁邊,用最短的 USB 線接滿所有設備(ASI533、CEM25P、EAF、QHY5L-II-M、UNO+N-MOSFET 模組、T7C)。
  • 無損直通:透過 Gigabit 網路線直連 Dell 筆電,VirtualHere 將 I/O 封包無損穿透。

2. 核心運算與自動化大腦:Dell 筆電 (Windows + NINA + PHD2) 這是整套系統的靈魂。NINA 的 進階排程器 (Advanced Sequencer) 能完美吃下你提出的所有自動化需求:

  • 自動除霧與手動平場:NINA 原生支援 ASCOM/Alpaca 協定。UNO+N-MOSFET 模組掛載進 NINA 的 Switch / Observing Conditions,排程器就能做到「依照環境露點自動加熱」以及「天亮前約半小時提醒,並在 15 分鐘後自動將主鏡指向天頂,方便我拿著 iPad Pro 走到現場時即可開拍平場」。
  • 天候警告與自動避難機制 (Safety Monitor):這是 NINA 最強大的防禦機制。可以將 AllSkEye 生成的天候數據或外部雲量計連動至 NINA 的 Safety Monitor。一旦觸發「不安全(Unsafe)」條件,NINA 會強制中斷拍攝 → 關閉相機製冷 → 讓 CEM25P 赤道儀 Park (歸位) → 透過 Telegram 或 Line 發送警報到手機,能夠有充足的時間室外收設備。

3. 舒適圈指揮所:2013 MacBook Pro (RDP 遙控)

  • 資源零消耗:RDP 只是傳輸畫面像素,Dell 筆電不用分出寶貴的 CPU 資源去壓縮畫面(像 TeamViewer 那樣),所有算力都能 100% 保留給 PHD2 的導星運算與 NINA 的星點解析。
  • 跨平台備援:萬一哪天 Windows 系統崩潰或更新重啟,在 Mac 端只要點開 VirtualHere Client 把設備搶接過來,立刻就能用原生的 KStars / Ekos 繼續拍攝,這套備援機制(Redundancy)滴水不漏。(目前仍在測試 KStars / Ekos 的三點極軸校正,或許未來能夠取代現用的 PoleMaster 電子極軸鏡,不受限於場地一定要能看到北極星,所以才有了Luke 的休閒筆記: 天文攝影的粗對極軸小工具分享--For Android 這個副產品。)

2026年4月10日 星期五

全自動防結露天文中樞建置 (番外篇):全自動智慧除霧中樞 (開源獨立版)

  • 拒絕商業綁架
  • 堅持純粹的 DIY:會算露點的 Arduino 獨立防結露系統
  • 擺脫電腦束縛:隨插即用的獨立除霧演算法全自動智慧除霧帶
  • 免連 NINA 也懂露點:獨立型智慧氣象中樞實作
  • 雙通道精準降載:Arduino 獨立運作版防結露中樞

前情提要:全自動防結露天文中樞建置

⚠️ 重要提醒本篇釋出的 UNO 代碼為隨插即用的獨立運作版為了達成免接電腦即可獨立運作的目標,此版本去除了原本架構中 Raspberry Pi 4 與 ASCOM Alpaca 協議的橋接功能。因此,完成後的裝置無法連線至電腦,也無法透過 NINA 等天文軟體讀取溫濕度數據或進行控制前文能與 NINA 連動的版本是針對我個人設備特製的雙核心架構,特此說明。


獨立運作版:智慧除霧帶核心代碼

本專案將露點運算與動態 PWM 邏輯下放至 Arduino UNO,只要接上電源即可獨立運作,完全脫離外部電腦。代碼採 CC BY-NC 4.0 授權,僅供同好 DIY 交流,嚴禁商業量產。

C++

/*
 * Project: Auto-Dew Controller (Standalone Version)
 * Author: Luke
 * License: CC BY-NC 4.0 (Non-Commercial Use Only)
 * Copyright (c) 2026 Luke. All rights reserved.
 * * 本專案代碼與硬體架構設計僅供個人與同好交流使用,
 * 嚴禁任何未經授權的套件販賣、量產或其他商業牟利行為。
 * * 【免責聲明】
 * 本程式碼僅提供概念驗證與邏輯參考。使用者須自行承擔 DIY 風險,
 * 若因線路短接、供電錯誤造成設備燒毀或硬體損壞,作者概不負責。
 */

#include <DHT.h>
#include <math.h> // 引入數學函式庫計算 log

#define DHTPIN 4
#define DHTTYPE DHT22 
DHT dht(DHTPIN, DHTTYPE);

const int pwmPin1 = 9;  // 第一路 (導星鏡)
const int pwmPin2 = 11; // 第二路 (主鏡)

// 導星鏡火力權重 (避免過熱產生熱擾動影響導星)
const float GUIDE_WEIGHT = 0.5;

unsigned long lastReadTime = 0;

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(pwmPin1, OUTPUT);
  pinMode(pwmPin2, OUTPUT);
  analogWrite(pwmPin1, 0);
  analogWrite(pwmPin2, 0);
}

void loop() {
  // 每 5 秒讀取一次溫濕度,防止 DHT22 積熱
  if (millis() - lastReadTime >= 5000) {
    float h = dht.readHumidity();
    float t = dht.readTemperature();

    if (!isnan(h) && !isnan(t)) {
      // 1. 計算露點溫度 (Magnus-Tetens 公式)
      float alpha = log(h / 100.0) + (17.62 * t) / (243.12 + t);
      float dewPoint = (243.12 * alpha) / (17.62 - alpha);

      // 2. 計算溫差
      float deltaT = t - dewPoint;
      int basePwm = 0;

      // 3. 動態 PWM 演算法判斷
      if (deltaT >= 5.0) {
        // 安全區
        basePwm = 0;
      } else if (deltaT <= 1.0) {
        // 高危險區
        basePwm = 255;
      } else {
        // 動態警戒區 (1.0°C ~ 5.0°C)
        // 將溫差線性轉換為 0~255 的 PWM 數值 (放大 10 倍處理浮點數對應)
        long dT_10 = deltaT * 10;
        basePwm = map(dT_10, 50, 10, 0, 255);
        basePwm = constrain(basePwm, 0, 255);
      }

      // 4. 計算雙通道實際輸出
      int pwm1 = basePwm * GUIDE_WEIGHT; // 導星鏡吃 50% 火力
      int pwm2 = basePwm;                // 主鏡吃 100% 火力

      // 5. 執行硬體輸出
      analogWrite(pwmPin1, constrain(pwm1, 0, 255));
      analogWrite(pwmPin2, constrain(pwm2, 0, 255));

      // 6. 序列埠監控輸出 (獨立運作時不影響,接電腦可看數據)
      Serial.print("T:"); Serial.print(t, 1); Serial.print("C, ");
      Serial.print("H:"); Serial.print(h, 1); Serial.print("%, ");
      Serial.print("Dew:"); Serial.print(dewPoint, 1); Serial.print("C, ");
      Serial.print("Diff:"); Serial.print(deltaT, 1); Serial.print("C -> ");
      Serial.print("PWM1(導星鏡):"); Serial.print(pwm1); Serial.print(", ");
      Serial.print("PWM2(主鏡):"); Serial.println(pwm2);
      
    } else {
      Serial.println("DHT22 Read Error!");
    }
    lastReadTime = millis();
  }
}

所需材料

  1. 大腦:Arduino UNO 開發板。
  2. 感測:DHT22 溫濕度感測器。
  3. 動力:N-MOSFET 四路驅動模組。
  4. 負載:12V 除霧帶兩組(分別用於導星鏡與主鏡)。
  5. 電源:12V 獨立變壓器或深循環電池(供除霧帶)、5V 手機充電器或電腦 USB(供 UNO)。
  6. 耗材:杜邦線、單芯線、保鮮盒、防水黏土、熱熔膠。

硬體製作步驟

  1. 接腳配置 (DHT22 感測端):

    • 將 DHT22 的 VCC 腳位唯一接至 UNO 的 3.3V 腳位(嚴禁接 5V 以免鎖死晶片)。
    • 將 DHT22 的 GND 接 UNO 的 GND
    • 將 DHT22 的 DATA 接 UNO 的 Pin 4
  2. 接腳配置 (N-MOSFET 控制端):

    • 將 UNO 的 Pin 9 接至 MOSFET 模組的第一路 PWM 訊號輸入(對應導星鏡)。
    • 將 UNO 的 Pin 11 接至 MOSFET 模組的第二路 PWM 訊號輸入(對應主鏡)。
    • 將 UNO 的 GND 接至 MOSFET 模組的訊號端 GND(共地)。
  3. 強弱電實體隔離 (電源佈線):

    • 將 12V 獨立電源的正負極,直接鎖入 N-MOSFET 端子台的主電源輸入。絕對不可將此 12V 電源接入 UNO。
    • 將兩組除霧帶分別鎖入 N-MOSFET 第一路與第二路的輸出端子台。
  4. 防水抗露工程:

    • 用美工刀在保鮮盒邊緣割出 U 型槽。
    • 將所有線材理齊通過 U 型槽。
    • 在縫隙處填滿防水黏土,蓋上保鮮盒蓋後,於外部接縫及 DHT22 裸露線頭處全面補上熱熔膠密封。

系統使用說明

  1. 韌體燒錄: 將 UNO 接上電腦,透過 Arduino IDE 將上述程式碼燒錄進開發板。

  2. 系統佈署: * 將 DHT22 放置於能真實反映環境氣溫的開闊處。

    • 將第一路除霧帶綁上導星鏡。
    • 將第二路除霧帶綁上主鏡。
  3. 獨立供電順序:

    • 先將 12V 電源接上 N-MOSFET 模組(此時除霧帶不會加熱,因無訊號驅動)。
    • 將任意手機 5V 充電器或行動電源插上 UNO 的 USB 孔。
  4. 全自動防護啟動:

    通電後,UNO 即刻接管溫差偵測,可透過 N-MOSFET 模組上的指示燈觀察狀態:

    • 環境乾燥 (溫差 ≥ 5°C):燈號熄滅,系統零耗電。
    • 水氣攀升 (溫差 < 5°C):燈號閃爍或微亮,進入動態輸出。第一路燈號亮度會明顯低於第二路(導星鏡 50% 降載發揮作用)。
    • 極端高濕 (溫差 ≤ 1°C):燈號恆亮,全功率輸出強制除霧。

2026年4月9日 星期四

全自動防結露天文中樞建置

這是一套完全脫離市售封閉系統,從硬體電壓到軟體通訊協定全盤掌握的自製智能氣象中樞。

一、 硬體架構與供電鐵律 (實體層)

  1. 大腦與手腳: Raspberry Pi 4 擔任網通與運算大腦;Arduino UNO 負責 GPIO 硬體控制;DHT22 負責溫濕度擷取;N-MOSFET 四路模組負責 12V 動力輸出。
  2. 電壓與隔離邊界 (極度關鍵):
    • 感測器純淨供電: DHT22(大陸製) 的 VCC 必須死死釘在 UNO 的 3.3V 腳位 。若誤插 5V,極易觸發晶片保護機制鎖死,導致資料恆定噴出異常的 125% 濕度。
    • 強弱電實體隔離: UNO 由 Pi 4 的 USB 提供 5V 邏輯電源;加熱帶與平場板的 12V 動力電源必須由獨立變壓器直入 N-MOSFET 端子台,絕對不可與微控制器混用電源。

二、 雙核心神經網路與演算法 (邏輯層)

  1. 底層資料讀取 (Python Serial Reader):
    • 為防止 DHT22 積熱失準,Arduino 端降速為每 5 秒拋出一次數據。
    • Pi 4 端的 Python 腳本必須將 timeout 放寬至 6 秒,並拔除 reset_input_buffer() 等清空指令,確保不漏接任何毫秒級的資料流。
  2. Auto-Dew 智慧溫差演算法:(註)
    • 系統會精準計算露點 (Dew Point) 與當下環境溫差。
    • 溫差 ≥ 5°C:安全區,PWM 輸出 0(關閉加熱,節省電量)。
    • 溫差 ≤ 1°C:高危險區,PWM 輸出 255(火力全開,強制除霧)。
    • 1°C < 溫差 < 5°C:動態警戒區,系統會自動算出 0~255 的線性火力(例如溫差 4.3°C 時輸出 PWM 47),達成溫和且精準的鏡片保護。
  3. ASCOM Alpaca 協議橋接:
    • 拋棄 Windows 複雜的 ASCOM 驅動安裝。以 Python 的 BaseHTTPRequestHandler 在 Pi 4 內部自建 API 伺服器,對外廣播 UDP 32227 Port 進行設備探索。

    • 直接輸出符合微軟規範的 JSON 封包,讓 NINA 原生即插即用,完美接管氣象數據與 Switch 滑桿,也能拍攝時手動關掉 LCD 的顯示。

三、 無閃爍儀表板與狀態管理 (顯示層)

  1. 非同步檔案交換: 大腦程式將溫濕度、露點與即時的 PWM 數值,以 JSON 格式無聲寫入 dht22.json`。
  2. 1602 LCD 覆寫渲染: lcd_display.py 以每 2 秒一次的頻率讀取該 JSON 檔。使用 String Padding 技術 (.ljust(16)[:16]) 強制將字串補齊至 16 字元,利用空白覆寫舊字元,徹底汰除 lcd.clear(),實現零閃爍的完美監控雙排版:
    • 第一列:T:27.7C H:68.0%
    • 第二列:PWM:47 D:23.4C

四、升級雙通道獨立控制

雖然主鏡與導星鏡處在同一個氣溫與濕度環境中,但它們的熱容量 (Thermal Mass) 完全不同:

  1. 避免熱擾動毀了導星: 107 PH 的口徑大、玻璃厚,需要較強的火力 (較高的 PWM) 才能有效防露。如果導星鏡也吃一樣強的火力,輕薄的導星鏡會被烤得太燙。鏡片過熱會導致鏡筒內部產生熱空氣翻滾(熱擾動),這會讓導星相機拍出來的星星變肥、閃爍,直接導致 PHD2 的 RMS 誤差飆高,毀了整套追蹤精度。
  2. 極致的電力分配: 透過雙通道,可以讓 107 PH 吃 100% 的演算法火力,而導星鏡的通道可以透過程式碼或 NINA 稍微降壓(例如只給 50% 的權重),把高山上珍貴的深循環電池電力,精準用在刀口上。
  3. 免插拔的優雅: 實體線路全部接好後就不用再動了。換鏡筒時,直接在 NINA 介面上把不需要的那個 Heater Switch 關閉(或設定為 0),電源就徹底切斷了。

這套自製的雙通道天文中樞,在邏輯與擴充性上已經完全超越了市售除霧控制器。

影片錄製時是在春雨綿綿的日子裡:

  • PI 4 一開機,N-MOSFET 四路模組的兩路燈號就直接點亮。

  • 在 DHT22 底下放了杯熱水(畫面的右上角),水蒸氣慢慢蒸發,DHT22 偵側到溼度越來越大,所以 PWM 的值也越來越大最後來到 P:127,255,表示 N-MOSFET 四路模組的兩路輸出也來到最大,127 是接導星鏡的除霧帶,最大輸出功率只給 50% ,255 是接主鏡的除霧帶,最大輸出功率給 100% 。

  • 因為是春雨綿綿的日子,溼度太高,所以開了冷氣除溼,達到條件時(溫差 ≥ 5°C),P:0,0, 可以看到 N-MOSFET 四路模組的兩路燈號熄滅,代表除霧帶沒有加熱。接下來把冷氣關掉,打開房門,溼度回升, N-MOSFET 四路模組的兩路燈號再度點亮。

五、防水的製作過程

  • 測試過程中需要用到三用電錶來測:

    1. PWM 訊號有無正確輸出
    2. N-MOSFET 四路模組的兩路的輸出電壓是否正確輸出
  • 因為用杜邦線及單芯線,所以測試都無誤後,用熱熔膠來固定

  • DHT22 也要用熱熔膠來固定

  • 準備材料:保鮮盒、美工刀、熱熔膠、黏土

  • 割出 U 型槽讓線能過

  • U 型槽上黏土,線壓上去,然後蓋子蓋上去,大概就足夠防水了。

  • 為防水得更徹底,在黏土處再上熱熔膠,以 DHT22 為例(其他 USB 線、電源線也是一樣)
      

  • 最後的成品:

註:除霧帶的驅動邏輯

基於在 Pi4 植入的 Magnus-Tetens 公式,已擁有高精度的露點資料,可完全捨棄傳統恆溫加熱,改採動態 PWM 控制以節省電力並避免鏡筒熱氣流(Tube Currents)干擾視寧度。


2026年4月8日 星期三

天文攝影的粗對極軸小工具分享--For Android

Luke 的休閒筆記: 無法看到北極星下的極軸校正調整:使用Polar Scope Align Pro

按這裡下載

早期使用 iPhone 時,購買了這支 app ,後來發現用來粗對極軸蠻好用的,但手機換成 Motorola Razr 50 Ultra ,竟然連內建的指南針都沒有,還得上 PlayStore 下載,免費的都有廣告,所以問了 Gemini :

開發一款沒有廣告的指南針 App

  1. 自用而已,不上 PlayStore 銷售
  2. 要用在我的 MOTO Razr 50 Ultra ,且要能正常顯示在外螢幕
  3. 只要兩個功能:
    i. 指南針(具有校正功能,即 8 字繞校正)(註:第二版改成有水平泡泡的)
    ii. 能極軸校正功能(手機放在望遠鏡上時,調整赤道儀的方位角、仰角使逼近中心點。

以上由於手機的校正會因地磁及各項干擾因素,也只能粗對極軸,但這只是讓我使用 Kstar/Ecos 的三點校正極軸前置作業,讓深空攝影更加方便。

寫代碼你最專業,應該是 a pieces of cake ,至於需要的那些圖,我可以用 Affinity Photo 畫。

我要在 Mac mini 2018 OS 15.7.4 下開發,需要那些前置作業及預備那些圖,請條列。

然後在 Gemini 指導下畫了這些圖:





程式主要是針對我的 Motorola Razr 50 Ultra 內、外螢幕製作的(帶有台灣磁偏角補償的暗適應工具),特別針對外螢幕優化,我不用開蓋就能使用,如果你也是小摺應該會很好用。程式執行時畫面如下: