RC papier Tank - Breng uw 3D modellen tot leven (16 / 18 stap)

Stap 16: programmeren


Hier is de code die ik gebruikte het moet zichzelf als je door het:

#include < AFMotor.h >
#include < SoftwareSerial.h > //Software seriële poort

#include < Servo.h >

Servo myservo;
int mySpeed;
int turretAngle;
char val;
char prevAction;
AF_DCMotor motor_1(1);
AF_DCMotor motor_2(2);
AF_DCMotor motor_3(3);
AF_DCMotor motor_4(4);

#define rode A0
#define SET A1
#define RxD A5 / / dit is de pin dat de Bluetooth (BT_TX) aan de Arduino (RxD doorgeven zal)
#define TxD A4

SoftwareSerial blueToothSerial(RxD,TxD);

int switchVal;
BOOL uitgevoerd;

VOID Setup {}
Serial.begin(9600); Seriële communicatie via USB-kabel aan de computer toestaan (indien nodig)


pinMode (RxD, INPUT); Instellen van de Arduino te ontvangen van INPUT van de bluetooth-schild op digitale Pin 6
pinMode (TxD, uitvoer); Instellen van de Arduino voor het verzenden van gegevens (OUTPUT) aan het schild van de bluetooth op digitale Pin 7
pinMode(13,OUTPUT); Gebruik aan boord LED indien nodig.
pinMode (rood, uitvoer);
pinMode(SET,INPUT_PULLUP);

blueToothSerial.begin(9600);

turretAngle = 90;
switchVal = hoog;

mySpeed = 255;
inschakelen motor
SetSpeed ();
myservo.attach(9);
Release();
}

void loop {}

int sensorVal = digitalRead(SET);
Als (sensorVal == laag)
{
actief =! uitgevoerd;
digitalWrite (rood, uitgevoerd? HIGH:LOW);
vertraging (400);
}

Als (waar)
{
if(blueToothSerial.available())
{
Val = blueToothSerial.read();
Serial.Print(val); Afdrukken van het teken ontvangen naar de seriële Monitor (indien nodig)
prevAction = val;

Als (val 'F' ==) //fwd
{
SetSpeed();
Vooruit();
}
anders als (val == 'L') //left
{
SetSpeed();
Datumwaarde;
}
anders als (val 'R' ==) //right
{
SetSpeed();
Rechts();
}
anders als (val == 'B') //reverse
{
SetSpeed();
Reverse();
}
anders als (val == de ') / / top
{
Release();
}
anders als (val == 'G') / / NW
{
NorthWest();
}
anders als (val == 'I') / / NE
{
NorthEast();
}
anders als (val == 'J') / / SE
{
SouthEast();
}
anders als (val == 'H') / / SW
{
SouthWest();
}
anders als (val == '1') / / speed
{
mySpeed = 255/10;
}
anders als (val == '2') / / speed
{
mySpeed = 255/10 * 2;
}
anders als (val == '3') / / speed
{
mySpeed = 255/10 * 3;
}
anders als (val == '4') / / 1-speed
{
mySpeed = 255/10 * 4;
}
anders als (val == '5') / / 1-speed
{
mySpeed = 255/10 * 5;
}
anders als (val == '6') / / 1-speed
{
mySpeed = 255/10 * 6;
}
anders als (val == '7') / / 1-speed
{
mySpeed = 255/10 * 7;
}
anders als (val == '8') / / 1-speed
{
mySpeed = 255/10 * 8;
}
anders als (val == '9') / / 1-speed
{
mySpeed = 255/10 * 9;
}
anders als (val == 'q') / / 1-speed
{
mySpeed = 255;
}
anders als (val == 'X' || val == 'x')
{
Reverse();
delay(50);
Vooruit();
delay(50);
Release();
}
anders als (val == 'V' || val == 'v')
{
actief =! uitgevoerd;
digitalWrite (rood, uitgevoerd? HIGH:LOW);
}

}
anders
{
Als (val == 'W')
{
TurretLeft();
}
anders als (val == 'U')
{
TurretRight();
}
}
}
anders
{
Release();
}
}

