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

Arduino Biped(Baby Dino)

コンポーネントと消耗品

>
Arduino Mega 2560
× 1
9Vバッテリー(汎用)
× 1
SparkFun超音波センサー-HC-SR04
× 1
SG90マイクロサーボモーター
× 5

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

Baby Dinoは、Arduinoをベースにした2本足のロボットです。基本的に5つのサーボモーターを使用します。各脚に2つ、頭に1つです。また、超音波センサーを使用して障害物を検出し、回避します。それでは、作り方を見てみましょう!

ステップ1:はじめに

  • Baby Dinoは、Arduinoを使用したDIYロボットです。
  • 段ボールでできています。
  • 障害物を見つけて、左または右に移動します。

ステップ2:必要なコンポーネント

  • 1 X Arduino Uno、NanoまたはMega
  • 5 X9gサーボ
  • 1 XHC-SR04超音波センサー
  • 1 X LiPoバッテリー(2sまたは9vバッテリー)

ステップ3:サーボを修正する

  • プログラムをダウンロード
  • Arduinoにアップロード
  • 下の図に従ってサーボを接続します
  • サーボホーンを修正します
  • すべてが90度であることを確認してください
fix.ino

ステップ4:設計

  • デザインをダウンロード
  • A4に印刷
  • 段ボールに貼り付けます
  • 切り取ってください

ステップ5:最終ステップ

  • サーボをボール紙に取り付けます
  • プログラムをArduinoにアップロードする
  • サーボと超音波センサーを接続します
  • ケーブルをテールとして管理する
  • バッテリーを接続します

それでおしまい!

uBipedino.ino

コード

  • fix.ino
  • 二足歩行
fix.ino Arduino
 #include  Servo s1;サーボs2;サーボs3;サーボs4;サーボs5; void setup(){s1.attach(8); s2.attach(9); s3.attach(10); s4.attach(11); s5.attach(12);} void loop(){s1.write(90); s2.write(90); s3.write(90); s4.write(90); s5.write(90); } 
