工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

シリアルダイアログによって制御されるステッパーベースの回転スタンド

コンポーネントと消耗品

28BYJ48ステッピングモーター
× 1
X113647ステッピングモータードライバー
× 1
5mmシャフト用Pololuユニバーサルアルミニウム取り付けハブ
× 1
Arduino UNO
× 1
木製ベース15cmx 15cm
× 1
ラバーパッド
× 4

必要なツールとマシン

fretsaw
木材用6mmビットのドリル

このプロジェクトについて

全文はこちら:http://www.cesarebrizio.it/Arduino/Turntable.html

このプロジェクトは、ステッピングモーターをベースにした回転プラットフォームに関するものです。

ステッピングモデルは28BYJ48で、通常ステッピングと一緒に購入されるX113647ステッピングモータードライバー(ULN2003A ICに基づく)を介して制御されます。

プラットフォームは両方向に回転でき、シリアルモニターまたはTeraTermを介して制御されます。

次のコマンドが実装されています:

  • R =時計回りに連続的に回転します(つまり、数回転します)
  • r =360度回転します。時計回り
  • L =反時計回りに連続的に回転します(つまり、数回転します)
  • l =360度回転します。反時計回り
  • S =回転を停止

機械的な観点から、組み立ては非常に簡単です。ベーステーブルには、約15cmx15cmのサイズの合板または同様の材料の正方形だけが必要です。

テーブルの中心は対角線の交差点にあります。その位置に6mmの穴が正確に開けられます。

ステッパーハブは中心から外れています。ハブを6mmの穴に差し込むことで、ステッパーの輪郭を鉛筆で描くことができます。

次に、ステッパーの輪郭の周りにできるだけきつい丸い穴をフレットソーで切り、ステッパーの2つの固定穴がテーブルの木にしっかりと固定されるようにして、ステッパーをテーブルに固定するために使用できるようにします。テーブル。

必要なクリアランスを確保するには、高さ10mmのゴム製パッドが必要です(ステッパーはテーブルの下に少しくっつきます)。

5mmシャフト用のPololuユニバーサルアルミニウム取り付けハブのおかげで、回転プレートはステッパーに固定されます。

情報源:

小さなステッパーコントロール:http://arduino-info.wikispaces.com/SmallSteppers

<図>

<図>

実は4本のピンを使ってみましたが、下の回路図は接続を正確に再現しています。上の写真を見てください(Arduinoの赤いワイヤーが「ピンク」の代わりになります):

  #define motorPin1 4 //青-28BYJ-48ピン1#define motorPin2 5 //ピンク-28BYJ-48ピン2#define motorPin3 6 //黄色-28BYJ-48ピン3#define motorPin4 7 / /オレンジ-28BYJ-48ピン4 //赤-28BYJ-48ピン5(VCC)//青-28BYJ-48ピンGND #define STEPS_PER_TURN 2048 // 360度のステップ数;  
<図>

コード

  • Arduinoの完全なスケッチ
