Pulse sensing faceted hart lamp (5 / 9 stap)

Stap 5: programmering


Als je kan kritiek en alternatieve oplossingen met betrekking tot mijn code, kunt u dit doen! Programmeren is een beetje meer begrijpelijk dan algemene elektronica voor mij, maar ik voel me nog steeds verloren vaker wel dan niet.

De opmerkingen in de code - ik heb het toegevoegd in een textbox en als een bijgevoegd Ino bestand, de bibliotheek vindt u hier. Hebt u moeite opzetten voor de capacitieve Sensing code & aansluitingen, check deze video, gered het me. LED fader bibliotheek kan worden gevonden hier. MAKE magazine's processing schets werd gebruikt voor visualisatie, het kan worden gevonden hier.

Voordat u de code schrijft moest ik begrijp een paar fundamentele dingen die betrokken zijn bij de werking van het hart en het circuit die ik heb gemaakt voor polsmeting die ik hier kort zal toelichten.

De sensor die ik heb gebruikt een LDR als een sensing deel. Een LDR heeft een bereik van de weerstand waarin de weerstand is afhankelijk van de hoeveelheid licht die het bereikt. Hoe meer licht er is - hoe kleiner de weerstand en vice versa. In dit geval wat we voelen als een puls is wat er gebeurt nadat de aortaklep opent en het bloed via onze bloedsomloop stroomt. Op het moment van de pols de hoeveelheid bloed in je vinger daarom verschillende waardoor u de wijziging in de lezing. Als bloed werd geduwd door je lichaam door het hart, betekent dit dat het hart zich op het moment van de beat leegt-dit is de reden waarom ik een code die het hart aan 0 geschreven heb dimt wanneer het beats en daarna begint het dimmen op een hogere waarde vertegenwoordigen van het hart met bloed te vullen. Zoals u in het diagram Wiggers zien kunt - het hoofdvolume van het hart is niet geleidelijk vullen omhoog met bloed tot de volgende beat, maar er is een snelle instroom waar allermeest naar de hart vult en vervolgens wat meer tijdens de rectus, totdat de atriale systole-fase begint. Elke één van deze drie fasen lijken te nemen ongeveer een derde van de tijd tussen de beats, maar een ander diagram van een cardiale cyclus die hier heeft het verdeeld met inbegrip van een tijdas. Dus ik schreef de code volgens het: een pauze voor approx 100ms na de beat, dan snelle fade-in tot 90% tijdens de volgende 150ms en een tragere resterende vervagen in de volgende 200ms. Dit laat ons meer dan een halve seconde totdat de volgende verslaan voor de prijs van een normale 60BPM krijgt een volledige fade in totdat de volgende klop tot 130BPM en zelfs het grootste deel van het fade-in tot 230BPM die nauwelijks fysiek mogelijk is in een mens, misschien een probleem zou kunnen worden als je besloten om een puls van sommige kleinere dier meten , maar ik denk niet dat uw Yorkshire Terriër zou ook goed met een puls als dat ofwel. Belangrijk is dat dit het probleem lost hebben om gemiddelde en voorspellen van de tijd tussen de beats in programmacode voor het wijzigen van de fade perioden.

Code v1.1 voor Gefacetteerd hart lamp door Raitis. Bezoek http://snipegift.com voor mijn andere projecten.
Volledige tutorial voor de lamp op instructables:
#include
#include
#define LED_PIN 3
#define DIR_UP 1
#define DIR_DOWN -1
LEDFader geleid;
int richting = DIR_UP;

int flt = 5; vinger licht
CapacitiveSensor lampon = CapacitiveSensor(4,2); hoofdschakelaar
CapacitiveSensor hrson = CapacitiveSensor(4,6); HRS schakelaar
int uur = 0; hartslagsensor

VOID Setup {}
pinMode (flt, OUTPUT);
geleid = LEDFader(LED_PIN);
LED.Fade(0,1);
}

