ArduBot (5 / 8 stap)

Stap 5: sensoren


De parallax en arduino Gemeenschap hebben ruime voorbeeld codes over het uitvoeren van de PIR en PING sensoren gebruikt in deze robot. Dus het moet alleen een kwestie van toewijzen en zelfstandige functies voor elke sensor zodat wij voor hen bellen kunnen wanneer we maar willen.
Hier zijn een paar functies die ik heb gedefinieerd voor de PING-sensor:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

niet-ondertekende lange duur, inch, cm, dir;   duur meet de tijd tussen PINGs
lange minsafe = 15;                         minimale veiligheidsafstand tegenover robot
int count;                                 gebruikt om te helpen identificeren wanneer de robot in een hoek is

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned long PING() {//triggers de sensor van de ping eenmaal en retourneert de waarde
pinMode (pingPin, OUTPUT);              Maken van de Pingpin voor de uitvoer van
digitalWrite (pingPin, laag);                 Stuur een lage puls
delayMicroseconds(2);                        Wacht twee microseconden
digitalWrite (pingPin, hoge);               Stuur een hoge pols
delayMicroseconds(5);                       wacht 5 micro seconden
digitalWrite (pingPin, laag);               Stuur een lage puls
pinMode(pingPin,INPUT);                 Schakel de Pingpin in te voeren
duur = pulseIn (pingPin, hoge); luisteren voor de echo

/ * Micro seconden omzetten in Inches
*/

duim = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.Print (cm);
Serial.Print ("CM");
Serial.println ();

retourneren cm;

}

lange microsecondsToInches(long microseconds) {}
retourneren van microseconden / 74 / 2;
}
lange microsecondsToCentimeters(long microseconds) {}
retourneren van microseconden / 29 / 2;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned long leftping () {//records afstand aan de linkerkant van de robot en wordt hersteld naar het midden
int links;                                            gebruikt voor het registreren van de afstand gemeten door de PING)
LINKS ();
vertraging (420);
STOPPEN ();
delay(10);

Serial.Print ("links:");
links = PING ();
vertraging (420);

RECHTS ();
vertraging (420);
STOPPEN ();
terug links;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned long rightping () {//records afstand tot het recht van de robot en wordt hersteld naar het midden
int recht;
RECHTS ();
vertraging (420);
STOPPEN ();
vertraging (10);

Serial.Print ("recht:");
rechts = PING ();
vertraging (420);

LINKS ();
vertraging (420);
STOP();
terug gelijk te hebben;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned long forwardping () {//essentiallhy PING
int midden;
STOPPEN ();
vertraging (10);
Serial.Print ("Midden:");
Midden = PING ();
keren midden;

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

niet-ondertekende lang kiezen () {//used om te kiezen tussen onze twee ping functies
leftping();
forwardping();
rightping();
if(leftping > rightping)
Als (leftping > forwardping)
LINKS ();
vertraging (420);
STOP();
dir = forwardping ();
Als (rightping > leftping)
Als (rightping > forwardping) {}
RECHTS ();
vertraging (420);
STOP();
dir = forwardping ();
} else
STOPPEN ();
dir = forwardping ();

}
/////////////////////////////////////////////////////////////////////////////////////////////////////

Gerelateerde Artikelen

Een Arduino Infrared Controlled en het obstakel te vermijden Robot

Een Arduino Infrared Controlled en het obstakel te vermijden Robot

Hallo iedereen,Deze Instructables is verdeeld in twee fasen, waardoor het geschikt is voor zowel de beginner als de tussenliggende robot ontwerpers.De eerste fase omvat het gebruik van de arduino nano bord alleen als de controller. Met dit gaan wij o
Experimenteel robotic platform

Experimenteel robotic platform

Hallo! Mijn naam is Andrew, en ik ben een student informatica.Ik begon te werken aan deze robot voor de beide lol en als onderdeel van mijn bachelorproef.Het begon allemaal toen ik hem een robot kit van een site genaamd Conrad kocht: LinkHet leek als