この前, Neopixelをpigpioからコントロールする方法を紹介しました. 今回はこれを利用して, ROSからNeopixelを制御します.
今回は次の2つのノードを立ち上げます.
rainbow_talker
: 光らせたい色の情報をPublishするノードneopixel_listener
: 色の情報をSubscribeし, pigpioに伝えるノード
これらのノードややりとりするトピックにはstd_msgs/UInt32MultiArrayを使います. ROSには色を表現するためのstd_msgs/ColorRGBAがありますが, これはArray型になっているものがデフォルトで用意されていません. 今回は実装を簡単にするために, 既存のUInt32MultiArrayに色の情報をHexコードで格納します.
rainbow_talker
とneopixel_listener
のコードは次のものになります.
rainbow_talker
からはhsv色空間を使って虹っぽい色をPublishします. 変換式は以前にArduino用に書いたものの流用です.
これをタミヤのカムロボに搭載すると動画のように光ります.
コメント