我非常熱愛天文學和天文攝影。我確信,和我一樣,所有業余天文學家都希望擁有一個價格實惠的個人天文臺,以便拍攝壯麗的宇宙景象。
天文攝影,尤其是深空攝影,對跟蹤精度(以抵消地球自轉)和調焦精度要求極高。一臺像樣的赤道儀加上導星器可以解決跟蹤問題,而電動調焦器則能實現高精度的調焦。然而,這些設備都相當昂貴!對于好的赤道儀和導星器,確實沒有可靠的替代品,但電動調焦器相對容易以極低的成本自制。
此外,能夠遠程控制赤道儀也會非常方便。我來自中國,目前在美國上大學。如果我的高中天文學老師能夠遠程訪問我的望遠鏡,并向她的學生展示行星或星團的實時圖像,那就太好了。雖然有一些遠程控制望遠鏡的解決方案,但我并不滿意。
因此,我啟動了這個概念驗證項目,允許用戶通過網頁遠程控制赤道儀、望遠鏡的調焦以及相機。
簡介:
你可以觀看上面的演示視頻,了解項目的工作原理。該項目由四個部分組成:
電動調焦控制
微控制器通過自定義的串行JSON字符串協議與其他設備通信
一個網頁作為控制赤道儀、調焦器和相機的界面
在本教程中,我將引導你完成制作調焦器的過程,并運行我的代碼來控制望遠鏡。
第一步:所需材料
我根據自己擁有的設備制作了這個項目。如果你擁有與我相同的設備,可以按照我的確切步驟操作;但如果沒有,你可能需要調整一些東西或編寫自己的代碼來使其工作。
工具:
一套內六角扳手
卡尺
手鉆
訪問3D打印機的權限
一款CAD軟件(我使用了Fusion 360學生版)
你可能已經擁有的天文設備:
一臺帶有不錯手動調焦器的望遠鏡(我使用的是Sharpstar CF90-II)
一臺帶有SynScan v3或v4的信達赤道儀(我使用的是EQ6-pro,帶SynScan v4)
一臺佳能單反相機(我使用的是6D,尼康相機不適用,因為gphoto2無法控制尼康相機的B門模式)
部件:
樹莓派的WiFi加密狗(除非你使用的是rpi3)
Teensy3.2(用于與赤道儀和其他設備通信)
長質量好的USB micro線纜*2(用于為rpi和Teensy供電)
長質量好的USB mini線纜(用于你的單反相機)
RJ-11插座和線纜(連接Teensy與SynScan)
Max232芯片(將SynScan的RS-232電平轉換為Teensy的TTL電平)
10 uf電容*4(與Max232芯片配合使用)
1602a LCD屏幕
28YBJ-48步進電機
ULN2003步進電機驅動板
MXL 45齒同步帶輪(替換調焦旋鈕)
MXL 15齒同步帶輪(連接到步進電機)
同步帶
按鈕*3(控制調焦器)
電位器*3(改變步進電機速度并調整LCD的亮度/對比度)
#6螺絲和螺母(安裝3D打印的調焦器)
面包板*2
大量跳線
5V2A電源(用于rpi)和12V 2A電源(用于赤道儀)
注意:
如果你沒有單反相機,可以跳過與之相關的部件,只制作赤道儀控制器。
Max232電容的值并不那么重要,我看到過幾個使用不同值的電路圖。只要不是太小,就沒問題。如果你有開發板,那就更好了。
購買同步帶輪時,請確保內徑與你的調焦器和步進電機匹配。
不要購買長開口的同步帶并嘗試將其粘成環形。我試過這樣做,但什么都不管用。我是從McMaster-Carr購買的。
一條質量好的USB線纜可以節省你數小時的調試時間。
我使用了Teensy3.2微控制器。它與Arduino兼容,但功能更強大。我的一些代碼是Teensy特有的(例如IntervalTimer)。如果你想在Arduino上使用這段代碼,需要進行一些修改。
第二步:設計電子調焦器
總體思路是制作一個設備,讓電機代替手動旋轉調焦旋鈕。我選擇使用步進電機,因為它非常精確,而且我的測試表明,通過同步帶機構增加扭矩后,它足夠強大,可以在使用單反相機時調整焦距。我使用同步帶機構是因為它可以通過改變皮帶的張力輕松地在手動調焦控制和電動調焦控制之間切換。在我的設計中,電子調焦器的主體由三部分組成。一部分連接到望遠鏡的調焦器(內部),一部分作為間隔件(中部),還有一部分用于固定步進電機(外部)。這三部分通過嵌入在外部部件中的四根長#6螺絲和螺母連接在一起。此外,還有另一個部件用于調整皮帶的張力。這種分離使得3D打印更加容易,而且對于不同的望遠鏡,你只需要設計一個不同的內部部件。
我設計的步進電機支架是基于我的望遠鏡的。你的望遠鏡參數可能略有不同。因此,如果你能對整個部件進行CAD設計并在打印前驗證其工作原理,那就更好了。
附件:
第三步:打印并組裝電子調焦器
完成設計后,你可以3D打印部件并將其安裝在望遠鏡上。安裝過程很簡單。只需按照圖片和CAD設計(嘗試爆炸視圖)進行操作即可。第一張圖片顯示的是皮帶緊繃時的情況,第二張圖片顯示的是皮帶松動時的情況。
以下是一些可能對你有幫助的提示:
在大多數情況下,你可以使用內六角扳手取下調焦器上的手動旋鈕。安裝大型同步帶輪時,請確保螺絲擰入軸上的小凸片中。
在實際鉆孔前,總是先預鉆定位孔。
你可以用橡皮筋包裹張力調整部件,使其自動縮回。
對于連接步進電機和外部部件,你可以預鉆一個比螺絲稍小的孔,并將螺絲擰入以實現緊密連接。
第四步:驅動步進電機
步進電機連接到驅動板,驅動板再連接到Teensy微控制器。如果你對步進電機不熟悉,可以參考這個維基百科頁面和這個鏈接。
我實現了兩種驅動模式:兩相全步進和半步進。兩相全步進提供更大的扭矩但精度較低,而半步進提供兩倍的精度但扭矩較小。以下數組包含四個步進電機引腳的狀態。
conststaticbooleancycle[8][4] = {{true,false,false,false}, {true,true,false,false}, {false,true,false,false}, {false,true,true,false}, {false,false,true,false}, {false,false,true,true}, {false,false,false,true}, {true,false,false,true}};
在半步進模式下,四個引腳的狀態會循環遍歷數組中的所有八個組合;而在兩相全步進模式下,四個引腳會循環遍歷數組中索引為1、3、5、7的組合。兩個按鍵通過循環遍歷數組的不同方向來控制電機的旋轉方向。
在使用特定驅動模式時,步進電機的速度取決于引腳狀態變化之間的間隔。步進電機需要非常精確的定時來驅動,因此我使用了定時器中斷來驅動電機。中斷以固定間隔觸發。每次中斷觸發時,代碼都會將步進電機引腳設置為數組中的下一個組合。使用電位器可以改變中斷的間隔,從而改變步進電機的速度。
請參考第五步進行接線,參考第六步查看代碼。
旁注:使用樹莓派來驅動步進電機是個壞主意。在短步進間隔下,電機可能會表現異常,因為樹莓派運行的是操作系統,難以實現硬實時控制。
第五步:連接電路
根據上面的電路圖連接電路板。對于電機控制模式線和顯示設置線,你可以添加開關以方便使用。對于開關和電位器,如果你想要的話,還可以添加額外的電容來平滑輸入信號。
為了使整個系統正常工作,你還需要將Teensy和單反相機連接到樹莓派上,將SynScan手動控制器與RJ11插座連接,并使用2A電源為樹莓派供電。
附件
第六步:Teensy代碼
要編譯此代碼,你需要安裝aJSON庫。只需從這里下載zip文件:
https://github.com/interactive-matter/aJson
在Arduino IDE中,選擇“草圖”->“包含庫”->“添加.ZIP庫”來添加庫。然后,轉到~/Arduino/libraries/aJson-master,并用我附帶的版本替換aJSON.cpp文件(見下文)。這解決了這個問題。
https://github.com/interactive-matter/aJson/pull/79
此代碼控制步進電機,使用SynScan串行協議與SynScan手動控制器通信,并使用串行JSON字符串協議與其他設備通信。它有一個循環緩沖區,用于排隊外部請求,并在固定時間間隔內執行緩沖區中的命令。雖然在這里我將Teensy連接到樹莓派上,但你可以輕松修改我的代碼,使其與WiFi模塊或藍牙模塊通信,如果你不需要相機控制部分的話。
我實現的串行JSON字符串協議非常有趣。
https://www.json.org/json-en.html
該設備具有一個內部的類似JSON的樹形結構,該結構為不同的屬性提供了getter和setter方法。下面是一個示例:
{focuser : {mode :0,interval :3000},telescope : {EQ_Coord : {RA :50.5,DEC :85.6},tracking :2,in_goto :0,slew :"AU2"}}
這個JSON樹形結構的任何子集都是一個有效的命令,其中空對象表示獲取,非空值表示設置。例如,命令{telescope:{EQ_Coord:{}}}表示獲取赤道儀當前的赤道坐標。Teensy將回復填充了子樹信息的響應,例如:{telescope:{EQ_Coord:{RA: 50.5, DEC: 85.5}}}。要轉到目標位置,你可以簡單地發送{telescope:{EQ_Coord:{RA: 70.2, DEC: 40.8}}},Teensy會將其解釋為轉到該坐標。解析器是遞歸的,因此你可以發送{telescope:{}}來獲取關于望遠鏡的所有狀態信息,或者在一個命令中執行多個獲取/設置操作。代碼還會驗證你設置命令中的輸入值,并在出現錯誤時提示API錯誤。
除了這個項目外,如果你想要實現類似的功能,一定要看看我的代碼。
第七步:樹莓派代碼
首先準備你的樹莓派。配置樹莓派連接到WiFi網絡或將其配置為軟接入點。
https://elinux.org/RPI-Wireless-Hotspot
此外,如果你已經在樹莓派上配置了VNC,那么遠程登錄將會非常方便。請按照這個教程操作:
https://www.raspberrypi.com/documentation/computers/remote-access.html
在樹莓派上運行的代碼執行以下操作:
通過USB串行和JSON字符串協議與Teensy通信,以控制赤道儀和調焦器
使用gphoto2與單反相機通信
托管一個網頁,該網頁顯示實時星空圖,并提供控制赤道儀、調焦器和相機的界面
涉及的技術包括:
所有服務器端腳本均使用Node.js編寫
網頁使用Angular.JS和D3編寫
使用node-static提供靜態網頁服務
使用socket.io進行客戶端-服務器通信
使用node-serialport訪問串行端口
星空圖靈感來源于VirtualSky
使用的星表數據來自HYG數據庫
我使用網頁作為界面,因為它可以在所有智能設備上工作。理論上,任何支持HTML5的瀏覽器都應該能夠訪問該頁面并控制所有功能。
設置樹莓派:
install gphoto2:
wget https://raw.githubusercontent.com/gonzalo/gphoto2... &&chmod+x gphoto2-updater.sh && sudo ./gphoto2-updater.sh
install nodejs:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -sudo apt-getinstall -y nodejs
安裝我的代碼
cd~mkdirProjectscdProjectsgitclone https://github.com/yhzhao343/wifi_TeleCtrl.gitcd./wifi_TeleCtrl/mount_ctrlnpm installcdpublicmkdirimage
運行代碼:
node ~/Projects/wifi_TeleCtrl/mount_ctrl/simple-server.js
你還可以配置樹莓派在啟動時自動運行它。
服務器運行后,你可以打開瀏覽器,并使用端口8080訪問樹莓派的本地IP地址。例如,在我的情況下,樹莓派的本地IP地址是192.168.0.15。我可以通過在瀏覽器中輸入192.168.0.15:8080來訪問該頁面。你可以登錄到路由器或將鼠標懸停在樹莓派的網絡圖標上來獲取其本地IP地址。
第八步:開始使用
警告:目前代碼尚未準備好投入生產,并且所有互聯網連接均未加密。如果你計劃在公共WiFi上使用它,請謹慎操作。
第九步:未來工作
該項目仍處于概念驗證階段,還有許多可以改進的地方。
以下是我未來希望開展的工作列表:
改進網頁的用戶界面(背景和紅色)
在網頁中提供更方便的gphoto2相機控制選項
使用WebGL重寫星空圖
在網頁中添加QHY5視頻流
在網頁中集成導航器
基于圖像分析的自動對焦
登錄系統和加密連接
感謝閱讀!希望這對你有所幫助。
原文地址:
https://www.instructables.com/Wifi-controlled-TelescopeDSLR-With-Motorized-Focus/
-
WIFI
+關注
關注
81文章
5385瀏覽量
207686 -
望遠鏡
+關注
關注
0文章
133瀏覽量
16068 -
樹莓派
+關注
關注
121文章
1966瀏覽量
107107
發布評論請先 登錄
評論