M5StickCの赤外線LEDでレゴテクニック RCトラックレーサーを動かす

M5Stack 2021年10月4日

レゴの中でも、レゴテクニックのシリーズはいろいろな機械の動作メカニズムがレゴで再現されていて、大人が作ってもとても面白いものです。その中でも、Lego Power Functionモーターという赤外線受信器とモーター、ライトなどを組み込むことができるモデルがあります。これを1つ持っていたので、M5Stackから動かしてみました。 レゴテクニック RCトラックレーサー 42065

これ、M5Camera を搭載するのにちょうどいいサイズで、レゴですから簡単にM5Cameraを固定して運転席視点のカメラ映像を楽しむことができます。 これに使われているモーターは、動くレゴとして有名なMindStormsのモーターとはまた違う種類なので、直接M5Stackに接続することは難しそうです。しかし、赤外線で制御するので、制御コマンドを解析してArduino用のライブラリが作成され、公開されていました。 Arduino-PowerFunctions

そして、M5Stack系では、M5StickCに内蔵のIR LEDがあるので、このライブラリを使って、M5StickCで動くリモコンを作ってみました。

ハードウェア

レゴテクニックRCトラックレーサー 42065 にM5Cameraを乗せていますが、M5Cameraは今回の制御には使っておらず、車両からの映像を撮るのに使っています。

レゴテクニックトラックレーサー

赤外線を受ける部分は後部にあります。通常はレゴセットに付属するコントローラーで制御しますが、今回代わりにM5StickCから赤外線を出して制御します。

赤外線受光部

左右のキャタピラーは独立したモーターで制御されるので、本当は少なくとも前進・後退 x 2系統で4つの入力ができるスイッチが必要ですが、とりあえず手元にあったDual Button Unitで2ボタン、あとM5StickCの本体についている一番大きいボタン(Aボタン)の3つで制御しました。Dual Button Unitのボタンを押している間、対応する側のキャタピラが前進に入り、両方同時押しすると真っ直ぐ前に進みます。M5StickCのAボタンを押すと、両側のキャタピラが後進に入ります。

コントローラーとしては、M5StickCにDual Button Unitを接続して使用しています。はじめはM5StickCにIR LEDが内蔵されていることを忘れていて、M5Stack BasicにIR REMOTEモジュールをつける構成でないとだめかと考えていましたが、側面に小さな穴があってそこに出ていました。

コントローラー

ソフトウェア

Arduino IDEのスケッチをM5StickCに書き込みます。事前に、Arduino-PowerFunctionsをインストールしておく必要があります。 なお、M5StickC.h をインクルードした状態ではArduinoボードのオンボードLEDのGPIOピンが定義されている LED_BUILTIN マクロが未定義なためにコンパイルエラーが起こったので、 PowerFunctions.h を編集して、M5StickCの内蔵LEDが接続されている GPIO10 を

#define LED_BUILTIN 10

として加えることで、コンパイルを通しました。

動作確認

動作しているところの動画

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.