机械臂控制程序


本课题来源于陈安老师的嵌入式的实践课程,使用现有的六轴机械手,采用蓝牙通信技术实现手机和六轴机械手的无线通信,编写相应的程序,通过树莓派烧写程序到arduino板卡中,通过手机客户端无线控制机械手运动。可以控制机械臂的运动,停止,加速,减速运动等

#include<Servo.h>

Servo myservo3;

Servo myservo5;

Servo myservo6;

Servo myservo9;

Servo myservo10;

Servo myservo11;

void serialtest(){

if (Serival.available())

{

  char a=Serial.read();

  if(a=='1')

  {

          int pos = 90;

    for(pos=10;pos<=170;pos+=1)

    {

    myservo9.write(pos);

    delay(15);

              }

    

             for(pos=170;pos>=10;pos-=1)

    {

    myservo9.write(pos);

    delay(15);

              }

       }

  

if(a=='2')

  {

          int pos = 90;

    for(pos=10;pos<=170;pos+=1)

    {

    myservo3.write(pos);

    delay(15);

              }

    

             for(pos=170;pos>=10;pos-=1)

    {

    myservo3.write(pos);

    delay(15);

              }

       }

  

if(a=='3')

  {

          int pos = 90;

    for(pos=10;pos<=170;pos+=1)

    {

    myservo10.write(pos);

    delay(15);

              }

    

             for(pos=170;pos>=10;pos-=1)

    {

    myservo10.write(pos);

    delay(15);

              }

       }

  

if(a=='4')

  {

          int pos = 90;

    for(pos=10;pos<=170;pos+=1)

    {

    myservo11.write(pos);

    delay(15);

              }

    

             for(pos=170;pos>=10;pos-=1)

    {

    myservo11.write(pos);

    delay(15);

              }

       }

  if(a=='5')

  {

  int pos =90;

  for(pos=10;pos<=170;pos+=1)

    {

      myservo3.write(pos);

      myservo9.write(pos);

      myservo10.write(pos);

      myservo11.write(pos);

      delay(20);

    }

  }

  if(a=='4')

  {

    myservo3.write(90);

    myservo5.write(90);

    myservo6.write(90);

    myservo9.write(90);

              myservo10.write(90);

    myservo11.write(90);

  }

}

}

void setup(){

  myservo3.attach(3);

  myservo3.attach(5);

  myservo3.attach(6);

  myservo3.attach(9);

  myservo3.attach(10);

  myservo3.attach(11);

  Servial.begian(9600);

  }

  void loop(){

  serialtest();

  for(pos=10;pos<=170;pos+=1)

  {

    myservo.write(pos);

    delay(15);

 

  }

  

  for(pos=180;pos>=0;pos-=1)

  {

    myservo.write(pos);

    delay(15);

  }

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM