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