はじめに
趣味で宇宙開発を行う団体「リーマンサット・プロジェクト」がお送りする新春アドベントカレンダー No.14です。
就職してからずっと非エンジニアで、2017年暮れからラズパイいじり始めたばかりなのに、2018年1月からrsp-00の開発チーム(ミッション系)に入れてもらい、開発に少し携わることができました。
マジ楽しかったです!リーマンサット、特にrsp-00開発チームの皆様には本当に本当に感謝です!
(この記事の) サマリー
- 2018年に宇宙に放出されたrsp-00では、ラズパイ(ゼロ)を使ってる
- 人工衛星 → 遠隔操作 → 「家でリモコン」だよね
という無理矢理な連想と、勉強もせずテレビばかり見ている子供にムカつき、
__ラズパイ使って、外からでもテレビを消せる様にしてやる!__というものです。
折角なので、スピーカーも追加して「勉強しろ!オラァ」と外からでも言える様にもします。
あと、勉強も兼ねてwifiスマホリモコンもやりました。
構成
ビギナーがゼロから開発するのはムリがあります。偉大なる先人の方々のお知恵を参考に、というかそれらをつぎはぎしながら行なっていきました。ハードもまずはブレッドボードでやりました。
(1) リモコン機能
LIRC面倒なので、rsp-00開発時にも検討したPiGPIOでやりました。
以下サイトで、用意するモノを含め、丁寧に解説してくれています。私もラズパイゼロを使用し、テレビに加え、DVDプレイヤー、エアコンも操作できる様にしました。
(2) スマホリモコン画面
webiopiを使いました。以下等を参考にしながら、初めてcssやりました(今はこれが限界。。)。
(3) 音声出力
秋月電子で、スピーカーとPAM8012アンプモジュールを購入。
音声出力は、以下等を参考にしました。ラズパイゼロには、Audioジャックがないので、GPIOで接続します。
Raspberry Pi 2 をアンプ基板+スピーカーのコンパクト構成でお喋りさせる
(4) 外からリモコン: slackbot
ポート開放等、自宅のwifi設定はいじりたくないけど、ビギナーなこともあってサーバーとかも面倒。。。調べた結果、slackbotが一番簡単そう!と思い、以下等を参考にしてやってみたところ、それ程引っかからず上手くできました。
PythonのslackbotライブラリでSlackボットを作る
完成!
### デモ
「外から、テレビがついているかどうかどうやってわかるの?」
については、以下ご参照ください(音声は出力されません)。
「外からリモコン」のデモとして、スマホから4Gでやってます。
チコちゃんにお願いすることも可能にしました^^
外(スマホ4G)からTV操作したり、音声出力できる様にした#リーマンサット #iot #iotlt #ラズパイhttps://t.co/1LQl3nXqpo
— Takeshi Tanimoto (@takeshitani) January 24, 2020
### tips
完成まで、つまづきまくりでしたが、PiGPIOに関する日本語情報が比較的少ないので、本プロジェクトでのポイント2点を以下ご紹介。
(1) 自動起動化
systemd等いくつか方法がありますが、私の場合は以下でいけました。
#ユニットがserviceとして認識されているか確認
$ sudo systemctl list-unit-files --type=service | grep pigpiod
#認識されていれば、enableコマンドで自動起動
$ sudo systemctl enable pigpiod.service
(2) 音声出力設定
GPIOピン#19で、結論としてはストレートに以下設定でいきました。
pi.set_mode(19, pigpio.OUTPUT)
pi.hardware_PWM(19, cfreq, 1000000)
上の「GPIOで接続」でALT設定云々と言っていることもあり、__OUTPUT__の代わりに__alt5__設定にすると、音は出るのですが、その後TVの操作ができなくなったりとかして、つまづきました。
あとがき
というような感じですので、rsp-00の開発では、実際には、からあげクンの買出しや休日奮闘する開発メンバーの送迎だったような。。。
昨年から、公私とも少し慌ただしいので、今は特定のプロジェクトに参加していませんが、落ち着いたらまた参加したいと思っています。自分のペースで参加できるのも、「リーマンサット・プロジェクト」の良いとこかと。
尚、子供達はテレビを見れなくなっても、youtubeを見るので、このシステムの効果は全くありません。
音声出力も微妙なイントネーションなので、これからはチコちゃんを連発します。
「リーマンサット・プロジェクト」は「普通の人が集まって宇宙開発しよう」を合言葉に活動をしている民間団体です。
他では経験できない「宇宙開発プロジェクト」に誰もが携わることができます。
興味を持たれた方は https://www.rymansat.com/join からお気軽にどうぞ。
新春アドベントカレンダー、次は @rhiro さんの「PlantUMLを使った宇宙服のモデリング」です。お楽しみに!