17
Raspberry Piで衛星のフライバイを追跡する方法

SpaceXのStarlinkが私の地域で利用可能になったので、ある時点でどれくらいの衛星が上空を飛んでいるのか気になりました。幸いなことに、米国宇宙軍は軌道上の物体の位置を追跡し、リアルタイムでデータを公開しています。このデータをダウンロードすれば、Raspberry Piとスピーカーを使って、特定の衛星が上空を通過した時にアナウンスを流すことができます。音声に加えて、SMSメッセージをスマートフォンに送ってもらうこともできます。 

このプロジェクトに必要なもの 

  • Raspberry Pi 4または Raspberry Pi 3(電源アダプター付き)
  • Raspberry Pi OSを搭載した8GB(またはそれ以上)のmicroSDカード。Raspberry Piに最適なmicroSDカードのリストをご覧ください。 
  • 3.5mmオーディオ入力を備えたデスクトップスピーカー

Raspberry Piで衛星追跡装置を作る方法 

始める前に、Raspberry Pi OSがセットアップされていることを確認してください。まだセットアップしていない場合は、Raspberry Piの初回セットアップ方法、またはヘッドレスインストール(キーボードと画面なし)の方法を解説した記事をご覧ください。

1. gitをインストールします。これにより、github.comからコードをクローンできるようになります。

sudo apt-get update && sudo apt-get install -y git

2.リポジトリをクローンし、作成されたディレクトリに移動します。

git clone https://github.com/rydercalmdown/pi_satellite_announcer.git
cd pi_satellite_announcer

3.インストールコマンドを実行します。仮想環境、必要な低レベルの依存関係、そしてPythonの要件がインストールされます。

make install

4. space-track.org にアクセスし新しいアカウントを作成します。これにより、米国宇宙軍が追跡している2線要素(TLE)データをダウンロードできるようになります。このコードは、このウェブサイトから1日に1回データを更新し、サーバーへの負荷を最小限に抑えるためにローカルに保存します。

Raspberry Piで衛星のフライバイを追跡する方法

(画像提供:Tom's Hardware)

5. 登録が完了したら、Raspberry Pi に戻り、environment.sh ファイルを編集します。テンプレートの値を、space-track のユーザー名とパスワードに置き換えます。 

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

nano environment.sh # Your spacetrack credentials
# export [email protected]
# export SPACETRACK_PASSWORD=your_spacetrack_password

6.地図上で右クリックし、最初のオプションを選択して、Google マップから自宅の緯度と経度の値を取得します。

Raspberry Piで衛星のフライバイを追跡する方法

(画像提供:Tom's Hardware)

7.緯度と経度の値をenvironment.shにコピーし希望する半径をキロメートル単位で設定します。例えば、半径を20キロメートルに設定すると、地上から20キロメートル以内にある衛星のみが上空に報告されます。衛星の高度は問いません。 

Raspberry Piで衛星のフライバイを追跡する方法

(画像提供:Tom's Hardware)

8. Raspberry Piの3.5mmオーディオポートにスピーカーを接続し、以下のコマンドで音が聞こえるかテストしてください。ここではメガホンを使用していますが、3.5mmオーディオ入力を備えたスピーカーであればどれでも使用できます。alsamixerコマンドで音量を上げる必要があるかもしれません。問題が発生した場合は、raspi-configメニューでオーディオの設定をお試しください。 

# Test speakers
espeak -a 200 "this is a test" --stdout | aplay
# Adjust volume
alsamixer

Raspberry Piで衛星のフライバイを追跡する方法

(画像提供:Tom's Hardware)

 9. Twilioアカウントを設定します衛星が頭上に現れたときにテキストメッセージを送信するために使用します。Twilioを使用しない場合は、app.pyを編集して「use_twilio」変数をFalseに設定してください。

10. Twilioアカウントの設定手順に従ってください。詳細な手順はTwilioのウェブサイト(こちら)でご覧いただけます。送信操作を実行するには、電話番号を作成し、アカウントの認証情報を取得する必要があります。

11. 資格情報と電話番号を取得したら、それらを environment.sh ファイルに追加します。

nano environment.sh # Twilio credentials
export TWILIO_ACCOUNT_SID=your_account_id
export TWILIO_AUTH_TOKEN=your_account_token # the number you purchased with twilio
export TWILIO_NUMBER_FROM=+10000000000 # your phone number
export TWILIO_NUMBER_TO=10000000000

12.次のコマンドでコードを実行します。space-trackに接続し、最新のTLEデータをダウンロードし、environment.shファイルで指定された緯度、経度、半径上の衛星のレポートを直ちに開始します。

make run

Raspberry Piで衛星のフライバイを追跡する方法

(画像提供:Tom's Hardware)

13.コードを試してみましょう。現在はデブリとみなされない衛星のみをアナウンスしていますが、簡単に調整できます。星座で絞り込んだり、国際宇宙ステーション(ZARYA)のように興味のある名前の衛星のみをアナウンスしたりすることもできます。