VOID MoveTurret()
{
Als (turretAngle < 30)
turretAngle = 30;
Als (turretAngle > 150)
turretAngle = 150;
myservo.write(turretAngle);
}

VOID TurretLeft()
{
turretAngle += 1;
MoveTurret();
delay(10);
}

VOID TurretRight()
{
turretAngle-=1;
MoveTurret();
delay(10);
}

VOID vooruit()
{
motor_1.run(forward);
motor_2.run(forward);
motor_3.run(forward);
motor_4.run(forward);
}

VOID Reverse()
{

motor_1.run(BACKWARD);
motor_2.run(BACKWARD);
motor_3.run(BACKWARD);
motor_4.run(BACKWARD);
}

VOID datumwaarde
{
motor_1.run(forward);
motor_2.run(BACKWARD);
motor_3.run(BACKWARD);
motor_4.run(forward);
}

VOID rechts()
{
motor_1.run(BACKWARD);
motor_2.run(forward);
motor_3.run(forward);
motor_4.run(BACKWARD);
}

VOID Release()
{
motor_1.run(release);
motor_2.run(release);
motor_3.run(release);
motor_4.run(release);
}

VOID NorthWest()
{
SetSpeedLeft();

}
VOID NorthEast()
{
SetSpeedRight();
Vooruit();
}
VOID SouthEast()
{
SetSpeedRight();
Reverse();

}
VOID SouthWest()
{
SetSpeedLeft();
Reverse();
}

VOID SetSpeed()
{
motor_1.setSpeed(mySpeed);
motor_2.setSpeed(mySpeed);
motor_3.setSpeed(mySpeed);
motor_4.setSpeed(mySpeed);
}

VOID SetSpeedRight()
{
motor_1.setSpeed(mySpeed/2);
motor_2.setSpeed(mySpeed);
motor_3.setSpeed(mySpeed);
motor_4.setSpeed(mySpeed/2);
}

VOID SetSpeedLeft()
{
motor_1.setSpeed(mySpeed);
motor_2.setSpeed(mySpeed/2);
motor_3.setSpeed(mySpeed/2);
motor_4.setSpeed(mySpeed);
}

Gerelateerde Artikelen

Hoe maak je een Origami papier Tank

Hoe maak je een Origami papier Tank

Dit is een Origami papier Tank en je kunt maken van veel van hen en maak een Oorlogsscene. Ook kunt u hen voor uw kinderen om te spelen met.Stap 1: Krijgen van de materialenU gaat eerst 1 vel papier af te drukken en een kleverige nota nodig.Stap 2: D
Hoe maak je een papier-tank

Hoe maak je een papier-tank

ik hoop dat u zal leren hoe.Materialen: 2 stuks van papier, schaarDe volgende dia heeft een video.Stap 1: Video Awesome videoStap 2: voltooien ik hoop dat je geleerd hoe maak je een papier-tank. Raadpleeg dit instructable de reactie bestuur voor nieu
Breng een gedroogde uit marker terug tot leven!

Breng een gedroogde uit marker terug tot leven!

hebt u ooit een marker weggelaten en besefte, toen was het al te laat? Heres een eenvoudige snelle oplossing over hoe om het te brengen weer tot leven!Stap 1: uw materialen ophalen all you need is1. uitgedroogd marker2. houten stok (optioneel)3. mini
Het spel van Candyland komt tot leven kostuums

Het spel van Candyland komt tot leven kostuums

het spel van Candyland heeft tot leven komen. Gryphon is koning Kandy, staande voor zijn speciale Candy Castle. Phoenix is prinses Lolly, gelukkig te leven in de bossen van Lollipop.  Het paar staan op de Candyland spelbord, allemaal klaar voor het s
Dode Ni-Cad batterijen terug tot leven brengen

Dode Ni-Cad batterijen terug tot leven brengen

