ArduinoでDCモーター/サーボモーターを動かしてみよう!

Arduinoを始めてみよう

こんにちは。

AI coordinatorの清水秀樹です。

AI coordinatorで作成する独自ロボットの電子基板として、ラズパイだけでなくArduinoも積極的に活用していきたいということで、今回は備忘録的にArduinoを使ったDCモーターやサーボモーターを動かす方法をArduino IDEの準備方法も含めてソースコード付きで紹介したいと思います。

 

開発環境

  • mac OSX

 

Arduino IDEのダンロード

公式サイトから簡単にダンロードできます。

上の赤枠をクリックしてダウンロードしましょう。

だいたい150Mサイズぐらいです。

 

ダンロードが完了したら、解凍して起動します。

起動中の画面が表示され、しばらくすると、

Arduino IDEが起動し、プログラムの編集画面が表示されます。

次はArduino IDEの初期設定を行なっていきます。

 

Arduino IDEの初期設定

使用するArduinoボードの選択から始めます。

お使いになるボードを指定します。

通常は「Arduino/Genuino Uno」でよいかと思います。

 

ボードを選択したら、いよいよArduinoを動かしてい行きたいと思います。

mac PCとArduinoをUSB接続しましょう。

接続すると、何やらチカチカ光ります。

無事起動しているようです。(多分)

 

PCとArduinoを接続したら、次はシリアルポートの選択になります。

「ツール」メニューから以下画像のように「シリアルポート」を選択します。

 

以上でセットアップは終了です。

 

ラズパイの初期設定はOSインストール作業があるため、結構大変だったりもしますが、ArduinoはOSをインストールする訳ではないのであっという間に準備が完了します。

電子工作を勉強するならラズパイよりArduinoの方が取っ掛かりやすいかもしれません。

 

Arudino IDEでプログラミング

それでは早速、王道のLチカにチャレンジしていきたいと思います。

プログラムソースは以下の通り、非常に簡単なものです。

int LED =13;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED,HIGH);

}

ソケット13を使用してLチカをさせるプログラムです。

起動方法は以下画面の左上にあるレ点でソースチェック(コンパイル)を行なった後、そのすぐ右にある矢印をクリックしすればArduino側でLチカが始まります。

LEDライトが点灯すれば成功です。

このようにArduinoはIDEを経由して非常に簡単に扱うことができるようです。

 

ただ、Lチカだけでは面白くないため、実際にキャタピラの動力部であるDCモーターも動かしていきたいと思います。

Arduino IDEのソースは以下の通りです。

int motor1 =13;
int motor2 =10;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor1,OUTPUT);
  pinMode(motor2,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(motor1,HIGH);
  digitalWrite(motor2,LOW);

  delay(2000);

  digitalWrite(motor1,LOW);
  digitalWrite(motor2,HIGH);

  delay(2000);


}

2CH小型DCモータードライバー(PU-2709) を使って試して見ました。

この製品は説明書もしっかり記載してあって、素人の筆者でも簡単に動かすことができました。

 

続いて挑戦したのが、ロボットアームのコントロールに使用しようと考えているサーボモーターです。

こちらも上記画像のように簡単な接続で動かすことができました。

以下、ソースコードです。

#include <Servo.h>

int SERVO_SOCKET = 9;

Servo servo;

void setup() {
    // put your setup code here, to run once:
    servo.attach( SERVO_SOCKET );
}

void loop() {
    // put your main code here, to run repeatedly:
    servo.write( 0 );
    delay( 2000 );
    servo.write( 90 );
    delay( 2000 );
    servo.write( 180 );
    delay( 2000 );
    servo.write( 90 );
    delay( 2000 );
}

 

とりあえず、ここまで動かすことができれば後はどう応用するかですね。

ということで、今日はこれぐらいにしておきたいと思います。

 

まとめ

今回はArduinoでDCモーターとサーボモーターを試して見ました。

ラズパイよりは簡単に実装できたような気がします。

今後もArduinoをAI coordinatorで作成するロボット基盤として積極的に活用していきたいと思います。

 

それではまた!

あなたにオススメの記事

コメント

  1. アバター
    • 名無し
    • 2020年 1月 26日

    とても参考になりました。

  1. この記事へのトラックバックはありません。

PAGE TOP