Deze tutorial zal helpen u bij het maken van een Arduino gebaseerde robot die kan oplossen van elementaire regel doolhoven die geen gesloten lussen.
Hoe het werkt:
De robot is geprogrammeerd om te rijden over de zwarte lijnen van het labyrint en het gebruik van optische sensoren op de bodem van de robot om de lijnen. Zoals het reist langs, zal het programma dat we gebruiken de doolhof voor de kortste route met een eenvoudig te begrijpen methode genaamd de "regel van de linkerhand" of ook wel genoemd de "linkerhand on Wall"-methode oplossen.
De "Regel van de linkerhand"-benadering is om uw weg door het labyrint, terwijl het kiezen van hoe om te schakelen op kruispunten als volgt:
- Altijd linksaf als je kunt
- Als u niet kunt linksaf, rechtdoor
- Als u niet linksaf of rechtdoor, sla rechtsaf
- Als u niet kunt linksaf, rechtdoor of sla rechtsaf, omdat u op een doodlopende weg moet omdraaien
De methode van het labyrint voor een korter pad op te lossen is door het bijhouden van de bochten gemaakt, en het verminderen van het aantal bochten terwijl u de laatste beurt toevoegt aan de lijst met bekende vervangingen. De substituties zijn drie draai combinaties waar eft (L), (R) vlucht of (S) traight zijn aan beide kanten van een ack (B) als volgt:
- LBR = B
- LBS = R
- LBL = S
- SBL = R
- SBS = B
- RBL = B
Bijvoorbeeld vanaf het startpunt:
- Start verplaatsen
- (L) eft beurt geschiedt bij gevonden snijpunt
- "L" aan lijst toevoegen
- Controleer als laatste drie op de lijst kan worden verkort: Nee, slechts één beurt opgenomen.
- B ack op een gevonden doodlopende weg
- "B" toevoegen aan lijst
- Controleer als laatste drie op de lijst kan worden verkort: Nee, draait slechts twee opgenomen.
- (L) eft weer wanneer het vindt het eerste kruispunt waarop eerder bleek links
- "L" aan lijst toevoegen
- Controleer als laatste drie op de lijst kan worden verkort: Ja.
- "LBL" vervangen door "S" traight
- Ga verder tot eindpunt is gevonden.
Het pad werd verkort dus het dat de opgeloste pad verandert draaien zal wanneer de doolhof opnieuw vanaf de beginpositie uitvoert is. Vanaf het begin, zal het nu rijden dwars door het snijpunt en Vermijd de doodlopende weg.
Meer over de theorie achter de verschillende doolhof oplossen van algoritmen kan hier worden gevonden: https://en.wikipedia.org/wiki/Maze_solving_algorithm
De robot programma zal onze voorbeeldcode uitvoert vanuit een Arduino micro controller compatibel. Als u onbekend met Arduino bent, u kunt leren alles over en download de programmeersoftware op www.arduino.cc.