biped Arduino
必要に応じてサーボピンと超音波ピンを編集します
 #include  #include  //接続に応じてピンを編集します#defineIRsensorPin13 // irセンサーを使用している場合超音波センサー#defineTRIGGER_PIN12 //超音波センサーのトリガーピンに接続されたArduinoピン#defineECHO_PIN11 //超音波センサーのエコーピンに接続されたArduinoピン#defineLEFTLEG7#define RIGHTLEG 10#define LEFTFOOT 8#define RIGHTFOOT 9#define HEAD 6#define MAX_DISTANCE 200 // pingする最大距離(センチメートル単位)。センサーの最大距離は400〜500cmです。NewPingソナー(TRIGGER_PIN、ECHO_PIN、MAX_DISTANCE); //ピンと最大距離のNewPingセットアップ。ServoLleg; //サーボを制御するサーボオブジェクトを作成しますServoRleg; Servo Lfoot; Servo Rfoot; Servo Head; int Hcenter =70; //中央のサーボ位置を格納する変数intRLcenter =100; int RFcenter =65; //中心サーボ位置を格納する変数intLLcenter =90; int LFcenter =75; int tAngle =30; //角度を傾けるintuAngle =35; // angleint sAngle =35;を回します//スイングangleinthAngle =Hcenter; void Forward(byte Steps、byte Speed){Serial.println( "Forward"); TiltRightUp(tAngle、Speed); for(byte j =0; j  0; i- =5){Lfoot.write(LFcenter + i); Rfoot.write(RFcenter + i); delay(sp); }} void TiltLeftUp(byte ang、byte sp){//左に傾ける(int i =0; i <=ang; i + =5){Lfoot.write(LFcenter-i); Rfoot.write(RFcenter-i); delay(sp); }} void TiltLeftDown(byte ang、byte sp){//左下に傾ける(int i =ang; i> 0; i- =5){Lfoot.write(LFcenter-i); Rfoot.write(RFcenter-i); delay(sp); }} void LeftFootUp(char ang、byte sp){//左に傾ける(int i =0; i <=ang; i + =5){Lfoot.write(LFcenter-i); delay(sp); }} void LeftFootDown(byte ang、byte sp){//左下に傾ける(int i =ang; i> 0; i- =5){Lfoot.write(LFcenter-i); delay(sp); }} void RightFootUp(byte ang、byte sp){//右に傾ける(int i =0; i <=ang; i + =5){Rfoot.write(RFcenter + i); delay(sp); }} void RightFootDown(byte ang、byte sp){//右下に傾ける(int i =ang; i> 0; i- =5){Rfoot.write(RFcenter + i); delay(sp); }} void SwingRight(byte ang、byte sp){//右に振る(int i =0; i <=ang; i + =5){Lleg.write(LLcenter-i); Rleg.write(RLcenter-i); delay(sp); }} void SwingRcenter(byte ang、byte sp){// swing r-> center for(int i =ang; i> 0; i- =5){Lleg.write(LLcenter-i); Rleg.write(RLcenter-i); delay(sp); }} void SwingLeft(byte ang、byte sp){//左にスイングして(byte i =0; i <=ang; i =i + 5){Lleg.write(LLcenter + i); Rleg.write(RLcenter + i); delay(sp); }} void SwingLcenter(byte ang、byte sp){// swing l-> center for(byte i =ang; i> 0; i =i-5){Lleg.write(LLcenter + i); Rleg.write(RLcenter + i); delay(sp); }} void RightLegIn(byte ang、byte sp){//右に振る(int i =0; i <=ang; i + =5){Rleg.write(RLcenter-i); delay(sp); }} void RightLegIcenter(byte ang、byte sp){//スイングr-> center for(int i =ang; i> 0; i- =5){Rleg.write(RLcenter-i); delay(sp); }} void RightLegOut(byte ang、byte sp){//右に振る(int i =0; i <=ang; i + =5){Rleg.write(RLcenter + i); delay(sp); }} void RightLegOcenter(byte ang、byte sp){//スイングr-> center for(int i =ang; i> 0; i- =5){Rleg.write(RLcenter + i); delay(sp); }} void LeftLegIn(byte ang、byte sp){//左に振る(byte i =0; i <=ang; i =i + 5){Lleg.write(LLcenter + i); delay(sp); }} void LeftLegIcenter(byte ang、byte sp){// swing l-> center for(byte i =ang; i> 0; i =i-5){Lleg.write(LLcenter + i); delay(sp); }} void LeftLegOut(byte ang、byte sp){//左に振る(byte i =0; i <=ang; i =i + 5){Lleg.write(LLcenter-i); delay(sp); }} void LeftLegOcenter(byte ang、byte sp){// swing l-> center for(byte i =ang; i> 0; i =i-5){Lleg.write(LLcenter-i); delay(sp); }} void setup(){Serial.begin(19200); Serial.println( "Bipedinoセットアップが実行されています。"); Lleg.attach(LEFTLEG); Rleg.attach(RIGHTLEG); Lfoot.attach(LEFTFOOT); Rfoot.attach(RIGHTFOOT); Head.attach(HEAD); CenterServos(); delay(500); for(int i =0; i <5; ++ i){GetSonar(); delay(1000); } Serial.println( "Bipedino is ready。");} // setup()void loop(){unsigned int cmCenter =MAX_DISTANCE; unsigned int cmLeft =MAX_DISTANCE; unsigned int cmRight =MAX_DISTANCE; HeadCenter(); cmCenter =GetSonar(); if(cmCenter <20){HeadRight(); cmRight =GetSonar(); HeadCenter(); if(cmRight> 20){TurnRight(1、30); } else {HeadLeft(); cmLeft =GetSonar(); HeadCenter(); if(cmLeft> 20){TurnLeft(1、30); }}} else {int nSteps =cmCenter / 5; if(nSteps> 5){nSteps =5; } else {nSteps =1; } Serial.print( "Steps <"); Serial.print(nSteps); Serial.println( ">"); for(int n =0; n  

カスタムパーツとエンクロージャー

回路図


製造プロセス

  1. おしゃぶり
  2. ベビーキャリア
  3. 赤ちゃんのおしりふき
  4. 粉ミルク
  5. ベビーカー
  6. Arduino Spybot
  7. FlickMote
  8. 自家製テレビB-Gone
  9. マスタークロック
  10. サーボモーター付きロボット回避障害物
  11. Find Me