日常の進捗

主に自分のための,行為とその習慣化の記録

ステッピングモータの制御

ステッピングモータの制御をユニポーラドライバMP4401でやった。これまでだとなんとなくEasyDriver使いがちなんだけど、とりあえず簡単に回せた。回転速度が遅い?うまく指定ステップ数で1回転しないのは電圧のせいなのか?

サーボモータもそうだけど、回転させるところまでは出来ても、物理的な力の伝達に関する固定や関連させて動きをつなげていくようなことはまだやってない。もう少し機能的な側面を引き出すようなことをやったほうが良い。あとインタラクション。

int pin[4] = {10, 11, 12, 13};

void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(pin[i], OUTPUT);
  }
  Serial.begin(9600);
}

void loop() {
  forward(6); // 1回正転
  delay(1000);
  reverse(6); // 1回逆転
  Serial.println("loop");
  delay(1000);
}

void forward(int rot) {
  for (int i = 0; i < rot * 120; i++) {
    for (int i = 0; i < 4; i++) {
      int prev = i - 1;
      int next = i + 1;
      if (prev < 0) prev = 3;
      if (next > 3) next = 0;
      digitalWrite(pin[prev], LOW);
      digitalWrite(pin[i], HIGH);
      digitalWrite(pin[next], HIGH);
      delay(2);
    }
  }
}
void reverse(int rot) {
  for (int i = 0; i < rot * 120; i++) {
    for (int i = 3; i >= 0; i--) {
      int prev = i + 1;
      int next = i - 1;
      if (prev > 3) prev = 0;
      if (next < 0) next = 3;
      digitalWrite(pin[prev], LOW);
      digitalWrite(pin[i], HIGH);
      digitalWrite(pin[next], HIGH);
      delay(2);
    }
  }
}

リスペクトテクノ手芸部