De schichtig Nightscape - Jed Diller en Ken Hoff (2 / 6 stap)

Stap 2: Elektronica-overzicht


Uit onze ervaring, krijgen uw sensor te werken zoals de bedoeling is een van de moeilijkste onderdelen van dit project. Terwijl de lichte sensoren zijn redelijk stabiel, zijn goedkope microfoons niet. Als u wilt een lichte gevoelige scherm dan kunt u overslaan dit volgende deel over de microfoon en het hoofd omlaag naar het gedeelte over bedrading.

Het krijgen van uw microfoon onder controle:

Veel tijd aan dit project werd besteed proberen te krijgen van de microfoon onder controle. We hadden een heleboel problemen krijgen van de ruis in de gegevens tot een niveau dat werkbaar was. De analoge bereik op een poort van de Arduino is 0-1023. Met behulp van de vonk leuke electret breken-bestuur en controle van de analoge waarden wordt gelezen in, werd naar voren gebracht dat de waarden varieerden van 350-650 zelfs in de meest dodelijke stille omgevingen. Bruikbaar om gegevens te krijgen voor het genereren van de LED-gedrag, werd een methode genaamd convolutie gebruikt. Convolutie is in wezen een manier om het gladstrijken van gegevens door het toepassen van een bell curve naar een wachtrij van waarden. In dit geval convolutie werd toegepast op een wachtrij van 7 waarden, het aantal waarden in de wachtrij kan variëren afhankelijk van hoeveel vloeiend maken is gewenst. Elk van de zeven waarden wordt vermenigvuldigd met een coëfficiënt en de som van de zeven coëfficiënten moeten gelijk is aan een. De afgevlakte waarde van belang is de som van de zeven analoge waarden wordt gelezen hun coëfficiënten vermenigvuldigd. Hieronder vindt u een voorbeeld van deze convolutie. Voor nauwkeuriger uitleg over convolutie, Zie het wikipedia-pagina.

Convolutie Arduino C Code voorbeeld:

---------------------------------------------------------------------------------------------------

Voorbeeld van de convolutie
Door Jed Diller
2 april 2012

Convolutie van toepassing op analoge waarden wordt ingelezen vanuit een sensor op poort A0
Als de waarde hoger dan een bepaalde drempel is, wordt iets gedaan. In dit geval
een waarde wordt weggeschreven naar pin 9 op een Adruino Uno

constanten:
Const int sensorPin = A0;
Const int ledPin = 9;

Booleaanse DEBUG = true; voor de seriële monitor print verklaringen worden uitgevoerd en is ingesteld op true

int drempel = 550; deze waarden werd bepaald door gebruik van vallen en opstaan de seriële afdruk debug te
een redelijke drempelwaarde bepalen
zweven a0 = 0,3;   coeff voor lopende waarde
zweven a1 = 0,2;  coeff voor plus & min 1 van calc
zweven a2 = 0,1;  coeff voor plus & min 2 van calc
zweven a3 = 0,05;  coeff voor plus & min 3 van calc

variabelen definiëren:
int sensorValue;  sensor waarde voor de lezing
int sV_adjusted;    opgeslagen aangepaste waarde

int sV_m3;    sensor waarde 3 voorafgaand aan calc
int sV_m2;    sensor waarde 2 voorafgaand aan calc
int sV_m1;    sensor waarde 1 voorafgaand aan calc
int sV_0;     sensor waarde wordt berekend, centrum van curve
int sV_p1;    sensor waarde 1 na aan calc
int sV_p2;    sensor waarde 2 na aan calc
int sV_p3;    sensor-waarde 3 na aan calc (wat is actaully wordt gelezen)

VOID Setup
{

Serial.begin(9600);
pinMode (13, OUTPUT);
digitalWrite (13, hoge);
analogWrite (ledPin, 0); Start OPENDE om te voorkomen dat kleine flitser tussen
elke iteratie gedrags lus

delay(2000);
digitalWrite (13, laag);

eerste 6 waarden krijgen (sV_m3 via sV_p2)
sV_m3 = analogRead(sensorPin);
sV_m2 = analogRead(sensorPin);
sV_m1 = analogRead(sensorPin);
sV_0 = analogRead(sensorPin);
sV_p1 = analogRead(sensorPin);
sV_p2 = analogRead(sensorPin);

}

