Swarmbots: Autonoma Arduino bilar som spelar musikaliska stolar (4 / 6 steg)
Steg 4: Ljud sensorer
Koden genomförande:
Funktion findSoundMax (int t, int inc) används för ljud-sensor. När de genomför ljud sensorn, fann vi att sensorn är alltför känslig. När musiken var på, skulle sensorn ha drastiskt olika värden för när musiken var högt eller lågt. Som ett resultat, vi var tvungna att hitta den högsta ljudnivån i en viss tidsperiod, och använda den för att berätta om musiken var spela. Funktionen findSoundMax måste heltal variabler, soundMax och sensorSound. Funktionen gör sensorn lyssna på musik, då fördröjningen för en viss tid, t. Sedan det lyssnar på musiken igen, och om det är högre nu än tidigare, det högre värdet lagras som soundMax. Det gör denna inc mängd gånger. Vi använde t = 50 ms och inc = 20. Detta innebär att sensorn upprepar ovannämnda 20 gånger, försenar 50 ms mellan varje lyssna. Maximal sensor värdet överförs sedan till det variabla ljudet.
Om låter större än soundThresh, då vi ändra värdet av ett heltal, x, från -1 till 0. soundThresh är ett användardefinierat värde som experimentellt finns. Ljud nivåer ovan detta värde betyder musik spelas. Under detta värde är bara bakgrundsljud. Genom att sätta x = 0, vi vet att vi inte längre behöver lyssna till musik: funktion findSoundMax körs endast när x < 0. Koden kan nu fortsätta till raden spårar, kollisionsundvikande och mycket mer.