SSブログ

ATmarquinoでMhysicalna(身近な)コンピューティング 初めてのドキドキモーターコントロール [ATmarquino Arduino]

Img_1242.jpg
Img_1241.jpg
初めて?、いやそうでもないなぁ。考えてみれば小学生の頃は田宮のギアボックスとバルサ材を使って自分の思う通りにリモコンの車とか作っていたなぁ。中学生の時は電動のラジコンカーを組み立てて、わざわざ電車で秋葉原とか行ってコースで走らせたり、レースに出てみたり。

あの頃って現在みたくFET使ってPWM制御なんて無かったから、基本的にサーボにスライド抵抗が連動していて、それでスピードをコントロールしていたんだけれど、やっぱり稼働時間が短かったんだよね。7.2Vのニッカド電池パック一本で20分位しか走れなくて、中学生だからお金無いので予備の電池パックとか持てなくて、一回走行したら終了とか、、、。

友人はスライド抵抗の代わりにでっかいリレーを入れたんだけれど、当然コントロールがON/OFFしか無くって、スタートからマブチの540モーターの巨大トルクをドッカーンと効かせて、でもそんなピーキーな特性では曲がれないってば。
ははは、何もかもが懐かしい。

久しぶりにモーターなんて触るから、検索して以下のサイトを参考にさせていただきました。有難うございます。
http://www.picfun.com/motorframe.html:ここ後閑さんのサイトですね。
http://www.geocities.jp/mimiin/tips/fet/fet.html:先に見つけたのはこちら。

FETは比較的近所のサトー電気さんで全部揃いました。


Arduinoの標準のライブラリであるアナログ出力は簡単でいいですね。
スケッチは以下の様になっています。シリアルからFとかRとかSとか受けて方向と速度を制御しています。
/****************************************************************************/
/* モーターコントロール第一段                                               */
/****************************************************************************/

#define  FORWARD  10
#define  REVERSE  11

/****************************************************************************/
/* 変数定義                                                                 */
/****************************************************************************/
static const int speed[] =
{
  0,85,95,105,125,145,165,190,215,240,255,
};

/****************************************************************************/
/* プロトタイプ宣言                                                         */
/****************************************************************************/

/****************************************************************************/
/* 初期化処理                                                               */
/****************************************************************************/
void setup()  // run once, when the sketch starts
{
  analogWrite( FORWARD, 0 );  //一度停止させる
  analogWrite( REVERSE, 0 );  //一度停止させる
  Serial.begin( 38400 );  //ボーレートは38400bpsとする
}

/****************************************************************************/
/* main?処理                                                                */
/****************************************************************************/
void loop()
{
  int c;
  static int fval,rval;

  if( Serial.available() > 0 )
  {
    c = Serial.read();

    if( c == 'f' || c == 'F' )
    {
      if( rval > 0 )
      {
        rval = 0;
        analogWrite( FORWARD, 0 );  //一度停止させる
        analogWrite( REVERSE, 0 );  //一度停止させる
        delay( 5 );
      }

      if( c == 'f' )
      {
        if( ++fval >= sizeof(speed) / sizeof(speed[0]) ) fval = (sizeof(speed) / sizeof(speed[0])) - 1;
      }
      else
      {
        if( --fval < 0 ) fval = 0;
      }

      analogWrite( FORWARD, speed[ fval ] );  //前進
      Serial.print( 'F',BYTE );
      Serial.print( speed[ fval ],DEC );
      Serial.print( '\n',BYTE );
    }
    else if( c == 'r' || c == 'R' )
    {
      if( fval > 0 )
      {
        fval = 0;
        analogWrite( FORWARD, 0 );  //一度停止させる
        analogWrite( REVERSE, 0 );  //一度停止させる
        delay( 5 );
      }

      if( c == 'r' )
      {
        if( ++rval >= sizeof(speed) / sizeof(speed[0]) ) rval = (sizeof(speed) / sizeof(speed[0])) - 1;
      }
      else
      {
        if( --rval < 0 ) rval = 0;
      }

      analogWrite( REVERSE, speed[ rval ] );  //後退
      Serial.print( 'R',BYTE );
      Serial.print( speed[ rval ],DEC );
      Serial.print( '\n',BYTE );
    }
    else if( c == 's' )
    {
      analogWrite( FORWARD, 0 );  //一度停止させる
      analogWrite( REVERSE, 0 );  //一度停止させる
      fval = rval = 0;
      Serial.print( "STOP\n" );
    }
    else ;
  }
}

Arduinoをはじめよう

Arduinoをはじめよう

  • 作者: Massimo Banzi
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/03/27
  • メディア: 単行本(ソフトカバー)



Make: Technology on Your Time Volume 06

Make: Technology on Your Time Volume 06

  • 作者:
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/03/27
  • メディア: 大型本



超低コスト インターネット・ガジェット設計―USB・μIP・microSDプロトコールスタックの活用

超低コスト インターネット・ガジェット設計―USB・μIP・microSDプロトコールスタックの活用

  • 作者: 武藤 佳恭
  • 出版社/メーカー: オーム社
  • 発売日: 2008/05
  • メディア: 単行本



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。