Arduino-Smart avstånd kontrollerade insekt (15 / 15 steg)
Steg 15: kod
Finns i filen nedan.
Eftersom vi gick igenom koden för olika roterande tekniker tidigare, kommer vi att täcka endast en kombination av skisserna här:
1. förklara globala variabler i början, samla alla globala variabler här från tidigare skisser. På samma gång, kontrollera att det finns inga konflikter med namnen.
2. dessa funktioner (microsecondsToInches, microsecondsToCentimeters och distanceCm) kommer från avstånd sensor koden.
3. dra in funktionerna som är relaterade till walking som moveForward() från tidigare skisser i detta kapitel.
4. Lägg till alla rader från den setup() funktionen inom det nya programmet setup() funktion. Åtkomstkoden för pin lägen är identisk med föregående exempel.
5. det finns ny kod i programmets huvudsakliga loop() funktion. Detta är centrala programmets logik.
6. Mät avstånd mot ett objekt framför oss med funktionen distanceCm().
7. ibland, PING))) sensor kan returnera en felaktig tolkning av 0,00. Detta är inte ovanligt att givare av denna typ; Vi måste dock kompensera dessa felaktiga avläsningar med ett enkelt filter. Detta om uttalande tillåter endast mätvärden över 1cm att passera.
8. om det uppmätta avståndet (distanceFront) är längre än 1cm men kortare än den deklarerade startAvoidanceDistance, ett hinder upptäcks och måste undvikas.
9. Undvik hinder av bakningen upp och vrida till höger för nio steg. Fördröjningen för walkSpeed är att hålla rytmen i våra steg konsekvent. Sedan ta 11 steg framåt och samtidigt sväng vänster. BK. Om det finns något hinder inom intervallet 20cm, ta ett steg framåt med moveForward().
Nu kan insekten gå framåt. Det kommer också att undvika hinder utan att röra dem.