void loop {}
digitalWrite(flt,LOW);
LED.update();
lange total1 = lampon.capacitiveSensor(30);
lange total2 = hrson.capacitiveSensor(30);
Als (total1 > 1600 & & led.get_value() > 0 & & led.is_fading() == false) {//turns lamp uit, de capsense-waarde verschilt terwijl op USB en af, dus test jouwe
LED.Fade(0,1000);
richting = DIR_DOWN;
}
Als (total1 > 1600 & & led.get_value() == 0 & & led.is_fading() == false) {//turns licht op, de langzaam verdwijnende == false voorwaarde vermijdt het opnieuw uitzetten van een enkele aanraking
LED.Fade(179,1000);
richting = DIR_UP;
}
terwijl (total2 > 700) {//a lus actief als de vinger wordt gelegd op de stalen plaat in de vinger-pit
LED.update();
lange total1 = lampon.capacitiveSensor(30);
lange total2 = hrson.capacitiveSensor(30);
uur = analogRead(0); begint het lezen van de sensor
digitalWrite (flt, hoge); Hiermee schakelt u het licht van de vinger
delay(1); om te voorkomen dat de kriebels
Als (hrs > 150) {//when de lezing hrs 150 bedraagt is het meest waarschijnlijk pulse, geen lawaai in mijn geval. Hangt op de transistor gebruikt denk ik.
LED.Fade(0,10); Fading volgens de werking van hart
richting = DIR_DOWN;
LED.Fade(0,100);
richting = DIR_DOWN;
LED.Fade (225, 150);
richting = DIR_UP;
LED.Fade (255, 200);
richting = DIR_UP;
delay(260); om te voorkomen dat kriebels tot vervagen tot 225
}
Als (total2 < 150) {//why doen ik moet dit als terwijl onder 700 toch moet afsluiten?
LED.Fade (179, 1000); terug naar standaard 70% helderheid verdwijnt wanneer de stalen plaat niet meer is aangeraakt
richting = DIR_DOWN;
breken;
}
}
}

Zoals u zien kunt, gladmaken ik niet elke voor de analoge ingang. Ik heb echter een versie met het testen en ontdekten dat bij het gebruik van een lopend gemiddelde voor een laag aantal lezingen, zoals 10, geen echte voordelen biedt van het hebben van het. Gemiddeld een groter aantal lezingen glad de dingen vrij goed, maar dan is er nog de kwestie van een enorme vertraging. Ik heb een idee voor een oplossing voor die vertraging die waarschijnlijk de kriebels wegnemen zou bij het plaatsen van de vinger (Zie gif) en test het en voeg alternatieve code hier als het werkt, maar als nu, werkt deze code die ik gebruik en ik heb geen probleem, laat het zoals het is.

Update: Ik heb geprobeerd een alternatief code met vloeiend maken die reageert op een trend verandering in gemiddelde lezingen te identificeren beat, maar terwijl het concept werkt prima alleen, het werkt gewoon niet zoals hoort terwijl het proberen te vervagen. Het reageert op de beat, maar kriebels hele tijd wanneer het niet zou moeten. Als iemand maakt dit echt wil het eens proberen, kan ik sturen u een schets van de alternatieve code. Hier zal niet uploaden om verwarring te voorkomen.

Gerelateerde Artikelen

USB-Chameleon Lamp (kleur repliceren)

USB-Chameleon Lamp (kleur repliceren)

Een andere geweldige manier om te gebruiken voor uw eigen kleur Sensor is een "kleur Sensing en repliceren Lamp" of gewoon een kameleon lamp. De kameleon-lamp is een super-easy-aan-bouwstijl-project dat kan worden gebruikt als een nachtlampje of
Interactieve beeldhouwkunst: hart dialoog

Interactieve beeldhouwkunst: hart dialoog

Hart dialoog is een gevoelige-object dat de hartslag van de persoon die de vinger op het legt volgt. Het stuk is gericht om dichter bij het hart gewonnen voor de gebruiker. Ons hart klopt 24 uur per dag en is wat ons leven maken. Het stuk is een mani
Pols van de stad

Pols van de stad

mijn vriend George Zisiadis was het hoofd van een interessant project voor de UP! Stedelijke Prototyping Festival afgelopen najaar.  Hij en een andere vriend, Matt Ligon, werkten op een circuit te voelen van een gebruiker pols, en vertalen in muziek.
LED hart Light Bulb Lamp voor Valentijnsdag

