Stap 10: Arduino Script
Goed gedaan als u dit voor op onze robotic reis gekomen, ik hoop dat je begrepen hebt dingen tot nu toe en wat u niet begrepen hebt u vroeg om opheldering of uw eigen versie van het element gemaakt. De ogen en de mond zijn de enige elementen die uitsluitend uit de arduino bord worden uitgevoerd. De andere elementen moeten verwerking ze te bestrijden.
Arduino Script
#include
int c = 0;
int pos = 0;
int talkmode = 0;
int oldtalkmode = 0; lange rfac;
lange mpos; int eyedel = 0;
int pose = 140;
int poslip = 90;
int eyeposh = 57;
int eyeposhinc = 1;
int posbot = 90;
int stopy = 90;
Servo myservo; maken van servo-object om te bepalen van een servo
maximaal acht servo-objecten kan worden gemaakt
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
Servo myservo6;
Servo myservo7;
Servo myservo8;
int talkcount = 255;
uiteindelijk gebruik audio stop trigger
int doclosemouth = 0;
int turnmode = 0;
int turnmode2 = 0;
int globmode = 1; 1 is beweging over 2 eyetwitch
int wcount;
int pcount;
int mystart = 1;
int notalkcount = 0;
VOID Setup {}
Serial.begin(9600);
wcount = 0;
pcount = 0;
pinMode(1,OUTPUT);
pinMode(8,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(13,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(12,OUTPUT);
pinMode(3,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(A4,OUTPUT);
myservo.attach(1); hecht de servo
myservo2.attach(8); links rechts
myservo3.attach(5); omhoog omlaag
myservo4.attach(3); ogen links en rechts
myservo5.attach(4);
myservo6.attach(12);
myservo7.attach(11);
myservo8.attach(10);
int oldtalkmode = 0;
myservo3.attach(a3);
myservo4.attach(A4);
} void loop {}
if(talkmode==1) {}
pose = 140;
poslip = 90;
posbot = 100; // }
if(mpos>131) {}
notalkcount ++;
} else {}
notalkcount == 0;
//}
Serial.Print(notalkcount);
if(notalkcount>2000) {}
talkmode = 0;
oldtalkmode = 0;
notalkcount = 0; // } // }
int t=random(2000);
int pos=random(400);
if(t>1998) {if(pos>195) {int v=25+random(60);
int pos2=140+random(60);
myservo4.write(v);
myservo5.write(pos2);
} }
while(Serial.available() > 0) {int din=Serial.read();
if(talkmode<9) oldtalkmode = talkmode;
if(DIN<8) talkmode = din;
Als (din > 8 & & din < 70) turnmode = din;
Als (din > 70 & & din < 201) turnmode2 = din;
Als (din == 201 & & talkmode == 0) {}
globmode = 2;
mpos = 134;
// }
Als (globmode = 1);
Serial.Print("TM="+talkmode);
if(globmode==1) {}
eyeposh = 57;
myservo4.write(eyeposh);
// } }
globmode = 1;
het dwingen van deze modus if(globmode==1) {}
verkeer if(talkmode==1) {}
wachten voor aanvang van het praten
if(MyStart==1) {}
int dropout = 0;
while(analogRead(3)==0) {}
updatestuff();
} mystart = 0; Serial.println("Hello"); }; Graaf pauzes
if(MyStart==0) {int v=analogRead(3);
Serial.Print("v:");
Serial.Print(v);
Serial.Print("");
if(v==0) {pcount ++; if(pcount>10) {mystart = 1;}} else {doclosemouth = 0;
pose = 140;
poslip = 90;
posbot = 100;
if(pcount>5) {pcount = 0;
wcount ++;
doclosemouth = 1;
Serial.println(wcount);
pcount = 0;
pose = 140;
poslip = 90;
posbot = 100;
MyStart = 1;
} } //? } //? praten / / delay(10+random(2));
pose=140+Random(60);
poslip=2+Random(32);
posbot=50+Random(30);
vertraging (100);
myservo6.write(pose);
myservo7.write(poslip);
myservo8.write(posbot);
rfac=Random(100);
if(rfac<45) {}
mpos=Random(130);
mpos=99+Random(50);
delay(60+Random(40));
delay(Random(11));
}
} else {}
kern beetje if(doclosemouth==1) {mpos = 134;
pose = 140;
poslip = 90;
posbot = 100;
myservo8.write(100);
myservo6.write(140);
myservo7.write(90);
myservo8.write(90);
}} int r=analogRead(5);
if(r<1000) {mpos = 133;
pose = 140;
poslip = 90;
posbot = 90;
myservo8.write(100);
talkmode = 0;
} if(talkmode==0) {}
myservo6.write(140);
myservo7.write(90);
myservo8.write(100);
pose = 140;
poslip = 90;
posbot = 90;
mpos = 132; mond dicht} als (turnmode > 9 & & turnmode < 70) {//left/ juiste myservo2.write(turnmode); / / Serial.print("TM="+turnmode);
talkmode = oldtalkmode;
} if(turnmode2>70) {//left/ juiste int sv = turnmode2-70;
myservo3.write(SV);
Serial.Print("TM="+turnmode);
talkmode = oldtalkmode;
} Als (mpos > 130 & & talkmode > 0) myservo4.write(57); omhoog/omlaag hier myservo.write(mpos);
} //end van globmode 1;
if(globmode==10) {//never = 10 zo schakelt / / int v=analogRead(3);
if(v>20) {/ / globmode = 1;
talkmode = 1;
} updatestuff();
begin van oog lus eyedel ++;
if(eyedel==1000) {eyedel = 0;
myservo4.write(eyeposh);
eyeposh = eyeposh + eyeposhinc;
Als (eyeposh == 90 || eyeposh == 25) {eyeposhinc = eyeposhinc *-1; int d = 250;
d=d+Random(1750);
delay(d); } } } }
VOID updatestuff() {int t=random(2000);
if(t>1998) {int v=25+random(60);
myservo4.write(v);
int pos=random(400);
if(POS>195) {int pos2=140+random(60);
myservo5.write(pos2);
}} / / if(mpos>131) {//notalkcount++;
} else {/ / notalkcount == 0;
} //if(notalkcount>2000) {/ / talkmode = 0;
oldtalkmode = 0;
notalkcount = 0;
} while(Serial.available() > 0) {int din=Serial.read();
if(talkmode<9) oldtalkmode = talkmode;
if(DIN<8) talkmode = din;
if(DIN==1) {/ / globmode = 1;
talkmode = 1; eyeposh = 57;
myservo4.write(eyeposh);
} Als (din > 8 & & din < 70) turnmode = din;
Als (din > 70 & & din < 201) turnmode2 = din;
Serial.Print("TM="+turnmode);
Als (din == 201 & & talkmode == 0) globmode = 2;
if(DIN==202) globmode = 1;
if(globmode==1) {/ / eyeposh = 57;
myservo4.write(eyeposh);
}} Als (turnmode > 9 & & globmode == 1) {//left/ juiste myservo.write(135);
myservo8.write(stopy);
myservo2.write(turnmode);
Serial.Print("TM="+turnmode);
talkmode = oldtalkmode;
} Als (turnmode2 > 70 & & globmode == 1) {//left/ juiste int sv = turnmode2-70;
myservo3.write(SV);
myservo6.write(140);
myservo7.write(90);
myservo8.write(90);
Serial.Print("TM="+turnmode);
talkmode = oldtalkmode; } }