あけましておめでとうございます。
去年はESP32とGPSと5×7ドット8桁LEDで2023年の書き初めをしてみましたが、今年は何をしようかなと考えていたところで、以前ルンバでLEDを制御したことを思いだし、2024年はルンバで年越しカウントダウンをしてみることにしました。
ルンバをROS2 Humbleで制御する
以前はルンバをROS2 Foxyで動かしていました。もうPCの環境はUbuntu 22.04 LTSになり、ROS2 Humbleに変わっています。この環境でルンバ用のROS2ドライバ AutonomyLab/create_robotをビルドして問題なく動くことを確認しました。
カウントダウンのシナリオを考える
カウントダウンのシナリオを考えてみます。ルンバには各種動作通知用のLEDが搭載されています。また7セグメントLEDが4個ありこれも利用できます。これらを組み合わせて新年を祝うことにします。
以前におおたfabで「素人でもロボットをつくりたい」の勉強会で調べたときの資料を参考にしました。
この情報から以下のシナリオを考えました。
- LED全消灯
- “2023” を7セグメントLEDに表示
- “5”を7セグメントLEDに表示
- “4”を7セグメントLEDに表示
- “3”を7セグメントLEDに表示
- “2”を7セグメントLEDに表示
- “1”を7セグメントLEDに表示
- 各種LEDを点滅開始
- ”2024″を7セグメントLEDに表示
- “NEW “を7セグメントLEDに表示
- ”YEAR”を7セグメントLEDに表示
- 9〜11を繰り返し
各種LEDの制御以外にもサウンド機能もサポートされていますので、ついでにカウントダウンの時報音をルンバから出力してみます。今回は表示に合わせて、440Hz 0.1秒 5回、880Hz 3秒 1回としました。
完成した2024年の年越しカウントダウン
シナリオに従って、ROS2のノードをpythonで書いて、create_robotの仕様に合わせてtopicをpublishしていきます。カウントダウンのところは1秒タイマーのコールバックで正確に1秒を刻み、各種LEDの繰り返し点滅は0.5秒タイマーのコールバックで行うようにしました。
動画はYouTubeにアップしておきました。
本当はLED点滅中にお正月ぽい曲を流そうとしたのですが、時間切れで間に合いませんでした。あとで追加してみようと思います。
終わりに
年越しにあわせてカウントダウンをしようと調整していたのですが、直前でルンバのバッテリーが空になってしまって、0時から少し遅れた実行になってしまいました。このようなトラブルに泣かされないことを祈りつつ、今年もよろしくお願いします。