void loop
{

krijgen nieuwe waarde
sV_p3 = analogRead(sensorPin);

aangepaste waarde berekenen
sV_adjusted = (int) (a3 * (float) sV_m3 + a2 (float) sV_m2 + a1 (float) sV_m1 + a0 (float) sV_0 + a1 (float) sV_p1 + a2 (float) sV_p2 + a3*(float)sV_p3);

Shift waarden rond voor de volgende iteratie
sV_m3 = sV_m2;
sV_m2 = sV_m1;
sV_m1 = sV_0;
sV_0 = sV_p1;
sV_p1 = sV_p2;
sV_p2 = sV_p3;

aangepast Testwaarde uit tegen drempel
Als (sV_adjusted > drempel)
{
analogWrite (ledPin, 255);
} else {}
analogWrite (ledPin, 0);
}

Als (DEBUG)
{
Serial.Print ("waarde aangepast:");
Serial.println(sV_adjusted);
}

}

---------------------------------------------------------------------------------------------------

Met behulp van convolutie werd het ruwe analoge geluid van plus of min 150 teruggebracht tot ongeveer 10. Een drempel werd vervolgens verkozen tot ongeveer 15 boven de ingewikkelde gemiddelden. Een hogere drempel vertaalt naar een grotere inbreng die nodig zijn voor het schenden van de drempel. De coëfficiënt van de curve aan te passen en maken de belcurve "platter" en het gebruik van meer waarden in de wachtrij verder maakt de gegevens stabiel maar het zal ook het evenement van belang moeilijker te detecteren. Maken van de belcurve groter in het midden van de weging van de center-waarden van de wachtrij meer zwaar zal het tegenovergestelde effect hebben en zullen de gegevens luidruchtiger maar evenementen van belang zal gemakkelijker worden gedetecteerd.

Verdere geluidsoverlast en de reden voor de twee Arduino:

Er was een ander belangrijk probleem waarmee wij geconfronteerd met behulp van de microfoon die we deden. Als er andere hardware op het bord, zeggen een servo die werd verplaatst afhankelijk van de waarde van de ingewikkelde sensor, het lawaai zou opnieuw de gegevens onbruikbaar maken. Om deze reden werd de Uno gebruikt te controleren van de microfoon en convolutie van de gegevens te doen. Als de waarden toen boven de drempel waren werd een waarde geschreven op een poort die door de Mega werd gecontroleerd. Als de Mega gedetecteerd dat de waarde die het toezicht was voorbij sommige andere drempel was, zou het het gedrag van de LED's dienovereenkomstig wijzigen. De microfoon detectie kan niet worden gedaan op de Mega als gevolg van lawaai van alle de LED being naar geschreven.

Bedrading:

De bedrading van de microfoon is makkelijk genoeg met de gelabelde GND, VCC en AUD headers. Merk op dat de bovenste header in de afbeelding hieronder eenUD zoals audio, niet AVD zoals analoge spanning. AUD is de microfoon-uitgang die kan worden gelezen op een analoge poort van de Arduino.

Bedrading van de LED's is ook eenvoudig genoeg, als niet een beetje tijd in beslag. Voor elke LED soldeer één draad (van een bepaalde kleur, we kozen rood of blauw) naar de langere van de twee pennen van de LED (dat is de spanning in) en soldeer een andere draad (wij kozen voor een andere kleur, zwart) aan op de kortere pin, de grond pin van de LED. Soldeer de korte en lange einden der twee LED's op de zelfde draad respectievelijk voor de oog-paren. We enkele kernpopulatie draad gebruikt om te maken het gemakkelijk om interface met de Arduino board havens. Zorg ervoor dat uw draden zijn lang genoeg om te komen de de Arduino uit waar u de LED's op uw scherm plaatsen kan. Het loont voor postuur zulks uiterlijk, tekening uit wat u dat van het beeldscherm eruit zal zien, denkt zoals in stap 4.

Gerelateerde Artikelen

Tandeloze, de Roaring pluche pop

Tandeloze, de Roaring pluche pop

dit is het tweede project natuurlijk het voorjaar 2012 dingen dat computer science aan de Universiteit van Colorado, Boulder. Het doel van dit project was een pluche waarmee ook computing in zekere zin te maken. Het team bestaat uit Jed Diller en Ken
Naaien een Jedi of Harry Potter kleed of mantel

Naaien een Jedi of Harry Potter kleed of mantel

dit instructable vereist een naaimachine en de kennis van het gebruik van een. Als u niet aan deze vereisten, het beste vinden iemand die dat doet.GeschiedenisIemand vroeg me om een Harry Potter school gewaad. Het was formaat voor een kind. We konden
Vegan dille inmaken Mac N kaas Casserole

Vegan dille inmaken Mac N kaas Casserole

