Liten Smartphone kontrollerade Arduino Tank (9 / 10 steg)
Steg 9: Koden och App
Bluetooth-modulen kommer röra upp programmering så du måste koppla bort Bluetooth-modulen innan du lägger upp något.
Så, för att ladda upp koden, koppla Arduino (jag inte vet vad som händer om du lämnar den i så det är bara ta ut), koppla in en USB-kabel och kopiera och klistra in koden från här i Arduino IDE. Se till att du väljer rätt arduino och com. Nu ladda upp koden.
Du kan kopiera koden från här:
TinyTank kod:
Det kommer att ta emot data från Bluetooth-modulen och köra lite tank framåt bakåt vänster och höger. Det kommer också Avfyra pistolen och släcker belysningen på och av när du trycker på knapparna på app och du kan ställa in hastigheten från app. Det piper när startat och när anslutningen förloras.
-----------------------------------------------------------------------------------------------------------------------------------------
/ * Denna skiss kommer att driva TinyTank med bluetooth.
* När du slår det om det kommer att göra ett ljud och om du kopplar bort den kommer att göra ett annat ljud och
* Lamporna blinkar två gånger.
* Det är uppenbart att när du trycker på knappen vidarebefordra på app som tanken kommer att driva
* framåt och så vidare. När du trycker på knappen för strålkastarna tänds headlighst,
* och det är samma för bakgrundsbelysning. När du trycker på knappen horn kommer att horn slå på
* och om du trycker igen det stängs av. När du trycker på triangelknappen brand pistolen en gång.
* Du kan ändra hastigheten tanken kommer att driva genom att skjuta glida fram och tillbaka.
*
* Det enda du kommer att behöva ändra är gången pistolen ligger högt så det kommer att skjuta en gång, det kommer
* bero på din typ av pistol.
*
* Gjord av: Ynze Selders
*/
#include
int rSpeed = 0;
int lSpeed = 0;
Servo rightservo;
Servo leftservo;
röding, kommando;
CONST int strålkastare = 8.
CONST int bakgrundsbelysning = 2;
CONST int pistol = 3;
CONST int Summer = 6;
void setup() {
Serial.BEGIN(9600);
rightservo.attach(9);
leftservo.attach(10);
pinMode (strålkastare, produktionen);
pinMode (bakgrundsbelysning, OUTPUT);
pinMode (gun, OUTPUT);
pinMode (Summer, produktionen);
rightservo.write(90);
leftservo.write(90);
tonen (Summer, 750); startljudet
Delay(150);
tonen (Summer, 1000);
Delay(150);
tonen (Summer, 1250);
Delay(150);
noTone(buzzer);
}
void loop() {
IF(Serial.available() > 0) {
kommandot = Serial.read();
Stop();
Switch(Command) {//these är alla bokstäver och siffror app skickar till bluetooth
ärende 'F': //module
Forward();
bryta;
fallet "B":
Back();
bryta;
fallet "L":
Left();
bryta;
fallet "R":
Right();
bryta;
fallet "G":
forwardleft();
bryta;
fallet "I":
forwardright();
bryta;
fallet "H":
backwardleft();
bryta;
fallet "J":
backwardright();
bryta;
ärende '0': //these är de olika hastigheterna
rSpeed = 85.
lSpeed = 95.
bryta;
fall '1':
rSpeed = 83.
lSpeed = 97.
bryta;
fallet "2":
rSpeed = 81.
lSpeed = 99.
bryta;
fallet "3":
rSpeed = 79.
lSpeed = 101;
bryta;
fallet "4":
rSpeed = 77.
lSpeed = 103;
bryta;
fallet "5":
rSpeed = 74;
lSpeed = 106;
bryta;
fallet "6":
rSpeed = 70.
lSpeed = 110.
bryta;
fallet "7":
rSpeed = 65;
lSpeed = 115;
bryta;
fallet "8":
rSpeed = 59.
lSpeed = 121;
bryta;
fall '9':
rSpeed = 25;
lSpeed = 155;
bryta;
fallet "q":
rSpeed = 0;
lSpeed = 180;
bryta; slutet av hastigheter
fallet "W": / / om headlightbutton trycks slå strålkastare på
digitalWrite (strålkastare, hög);
bryta;
fallet "w": / / om headlightbutton trycks igen stänga strålkastare av
digitalWrite (strålkastare, låg);
bryta;
ärende 'U': / / om backlightbutton trycks aktivera bakgrundsbelysning
digitalWrite (bakgrundsbelysning, hög);
bryta;
fallet "u": / / om backlightbutton trycks igen stänga bakgrundsbelysning av
digitalWrite (bakgrundsbelysning, låg);
bryta;
"X" i mål: / / om gun knappen trycks skjuta en gång
digitalWrite (gun, hög);
Delay(150); justera det här värdet så det skjuter en gång om du trycker på knappen
digitalWrite (gun, låg);
bryta;
fallet "x": / / detta är samma som den över här men annars var du tvungen att trycka på den
digitalWrite (gun, hög), //button två gånger för att skjuta en gång
Delay(150); så justera det här värdet till samma värde som den andra
digitalWrite (gun, låg);
bryta;
"V" i mål: / / om hornet knappen trycks aktivera summern
Tone(BUZZER,1000); / / ändra detta värde för att få andra toner
bryta;
fallet "v": / / om hornet knappen trycks igen aktivera summern
noTone(buzzer);
bryta;
fall skulle ":
rightservo.write(90); om disconected inaktiverar motorer
leftservo.write(90);
digitalWrite (gun, låg); om disconected kontrollera att är vapnet avstängd
tonen (Summer, 2000); om disconected blinkar lampor och göra ljud
digitalWrite (strålkastare, hög);
digitalWrite (bakgrundsbelysning, hög);
Delay(250);
digitalWrite (strålkastare, låg);
digitalWrite (bakgrundsbelysning, låg);
Delay(250);
digitalWrite (strålkastare, hög);
digitalWrite (bakgrundsbelysning, hög);
Delay(250);
digitalWrite (strålkastare, låg);
digitalWrite (bakgrundsbelysning, låg);
Delay(250);
noTone(buzzer);
bryta;
}
}
}
void forward() //define vad är framåt
{
rightservo.write(rSpeed); den rör sig med hastigheten du valt i app
leftservo.write(lSpeed);
}
void back() //define vad är bakåt
{
rightservo.write(lSpeed);
leftservo.write(rSpeed);
}
void left() //define återstår
{
rightservo.write(rSpeed);
leftservo.write(rSpeed);
}
void right() //define vad som är rätt
{
rightservo.write(lSpeed);
leftservo.write(lSpeed);
}
void forwardright() //define vad är forwardright
{
rightservo.write(90);
leftservo.write(lSpeed);
}
void forwardleft() //define vad är forwardleft
{
rightservo.write(rSpeed);
leftservo.write(90);
}
void backwardleft() //define vad är backwardleft
{
rightservo.write(90);
leftservo.write(rSpeed);
}
void backwardright() //define vad är backwardright
{
rightservo.write(lSpeed);
leftservo.write(90);
}
Annullera Stop() //define vad är stop
{
rightservo.write(90);
leftservo.write(90);
}
-------------------------------------------------------------------------------------------------------------------
App:
https://Play.Google.com/store/apps/details?ID=Braulio.Calle.bluetoothRCcontroller&hl=nl