ben je moe van het hebben van uw Ni-Cad batterijen die weigerde te berekenen en gewoon sterven?Dus wat doe je met hen wanneer ze sterven?Gooi ze in de Prullenbak - die schade aan het milieu?Of neem ze naar een recyclingbedrijf kunnen worden gerecycle
Twee eenvoudige trucs vectoren tot leven te brengen

Twee eenvoudige trucs vectoren tot leven te brengen

I 'm gonna Toon u twee eenvoudige trucs op Adobe Illustrator te maken van uw vectoren die tot leven komen. Een de slagschaduweffect gebruiken en de andere is de nederige lijn te maken van de hoogtepunten.De tools die we gonna gebruiken zijn niets fan
Uw zonne-aangedreven lampen terug tot leven brengen

Uw zonne-aangedreven lampen terug tot leven brengen

iedereen heeft een bos van deze thuis. U zien ze in de winkel, ze kopen, zet ze in uw tuin en afhankelijk van de kwaliteit die u zal worden gooien ze een manier een paar weken een seizoen later.Zonne aangedreven lichten werken als volgt;1. zon schijn
Oude speelgoed terug tot leven brengen

Oude speelgoed terug tot leven brengen

Op een recent bezoek aan mijn lokale tip/dump kwam ik een originele 70 's wandelende robot. Iemand oud genoeg (me verdomme!), zou kunnen denken aan het bezit van een manier terug toen. De robots zijn ontworpen door Horikawa, een Japanse speelgoed fab
Van 3D modellen tot en met papier modellen: D

Van 3D modellen tot en met papier modellen: D

Hou je papier modellen?Wenst u te maken met het eigen uitzonderlijke ding van papier?Dit is een instructie voor je :)-------------------------------------Hebt u nodig:-Google SketchUp (programma u vanaf hier downloaden kunt: http://www.sketchup.com/
Hoe maak je een Mini papier Tank (2 tanks uit één vel papier)

Hoe maak je een Mini papier Tank (2 tanks uit één vel papier)

Hey, vandaag in het zal je laten zien hoe maak je een mini tank. Het koele ding over het is dat kunt u 2 mini tanks uit één vel papier. Nu laat gaan maken!Stap 1: Krijgen van de materialen Alles wat je nodig hebt om deze tank mini papier zijn een paa
Papier koffie kopje vliegende & gecontroleerde modellen van hovercrafts

Papier koffie kopje vliegende & gecontroleerde modellen van hovercrafts

ik hoop dat mijn project na het zien bevalt zal en je wilde stemmen voor hem...: o)Stap 1: Materialen & tools (alleen als u geen dienbladen of kartonnen deksel) / * stijldefinities * / tabel. MsoNormalTable {mso-stijl-naam: Standardowy, mso-tstyle-ro
Breng een Vintage GI Joe Walkie-Talkie terug tot leven met Bluetooth!

Breng een Vintage GI Joe Walkie-Talkie terug tot leven met Bluetooth!

ik had slechts een circa 1970, GI-Joe groene Walkie-Talkie, die aan het ongetrainde oog, alleen er en soms zit genereert statische.Maar om een waarnemer van de juiste leeftijd en houding, dit speeltje kan oproepen beelden van een jeugd verleden, vrie
Breng uw verbrande LED terug tot leven!

Breng uw verbrande LED terug tot leven!

When I 'm op een begroting... Ik ben in staat om ressurect mijn verbrande LEDs te hergebruiken weer ;)Onlangs is mijn vader gebruikt 12V cordless drill batterij te doden twee van mijn hoge powerleds van 3W. Natuurlijk kocht hij me nieuwe, maar zonder
Breng uw Treadless schoenen terug tot leven

Breng uw Treadless schoenen terug tot leven

ik ben een I.E. leraar en ik op een ochtend wakker en keek op mijn werkschoenen. Ik zag dat al mijn loopvlak op waar de bal van mijn voeten zijn schoenen waren vrijwel verdwenen is net na 6 maanden. Allermeest naar de tijd, om het even wie zou gaan k