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