arduino hello world!

ふとしたきっかけで、AliExpress を見ていたらなんとarduino がめちゃ安いじゃないですか。いわゆる、互換ボードなんです。UDBシリアル変換のチップが違うようですが、nanoがこんなに安いとは。

なんと、衝撃価格 $3 ですよ。120円として、360円。もうね、即効2個ゲット。前から触ってみたかったんですが、値段がそこそこして、思い切れず。

あれから、はや5年以上。人生は短いのでやりたいときにやっとけですね。

GW-20150315-031558

UL82z2YXoNbXXagOFbX2

で、忘れたころに来てました。

IMG_20150315_000426

なかなか袋がいかしてますね。

 

IMG_20150315_000541

1つを開封。ちっさいですね~。ブレッドボードに差し込んで、ピンを半田付け。

で、シリアルドライバーのCH340を探して入れて認識。

CH341 の以下のを入れました。

CH341SER_MAC_ZIP

認識は、/dev/tty.wchusbserial1440 って認識されてるみたいです。

 

配線して、コードを書いて、

led 1

で、ダブルブリンク(チカ・・・チカ・チカ)っていう感じのスケッチをアップロード。コンパイルして、USB経由でアップロードしてくれるみたいですね。

よくできてますね。このIDE。

 

IMG_20150315_014716

電源駆動でも、チカチカしてくれました。昔作ったMinty Boostで、昇圧回路で、久しぶりにジャンク箱から出してみました。ICは、LT1302 ってのを使っています。もう、4年も前になるんですね。

LEDはどっかのジャンクから、はずしたやつです。

 

いやぁー、LEDが光るだけでこんなにうれしいとは!

 

うれしかったので、久しぶりにブログを更新しました。2個ゲットしたのは、息子とやってみようと思ったのでね。興味示してくれますかね?6年生なんですが、FPSのゲームばっかりやってて、なんとか更正させたいw。

 

ちなみに、直近の目標は、これです。フロッピーのステッピングモーターを使ったプロッターなんですが、面白いですよね。きっと、arduinoでもできるやず。どうやって動かしてるんでしょうね。ぶっ壊れそうな感じが、ジャンカーの心をゆさぶります!

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

Eagle for osxでarduino nano

そういえば、最近のEagleを触っていなかったし、以前はWindows版だったので、osx版のを触ってみようと。

ツール・ラボさんのここなどを参考に入れてみました。Eagleの特集がためになります。

スクリーンショット_2015_03_20_1_27

 

何か身近な回路図を見たかったので、arduino nanoのオフィシャルサイトに行ってEagleのファイルをダウンロード。

 

Arduino_-_ArduinoBoardNano

 

解凍して、どこでもいいんですが、examplesの中に入れました。

スクリーンショット_2015_03_20_1_25

 

こんな感じで出てくるので、Openしてやれば見放題。

2015_03_20_1_20

 

Hello World で使った13 Pin や12Pin なんかがどんな取り回しでパーツにツナガッているとか、一目瞭然。これ青い部分は裏面につながっているっていうことですかね?

1_Board_-__Applications_EAGLE-7_2_0_projects_examples_ArduinoNano30Eagle_Arduino_Nano2_brd_-_EAGLE_7_2_0_Light

 

スクリーンショット_2015_03_20_1_22

Aliexpressから購入したのは互換品なので、FT232とかのUSBシリアルじゃないですが、オフィシャルの回路図を見るのもなかなか楽しいですね。

最近は、PCBのプリントサービスも安いみたいだし、いつかオリジナルの何かを作ってみたいですね。でも、まぁ、互換品とはいえ3ドルで買えるとは、原価はいくらなんですかね。

 

そうそう、ステッピングモーター回したくて、なんかほどよいのないかと探していたら、Easy Driver v4.4 ってのがあったのでぽちったよ。ステッピングモーターのドライバーだけども、数百円なんでパーツ買って、配線するか迷ったんだけども、とりあえずこっちから試してみることに。回路図もありますし、情報もたくさんあるので。

123

これってば、これの互換品なのかしらね。2,3週間後に届いたら触ってみます。フロッピーかCD-ROMのステッピングモーターを動かしてみようかと。いずれは、プロッターかCNCか、3Dプリンターの世界へ足を突っ込んでみたいと思っていますが、その第一歩。動くものっていうのは楽しそうだしね。

http://www.schmalzhaus.com/EasyDriver/

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

 

オープンソースハードウェアなので、情報はたくさんあるけども、オフィシャルサイトと、とりあえず以下あたりから読み始めるとしますか。

skylinkさん

電子工作専科さん

続々と素材をゲット

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

この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 を半田付けしますかね。

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;                        // ステップカウンターリセット
  }
}

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

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]

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つ目もばらしますかね。当初の目的、プロッターは本当にできるでしょうかね。