FDD4

現場合わせで、XYテーブルを作成しましたyo。

IMG_0179

IMG_0180

フラットな面は、5インチベイの目隠し部分が手元にあったのでそれを流用しました。接着は、グルーガンです。それなりの強度もあるようだし、とりあえずこれでいいか的な感じですが。もともとFDDのピックアップ部分なので、乗せるにはそれなりの工夫が必要ですね。

 

次は、Z軸のペンを移動させる縦軸をどうするかです。ここは、ペンを交換したりしたいので、なにか一工夫が必要です。3Dプリンターがあれば、ジョイントの部分を作るのですが、残念ながら無いのでジョイント部分をどうするかをあれこれ思案中。

 

また重要なポイントで、「ボロさをどう演出するか?」です。

 

動画も作りましたので、よかったらどうぞ。

[youtube https://www.youtube.com/watch?v=lAH7oG_1HfU]

だんだんと、プロッターに近づきつつありますね。

 

コードは、こんな感じです。AccelStepper のライブラリを使っています。関数はまだ全部わかっていませんが、おいおい調べてみます。

/*
 Junk FDD Stepper Motor Control Sample.
 xy table moving sample.
 AccelStepper ver 1.47
 JunkHack 2015.04.26
 */

#include <AccelStepper.h>

AccelStepper y_stepper(1, 3, 2); // 1 > two wires. 3 > STEP pin , 2 > DIR pin.
AccelStepper x_stepper(1, 5, 4); // 1 > two wires. 5 > STEP pin , 4 > DIR pin.
int halfRev = 700; // 片道移動幅 ( Step )
int halfdelay = 10;

void setup() {
    y_stepper.setMaxSpeed(3000); // 最大許容速度
    y_stepper.setAcceleration(6000); // 加速
    x_stepper.setMaxSpeed(6000);
    x_stepper.setAcceleration(12000);
}
void loop() {
    if (y_stepper.distanceToGo() == 0) {
        delay(halfdelay);
        halfRev = -halfRev;
        y_stepper.moveTo(halfRev);
    }
    if (x_stepper.distanceToGo() == 0) {
        delay(halfdelay);
        halfRev = -halfRev;
        x_stepper.moveTo(halfRev);
    }
    y_stepper.run();
    x_stepper.run();
}

FDD3

3つめのFDDもばらして、筐体の余分な部分をカットしました。

IMG_0166

IMG_0167

IMG_0171

IMG_0172

 

NEC製のFDDの鉄板が厚くて苦労しましたが、なんとか3つを切断。カットした歯は、ダイソーで売っているダイヤモンドカッターです。これしか手元になかったんですが、なかなか切れますね。

[youtube https://www.youtube.com/watch?v=5yeAIhoyprQ]

あとは、XYテーブルを作って、Z軸にペンを持たせてやる感じです。

 

XYテーブルは、稼動部分の上に乗せるんですが、フラットな面を作らないとなので、どうしようかなと考え中です。

現場あわせ的な感じで、やってみます。次回に報告!

FDD2

2つめのFDDをばらしました。

[youtube https://www.youtube.com/watch?v=_BkwbEgs42Y]

今度のは、前のよりばらしにくく、ステップモーターは小さい感じ。

移動幅などは同じで、裏にはやはりセンサーみたいなのがありました。Delayは最大で43くらいじゃないと脱調する感じ。

 

FDDも音階を出せるようで、こんなこともがんばればできるようです。

[youtube https://www.youtube.com/watch?v=c52JQHVVqFM]

ある意味すごいよね。裏に見えるのは、arduino でしょうかね。

 

世界は広いようで、こんなアプローチも。最初の見せ方が期待させます。

[youtube https://www.youtube.com/watch?v=dmoDLyiQYKw]

ということで、3つ目もばらしますかね。当初の目的、プロッターは本当にできるでしょうかね。

タッチセンサー代わりにしてみる

FDD をよく見てみたら、センサーっぽいのを発見。基盤をみるとなにやら配線があって。使えるかもと試してみました。

IMG_0148

裏面には基盤があって、なにやら3本線が出てます。

IMG_0149

ブルーをGNDに、黄色と赤のアナログ値を読んでセンサー代わりに使ってみます。

 

コードはこんなのをテストで書きました。

/*
 Junk FDD Stepper Motor Control Sample.
 Analog Censer?
 JunkHack 2015.04.19
 */
 
#include <Stepper.h>
int steps;
int movement = 1400;
int Delay = 200;
int dirPin = 2;
int stepPin = 3;
int a0; // sencer ?
int a1; // sencer ?

void setup() {                
  pinMode(dirPin, OUTPUT);
  pinMode(stepPin, OUTPUT);
  digitalWrite(dirPin, LOW);
  digitalWrite(stepPin, LOW);
  steps = 1;
//  Serial.begin(9600);      // debug用
  a0 = analogRead(0);
  a1 = analogRead(1);
}

void loop() {
  if ( a0 > 200 ){ // センサーっぽいのを読み取り
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(Delay);
      digitalWrite(stepPin, LOW); 
      delayMicroseconds(Delay);
      steps += 1;
      
//      Serial.println("A0");
//      Serial.println(a0);

  }

  if ( steps < movement ) {        // 移動量を超えてなければ
      digitalWrite(dirPin, HIGH);
      a0 = analogRead(0);
      a1 = analogRead(1);
  } 
  if ( steps > movement  ) {    // 移動量を超えたら
      digitalWrite(dirPin, LOW);
      a0 = analogRead(0);
      a1 = analogRead(1);
  }

  if ( steps > movement * 2 ) {    // 往復したら
     steps = 1;
  }
}

 

すると、筐体に触るとスイッチ代わりに動作!

 

動画を載せたほうがわかりやすいんですが、普段編集しないので扱いが、、、、勉強しておきます。で、動画つくりました。

こんな感じで、タッチセンサーっぽくなっています。

[youtube https://www.youtube.com/watch?v=CoXw4ywPP0g]

 

このセンサーはなんていうやつなんでしょうかね。ぐぐっても出てこないので、なんという名称のセンサーなのかは不明ですが、スイッチらしきなのは確かで、原理的に静電容量とか見ているんでしょうかね? 手を接近させると、値があがります。タッチセンサーのような原理なんですかね?どなたかご存知の方、通りがかりましたらコメントをよろしくです。

 

とにかく、このモーターと稼動部分はプロッターのどこかに使えそうです。あと2つFDDをばらして3軸作れば、FDDプロッターができそうですね。

 

そう、これをarduino で作りたいんですよ。

[youtube https://www.youtube.com/watch?v=Z0vQIaUZGu4]

EasyDriver

1個160円くらいのEasyDriverを3つゲットして、まずは1つを半田付け。

IMG_0138

ブレッドボードも新調しました! 前使ってたのが、ピンがめちゃくちゃ入りにくくて。今度のは、いいですね。挿しやすくてイライラしない。で、こんな感じに差し込んで半田付け。

IMGP0825

で、ステッピングモーターを用意してなかったので、フロッピーディスクか、CD-ROMを分解してステッピングモーターを取り出すことに。

 

Junk物色中。配線中、、、、完了。接続。、、、、うごきません。!!!

 

寝る!

 

・・・ 起床後、ふと見るとEasyDriver 側のLEDがついていないのを発見。電源が入っていませんでした。

写真_1

5Vをモータードライブ用に入れていたんですが、仕様的に、6~30Vとか書いてあるので、手持ちに8Vくらいのしかなかったので、それを印加。

サンプルは、ネットで見たのをコピペ。PINのアサインは、PIN2 に Direction (正逆の回転方向)と、PIN3 にStep パルスを。

写真_2

ほほー、な感じです。他にもPinがあるけども、深追いせず。Sleep とか PFD とか何に使うんでしょうかね。写真 3

 

/*
 Junk FDD Stepper Motor Control Sample.
 JunkHack 2015.04.19
 */
 
#include <Stepper.h>
int steps;                // ステップカウンター
int movement = 1400;            // 片道移動量 ( step 数)
int Delay = 200;            // 遅延 ms
int dirPin = 2;                // 回転方向出力 Pin 
int stepPin = 3;            // ステップパルス Pin

void setup() {                
  pinMode(dirPin, OUTPUT);        // 回転方向の出力PINを指定
  pinMode(stepPin, OUTPUT);        // ステップ出力PINを指定
  digitalWrite(dirPin, LOW);        // PIN出力をLOWで初期化
  digitalWrite(stepPin, LOW);        // PIN出力をLOWで初期化
  steps = 1;                // ステップカウンターを初期化
}

void loop() {
  if ( steps < movement ) {        // 移動量を超えてなければ
      digitalWrite(dirPin, HIGH);    // 回転方向出力PIN は HIGH (5V)
  } 
  if ( steps > movement  ) {    // 移動量を超えたら
      digitalWrite(dirPin, LOW);    //  回転方向出力PIN を LOW (0V)
  }
  digitalWrite(stepPin, HIGH);        // ステップ出力 PIN を HIGH (5V)
  delayMicroseconds(Delay);        // 遅延
  digitalWrite(stepPin, LOW);        // ステップ出力 PIN を LOW (0V)
  delayMicroseconds(Delay);        // 遅延
  steps += 1;                // ステップカウンターを +1加算
  if ( steps > movement * 2 ) {    // 往復したら
     steps = 1;                        // ステップカウンターリセット
  }
}

続々と素材をゲット

夜な夜な面白いパーツを探してちょこちょこと購入していました。

この1ヶ月くらいで、ゲットしたパーツを紹介します。購入先は面白いものが無限に広がる、Aliexpress です。

 

EasyDriver Shield stepping Stepper Motor Driver V4.4

EasyDriver_v44

※schmalzhaus.com より

 スクリーンショット 2015-04-18 15.01.18

実際に届いた物は、こちら。袋から出すといじりたくなるので、お仕事がひと段落するまで、封印してました。意外と速く届いた感じです。

IMG_0119

IMG_0118

 

そのほか、ESP8266 ESP-12 っていうWiFi の開発ボードみたいなやつ。これで、IoTデバイス作ろうかなと。

image

IMG_0126

そのブレッドボードにピッチを買えるやつや、本体を別に5個づつゲット。

image

image

IMG_0130

IMG_0129

 

あと、あまりの安さに手を出したPro Mini 168 Mini ATMEGA168 5V/16MHz をゲット。10個入りで一個180円くらいですかね。

image

IMG_0131

意外と、ピンと本体が仕切りが別になっている梱包で印象よかったです。

IMG_0133

IMG_0135

 

猫にコンバンワさんのサイトで

CP2102搭載 USB-UART変換モジュールを試してみる

紹介されていたUSBシリアルコンバーターなどもゲット。微妙にパッケージが違うのは届いてからわかりました。使えると嬉しいんですが。どうでしょうかね。5Vと3.3Vの両方に対応しているのかどうか?

CP2102 Male USB 2.0 to TTL UART Module Serial Converter

image

IMG_0136

IMG_0137

他にもあれこれ、小物をゲットしましたが、またおいおい。

とりあえず、EasyDriver を半田付けしますかね。