LED hart Light Bulb Lamp voor Valentijnsdag

Voor Valentijnsdag dit jaar heb ik een led hart gemaakt in het licht van een gloeilamp.Stap 1: Bekijk de video!Kunt u zich abonneren op mijn YouTube-kanaal!http://www.techydiy.org http://Facebook.com/techydiyhttp://Twitter.com/techydiyStap 2: Onderde
Maak een Pulse jet engine (gescand uit 1958 plannen)

Maak een Pulse jet engine (gescand uit 1958 plannen)

maken een Pulse Jet EngineHet bevoegdheden een schaal model MiG-15 vechter op 85mph. Dit is een krachtige waterstraal-eenheid en die kan worden gemaakt door iedereen die toegang heeft draaibank en lassen van voorzieningen.Emil Brauner van Kladno in C
DIY handheld LED lamp

DIY handheld LED lamp

Een lamp houdt groot belang in iemands leven. Ze zijn de bron van licht en ding voor u zichtbaar maken. Wanneer licht van een lamp wordt uitgestoten, het reizen in alle richtingen en na het slaan van een oppervlak dat het gaat om onze ogen en het obj
Icosaëder Lamp

Icosaëder Lamp

In dit Instructable zal ik uitleggen van het proces van opbouw van een Geodetische lamp(en) met behulp van Google Sketch Up en een Epilog 120 Watt laser cutter. Ik beginnen met zeer eenvoudige stapsgewijze instructies om te renderen van een icosaëder
Hoe meet je radiale Pulse

Hoe meet je radiale Pulse

Pols of de tastbare kloppen van het hart, wordt gebruikt door medische professionals om de hartslag van een patiënt. Het wordt gemeten in slagen per minuut (hsm) en het algemene beschermingsniveau van de gezondheid of conditie van een patiënt kunt aa
Vermelding Lamp met kurk Base & Mesh Sphere schaduw

Vermelding Lamp met kurk Base & Mesh Sphere schaduw

Voor mijn eerste instructable, wil ik delen een snelle en eenvoudige project dat ik onlangs als onderdeel van een verjaardagscadeau voor mijn vrouw gemaakt. Het is gemakkelijk om te bouwen en kan worden gedaan in slechts een paar uur.Bij ons thuis, h
Hart dissectie

Hart dissectie

Hebben een hart!De oorspronkelijke pomp thats de drumbeat van ons leven is een geweldige structuur. Je hebt ze gezien op vakantie kaarten, maar nu is het tijd voor het echte werk. Een hart dissectie is een fascinerende ervaring, dat is de kern van on
Color Changing LED sneeuw hart Valentine

Color Changing LED sneeuw hart Valentine

Laat niet de overgebleven sneeuw van de laatste storm van de "Snowzilla" verloren gaan. Toon uw dierbaren hoeveel u zorg met een reus hart Valentijnsdag sneeuw in de voortuin. Niet uw gemiddelde sneeuw hart, dit display is jazzed up door vakanti
BOUWEN van een NACHTELIJKE SOLAR lamp

BOUWEN van een NACHTELIJKE SOLAR lamp

In India, een van's werelds grootste, meest bevolkte landen, leven meer dan 74 miljoen huishoudens op het platteland zonder stroom. Kinderen studie in schadelijke rook, gemiddelde mensen besteedt 5% van hun inkomen aan de verlichting van de brandstof
Blauwe hart

Blauwe hart

dit is kleine geschenk die ik heb voor mijn vriendin voor Valentijnsdag gemaakt. :) Blauw is haar favoriete kleur. Dus besloten heb ik om iets echt blauw te maken.Eerste idee was om koper (II) sulfaat kristallen ( dus ik was begonnen met het maken va
Monteren van een Super Mario Brothers munt blok Lamp

Monteren van een Super Mario Brothers munt blok Lamp

UPDATE: een aantal stappen zijn gewijzigd, sinds we begonnen steeds professioneel geproduceerde printplaten en screen-printing het ontwerp op de binnenkant van de doos. Alle oude foto's zijn nog steeds hier voor verwijzingsdoeleinden.Ah, coin de klas