日常の進捗

行為と記録とその習慣化

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

ステッピングモータの制御をユニポーラドライバ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);
    }
  }
}

リスペクトテクノ手芸部