Roboten labyrint Problemlösaren
Denna handledning hjälper dig skapa en Arduino baserad robot som kan lösa grundläggande linje labyrinter som inte har slutna slingor.
Hur det fungerar:
Roboten är programmerad att köra över de svarta linjerna av labyrinten och använda optiska sensorer på botten av roboten för att spåra linjerna. Som den färdas längs, kommer det program som vi använder lösa labyrinten för den kortaste vägen med en enkel att förstå metoden kallas "Vänster Hand regeln" eller ibland kallas metoden "Vänster Hand på väggen".
"Vänster Hand regeln" strategi är att ta dig fram genom labyrinten, när man väljer hur man vänder vid korsningar som följer:
- Alltid sväng vänster om du kan
- Om du inte kan sväng vänster, gå rakt
- Om du inte kan sväng vänster eller gå direkt, sväng höger
- Om du inte kan sväng vänster, gå rakt eller sväng höger, sväng eftersom du måste vara på en återvändsgränd
Metod att lösa labyrinten för en kortare sökväg är genom att hålla reda på de vänder sig gjort och minska listan över vänder när du lägger till det senaste tur i listan med kända substitutioner. Ersättningarna är tre vända kombinationer där antingen (L) eft, (R) ätt eller (S) släpa visas på vardera änden av en b ack enligt följande:
- LBR = B
- LBS = R
- LBL = S
- SBL = R
- SBS = B
- RBL = B
Till exempel från utgångspunkten:
- Börja flytta
- (L) eft tur görs hittade skärningen
- Lägga till "L" listan
- Kontrollera om senast tre på listan kan förkortas: Nej, endast en tur registreras.
- (B) ack på en hittade återvändsgränd
- Lägga till "B" listan
- Kontrollera om senast tre på listan kan förkortas: Nej, endast två blir inspelade.
- (L) eft slå igen när den hittar första korsningen där det tidigare visade vänster
- Lägga till "L" listan
- Kontrollera om senast tre på listan kan förkortas: Ja.
- Ersätt "LBL" med "S" släpa
- Fortsätt tills slutpunkten finns.
Sökvägen förkortades så det kommer att köras löst sökvägen blir när labyrinten är kör igen från startposition. Från början, kommer det nu kör rakt fram genom korsningen och undvika återvändsgränd.
Mer om teorin bakom olika labyrint lösa algoritmer kan hittas här: https://en.wikipedia.org/wiki/Maze_solving_algorithm
Robotens program körs våra exempelkod från en Arduino kompatibel micro controller. Om du är obekant med Arduino, du kan lära dig allt om det och Hämta programvaran programmering på www.arduino.cc.