本課題來源于陳安老師的嵌入式的實踐課程,,使用現(xiàn)有的六軸機械手,,采用藍(lán)牙通信技術(shù)實現(xiàn)手機和六軸機械手的無線通信,編寫相應(yīng)的程序,,通過樹莓派燒寫程序到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); } } |
|