DIY Hovercraft (10 / 10 steg)
Steg 10: Grattis! Du har avslutat din egen DIY svävare!
Feedback:
Var försiktig när du gör en sväng till din svävare eftersom alltför stark framdrivning kan göra svävare gå över styr. Justera riktningen lite.
Bilaga A:
Koder för Arduino Mega 2560:
//-----------------------------------------------------------------------------------------------------------------------------
#include //for v 1.6
#include
PS2X ps2x;
Servo myservo;
Servo dservo;
Servo servo1;
int fel = 0;
int p, q = 0;
int jag = 0, d = 0, m = 0;
byte typ = 0;
byte vibrera = 0;
int map1 = 48, mapp1 = 64;
int map2 = 34, mapp2 = 78.
int stabil = 144;
int val = 56, värde2 = 56.
void setup() {
servo1.attach(4);
myservo.attach(3);
dservo.attach(5);
Delay(1000);
myservo.write(133);
Delay(1000);
för (jag = 0; jag < 180; i ++) {
dservo.write(i);
Delay(20);
}
Serial.BEGIN(57600);
fel = ps2x.config_gamepad (13,11,10,12, sant, sant); //
typ = ps2x.readType();
Switch(Type) {
fall 0:
Serial.println ("Okänd Controller typ");
bryta;
fall 1:
Serial.println ("DualShock handkontrollen hittade");
bryta;
fall 2:
Serial.println ("GuitarHero Controller hittade");
bryta;
}
servo1.write(143);
}
void loop() {
fel = ps2x.config_gamepad (13,11,10,12, sant, sant);
IF(Error == 3|| fel == 1) / / slinga om ingen domänkontrollant hittas
hemkomst.
IF(Type == 2) {//Guitar Hero Controller
ps2x.read_gamepad(); Läs controller
IF(ps2x. ButtonPressed(STAR_POWER))
Serial.println ("stjärna makt kommandot");
IF(ps2x. Button(UP_STRUM)) {//will vara sant så länge knappen trycks
Serial.println ("uppåt Strum");
}
IF(ps2x. Button(DOWN_STRUM))
Serial.println ("ner Strum");
IF(ps2x. Button(PSB_START)) //will vara sant så länge knappen trycks
Serial.println ("Start hålls");
IF(ps2x. Button(PSB_SELECT))
Serial.println ("Välj hålls");
IF(ps2x. Button(ORANGE_FRET)) / / Skriv ut stick värdet sant om
{
Serial.Print ("Wammys Bar ståndpunkt:");
Serial.println (ps2x. Analog(WHAMMY_BAR), DEC);
}
}
annat {//DualShock Controller
ps2x.read_gamepad (falskt, vibrerar);
IF(ps2x. Button(PSB_START))
Serial.println ("Start hålls");
IF(ps2x. Button(PSB_SELECT)) {
Serial.println ("Välj hålls");
}
IF(ps2x. Button(PSB_RED)) {
servo1.write(stable);
Delay(20);
p = 0;
q = 0;
}
IF(ps2x. Button(PSB_PINK)) {
stabil = stabil + 1;
servo1.write(stable);
}
IF(ps2x. Button(PSB_GREEN)) {
stabil = stabil-1;
servo1.write(stable);
}
IF(ps2x. Button(PSB_PAD_UP)) {//will vara sant så länge knappen trycks
Serial.Print ("upp höll detta hårt:");
Serial.println (fel);
}
IF(ps2x. Button(PSB_PAD_RIGHT)) {
Serial.Print ("högern höll detta hårt:");
Serial.println (fel);
}
IF(ps2x. Button(PSB_PAD_LEFT)) {
Serial.Print ("vänster höll detta hårt:");
Serial.println (fel);
}
IF(ps2x. Button(PSB_PAD_DOWN)) {
Serial.Print ("DOWN höll detta hårt:");
Serial.println (fel);
}
vibrera = ps2x. Analog(PSAB_BLUE);
Val = karta (ps2x. Analog(PSS_LY),0,255,Map1,mapp1);
myservo.write(val);
Delay(20);
värde2 = karta (ps2x. Analog(PSS_LY),0,255,Map2,mapp2);
dservo.write(val2);
Delay(20);
IF(ps2x. Button(PSB_L1)) {
servo1.write(stable-16); }
IF(ps2x. Button(PSB_L2)) {
p = p + 1.
servo1.write(stable+5*(q-p)); }
IF(ps2x. Button(PSB_R1)) {
servo1.write(stable+16); }
IF(ps2x. Button(PSB_R2)) {
q = q + 1.
servo1.write(stable+5*(q-p)); }
}
Delay(50);
}
//-----------------------------------------------------------------------------------------------------------------------------
Bilaga B:
Referens:
Geek-workshop [Internet]. C2012 [uppdaterad 2012December4; hänvisas till 30 juni 2014]. Tillgänglig från: http://www.geek-workshop.com/thread-172-1-1.html