<攝影 : greatway9999>

一、成果展示

(一)、需求描述


利用香菇頭控制器,可操作機器手臂台左旋、右旋、抬起、放下、夾爪開、夾爪合。

二、關於程式碼

(一)、完整程式碼 Ardublock

主程式



副程式



(二)、原始碼
#include <Servo.h>

int _ABVAR_1_PROW = 0 ;
int _ABVAR_2_vx = 0 ;
int _ABVAR_3_vy = 0 ;
Servo servo_pin_8;
Servo servo_pin_4;
Servo servo_pin_7;

void Left();
void Stop();
void Front();
void craw_close();
void Right();
void Back();
void craw_open();

void setup()
{
  servo_pin_8.attach(8);
  servo_pin_4.attach(4);
  servo_pin_7.attach(7);
  _ABVAR_1_PROW = 90 ;

}

void loop()
{
  _ABVAR_2_vx = analogRead(1) ;
  _ABVAR_3_vy = analogRead(0) ;
  if (( ( ( _ABVAR_2_vx ) > ( 900 ) ) && ( ( ( _ABVAR_3_vy ) > ( 400 ) ) && ( ( _ABVAR_3_vy ) < ( 600 ) ) ) ))
  {
    Front();
  }
  if (( ( ( _ABVAR_2_vx ) < ( 200 ) ) && ( ( ( _ABVAR_3_vy ) > ( 400 ) ) && ( ( _ABVAR_3_vy ) < ( 600 ) ) ) ))
  {
    Back();
  }
  if (( ( ( _ABVAR_3_vy ) < ( 200 ) ) && ( ( ( _ABVAR_2_vx ) > ( 400 ) ) && ( ( _ABVAR_2_vx ) < ( 600 ) ) ) ))
  {
    Left();
  }
  if (( ( ( _ABVAR_3_vy ) > ( 900 ) ) && ( ( ( _ABVAR_2_vx ) > ( 400 ) ) && ( ( _ABVAR_2_vx ) < ( 600 ) ) ) ))
  {
    Right();
  }
  if (( ( ( _ABVAR_2_vx ) > ( 900 ) ) && ( ( _ABVAR_3_vy ) < ( 200 ) ) ))
  {
    craw_open();
  }
  if (( ( ( _ABVAR_2_vx ) > ( 900 ) ) && ( ( _ABVAR_3_vy ) > ( 900 ) ) ))
  {
    craw_close();
  }
  if (( ( ( ( _ABVAR_2_vx ) > ( 400 ) ) && ( ( _ABVAR_2_vx ) < ( 600 ) ) ) && ( ( ( _ABVAR_3_vy ) > ( 400 ) ) && ( ( _ABVAR_3_vy ) < ( 600 ) ) ) ))
  {
    Stop();
  }
}

void craw_close()
{
  if (!( ( ( _ABVAR_1_PROW ) > ( 120 ) ) ))
  {
    _ABVAR_1_PROW = ( _ABVAR_1_PROW + 2 ) ;
  }
  else
  {
    _ABVAR_1_PROW = 122 ;
  }
  servo_pin_8.write( _ABVAR_1_PROW );
  delay( 50 );
}

void craw_open()
{
  if (!( ( ( _ABVAR_1_PROW ) < ( 30 ) ) ))
  {
    _ABVAR_1_PROW = ( _ABVAR_1_PROW - 2 ) ;
  }
  else
  {
    _ABVAR_1_PROW = 28 ;
  }
  servo_pin_8.write( _ABVAR_1_PROW );
  delay( 50 );
}

void Front()
{
  servo_pin_4.write( 120 );
}

void Stop()
{
  servo_pin_4.write( 90 );
  servo_pin_7.write( 90 );
  servo_pin_8.write( 90 );
}

void Left()
{
  servo_pin_7.write( 60 );
}

void Right()
{
  servo_pin_7.write( 120 );
}

void Back()
{
  servo_pin_4.write( 60 );
}



#機器手臂 #伺服馬達


0 留言