Stap 1: Programmeren Logic
-met inbegrip van bibliotheken;
-initialiseren van variabelen en constanten;
-definiëren en initialiseren van de pinnen;
-initialiseren van seriële communicatie;
-"BEGIN"
-Bel routine om te stoppen met motoren;
-positionering van de servo tot 90 graden;
-lezen van de FRONT-afstand en winkel;
-servo positie op 0 graden;
-LINKER afstand lezen en op te slaan;
-positionering van de servo tot 180 graden;
-JUISTE afstand lezen en op te slaan;
-vergelijking (1): voorkant is groter dan links?;
-Ja:-vergelijking (2): voorkant groter is dan recht?;
-Ja:-Bel routine vooruit;
-geen:-Bel routinel aan rechtsaf;
-geen:-(vergelijking (1) is minder dan:-Bel routine linksaf;
-Als enige voorwaarde mogelijk is (alle afstanden zijn precies gelijk is aan: - vooruit en stop voor een tijdje, en dus begint de cyclus opnieuw.
-loopafstand tot het detecteren van minder dan 20 cm;
-lus om de "BEGIN";
Opmerking - 1:
De motoren moeten worden verbonden om de dezelfde rotatiesnelheid en richting, zodat de robot vooruit - hoge waarde op pin 2 van elke motor en pin 1 gehandhaafd op een laag niveau.
Het stroomdiagram laten zien, het uitvoeren van deze programmeerfuncties (slechts als voorbeeld):
Opmerking - 2:
Met behulp van dezelfde hardware, is een tweede versie met een eenvoudiger code gemaakt. Waar de bediening is als hieronder:
In eerste instantie loopt de robot naar voren totdat hij optreden een hindernis op een afstand van minder dan het maximum afstand;
Vervolgens analyseert hij de "Right" afstand - als de "Right" afstand groter dan de limiet afstand is-hij kiest te schakelen "Right" en vooruit;
Als de "Right" afstand kleiner dan de limiet afstand is-hij de "Left" afstand - analyseert als de "Left" afstand groter dan de limiet afstand is - kiest hij te schakelen "Left" en vooruit;
Als geen van de afstanden, zowel "Right" en "Left" is niet bevredigend - hij 180 graden draaien en vooruit.
Het starten van een nieuwe cyclus.
In de sectie Software en programmering vindt u beide versies om te downloaden.