Twitter Mood Light - 's werelds stemming in een doos (11 / 13 stap)

Stap 11: Programmeren 5: de wereld stemming Computing


Het licht van de stemming moet responsief genoeg om na te denken wat net is gebeurd in de wereld, maar het moet niet zo overdreven gevoelig zijn gevoelig voor lawaai, en ook niet te traag te laat bij het informeren van u van een grote wereld-evenement.

Het belangrijkste is om zorgvuldig te normaliseren en glad van de gegevens, en aan te passen van de drempels voor het geven van het juiste niveau van responsiviteit en alarm. (d.w.z. het moet knipperen wanneer een kop-nieuwsbericht
gebeurt en niet wanneer een TV-show begint, GMT)

Emotie, sfeer, en temperament

Ten eerste, de "werelds emotion" wordt berekend door te zoeken op twitter voor tweets met elk van de 7 stemming typen (liefde, blijdschap, verbazing, woede, angst, afgunst, triest).

Een maatregel van "tweets per minuut" wordt gebruikt voor het berekenen van de huidige emotie. Een hoger aantal tweets per minuut stelt dat meer mensen ondervinden momenteel die emotie.

Emoties zijn vluchtige, zodat deze kortstondige emotionele staten na verloop van tijd vloeiend gemaakt worden met behulp van een "snel exponentiële bewegende gemiddelde"
(Zie en.wikipedia.org/wiki/Moving_average#Exponential_moving_average)

Dit geeft ons ratio's voor de verschillende gemoedstoestanden.

De verhouding van elke stemming wordt vervolgens vergeleken met een base line, een "langzame exponentiële voortschrijdend gemiddelde", dat ik het "wereld temperament" noemen.

De stemming die is afgeweken die het verst van de basislijn temperament waarde wordt beschouwd als de huidige stemming van de wereld.

De afwijking wordt gemeten als een percentage, dus, bijvoorbeeld, als angst verandert van goed voor 5% van tweets tot 10%, dan is dit belangrijker dan vreugde veranderen van 40% naar 45% (ze zijn beide een + 5% in additieve termen, maar vrees stegen met 100% multiplicatieve qua.)

Tot slot, de wereld temperament waarden zijn getweaked iets in het licht van dit nieuwe resultaat. Dit geeft het systeem een eigenschap aan te passen zodat het temperament van de wereld heel langzaam in de tijd veranderen kan zelf.

Deze waarden in WorldMood.pde worden gebruikt om aan te passen hoe gevoelig het systeem is naar informatie.

  • Wilt u het te halen wanneer mensen tevreden over het resultaat van een sport of bang over het weer zijn?
  • Of wilt u liever alleen grote gebeurtenissen zoals natuurrampen of terroristische aanslagen bijhouden?

dienovereenkomstig aan te passen...

#define emotionSmoothingFactor (0.1f)
#define moodSmoothingFactor (0.05f)
#define moderateMoodThreshold (2.0f)
#define extremeMoodThreshold (4.0f)

MOOD_TYPEWorldMood::ComputeCurrentMood() {/ / vinden de current ratio's floatsum = 0;  voor (inti = 0; ik < NUM_MOOD_TYPES; i ++) {som += m_worldMoodCounts [i];  } Als (som < 1e-4f) {#ifdefDEBUG m_printer -> afdrukken ("onverwachte totale m_worldMoodCounts"); #endif / / ifdef DEBUG returnm_worldMood;  } voor (inti = 0; ik < NUM_MOOD_TYPES; i ++) {m_worldMoodRatios [i] = m_worldMoodCounts [i] / som;  } / / vinden de verhouding die het meest, als een deel van haar voortschrijdend gemiddelde is gestegen.  Zodat, bijvoorbeeld, een stijging van 5% tot 10% is belangrijker dan een verhoging van 50% tot 55 procent.    floatmaxIncrease = - 1.0f;    voor (inti = 0; ik < NUM_MOOD_TYPES; i ++) {floatdifference = m_worldMoodRatios [i] - m_worldTemperamentRatios [i];       Als (m_worldTemperamentRatios [i] < 1e-4f) {#ifdefDEBUG m_printer -> afdrukken ("onverwachte m_worldTemperamentRatios"); #endif / / ifdef DEBUG blijven;     } verschil / = m_worldTemperamentRatios [i];       Als (verschil > maxIncrease) {maxIncrease = verschil;       m_worldMood = (MOOD_TYPE) i; Dit is nu de meest dominante sfeer van de wereld!     }} / / update van het temperament van de wereld, als een exponentiële voortschrijdend gemiddelde van de stemming.  Hierdoor is de basislijn verhoudingen, d.w.z. wereld temperament, te langzaam veranderen na verloop van tijd.  Dit betekent in de invloed, dat de 2e afgeleide van de stemming van de wereld wrt tijd deel van de huidige calcuation van de stemming uitmaakt.  en dus, na een grote woede-inducerende evenement, kunnen we zien als mensen beginnen te minder boos.  som = 0;  voor (inti = 0; ik < NUM_MOOD_TYPES; i ++) {als (m_worldTemperamentRatios [i] < = 0) {#ifdefDEBUG m_printer -> afdrukken ("m_worldTemperamentRatios moet worden geïnitialiseerd op construction"); #endif / / #ifdef DEBUG m_worldTemperamentRatios [i] = m_worldMoodRatios [i];     } else {constfloata = m_moodSmoothingFactor;       m_worldTemperamentRatios [i] = (m_worldTemperamentRatios [i] * (1.0f - een)) + (m_worldMoodRatios [i] * een);     } som += m_worldTemperamentRatios [i];  } Als (som < 1e-4f) {#ifdefDEBUG m_printer -> afdrukken ("onverwachte totale m_worldTemperamentRatios totaal"); #endif / / #ifdef DEBUG returnm_worldMood;  } / / en tenslotte renormalise, dat de som van de bewegende gemiddelde verhoudingen als 1.0f voor (inti = 0; ik < NUM_MOOD_TYPES; i ++) {m_worldTemperamentRatios [i] * = 1.0f / som;   #ifdefDEBUG m_printer -> afdrukken ("temperament verhouding:");     m_printer -> println(m_worldTemperamentRatios[i]); #endif} #ifdefDEBUG / / debug code - Controleer som is 1.  som = 0;  voor (inti = 0; ik < NUM_MOOD_TYPES; i ++) {som += m_worldTemperamentRatios [i];  } Als (som > 1.0f + 1e-4f || som < 1.0f - 1e-4f) {m_printer -> println ("onverwachte renormalise resultaat");  } #endif / / #ifdef DEBUG returnm_worldMood; }

Gerelateerde Artikelen

Twitter vermelden Mood Light

Twitter vermelden Mood Light

Twitter vermelden Mood Light --een sfeer lampje dat u waarschuwt wanneer is vermeld op Twitter.Dit is een eenvoudige intro in hoe om te controleren uw Arduino van Twitter. Als u nieuw bij Arduino Twitter bent / Arduino Processing Twitter / Arduino Py
De Mini Mood Light v1 montage Kit

De Mini Mood Light v1 montage Kit

de Mini Mood Light is een klein interactief en Herprogrammeerbare gekleurde lichtcentrale circuit.  De stemming licht bestaat uit een Texas instrumenten MSP430 micro controller aan twee RGB-LED's, vier knoppen en enkele ondersteunende onderdelen alle
ATtiny85 Mini RGB Mood Light!

ATtiny85 Mini RGB Mood Light!

ik heb RGB mood lights gebruikend Arduino, PIC, en grotere AVR chips, maar nooit een met de ATtiny85. Daarom heb ik besloten om een te maken.Dit licht van de stemming is super eenvoudig om te maken en alle onderdelen kunnen online worden gekocht voor
Instamorph LED Mood Light

Instamorph LED Mood Light

Dit Instructable kwam heel toevallig - een gelukkig ongeval. Mijn vrienden op de IRL werkten hard aan hun meer nuttige en praktische toepassingen terwijl ik bezig was op een onafhankelijke project met behulp van LED's. Niet in staat om te negeren de
RGB LED Mood Light w / ATtiny85

RGB LED Mood Light w / ATtiny85

ze noemen deze dingen MOOD LIGHTS.Weet niet waarom. Ik denk dat het veranderen van kleuren, sommige mensen zetten in een goed humeur.Hoewel ik dat opgemerkt heb wanneer mensen kijken naar deze stemming licht lijkt te hebben een vergelijkbare invloed
Arduino Mood Light en houder

Arduino Mood Light en houder

leren hoe te maken van uw eigen Mood light uit een Arduino!!!Stap 1: Verzamelen van de materialenJe gaat te willen verzamelen van deze materialen als u wilt bouwen van het licht van de stemming:1 x Arduino Uno1 x RGB LED3 x 330 Omh weerstanden1 x Bre
Humeur-Cube (Li-ion Mood Light)

Humeur-Cube (Li-ion Mood Light)

In de elektronische sectie van Instructables.com lijkt iedereen aan te tonen van grote genegenheid voor LEDs. Na het lezen van vele artikelen, ik dacht dat het zou een goed moment om bij te dragen aan de overvloed van LED projecten. Presenteren... Mo
Touch Sensitive RGB LED Mood Light

Touch Sensitive RGB LED Mood Light

Ik wilde altijd echt een cool LED Mood Light, maar allemaal die ik op Instructables gezien heb IC's gebruiken, en ik vind IC's nemen enkele van de leuke circuits te bouwen. Dat is de reden dat ik ontwierp deze lamp. Ik wilde ook om ervoor te zorgen d
Geketend mood light met behulp van krachtige RGB LED's

Geketend mood light met behulp van krachtige RGB LED's

ik heb gestart: dit project meer dan een jaar geleden en werken op het aan en uit sindsdien. Nu is het eindelijk gedaan.Het doel was om een mooi uitziende mood light voor mijn woonkamer, geïnspireerd door een standaard verlichting console een vriend
Boek Mood Light

Boek Mood Light

ik en enkele vrienden had een feestje georganiseerd werden we elkaars sommige geschenken geven. Heb ik besloten om een ondanks een "fatsoenlijk" geschenk kopen. Ik dacht dat te volgen het boek Lamp instructable van schimmel Amungus. Hoewel dit p
IKEA Mood-light conversie

IKEA Mood-light conversie

dit kleine project was een van mijn eerste projecten met microcontrollers. Eerst, maakte ik het circuit dan jarenlang, ik vroeg me af wat ik kon doen mee, totdat op een dag kwam ik deze IKEA kunststofzak dispenser. Ik wist meteen, dat het zou maken e
-=! TRI-COLOR LED MOOD-LIGHT! =-

-=! TRI-COLOR LED MOOD-LIGHT! =-

ik hou van de Arduino veel dus heb ik besloten om een Instructable voor een L.E.D. MOOD-LIGHT dat als volgt gaat:Groen = aanGeel = oprood = opGroen = offGeel = offRood = uitEn zo verder.Stap 1:-= delen =- u zal moet:1 x gele LED1 x rode Led1 x groene
MintyBeam: Bug een kamer en verzenden van stem met een laserstraal (ook een Super spion oor/stethoscoop)

MintyBeam: Bug een kamer en verzenden van stem met een laserstraal (ook een Super spion oor/stethoscoop)

INTRO: dit instructable zal u tonen hoe te maken van een laser stem zender en reciver gehuisvest in de beruchte pepermuntje tin (of een willekeurige andere clandestiene container). Of u kiest, kan de ontvanger worden gewijzigd om ook werk als een Sup
RGB LED plafond Mood Light met gehackt IR afstandsbediening

RGB LED plafond Mood Light met gehackt IR afstandsbediening

dit instructable documenten het ontwerp en de bouw van een gigantische RGB LED plafondlamp, bestuurd door een gehackte GE-afstandsbediening.Na het bouwen van een paar kleinere RGB lampen, besloten heb ik dat ik wilde zien hoe ver ik kon nemen het con