InstaKISS: Networked tavelramar (17 / 19 steg)
Steg 17: Kalibrera Mic Amp
Den sändande (tx) ram har mic, som används som vind, eller blåst kyss, sensor. Denna Adafruit komponent är en mic och operationsförstärkare (op-amp) allt-i-ett. Enkelt uttryckt, en op-förstärkare har två ingångar och en utgång, tar skillnaden av de två ingångarna och förstärker det. Denna breakout har en trimmer pott på baksidan där vinsten kan vara inställd från 25 x 125 x indata. Ställa in känsligheten blir det mindre eller mer lyhörd till din andedräkt.
För att få en känsla av hur lyhörd är det öppna Arduino IDE och navigera till exempel skiss AnalogReadSerial. Koppla in Edison till datorn via USB (koppla ifrån batteriet om ansluten). Om du är obekant med Arduino, kolla in sidan hur man på deras hemsida.
Öppna seriell övervaka och titta på värdena som finns i. Du kommer att märka de kommer lite snabbt. De kan bromsas genom att ändra fördröjningen till 100 millisekunder.
Delay(100); dröjsmål i mellan läser för stabilitet
Nu kan du blåsa i mikrofonen från distansera som känns bekvämt och se hur om det är tillräckligt lyhörda. Om du får en 0 när blåser, detta innebär att det är klippning, att hjälpa till med att vända trimmern till vänster att göra den mindre mottaglig. Jag tycker att det är bra att vända potten varje kvartal, halv eller full tur, det är lättare att hålla reda hur långt du har gått denna väg.
För att se om en blåst kyss har inträffat, kommer ett enkelt Om uttalande att användas att se om värdet av sensorn går över ett visst nummer. Detta nummer vi satt som gräns anses nu en kyss som händer och kommer att skriva ut ordet "kyssen" till seriell bildskärmen.
Fortsätta att justera trimmern för att hitta ett intervall med värden som överensstämmer med din blåsta kiss aktion. Ta den lägsta siffran och runda som. Till exempel om min sensor är mata omkring 300 när ingenting händer och jag ser 620-650 poppar upp när jag blåser, kommer jag släppa som ner till 600 att ge det en marginal. Detta är inte nödvändigt, men jag tycker det hjälper att starta lägre och sedan gå stegvis när det behövs. När du har numret testa mot, koppla in den i en if sats och lägga till skissen.
ersätta 400 med din låga värde
om (sensorValue > 400) {
Serial.println("Kiss");
}
Skissen i sin helhet.
void setup() {
initiera seriell kommunikation på 9600 bitar per sekund:
Serial.BEGIN(9600);
}
loop rutinen körs för evigt om och om igen:
void loop() {
Läs input på analoga stift 0:
int sensorValue = analogRead(A0);
skriva ut värdet du läsa:
Serial.println(sensorValue);
Delay(100); fördröjning mellan läsningar för stabilitet < br >
ersätta 400 med din låga värde
om (sensorValue > 400) {
Serial.println("Kiss");
}
}
Untether och ansluta
Hålla kretsen ansluten till datorn via USB-kablar tills det har framgångsrikt ansluten och genererade en HTML-sida. Detta sätt du kan titta på de anslutningar som görs genom den seriella monitorn och kan göra någon felsökning om behöver vara.
När ramen har genererat sidan, och du kan få en "(kiss)" skriva ut, Anslut batteriet, avmontera Edison från datorn och koppla ur USB-kablar.