最近的日環(huán)食吸引了一大波天文愛好者。在我所居住城市的科技中心大樓外就有一臺大型的天文望遠鏡,它可以鳥瞰宇宙中的其他星球。我一直認為那些真實存在、又遙不可及的外太空與微小的我有著某種神秘的聯系。
我準備用樹莓派和天文望遠鏡復制一臺智能的行星觀測器。從 NASA 獲取已知行星的坐標數據,然后這臺儀器就可以自動調整角度,聚焦這顆行星,讓我可以很方便地觀測它們。相信它將很好地帶你觀看和感受地球之外的外太空世界。
視頻演示
材料清單
樹莓派 3B ×1
16×2 LCD 屏幕 ×1
帶驅動器的步進電機 28-BYJ48 ×2
按鈕 ×3
法蘭聯軸器 5mm ×2
按鈕指南針 ×1
M3 螺栓/螺母 ×8
3D 打印外殼 ×1
3D 打印望遠鏡 ×1
行星坐標數據
這里將介紹兩種定位行星的方法。
1、使用水平坐標系。它可以從北方(方位角)向上方傾斜和從地平線(高度)向上方傾斜,因此是以你的位置而定,所以角度會有所不同。此方法以北方作為參考。
請點擊鏈接查看:
https://en.wikipedia.org/wiki/Horizontal_coordinate_system
2、將樹莓派連上 WiFi 后,直接連接到 NASA 獲得數據。
訪問行星數據
從 NASA 噴氣推進實驗室(JPL)獲取數據:
https://ssd.jpl.nasa.gov/?horizons
訪問數據前需要安裝 AstroQuery 庫,用于查詢行星網絡表單和數據庫的工具。
請點擊下載安裝:
https://astroquery.readthedocs.io/en/latest/jplhorizons/jplhorizons.html
請確保安裝最新版本的 Raspbian(我使用的是3.7.3版)。
打開終端運行命令:
sudo apt install python3-pip
然后使用 pip 安裝 astroquery 的升級版本。
pip3?install?--pre?--upgrade?astroquery
在繼續(xù)完成項目前,請使用簡單的 Python 腳本訪問該數據,確保正確安裝了所有的依賴項。
from astroquery.jplhorizons import Horizons
mars = Horizons(id=499, location='000', epochs=None, id_type='majorbody')
eph = mars.ephemerides()
print(eph)
接下來會顯示火星的詳細位置。
請點擊該鏈接查看火星定位是否正確:
https://theskylive.com/planetarium
為了方便查詢,我會做簡化處理。其中 id 表示是 JPL 數據中與火星的數據,epochs 表示獲取數據的時間,id_type 表示詢問太陽系主體?!?00”在格林威治天文臺的位置代碼中表示英國的位置。其他位置可點擊查看:
https://minorplanetcenter.net//iau/lists/ObsCodesF.html
故障排除:
如果出現報錯:No module named ‘keyring.util.escape’
可以在終端中輸入以下命令:
pip3?install?--upgrade?keyrings.alt
編程
為了找到精確的坐標數據,在 getPlanetInfo 方法修改位置信息(使用上一步中的天文臺的列表修改這里的 location)
def getPlanetInfo(planet):
obj = Horizons(id=planet, location='000', epochs=None, id_type='majorbody')
eph = obj.ephemerides()
return eph
完整的 python 腳本,請在項目文件庫中下載:
https://make.quwj.com/project/240
連接硬件
在該步驟中,要連接面包板、跳線、兩個步進電機、LCD 屏幕和三個按鈕。
在樹莓派上找到引腳,在終端上輸入
pinout
它會可以顯示 GPIO 編號和板子編號。
連接方式如下:
第一個進電機 – 7、11、13、15
第二個進電機 – 40、38、36、32
按鈕 1 – 33
按鈕 2 – 37
按鈕 3 – 35
顯示屏 – 26、24、22、18、16、12
全部連接后,運行 python 腳本
python3 planetFinder.py
在屏幕上會顯示設置文本,并且按鈕可以啟動步進電機。
3D 打印外殼
1、3D 打印外殼。
所有打印 STL 文件,請在項目文件庫下載:
https://make.quwj.com/project/240
2、測試外殼
外殼組裝到位后,進行其他組件的安裝。將按鈕安裝到位,固定顯示幕和步進電機,打磨外殼,確保所有組件都能正常使用。
安裝電子組件
1、安裝步進電機
步進電機將控制位于外殼上方的望遠鏡的仰角,因此需要延長電線以便旋轉。請如圖進行安裝。
接線完成后,運行 python 腳本,檢查是否一切正常。
然后將電線放回管內,直到步進電機就位,再將步進電機固定在外殼上,然后將外殼粘合。
2、安裝按鈕和 LCD 屏幕
如圖所示安裝按鈕,在焊接前使用螺母使其固定到位。
再使用 M3 螺栓和螺母固定 LCD 顯示器。請將 LCD 其中一個引腳焊接到電位計上。
在將所有的組件粘合之前,再次測試代碼,確保所有能夠正常工作,因為該階段更容易修復。
3、添加法蘭聯軸器
將 3D 打印的底座連接到步進電機。
將法蘭聯軸器安裝在步進電機的頂部,并用螺釘固定到位。
將望遠鏡安裝到旋轉塔頂上的電機很簡單,因為有足夠的空間可以將小螺釘固定到位。
一個法蘭器粘連在旋轉塔架的底座上,另一個安裝在望遠鏡上。
再次測試,如果有問題,馬上修復并確保所有連線正確。
啟動
因為想把它獨立運行,而不是每次手動代碼尋找行星,因此將其設置為在樹莓派開啟時運行代碼。
在終端中輸入。
1crontab -e
在打開的文件中,在文件末尾,另起一行輸入。
1@reboot python3 /home/pi/PlanetFinder/planetFinder.py &
代碼保存在 PlanetFinder 文件夾中,因此文件位置為:
/home/pi/PlanetFinder/planetFinder.py。如果你保存在其他地方,請在此處更改。
說明:它允許代碼在后臺運行,因此它在啟動時不會阻止其他進程。
完成組裝
將小指南針添加到旋轉底座的中間,最后,將所有的組件安裝到位。
使用方法
1、當望遠鏡開始啟動時,調整垂直軸。按下向上和向下按鈕可以移動望遠鏡,調整好后按下 OK 按鈕即可(位于底部)。
2、調整旋轉角度,使用按鈕旋轉望遠鏡,直到小指南針將望遠鏡指向北,然后按下 OK 按鈕即可。
現在,你可以使用向上、向下按鈕選擇行星,確定好后按下 OK 按鈕即可。它將顯示選定行星的高度和方位角,指向它幾秒后再轉向北。
目前為止,項目就完成了。你會去尋找哪一顆行星呢?!
-END-
MAKER:snowbiscuit/譯:趣無盡 Cherry(轉載請注明出處)
https://shumeipai.nxez.com/2020/07/23/raspberry-pi-planet-finder.html
|?整理文章為傳播相關技術,版權歸原作者所有?|
|?如有侵權,請聯系刪除?|
【1】國內MCU能替代國外產品嗎?MCU的未來又將如何?
【2】35歲真的是程序員的坎兒嗎?
【3】不同編程語言能耗不同?看這27種語言對比!
【4】超長干貨為你解析:從串口驅動到Linux驅動模型,嵌入式必會!
【5】本文把TCP/IP講絕了!
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!