0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rover製作10 Ardupirotでバンパースイッチ、外付けステータスLEDの設定

Last updated at Posted at 2023-08-10

環境

この記事は以下の環境で動いています。

項目
CPU Core i5-8250U
OS Windows10
MissionPlanner v1.3.80
項目
Board Pixhawk(v2.4.8)
Ardupilot Rover V4.2.3

概要

ardupilotには外部スイッチ、外部LEDを追加で接続可能です。
ここでは押すとDisarmを行うバンパースイッチと、外付けステータスLEDを増設します。

10_aux.jpg

予備知識

IOポート

Pixhawkのサーボレール(側面のサーボコネクタが多数並んでいるコネクタ)の一部のポートをGPIOとして利用することが可能です。Main1~8はPWM専用で、AUX1~6のみがGPIOとして利用できます。
AUX2~6はすでに駆動軸のエンコーダーように使っているために、AUX1に外付けステータスLED、AUX2にバンパースイッチを接続します。

外付けスイッチ

スイッチを押すとDisarmするようにします。ロボットが物に当たると移動が止まるバンパーセンサーに使えます。
Ardupilotにはbutton機能という、GPIOに接続されたボタンが押されたときに特定のアクションを起こすことが出来ます。実行できるアクションはardupilotのドキュメントに一覧があります。
今回はバンパーに組み込み予定のマイクロスイッチを使い、アクションでDisarmをします。これで押すとモーターを停止する(=disarm)するボタンを実現できます。

外付けLED

pixhawkの表面にはフルカラーLEDが搭載されていて、モードなどによって色が変わります。筐体内にpixhawkを入れると色が見えなくなるので外部LEDを接続します。
今回はLEDはNeopixelの「WS2812B」を使います。amazonや秋月などでモジュールが良く売っています。

WS2812Bの入力電圧(Vcc)は3.5~5.3Vで、信号線のHi判定0.7Vccからになります。Pixhawkは5V給電ですが、ロジックは3.3Vです。このためPixhawkのHi出力3.3[V] < 3.5(=5.0x0.7)[V]となり、WS2812Bで正常にHiを認識できません
公式サイトではダイオードをかませて5Vの電源電圧を下げることが推奨されていますが、これだとノイズに弱く不具合が起る場合があります。
led_convert1.png

以下のようにレベル変換ICを挟むほうがより確実です。
led_convert2.png

モジュールを2つ以上カスケード接続することもできます。最大30個のLEDまで接続できます(8個のLEDが入っているモジュール基板なら3ボードまで接続できます)。

事前条件

以下の機器が必要です。

  • WindowsPC
    • MissionPlanner導入済み
    • 以下のPixhawkと接続可能なこと
  • Pixhawk
    • 電源供給可能なこと
    • MissionPlanenrと接続可能なこと
  • 分配基板用部材
  • LEDモジュール(WS2812Bのアレイ基板)
  • マイクロスイッチ(D2FW-G)

手順

マイクロスイッチの接続

  • マイクロスイッチのa接点(作動するとクローズになる)とPixahwkのGNDとAUX2のシグナルを分配基板経由で接続する。

bumper_connection.png

スイッチのパラメーターの設定

  • MissionPlannerにてArdupilotに接続して、以下のパラメーターを設定する。
パラメーター名 説明
SERVO10_FUNCTION -1 AUX2をGPIOとして用いる
BTN_ENABLE 1 ボタン機能を有効にする
BTN_FUNC1 81 ボタンを押した時の機能はDisarm
BTN_OPTIONS1 2 bit1:InvertInputのみチェック(Hi->Loで機能)
BTN_PIN1 51 使用するピンはAUX2

Disarm動作の確認

  • RCプロポ等を使ってArdupilotをARM状態にする。
  • バンパースイッチを押して、Disarm状態に遷移することを確認する。

外付けLEDの接続

  • LEDモジュールとPixHawkの電源、AUX1端子を以下のように分配基板経由で接続する。

LED_modue_conection.jpg

外付けLEDの設定

  • MissionPlannerにてArdupilotに接続して、以下のパラメーターを設定する。
パラメーター名 説明
SERVO9_FUNCTION 120 AUX1(=Servo9)の設定はNeoPixel1
NTF_LED_TYPES 258 Internal ToshibaLED(2) + NeoPixel(256)
NTF_LED_LEN 24 NeoPixelで接続しているLEDの数
  • Pixhawkに電源を再投入する。

外付けLEDの確認

  • 再起動後に、Pixhawk本体のLEDと同じ色で光ることを確認する

参考

ardupilot buttons
ardupilot external LED
ardupilot NeoPixel LED

目次ページへのリンク

ROS講座の目次へのリンク
ROS2講座の目次へのリンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?