dankzij Daiya van super makkelijk mac en kaassaus, deze kleine braadpan is de perfecte snack voor u en uw onaangekondigde peeps nergens langskomen.Waarom doen mensen die het leuk? Op tweede gedachte, geef ze soda crackers en houd dit voor jezelf.Wilt
Kosher Dille Pickles (Hongaarse stijl)

Kosher Dille Pickles (Hongaarse stijl)

Mijn man houdt van voorbereiding van de augurken in de zomer en dit is het recept waarmee we vaak thuisStap 1: methode 2 1/2 kg kleinbedrijf komkommers250 g brood1 grote bos van knoflook60 g zout2 L warm water2 bos DilleEen 3 liter pot (meestal op Wh
Dille en kwark taart

Dille en kwark taart

Deze Hongaarse taart kan worden geserveerd als hartige taart of als zoete taart. Sommige mensen willen toevoegen van beide suiker of poedersuiker in het vullen, sommige zou laten van het maken, maar zou het royaal bestrooi met poedersuiker voor serve
De 'boek van alle kennis'

De 'boek van alle kennis'

na het zien van de film Circle of Iron (AKA The Silent Flute) (1978), heb ik besloten om mijn eigen 'Boek van verlichting', of 'Boek van alle kennis'. Het hoeft niet een groot praktisch nut, het gewoon symboliseert het feit dat door het verinnerlijke
RECEPT | WARME DILLE-AARDAPPELSALADE ei

RECEPT | WARME DILLE-AARDAPPELSALADE ei

Dit recept is geïnspireerd op een restaurant omhoog in Newmarket waar ze dit gerecht genaamd een "warme Heirloom aardappelsalade dienden". Het was zo heerlijk, maar ik voelde dat ik het kon kick een paar inkepingen door het gooien in zoete aarda
Sriracha gekruide Dille Pickles

Sriracha gekruide Dille Pickles

Sriracha gekruide Dille Pickles~ Opbrengsten 5, 1 kwart mason jars~ Ingrediënten 10-15 kleine komkommers1 kopje zoete witte onion4 baby paprika4 koppen van knoflook6 kopjes appel cider azijn3 kopjes water1/2 kopje kristalsuiker1/4 kopje beitsen zout3
Jedi Lightsaber met een budget van metaal

Jedi Lightsaber met een budget van metaal

snel! Het is bijna de nacht van de halloween party en je hoeft niet alle uw Jedi kostuum samen! Wat voor werk doe je?!Misschien zal dit helpen. Dit is mijn metalen lightsaber gebouwd voornamelijk uit sanitair delen. Het kan worden gedaan in slechts e
Mijn Kenner Blythe restauratie

Mijn Kenner Blythe restauratie

Blythe was een iconische pop decennia geleden, en nu is ze terug. Net zoals alle modes pass en zelf doen herleven, is er een nieuw verworven belang in de Blythe-pop.De meeste mensen vinden het meer betaalbaar voor hen te halen een nieuw geproduceerde
1959 oorspronkelijke badpak Barbie en Ken

1959 oorspronkelijke badpak Barbie en Ken

hoewel terughoudend, ik ervan overtuigd mijn vriendje te verkleden als Ken aan mijn Barbie kostuum! Alle materialen voor mijn kostuum werden gekocht bij een lokale weefsel te slaan (Mary-Jo's in Gastonia, NC) en een vriend een vijftiger badpak patroo
Mijn ultieme zelfgemaakte kip noodlesoep met wortelen, citroen en dille

Mijn ultieme zelfgemaakte kip noodlesoep met wortelen, citroen en dille

voor mij noodlesoep is een comfort, het is wat ik koken wanneer ik verkouden, wanneer ik voel me ellendig en wanneer ik wil gewoon een smaak van huis... het is geïnspireerd door mijn Poolse grootmoeders kip noodlesoep.Te maken van kras neemt uren - u
Luke's Lightsaber (Return of the Jedi) - hoe te DIY

Luke's Lightsaber (Return of the Jedi) - hoe te DIY

Luke Skywalker is een legendarische Jedi in het Star Wars-universum. Zijn verhaal is de kern van de originele trilogie. Een deel van wat hem cool maakt is zijn die zelf gebouwd groene lightsaber gezien in Return of the Jedi.Met mijn gids via video za
Mini Sculpey Jedi Master Yoda

Mini Sculpey Jedi Master Yoda

Yoda: "te maken van uw eigen mini sculpey Jedi master Yoda met dit instructable moet je leren.  Herh herh herh."Heb je ooit gedacht om jezelf, had ik een Yoda de grootte van een tandenstoker maar zou mijn leven compleet?  Ook jonge instructables