ANDROID kontrollerade min upptäckt ROBOT
Vi hade framgångsrikt gjort en robot med en tillämpning av metall identifiering och övervakning som kan förlängas till många andra program. I grunden för att bygga denna robot hade vi beslutat att använda bilen som ett chassi för den mottagande kretsen, vars rörelse kan styras av en android app för smarta telefoner spela en nyckelroll i våra liv genom att bli allt i en enhet med många viktiga funktioner som Bluetooth, GPS, accelerometer som kan användas till att styra robotar mycket lätt. Mobiltelefonen används därför som ett system i vårt projekt. För att ge en modulbaserad metod till vårt projekt vi har delat upp vårt projekt i två delar: sändare & mottagare. Båda dessa delar var tillsammans och den slutliga produkten fungerar mycket effektivt.
För att bygga roboten, behöver vi följande komponenter:
1. android app
2. Bluetooth-modul HC05
3. Atmega 328 PU (2 ICs)
4. RF-sändare och mottagare moduler
5. chassi
6. DC motorer
7. däck
8. metall upptäcka hobby krets
9. trådlös hålkamera
10.9V batteri
Massor av appar finns tillgängliga på google spela store som kan hämtas men i vårt projekt har vi fått en källa koden och modifed det med hjälp av endast 4 motioner: framåt, bakåt, höger och vänster. Dessutom hade vi lagt till en stoppknapp och ett ljus på/av-knapp. App har utvecklats med android studio. En skärmdump av vår app visas.
SÄNDAREN AVSNITT:
Den sändande enheten består av en android app som består av riktningarna som ska flyttas och knappar för ledde på och av. Signalerna överförs från enhet via Bluetooth till avkodas av en mikrokontroller och skickas till RF-moduler. Vi har använt RF-moduler som en lösning för att öka intervallet för en enhet att arbeta i RF system. de behöver inte vara i siktlinjen. Med andra ord, består avsnittet överföring av:
· Android app
· Bluetooth-modul
· Encoder IC
· RF-sändare
MOTTAGARE AVSNITT:
De uppgifter som mottagits av RF mottagaren skickas till dekodern IC som kopplas till motor-drivrutinen IC. Den avkodade utgången ges till den motorn föraren IC som driver motorerna till bilen i önskad riktning. Den mottagande delen av RC bilen har portar där vi kan införa ytterligare kringutrustning. I detta projekt, vi har kopplats ihop två funktioner: en metalldetektor krets och en trådlös hålkamera. Den mottagande delen består av:
· RF-mottagare
· Dekoder IC
· Motorn förarens IC
· Likströmsmotorer inriktad
· Metalldetektor modul
Wireless pinhole spionkamera
Avsnittet mottagaren placeras i chassit på den bilmodell som vi hade designade och tillverkade med akryl blad med dimension 20 x 12 x 5 cm som kan öppnas från ovansidan.
Vi hade köpt en trådlös hålkamera från ebay tillsammans med en USB-adapter att övervaka de videor som tagits med roboten i laptop. Den kan anslutas till TV också.
Metalldetektor kretsen är lödda med tillgängliga komponenterna i kretsen som hobby och drivs med ett 9V batteri och kollade. Sedan är denna krets placerade inuti chassit tillsammans med RF-mottagare kretsen och kameran som drivs oberoende av varandra med en annan 9V batteri. Mottagande kretsen att det består av Atmega IC och IC motor föraren för att styra roboten rörelse. Metalldetektor kretsen har en Summer som låter när roboten upptäcker en metall. Känsligheten av vår metalldetektor är 1 tum.
Kretsarna som sändare och mottagare visas i figur. Vi kommer att fästa ursprungskoderna snart för sändare och mottagare Atmega ICs.
Det framtida arbetet i vårt projekt kan endast begränsas av vår fantasi. Denna mycket anpassningsbara chassi är utformad så att användaren kan enkelt lägga till på delar. Genom att lägga till en infraröd eller ultrasonic sensor en autonom läge kan genomföras och roboten kommer att driva runt samla data. Vi kan också köra app över wifi så det kan ansluta till en webbplats, gör detta att trygghet arbetare att titta på flera robotar kör runt en anläggning. Telefonens mikrofon kan användas för att upptäcka och överföra ljud för att uppmärksamma användaren. En bild fånga läge kan även genomföras så att du kan spara filmen. En annan fördel med att återanvända en telefon som en IP-kamera, är en kunde utnyttja det breda spektrum av funktioner genomsnitt smarta telefonen innehåller till exempel ljussensor, GPS, kompass och även en blixt ljus. Alla dessa funktioner kan genomföras i vår app.
KODER
SÄNDAREN AVSNITT
/*
Arduino drivrutin för Android app fjärrkontroll.
Denna skiss lyssnar på instruktioner på den seriella porten
sedan skickar instruktioner till RF-mottagare via en RF-sändare
*/
#include
SoftwareSerial bluetooth (10, 11); denna funktion används för att ändra RX TX pins
int const FWD = 2; för arduino till 10 och 11 stift
int const BWD = 4;
int const RIGG = 7.
int const LEF = 8.
void setup() {
pinMode (FWD, OUTPUT);
pinMode (BWD, OUTPUT); initierar pins som indata och utdata
pinMode (RIG, OUTPUT);
pinMode (LEF, OUTPUT);
initialt ställa upp rakt fram, ingen hastighet
digitalWrite (FWD, låg);
digitalWrite(BWD,LOW);
digitalWrite (RIG, låg); inledande inställningsvärden för stift
digitalWrite (LEF, låg);
Serial.BEGIN(9600);
Bluetooth.BEGIN(9600); Ange baudvärde
}
void loop() {
om det finns inkommande seriella data:
om (bluetooth.available() > 0) {
Läs den äldsta byten i följetong buffert:
int incomingByte = bluetooth.read();
åtgärder beroende på anvisningen
samt genom att sända en bekräftelse tillbaka till app
växel (incomingByte) {
fallet "F":
moveForward(true);
Serial.println ("kommer fram");
bryta;
fallet "R":
turnR(true);
Serial.println ("vrida rätt");
bryta;
fallet "L":
turnL(true);
Serial.println ("svänger vänster");
bryta;
fallet "B":
moveBackward(true);
Serial.println ("går baklänges");
bryta;
fallet ":
moveStops(true);
Serial.println("stopping");
bryta;
fallet "X":
Ledon(true);
Serial.println ("tända på");
bryta;
fall "Y":
Ledoff(true);
Serial.println ("Light OFF");
bryta;
standard:
om ingenting matchar, gör ingenting
bryta;
}
}
}
void moveForward(boolean forward) {
Boolean fram styr motor riktning
om (framåt)
{
digitalWrite (FWD, hög);
digitalWrite(BWD,LOW);
digitalWrite (RIG, låg);
digitalWrite (LEF, låg);
Serial.println ("kommer");
}
}
void Ledon(boolean on) {
Boolean ledde ljus kontroll av bot
om (på)
{
digitalWrite (FWD, hög);
digitalWrite(BWD,HIGH);
digitalWrite (RIG, låg);
digitalWrite (LEF, låg);
Serial.println ("LED på");
}
}
void Ledoff(boolean offF) {
Boolean ledde ljus kontroll av bot(turning off)
om (offF)
{
digitalWrite (FWD, hög);
digitalWrite(BWD,HIGH);
digitalWrite (RIG, hög);
digitalWrite (LEF, låg);
Serial.println ("LED av");
}
}
void moveBackward(boolean backward) {
booleska bakåt kontroller motor riktning
om (bakåt)
{
digitalWrite (FWD, låg);
digitalWrite(BWD,HIGH);
digitalWrite (RIG, låg);
digitalWrite (LEF, låg);
Serial.println ("går ner");
}
}
void moveStops(boolean stops) {
booleska stopp för støping motorn
om (slutar)
{
digitalWrite (FWD, låg);
digitalWrite(BWD,LOW);
digitalWrite (RIG, låg);
digitalWrite (LEF, låg);
Serial.println("stops");
}
}
void turnR(boolean rightR) {
booleska rätt kontroller motor riktning
om (rightR) {
digitalWrite (FWD, låg);
digitalWrite(BWD,LOW);
digitalWrite (RIG, hög);
digitalWrite (LEF, låg);
Serial.println ("går rätt");
}
}
void turnL(boolean rightL) {
booleska vänster kontroller motor riktning
om (rightL) {
digitalWrite (FWD, låg);
digitalWrite(BWD,LOW);
digitalWrite (RIG, låg);
digitalWrite (LEF, hög);
Serial.println ("kommer vänster");
}
}
int const PP = 0;
int const P1 = 1;
int const P2 = 2;
int const P3 = 3;
int const P4 = 4;
int const P5 = 5;
int const P6 = 6;
int const P7 = 7.
int const P8 = 8.
int const P9 = 9.
int const P10 = 10;
int const P11 = 11;
int const P12 = 12.
int const P13 = 13.
MOTTAGARE AVSNITT
/ * Detta program får de instruktioner som är skicka RF sändaren och kontrollerar bot därför * /
int const PP = 0;
int const P1 = 1;
int const P2 = 2;
int const P3 = 3;
int const P4 = 4;
int const P5 = 5;
int const P6 = 6;
int const P7 = 7.
int const P8 = 8.
int const P9 = 9.
int const P10 = 10;
int const P11 = 11;
int const P12 = 12.
int const P13 = 13.
void setup() {
pinMode (PP, indata);
pinMode (P1, indata);
pinMode (P2, indata);
pinMode (P3, indata);
pinMode (P4, OUTPUT);
pinMode (P5, OUTPUT);
pinMode (P6, OUTPUT);
pinMode (P7, OUTPUT);
pinMode (P8, OUTPUT);
pinMode (P9, OUTPUT);
pinMode (P10, OUTPUT);
pinMode (P11, OUTPUT); initierar som indata och utdata
pinMode (P12, OUTPUT);
digitalWrite (PP, låg);
digitalWrite (P1, låg);
digitalWrite (P2, låg);
digitalWrite (P3, låg);
digitalWrite (P4, låg);
digitalWrite (P5, låg); inledande inställningsvärdena Pins
digitalWrite (P6, låg);
digitalWrite (P7, låg);
digitalWrite (P8, låg);
digitalWrite (P9, låg);
digitalWrite (P10, låg);
digitalWrite (P11, låg);
digitalWrite (P12, låg);
}
void loop() {
int C1 = digitalRead(PP);
int C2 = digitalRead(P1);
int C3 = digitalRead(P2); läsa data erhålls genom RF-mottagare
int C4 = digitalRead(P3);
int C5 = digitalRead(P9);
om (C1 == hög & & C2 == låg) {
IF(C3==low) {
digitalWrite (P4, hög);
digitalWrite (P5, låg); villkor för framåtgående rörelse
digitalWrite (P6, hög);
digitalWrite (P7, låg);
}
}
om (C2 == hög & & C1 == låg) {
IF(C3==low) {
digitalWrite (P4, låg);
digitalWrite (P5, hög); bakåt
digitalWrite (P6, låg);
digitalWrite (P7, hög);
}
}
om (C3 == hög & & C2 == låg) {
IF(C1==low) {
digitalWrite (P4, hög);
digitalWrite (P5, låg);
digitalWrite (P6, låg); höger
digitalWrite (P7, hög);
}
}
om (C4 == hög & & C3 == låg) {
om (C2 == låg & & C1 == låg) {
digitalWrite (P4, låg);
digitalWrite (P5, hög);
digitalWrite (P6, hög); vänster
digitalWrite (P7, låg);
}
}
om (C1 == hög & & C2 == hög) {
om (C3 == låg & & C4 == låg)
{
digitalWrite (P8, hög); LED på
}
}
om (C1 == hög & & C2 == hög) {
IF(C3==High
& & C4 == låg) {
digitalWrite (P8, låg); ledde bort
}