Argus (3 / 5 stap)

Stap 3: Programing

de codering die ik gebruikte is ene

Jesper Birk

autonome auto
Gemaakt door Jesper Birk - 2014

int motorPin1 = 6; motor draad aangesloten op digital pin 5
int motorPin2 = 5; motor draad aangesloten op digital pin 6
int motorPin3 = 7; stuurinrichting motor draad aangesloten op digital pin 7
int motorPin4 = 8; stuurinrichting motor draad aangesloten op digital pin 8

int steeringMotorSpeed = 150; Stel standaard macht om te sturen naar de motor sturing

int avoidDistance = 25;
int endAvoidDistance = 30;

int goToReverseDistance = 45;
int reverseTime = 2000;

int fullTrottleMinDistance = 150;

int fullTrottleSpeed = 220;
int cruiseSpeed = 160;
int avoidSpeed = 120;
int reverseSpeed = 130;

int sensorDelay = 100; //

lange randNumber;
int avoidDirection = 1;
int avoidCirclesBeforeDirectionChange = 10;
int countDown = 1;
int distanceCountDown = 1;

#include "Ultrasonic.h"
Ultrasone ultrasonic(12,13);

int afstand = (ultrasone. Ranging(cm));

De Setup-methode wordt uitgevoerd zodra, wanneer de schets begint

VOID Setup {}

Initialiseer seriële communicatie met 9600 bits per seconde:
Serial.begin(9600);

randomSeed(analogRead(0));

Initialiseer de digitale pinnen als uitgang:
pinMode (motorPin1, OUTPUT);
pinMode (motorPin2, OUTPUT);
pinMode (motorPin3, OUTPUT);
pinMode (motorPin4, OUTPUT);
}

//////////// LOOP ////////////

void loop
{
Serial.println ("start lus");

Serial.println (ultrasone. Ranging(cm));

choseMode();

afstand = (ultrasone. Ranging(cm));

OMGEKEERDE MODUS / / /
Als (afstand < = goToReverseDistance) {}
avoidDirection = avoidDirection * -1;

while(Distance < avoidDistance) {}
Serial.println ("start omgekeerde");
if(avoidDirection == 1) {/ / schakelen unidirectioneel
analogWrite (motorPin3, steeringMotorSpeed);
digitalWrite (motorPin4, laag);
} else {/ /... of de andere manier
analogWrite (motorPin4, steeringMotorSpeed);
digitalWrite (motorPin3, laag);
}
analogWrite (motorPin2, reverseSpeed); motor - roteert achterwaarts
digitalWrite (motorPin1, laag);
delay(reverseTime); voor tijd instellen in reverseTime
delay(sensorDelay);
afstand = (ultrasone. Ranging(cm));
// }

digitalWrite (motorPin2, laag); Stop motoren
digitalWrite (motorPin3, laag);
digitalWrite (motorPin4, laag);

avoidDirection = avoidDirection * -1; switch sturen richting

afstand = (ultrasone. Ranging(cm));
}
///////////////////////////////////////////////

VERMIJD MODUS / / /

afstand = (ultrasone. Ranging(cm));

if(Distance < avoidDistance) {}
Serial.println ("start Vermijd");

afstand = (ultrasone. Ranging(cm));
countDown = avoidCirclesBeforeDirectionChange;
distanceCountDown = afstand;

terwijl (afstand < = endAvoidDistance & & afstand > goToReverseDistance) {}
if(avoidDirection == 1) {}
analogWrite (motorPin3, steeringMotorSpeed); Draai unidirectioneel
digitalWrite (motorPin4, laag);
} else {}
analogWrite (motorPin4, steeringMotorSpeed); of draai de andere kant
digitalWrite (motorPin3, laag);
}

analogWrite (motorPin1, avoidSpeed); motor draait
digitalWrite (motorPin2, laag); instellen van de Pin motorPin2 lage
delay(sensorDelay);
afstand = (ultrasone. Ranging(cm));
if(Distance < distanceCountDown) {countDown--;} / / als obstakel wordt steeds dichterbij - graaf tot het veranderen van richting
Als (countDown < 1) {}
avoidDirection = avoidDirection * -1; switch sturen richting
countDown = avoidCirclesBeforeDirectionChange;
distanceCountDown = afstand;
}
Serial.println(distance);
Serial.println(avoidDirection);
} / / end terwijl (Vermijd)
digitalWrite (motorPin3, laag);
digitalWrite (motorPin4, laag);
}
///////////////////////////////

CRUISE MODE / / /
afstand = (ultrasone. Ranging(cm));
terwijl (afstand > avoidDistance & & afstand < fullTrottleMinDistance) {}
analogWrite (motorPin1, cruiseSpeed); motor draait
digitalWrite (motorPin2, laag); instellen van de Pin motorPin2 lage
delay(sensorDelay);
afstand = (ultrasone. Ranging(cm));
Serial.println("Cruise");
Serial.println(distance);
} / / end terwijl
VOLLE SNELHEID MODUS / / /
afstand = (ultrasone. Ranging(cm));
while(Distance > fullTrottleMinDistance) {}
analogWrite (motorPin1, fullTrottleSpeed); motor draait
digitalWrite (motorPin2, laag); instellen van de Pin motorPin2 lage
delay(sensorDelay);
afstand = (ultrasone. Ranging(cm));
Serial.println("Full");
Serial.println(distance);
} / / end terwijl

Serial.println ("herstart lus");
Serial.println(distance);

}

Gerelateerde Artikelen

Argus, de Sentinel: een prop pistool

Argus, de Sentinel: een prop pistool

heb je ooit net reizen de dystopische onderwereld en zojuist een echt slechte dag. Of vechten om te overleven op de rand van de beschaving, had misschien zelfs piraten aan boord van uw luchtschip proberen? U zou geen zorgen als u had uw trouwe Sentin
The 3D Printed Paint Chip

The 3D Printed Paint Chip

September 2014, werd ik ingevoerd om de Epson scanner. Ik heb gescand in honderden kleine fragmenten van gedroogde, gelaagde verf op 2400 dpi, vastleggen van details voorbij menselijke visie of fotografie. Dit effect van hyperrealistische neutraliser
60 jaar oude digitale camera??

60 jaar oude digitale camera??

ik zal de eerste toegeven dat dit project is geen kritieke probleem opgelost en geen praktisch doel dan dient een beetje plezier met andere mensen.Mijn doel was om een moderne digitale camera in de behuizing van een oude, verouderde camera installere
Opto-scopische Rotator

Opto-scopische Rotator

de Opto-scopische Rotator - een hybride van een vintage diaprojector [Argus Model III serie] en een Penn Peer 309 visserij-reel. Deze hybride apparaat, bijvoorbeeld, kunt u een afbeelding [zoals hieronder, op een papierrol] weergeeft in verhalende vo
DIY computer PlatBestand programma databasesjabloon.

DIY computer PlatBestand programma databasesjabloon.

Database is soort van een archiefkast. met een beetje van code kunnen we emuleren een archiefkast met een computer. Dit programma is niet relationele, noch zal het vervangen van een volledige commerciële programma. It's alright voor experimenten doel
Hoe het bouwen van een tilt/shift lens

Hoe het bouwen van een tilt/shift lens

dit zal u tonen hoe te bouwen van een zuinige tilt/shift lens voor uw slr.  U moet een slr camera digitale of analoge, de binnenband van een fiets, sommige zip-banden, schaar, een vergroter of soortgelijke lens die kan worden geschoven in de binnenba