機械臂控制程序


本課題來源於陳安老師的嵌入式的實踐課程,使用現有的六軸機械手,采用藍牙通信技術實現手機和六軸機械手的無線通信,編寫相應的程序,通過樹莓派燒寫程序到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