Den där Ben Eater ovan gör bara samma sak hela tiden. Rätt tråkiga projekt också. Men han är duktig för att få det optimalt.
Ja. Denna bil låter intressant. Men jag hade mer tänkt en vanlig leksaksbil där man kan ha 4 stycken ultrasonicgivare på varje hörn.
Förstår inte så mycket vad du menar. Så jag ritar en bild istället.
på bästa sätt.
Då har jag gjort en simulering som ser ut så här. Jag har skrivit en algoritm i 100% rent C som räknar ut den absolut kortaste vägen.
Kod: Markera allt
Initial map
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 0 0 0 0 0 0 0 0 0 0 0 -1
-1 0 0 0 0 -1 -1 -1 -1 -1 -1 0 -1
-1 0 0 0 0 -1 0 0 0 0 0 0 -1
-1 0 0 0 0 -1 0 0 0 0 0 0 -1
-1 0 0 0 0 -1 0 0 0 0 0 0 -1
-1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 0 -1
-1 0 0 0 0 0 0 0 0 0 0 0 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Compute the coordinates
Shortest step is = 21
Total speed was 0.000060
Computed map
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 9 8 -103 -104 -105 -106 -107 -108 -109 -110 -111 -1
-1 -100 -101 -102 10 -1 -1 -1 -1 -1 -1 -112 -1
-1 14 24 40 16 -1 -118 -117 -116 -115 -114 -113 -1
-1 24 40 32 24 -1 -119 2 3 4 5 6 -1
-1 40 32 24 16 -1 -120 1 2 3 4 5 -1
-1 24 -1 -1 -1 -1 -1 -1 -1 -1 5 6 -1
-1 28 24 20 16 12 8 6 4 5 6 7 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
x = 1, y = 2
x = 2, y = 2
x = 3, y = 2
x = 3, y = 1
x = 4, y = 1
x = 5, y = 1
x = 6, y = 1
x = 7, y = 1
x = 8, y = 1
x = 9, y = 1
x = 10, y = 1
x = 11, y = 1
x = 11, y = 2
x = 11, y = 3
x = 10, y = 3
x = 9, y = 3
x = 8, y = 3
x = 7, y = 3
x = 6, y = 3
x = 6, y = 4
x = 6, y = 5
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
x = -1, y = -1
Jag hade tänkt att man börjar först med en tom mapp där vi inte vet vart alla hinder där. Sedan får man köra bilen och den ska bygga mappen av sig själv igenom att spara alla "block" i EEPROM för varje korrdinat som ändras.
Som jag ser det som så måste ha en stor 1D array och specificera att varje block är ca 10 cm i verkligheten.
Men då finns det ett problem! Hur vet bilen att jag är på X = 7 och Y = 5? Jag måste ha någon GPS inbyggt eller?