Mario Kart (20 / 21 steg)
Steg 20: koder
Kopiera och klistra in koderna i din Arduino programvara. De koder som vi använde för vagnen är kan ses här nedan.
Koden för
Gear motorer
inkludera filer för att lägga till andra filer eller bibliotek till nuvarande program
#include
#include
#include
int estado = 0; skapar en variabel som används för att testa villkor.
SoftwareSerial blue (10, 11); RX, TX upprättande av pins för Bluetooth-kommunikation
Adafruit_MotorShield AFMS = Adafruit_MotorShield(); Skapa objektet motor sköld med I2C standardadressen
Adafruit_DCMotor * myMotor = AFMS.getMotor(1); Att välja Port att fästa en motor. motor går till port 1
Adafruit_DCMotor * myMotor2 = AFMS.getMotor(2); Att välja Port att fästa en motor. motor går till port 2
void setup() {
Serial.BEGIN(9600); Ställ in följetong bibliotek på 9600 bps
Blue.BEGIN(9600); ställer baudhastighet på 9600 bps
Blue.println ("är bluetooth arbeta?"); en linje att testa om bluetooth fungerar
AFMS.begin(); setup seriell bibliotek på 9600 bps
}
void loop()
{
IF(Blue.available() > 0) {//this används för att läsa värdena av modulen HC-0 X bluetooth
Estado = blue.read(); variabeln deklareras nu förändringar i dess värde till vad det var emot av bluetooth-modulen
}
alla dessa om används för att utföra vissa åtgärder. till exempel: i den första om stoppkommandot implementeras genom att stoppa alla motorer.
sluta ställa alla motorerna hastighet till 0
om (estado =='s ") {
myMotor -> run(RELEASE); motor en är inställd att stoppa
myMotor -> setSpeed(0); motor en är inställd hastighet 0
myMotor2 -> run(RELEASE); motor två är inställd att stoppa
myMotor2 -> setSpeed(0); motor två är inställd hastighet 0
}
vidarebefordra inställning en motor att köra framåt medan den andra kör bakåt
om (estado == "w") {
myMotor -> run(FORWARD); motor en är inställd att köra fram
myMotor -> setSpeed(255); motor en är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
myMotor2 -> run(BACKWARD); motor två är inställd på kör bakåt.
myMotor2 -> setSpeed(255); motor två är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
}
bakåt är det samma kod som framåt; den enda förändringen är att motor en körs nu bakåt och motor2 körs framåt.
om (estado == "x") {
myMotor -> run(BACKWARD); motor en är inställd på kör bakåt
myMotor -> setSpeed(255); motor en är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
myMotor2 -> run(FORWARD); motor två är inställd att köra fram
myMotor2 -> setSpeed(255); motor två är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
}
Sväng vänster denna gång, båda motorer till samma riktning
om (estado == "a") {
myMotor -> run(FORWARD); motor en är inställd att köra fram
myMotor -> setSpeed(255); motor en är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
myMotor2 -> run(FORWARD); motor två är inställd att köra fram
myMotor2 -> setSpeed(255); motor två är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
}
sväng höger motorerna kommer att köras i samma riktning, men motsatt sväng vänster
om (estado == hade ") {
myMotor2 -> run(BACKWARD); motor två är inställd på kör bakåt
myMotor2 -> setSpeed(255); motor två är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
myMotor -> run(BACKWARD); motor en är inställd på kör bakåt
myMotor -> setSpeed(255); motor en är inställd på max hastighet. 255 är det högsta värdet, 0 är den lägsta.
}
långsam vänstersväng motorerna kommer sväng vänster långsamt. Det är samma kod som för sväng vänster, men med lägre hastighet
om (estado == "q") {
myMotor2 -> run(FORWARD); motor två är inställd att köra fram
myMotor2 -> setSpeed(100); motor två anges till 40% av max hastighet. 255 är det högsta värdet, 0 är den lägsta.
myMotor -> run(FORWARD); motor en är inställd att köra fram
myMotor -> setSpeed(100); motor en anges till 40% av max hastighet. 255 är det högsta värdet, 0 är den lägsta.
}
långsam högersväng motorerna kommer att vända rätt långsamt. Det är samma kod som för vända rätt, men med lägre hastighet
om (estado == "e") {
myMotor -> run(BACKWARD); motor en är inställd på kör bakåt
myMotor -> setSpeed(100); motor en är inställd på 40% av max hastighet är det högsta värdet, 0 är den lägsta.
myMotor2 -> run(BACKWARD); motor två är inställd på kör bakåt
myMotor2 -> setSpeed(100); motor två anges till 40% av max hastighet. 255 är det högsta värdet, 0 är den lägsta.
}
}
Kod för servomotorer (frigolit skärare)
inkludera filer för att lägga till andra filer eller bibliotek till nuvarande program
#include
#include
Servo miServo; deklarerar en servo
Servo miServo2; deklarerar en servo
int estado = 0; skapar en variabel som används för att testa villkor.
SoftwareSerial blue (10, 11); RX, TX upprättande av pins för Bluetooth-kommunikation
void setup() {
Blue.BEGIN(9600); Ställ in följetong bibliotek på 9600 bps
Blue.println ("iniciar bluetooth"); ställer baudhastighet på 9600 bps
miServo.attach (3). koppla servo 1 till stift 3
miServo2.attach (5). koppla servo 2 till stift 5
}
void loop() {
om (blue.available() > 0) //this används för att läsa värdena av modulen HC-0 X bluetooth
{
Estado = blue.read(); variabeln deklareras nu förändringar i dess värde till vad det var emot av bluetooth-modulen
pinMode (7, OUTPUT); används för att aktivera det första vapnet. detta vapen bestod av en frigolit (expanderbar polystyren) fräs som gör bilen bränna ballonger vid kontakt.
pinMode (4, OUTPUT); används för att aktivera det andra vapnet.
}
alla dessa om används för att utföra vissa åtgärder. till exempel: i den första om, servo
om (estado == "a") {
miServo.write(70); servo flyttas till denna position
digitalWrite (7, låg); vapnet bifogas servo är aktiverad.
}
om (estado == 's ") {
miServo.write(120); servo flyttas till denna position
digitalWrite (7, hög). vapnet bifogas servo är aktiverad.
}
om (estado == "k") {
miServo2.write(30); servo flyttas till denna position
digitalWrite (4, hög). vapnet bifogas servo är aktiverad.
}
om (estado == "g") {
miServo2.write(100); servo flyttas till denna position
digitalWrite (4, låg); vapnet bifogas servo är aktiverad.
}
}