Stap 15: Code
Raadpleeg het bestand hieronder.
Omdat we de code voor verschillende draaien technieken eerder meegemaakt, zullen wij alleen de combinatie van de schetsen hier behandelen:
1. verklaar globale variabelen in het begin, het verzamelen van alle globale variabelen hier van vorige schetsen. Op hetzelfde moment, Controleer of er geen conflicten met de namen.
2. deze functies (microsecondsToInches, microsecondsToCentimeters en distanceCm), is afkomstig van de afstand sensor code.
3. Trek in functies met betrekking tot het lopen zoals moveForward() van eerdere schetsen in dit hoofdstuk.
4. Voeg alle regels van de Setup-functie binnen het nieuwe programma Setup functie. De code van de verzoekinstellingen voor de pin-modi is identiek aan het vorige voorbeeld.
5. er is een nieuwe code in de belangrijkste programma's loop functie. Dit is de centrale programmalogica.
6. het meten van een afstand naar een object voor ons met de distanceCm() functie.
7. soms de PING))) sensor resulteren mogelijk in een onjuiste lezing van 0,00. Dit is niet ongewoon voor sensoren van dit type; Wij moeten echter deze valse lezingen compenseren met een eenvoudig filter. Dit als verklaring toe: staan alleen lezingen boven 1cm te passeren.
8. als de gemeten afstand (distanceFront) langer dan 1cm, maar korter is dan de aangegeven startAvoidanceDistance is, een obstakel wordt gedetecteerd en moet worden vermeden.
9. Vermijd het obstakel door back-up en draaien naar rechts voor negen stappen. De vertraging voor walkSpeed is het ritme van de stappen voor het consistent houden. Vervolgens 11 stappen naar voren en draai tegelijkertijd aan de linkerzijde. BK. Als er geen beletsel binnen het bereik van 20cm is, neem een stap voorwaarts met moveForward().
Nu het insect vooruit lopen kan. Het zal ook obstakels vermijden zonder ze aan te raken.