こんにちは。星野です。

スペースプローブコンテストの準備が立て込み、更新するのが大分遅くなってしまいました。

コンテストも無事終わり落ち着いたので、ブログの更新頑張ります!

今日は、前回制作した駆動部分の動作確認をしていこうと思います。

用意するもの

①加工したポテトチップスクリスプの箱

②加工したポテトチップスクリスプのふた

③組み立てたサーボ用 2軸 カメラマウント

④サーボホーン(I字形のもの)

⑤Atom Motionキット

⑥精密ドライバー

・カメラマウント付属の8mmのねじ x 4

・カメラマウント付属のナット x 4

・パソコン

開発環境構築

プログラムを書いたり、マイコンに書き込んだりするための開発環境を用意する必要があるため、パソコンに環境を構築します。

開発環境構築について、こちらのサイトが分かりやすく参考になりました。

https://laboratory.kazuuu.net/create-an-environment-for-atom-lite/

サーボモーター調整

動作確認をする前に、3つのサーボホーンの位置調整を行います。

下図のように可動範囲が180度のサーボモーターを今回の機体では使用します。

サーボモーター①の調整

0°~180°の範囲で動かせるように調整していきます。

①サーボモーターを一旦外し、サーボモーターとATOM Motionキットを接続します。

サーボモーターとATOM Motionキットの接続方法は、

下図のようにサーボモータの茶色、赤、オレンジの線をそれぞれATOM MotionキットのG、V、S1ピンに接続します。

※コネクタを逆向きに接続すると壊れる可能性があるため間違わないように接続してください。

②接続後、下記のプログラムを書き込み、実行します。

プログラムで使用するライブラリは

https://github.com/m5stack/M5Atom/tree/master/examples/ATOM_BASE/ATOM_Motion

こちらからダウンロードし、下記のプログラムと同じフォルダに「AtomMotion.h」「AtomMotion.cpp」ファイルを置きます。

サーボホーン位置調整用プログラム
#include <M5Atom.h>
#include "AtomMotion.h"

AtomMotion Atom;

const int ch1 = 1;  //Atom motion キットのS1に接続したサーボモーター
const int ch2 = 2;  //Atom motion キットのS2に接続したサーボモーター
const int ch3 = 3;  //Atom motion キットのS3に接続したサーボモーター

void setup(){ 
  M5.begin(true, false, true);
  Atom.Init();
  
  Atom.SetServoAngle(ch1, 90);  //Atom motion キットのS1に接続したサーボモーターを90度の位置にする
  Atom.SetServoAngle(ch2, 90);  //Atom motion キットのS2に接続したサーボモーターを90度の位置にする
  Atom.SetServoAngle(ch3, 90);  //Atom motion キットのS3に接続したサーボモーターを90度の位置にする
}

void loop() {
  
}

③実行するとサーボモーターが90°の位置まで回転するので、その状態でサーボホーンを固定します。

固定する時はサーボモーターとサーボホーンが90°になるように固定します。

サーボモーター②の調整

カメラマウントのもう一つのサーボモーターも0°~180°の範囲で動かせるように調整します。

①サーボモーターを一旦外し、サーボモーターとATOM Motionキットを接続します。

サーボモーターとATOM Motionキットの接続方法は、

下図のようにサーボモータの茶色、赤、オレンジの線をそれぞれATOM MotionキットのG、V、S2ピンに接続します。

②プログラムを実行するとサーボモーターが90°の位置まで回転するので、その状態でサーボホーンを固定します。

③カメラマウントの位置調整が終わったら、8mmのねじとナットを使用し、ポテトチップスの箱に固定します。

サーボモーター③の調整

最後にポテトチップスのふたに固定したサーボモーターの調整をします。

①サーボホーンの位置を気にせず固定し、サーボモーターとATOM Motionキットを接続します。

サーボモーターとATOM Motionキットの接続方法は、

下図のようにサーボモータの茶色、赤、オレンジの線をそれぞれATOM MotionキットのG、V、S3ピンに接続します。

プログラムを実行するとサーボモーターが90°の位置まで回転します。

②その後、I字型のサーボホーンの真ん中が機体正面に向くようにふたを付けます。

これでサーボモーターの位置調整が終わりました。

動作確認

次に駆動部分全体の動作確認を行います。

以下のプログラムを書き込み、実行してみましょう。

動作確認用プログラム
#include <M5Atom.h>
#include "AtomMotion.h"

AtomMotion Atom;

int ch1 = 1;  //Atom motion キットのS1に接続したサーボモーター
int ch2 = 2;  //Atom motion キットのS2に接続したサーボモーター
int ch3 = 3;  //Atom motion キットのS3に接続したサーボモーター

void setup(){ 
  M5.begin(true, false, true);
  Atom.Init();
  
  Atom.SetServoAngle(ch1, 90);
  Atom.SetServoAngle(ch2, 90);
  Atom.SetServoAngle(ch3, 90);

  //Atom motion キットのS1に接続したサーボモーターを動かす
  Atom.SetServoAngle(ch1, 0);
  delay(1000);
  Atom.SetServoAngle(ch1, 90);
  delay(1000);
  Atom.SetServoAngle(ch1, 180);
  delay(1000);
  Atom.SetServoAngle(ch1, 90);
  delay(1000);
  
  //Atom motion キットのS2に接続したサーボモーターを動かす
  Atom.SetServoAngle(ch2, 0);
  delay(1000);
  Atom.SetServoAngle(ch2, 90);
  delay(1000);
  Atom.SetServoAngle(ch2, 180);
  delay(1000);
  Atom.SetServoAngle(ch2, 90);
  delay(1000);

  //Atom motion キットのS3に接続したサーボモーターを動かす
  Atom.SetServoAngle(ch3, 0);
  delay(1000);
  Atom.SetServoAngle(ch3, 90);
  delay(1000);
  Atom.SetServoAngle(ch3, 180);
  delay(1000);
  Atom.SetServoAngle(ch3, 90);
  delay(1000);
}

void loop() {
  
}

S1,S2,S3に接続したサーボがそれぞれ、0°→90°→180°→90° のように動いたら動作確認は終了です。

動作している様子

https://youtube.com/shorts/9dkeDgN84EQ

おわりに

今日は駆動部分の調整と動作確認を行いました。

次回はIMUユニットの動作確認を行う予定です。

次回の更新予定日10/3です。お楽しみに!