Arduinoの完全なスケッチ Arduino
コメント付きのソフトウェアの完全な説明
 / *シリアルダイアログによって制御されるステッパーベースの回転スタンド回路とコメント:http://www.cesarebrizio.it/Arduino/Turntable.htmlを参照してください回路はここに示されているとおりです:https:// www.tdegypt.com/wp-content/uploads/2017/08/stepper-motor-wiring.png唯一の例外は、スケッチがデジタル出力4-5-6-7を使用しているのに対し、2017年12月23日に作成されたフリッツ図は変更された--- --by Cesare Brizioこのサンプルコードはパブリックドメインにあります。このスケッチは、ステッピングモーターに基づいて回転プラットフォームを制御します。ステッピングモデルは28BYJ48で、通常ステッピングと一緒に購入されるX113647ステッピングモータードライバー(ULN2003A ICに基づく)を介して制御されます。プラットフォームは両方向に回転でき、SerialMonitorまたはTeraTermを介して制御されます。次のコマンドが実装されています。R=時計回りに連続的に回転(意味:数回転)r =360度回転。時計回りL =反時計回りに連続的に回転します(意味:数回転)l =360度回転します。反時計回りS =回転を停止する情報源:小さなステッパーコントロール:http://arduino-info.wikispaces.com/SmallSteppers * // * -----(必要なライブラリをインポートする)----- * /#include  / * -----(定数とピン番号を宣言します)----- * // *絶対に入れないでください; #defineステートメントの後!!!! * ///モーターピン#definemotorPin1 4 //青-28BYJ-48ピン1#define motorPin2 5 //ピンク-28BYJ-48ピン2#define motorPin3 6 //黄色-28BYJ-48ピン3#define motorPin4 7 / /オレンジ-28BYJ-48ピン4 //赤-28BYJ-48ピン5(VCC)//青-28BYJ-48ピンGND #define STEPS_PER_TURN 2048 // 360度のステップ数; intmotorSpeed =500; //高速(800以上)は28BYJで不安定な動作を引き起こす可能性があります-48int motorAccel =400; //上記のように:極端な加速を回避する方がよいint myPos =0; // 360度の開始点を定義するために使用されます。 rotationsint LeftTurnUp =0; //回転方向を決定するためのいくつかのフラグintRightTurnDown =0; //回転方向を決定するためのいくつかのフラグintContinuous =0; //以下で単一回転コマンドを区別するために使用されますintincomingByte =0; //着信シリアルデータ用/ * -----(ステッパー制御用オブジェクト)----- * ///ピン4、5、6、7で4線バイポーラとしてステッパーを設定します//注:シーケンス1-3-2-4は、28BYJ48AccelStepper stepper(4、motorPin1、motorPin3、motorPin2、motorPin4)の適切なシーケンスに必要です。 void setup(){Serial.begin(9600); stepper.setMinPulseWidth(20); // Arduinoからのパルスが速すぎてデコードできないようにするための推奨設定stepper.setMaxSpeed(motorSpeed); stepper.setSpeed(motorSpeed); stepper.setAcceleration(motorAccel); //次の2行は、「ステップゼロ」を現在の位置にリセットしますstepper.setCurrentPosition(stepper.currentPosition()); stepper.runToPosition(); Serial.println( "使用可能なコマンド:"); Serial.println( "R =時計回りの連続回転"); Serial.println( "r =360度;時計回りの回転"); Serial.println( "L =反時計回りの連続回転"); Serial.println( "l =360度;反時計回りの回転"); Serial.println( "S =回転停止");} void loop(){if(Serial.available()> 0){incomingByte =Serial.read(); {if(incomingByte =='R'){Serial.println( "received«R»-時計回りの連続回転をアクティブ化"); //次の2行では、任意の順序でコマンドを送信できます。//実行前に、クイックストップが実行されますstepper.stop(); //できるだけ早く停止します:新しいターゲットを設定しますstepper.runToPosition(); //クイックストップ後に停止しました//次のいくつかのフラグは、回転方向を決定しますLeftTurnUp =1; RightTurnDown =0;連続=1; //以下で単一回転コマンドを区別するために使用されますstepper.setCurrentPosition(stepper.currentPosition()); //ステップ0を「ここ」に設定stepper.setSpeed(motorSpeed); //以前のコマンドは速度をリセットしました} if(incomingByte =='L'){Serial.println( "received«L»-連続的な反時計回りの回転をアクティブにします"); //次の2行では、任意の順序でコマンドを送信できます。//実行前に、クイックストップが実行されますstepper.stop(); //できるだけ早く停止します:新しいターゲットを設定しますstepper.runToPosition(); //クイックストップ後に停止しました//次のいくつかのフラグは、回転方向を決定しますRightTurnDown =1; LeftTurnUp =0;連続=1; //以下で単一回転コマンドを区別するために使用されますstepper.setCurrentPosition(stepper.currentPosition()); //ステップ0を「ここ」に設定stepper.setSpeed(motorSpeed); //以前のコマンドは速度をリセットしました} if(incomingByte =='r'){Serial.println( "received«r»-時計回りに1回転をアクティブにする"); //次の2行では、任意の順序でコマンドを送信できます。//実行前に、クイックストップが実行されますstepper.stop(); //できるだけ早く停止します:新しいターゲットを設定しますstepper.runToPosition(); //クイックストップ後に停止しました//次のいくつかのフラグは、回転方向を決定しますLeftTurnUp =1; RightTurnDown =0;連続=0; //以下で単一回転コマンドを区別するために使用されますstepper.setCurrentPosition(stepper.currentPosition()); //ステップ0を「ここ」に設定stepper.setSpeed(motorSpeed); //前のコマンドで速度がリセットされました// 2047ステップ進む必要があるため、現在の位置を//回転の開始点として保存しますmyPos =stepper.currentPosition(); } if(incomingByte =='l'){Serial.println( "received«l»-反時計回りの単一回転をアクティブ化"); //次の2行では、任意の順序でコマンドを送信できます。//実行前に、クイックストップが実行されますstepper.stop(); //できるだけ早く停止します:新しいターゲットを設定しますstepper.runToPosition(); //クイックストップ後に停止しました//次のいくつかのフラグは、回転方向を決定しますRightTurnDown =1; LeftTurnUp =0;連続=0; //以下で単一回転コマンドを区別するために使用されますstepper.setCurrentPosition(stepper.currentPosition()); //ステップ0を「ここ」に設定stepper.setSpeed(motorSpeed); //以前のコマンドで速度がリセットされました// 2047ステップ後退する必要があるため、現在の位置を//回転の開始点として保存しますmyPos =stepper.currentPosition(); } if(incomingByte =='S'){Serial.println( "received«S»-回転の停止"); //回転方向を決定するフラグをリセットしますLeftTurnUp =0; RightTurnDown =0; stepper.stop(); //できるだけ早く停止します:新しいターゲットを設定しますstepper.runToPosition(); //クイックストップ後に停止}}} if(Continuous ==1)//連続回転{if(LeftTurnUp ==1)//左折{stepper.moveTo(10000); //多くのステップを移動します-機械的に必要です} if(RightTurnDown ==1)//右折{stepper.moveTo(-10000); //多くのステップを移動します-機械的に必要なもの以上} stepper.run(); } if(Continuous ==0)//連続回転{if(LeftTurnUp ==1)//左折{stepper.moveTo(myPos + STEPS_PER_TURN); // 1ターン=2048ステップ} if(RightTurnDown ==1)//右ターン{stepper.moveTo(myPos-STEPS_PER_TURN); // 1ターン=2048ステップ}} stepper.run();} 

回路図

フリッツィングで作られた完全な回路

製造プロセス

  1. ステッピングモーター
  2. 統合されたドライバーがステッピングモーターの設計を容易にします
  3. 温度制御ファン
  4. Raspouletteプロトタイプ
  5. Autonomous Nerf Sentry Turret
  6. バイポーラステッピングモーターライブラリ
  7. ラズベリーモーターシールドを使用したAndroid制御玩具
  8. スワイパー-自動TheTinder /バンブルスワイパー
  9. DIY Arduinoロボットアーム–ハンドジェスチャで制御
  10. リニアモーターとは
  11. サーボモータとは