Arduino Lilypad interaktiva Passion Sensing halsduk (6 / 7 steg)

Steg 6: Arduino skiss



jag har lagt till Ethan Dicks ursprungliga fåren skulptur skiss till detta steg. Jag kommer att lägga till en uppdaterad skiss filen vid ett senare tillfälle när jag har slutfört utformningen. Detta kommer att åtminstone komma igång med två arbetande halsdukar.

/ * ++ Får - använda en kombination av RGB och IR-lysdioder och en photosensor att imitera publiken-reaktivt (framväxande) beteende här koden går med Fuse fabriken Workshop "Göra en Emergent beteende skulptur med The Arduino" http://thefusefactory.org/2009/09/03/make-an-emergent-behavior-sculpture-with-the-arduino/ den scultpture, eller "får", är en konstnärliga assemblage av en Lilypad Pro kit (Lilypad bas bifogas en Lilipad 5V power unit) med en tri-color LED monteras över 328V MCU Lilypad styrelse. En stor Lilypad Protoboard sitter mellan PSU och Lilypad sig att dirigera makt och hålla motstånd och IR-komponenterna. Illusionen av en quadraped avslutas av 1W och 2W LED lödas till PSU "kropp" och böjd som ben. Koden är beroende av en ihållande variabel kallas "humör" - när det är noll eller nära noll, fåren är "glad". Under noll och fåren är "ensam"; ovanför noll och får känns trångt eller upprörd. Ensamhet representeras av blå, lycka av green och agitation av red. Mellan att uttrycka "humör" (med PWM skuggar RGB LED), den huvudsakliga delen av koden kontrollerar IR pulser från andra får och kan släppa ut sina egna pulser "samtal" till andra får. Genom tweaking interna variabler, kan fåren vara mer eller mindre känsliga för samtal av andra får. Den framväxande beteendet kommer ut när flera fåren är monterade och placeras på ett bord, ropar till varandra. Uppsjö av IR-pulser kan inducera fåren att vara lycklig eller kanske upprörd. Några pulser och fåren uppvisar ensamhet. Sheep.pde - slå en Arduino till en emergent beteende skulptur Copyright (C) 2009, Ethan Dicks detta program är fri programvara: du kan vidaredistribuera det och/eller modifiera det i enlighet med GNU General Public License som offentliggörs av Free Software Foundation, antingen version 3 av licensen, eller (vid ditt alternativ) någon senare version. Detta program är distribuerat med förhoppning att det kommer att vara användbart men helt utan garantier; utan att ens underförstådd garanti om SÄLJBARHET eller lämplighet för ett visst ändamål. Se GNU General Public License för mer detaljer. Du bör ha fått en kopia av GNU General Public License tillsammans med detta program. Om inte, se.--* / / * ++ variabelinitieringen - innan koden, lägga alla användare justerbara parametrar på toppen så de är lätta att justera. --* / / / Definitioner av "humör" värden
#define MOODMAX 80
#define MOODMIN (-1 * MOODMAX)

#define ensam (MOODMIN)
#define glad (0)
#define TRÅNGT (MOODMAX)
#define MSTEPS 5

#define BLEAT_VOLUME 1

Globala definitioner av pin assigments (att förenkla enskilda funktionsanrop) int statusPin = 13. Onboard status-LED är ansluten till digital pin 13int redPin = 11; R kronblad på RGB LED-modul är ansluten till digital pin 11int greenPin = 9; G kronblad på RGB LED-modul är ansluten till digital pin 9int bluePin = 10; B kronblad på RGB LED-modul är ansluten till digital pin 10int sensorPin = 5; IR fototransistor ansluten till digital pin 5int irPin = 6; IR-LED ansluten till digital stift 6 / / börja förväntar sig att vara glad int humör = HAPPY;

Hålla reda på känslan av input pinint ögat = 0;

Och kom ihåg hur "högt" vi är "bräkande" (blinkande vår IR-LED) int bleat = BLEAT_VOLUME;

/ * ++ setup() - Arduino miljö kommer att kalla koden i setup() en gång bara, rätt efter styrelsen återställs. Lägga koden i funktionen att initiera I/O pins och sådant - saker som behöver bara göras en gång under en körning. --* / Annullerasetup)
{

för felsökning
Serial.BEGIN(9600);
Serial.println ("får v0.02");

Mestadels, är våra I/O pins utgångar till lysdioder
pinMode (statusPin, produktionen); anger statusPin vara en utgång

pinMode (redPin, produktionen); anger redPin vara en utgång
pinMode (greenPin, produktionen); anger greenPin vara en utgång
pinMode (bluePin, produktionen); anger bluePin vara en utgång

pinMode (irPin, produktionen); anger irPin vara en utgång

Ett undantag är IR fototransistor
pinMode (sensorPin, ingång); anger sensorPin vara en ingång

Serial.Print ("inställningen IR-" bleat"till");
Serial.println(bleat);

analogWrite (irPin, bleat);

}

/ * ++ loop() - Arduino miljö kommer att kalla koden i denna slinga för evigt. Sätt intressanta saker här som är avsedda att köras oändlighet efter setup() anropas en gång. Den enda vägen ut ur denna slinga är att återställa styrelsen. --* / Annulleraloop() / / kör om och om igen
{
Ställa in våra RGB LED att spegla våra "humör", som förhoppningsvis kommer att förändras från tid till
set_mood(Mood);

Sakta ner hur snabbt vi reagerar på andra 'får'
Delay(100); fördröjning för 1 sekund

sensorPin har en 10K pullup motstånd, så * nr * ljus rapporterar en 1. Vi måste
Invertera den logiska avkänningen av klämma fast om vi vill tänka på ljuset logiskt
så 1-är-/ 0-är-på
Eye = 1 - digitalRead(sensorPin); Ange öga 1 om vi "ser" alla IR ljus

Rapportera våra nuvarande status varje gång genom öglan
Serial.Print ("humör är");
Serial.Print(Mood);
Serial.Print(". Sensorn är ");
Serial.println(Eye);

Om vi ser pulser från en annan "får", öka humör, men inte tidigare MOODMAX
om (ögat) {
eftersom människor inte kan "se" infrarött ljus, använda status-LED som en synlig indikator
digitalWrite (statusPin, hög); ECHO IR-indata detektering på status-LED
humör += MSTEPS * 2;
om (humör > MOODMAX) {
humör = MOODMAX;
}
}
Om vi inte ser någon IR-pulser, minska humör, men inte nedan MOODMIN
annat {
eftersom människor inte kan "se" infrarött ljus, använda status-LED som en synlig indikator
digitalWrite (statusPin, låg); ECHO IR-indata detektering på status-LED
humör-= 1;
om (humör < MOODMIN) {
humör = MOODMIN;
}
}
}

/ * ++ set_mood - konvertera "humör" till ett färgschema humör varierar från några negativt tal till samma värde som ett positivt tal (hittills,-80 / + 80 och -100 / 100 ger rimliga resultat). Proportionellt, kontinuum av humör att färgmappning liknar följande: humör -100 0 100 Lonely -> Happy -> CrowdedR 0 0 0 30 100 G 0 30 100 70 0B 100 70 0 0 0--* / void set_mood (int humör)
{
Börja med varje färg att vara utanför – justera uppåt baserat på "humör"
unsignedchar rodnad = 0;
unsignedchar grönska = 0;
unsignedchar blåhet = 0;

#ifdef DEBUG
Serial.Print ("humör är");
Serial.println(Mood);
#endif

blåhet handlar om humör vara mindre då lycklig
om (humör < HAPPY) {
blåhet = abs(mood);
grönskan = MOODMAX + humör;
}
rodnad är allt om stämningen som mer än gärna
ElseIf (humör > HAPPY) {
rodnad = humör;
grönskan = MOODMAX - humör;
}
grönskan är stämningen runt glad
annat {
grönskan = MOODMAX;
}

Set LED att spegla vårt nuvarande humör
färg (rodnad, grönska, blåhet);

}

/ * ++ färg (r, g, b) - ange tri-färg ledde till den önskade färg värde använder analogWrite (pin, värde) för att ange PWM-värdet för varje enskild LED färg Tri-color LED är en common-anod enhet, så att göra ljus, vi grunden önskad PIN-koden. Om du vill invertera PWM vågformen, subtrahera vi våra önskad intensitet från 255, så att, till exempel, om vi vill röd, logiskt, vi passerar runt noll, men värdet PWM till 255 så att stiftet är drivande hög 100% av tiden. För att få röda till den högsta intensiteten, vi passerar runt ett logiskt värde 255, men som PWM-värde till 0, dra det klämmer fast låg 100% av tiden.--* / annullera färg (unsignedchar röda, unsignedchar grön, unsignedchar blå) / / färg genererar funktion
{
#ifdef DEBUG
Serial.Print("Color(");
Serial.Print(Red,hex);
Serial.Print(Blue,hex);
Serial.Print(Green,hex);
Serial.println(")");
#endif

Invertera avkänningen av PWM-värde när du ringer analogWrite() för varje färg
analogWrite (redPin, 255-röd);
analogWrite (bluePin, 255-blå);
analogWrite (greenPin, 255-grön);

}

Se Steg
Relaterade Ämnen

Arduino LilyPad anka dynastin Hoodie med ljud och LED ljus

gjorde jag en anka dynastin tema hoodie med en LilyPad Arduino som har 3 dragkedja trycksensorn kopplar till aktivera 3 olika åtgärder/program på baksidan av hoodie. Dragkedjan är nyckeln till att aktivera dessa växlar så när dragkedjan är rörande en...

Arduino Lilypad toffel automatisk fot Massager

Jag gjorde en liten automatisk toffel fot massager med Lilypad Arduino och några av Lilypad Vibe styrelserna för faktiska Massageapparaten. Sensorn som används är en Lilypad Accelerometer som jag bara använder som en grundläggande tilt sensor. I huvu...

Arg Enderman med Arduino Lilypad

Vi kommer att skapa en amigurumi enderman vars ögon flash och kroppen skakar, precis som en arg enderman!För detta projekt behöver du:Arduino lilypad (en Lilypad ProtoSnap Development Board används här)2 tri-LEDs (en kommer med ProtoSnap styrelse)1 v...

Arduino kontrollerade interaktiva wallpiece

detta projekt är en delmängd av min idé om en interaktiv vägg... så detta är en interaktiv vägg-del...Vad gör det? Mine är en touch aktiverat ljus display.Hur fungerar det? Den styrs av en Arduino UNO som känner av insatsvaror och vänder på de respek...

Interaktiva Arduino Powered LED skidor

Trött på det tråkiga svart i Kvällsskidåkning? Frukta inte! Arduino programmerbara interaktiva LED skidor kommer att lysa upp din kväll.Dessa hem byggt skidor har lysdioder inbäddade under p-tex och underlakan. Arduino och accelerometer styr lamporna...

LilyPad Arduino e-Reader fallet

för en ungdom och teknik klass, tilldelades vi skapandet av en Arduino LilyPad projekt. Jag gillade idén med att ansluta LilyPad projektet till Läs-och skrivkunnighet, så jag valde att göra en Kindle fall som skulle spela musik [hedwigs tema från Har...

Öppna hjärtat &amp; LilyPad Arduino brosch

här är hur man kombinerar Jimmie Rogers öppna hjärtat Kit med en LilyPad Arduino microcontroller styrelsen att göra en animera LED hjärtat brosch.Här är en video av det i aktion:Material:Öppet hjärta kit eller gör din egenLilyPad ArduinoLilyPad AAA p...

LilyPad Arduino Totoro plysch med paraply

material:För Totoro:Filt: 1 svart 3 grå, 1 vit, 1 beigeNålSvart trådPoly-fil fyllningCardstockSaxPinsPenna eller kritaDIY Totoro plysch Tutorial härTotoro mönster härFör paraply:3 eller 4 olika typer av tygFilt: 1 grå, 1 svart2 popsicle pinnarNålSvar...

Arduino nybörjare och grundläggande elektronik Kit Primer

lärde jag mig att en av mina systerdöttrar hade ett intresse för programmering. Hon arbetade med robotics på gymnasiet och har en sommar praktikplats där de hade Arduinos. Jag tror att hon kunde låna en Arduino för att experimentera med hemma men var...

Hur man programmerar en LilyPad utan FTDI Converter

Hej alla! I den här artikeln visar jag hur programmera Arduino LilyPad utan FTDI omvandlaren.Arduino LilyPad är en av många Arduino microcontroller familjen, men med en funktion som gör det unikt.LilyPad styrelsen, i själva verket kan vara sydda på t...

Hur man gör en avlägsen kontrollerade Robotic Hand med Arduino

Detta är mitt skolprojekt för den 5: e året i gymnasiet (jag är italienska, vi har 5 år på gymnasiet).Det består i en konstgjord hand kontrolleras av en handske med flex sensorer. Konstgjord hand återger rörelser i handen med kontroll handsken, trådl...

Intro till Arduino

An Arduino är en öppen källkod microcontroller utveckling styrelsen. På ren svenska, kan du använda Arduino att läsa sensorer och styra saker som motorer och lampor. Här kan du ladda upp program till denna styrelse som sedan kan interagera med saker...

Anpassade Arduino Micro Quadcopter koncept

redigera 14 APRIL: Sorry killar för posten sen. livet har varit riktigt hektiskt nyligen för mig eftersom vi var tvungna att byta ut ett avloppsrör begravd i betongplattan vårt hus sitter på. Men vi har gjort vissa framsteg! koden kommit något in men...

Sewable Arduino gränssnitt

hur man skapar ett sewable gränssnitt för din Arduino USB styrelse. Det är nog inte den bästa lösningen, särskilt i jämförelse med Arduino LilyPad. Men det är ett alternativ för textil elektroniska projekt som använder ledande tråd och vill sy direkt...

Skalbagge: Minimera din Arduino projekt

The DFRobot Beetle är en de senaste innovationerna i minimalistisk Arduino teknik. Om storleken på en kvart, och funktionerna i en Arduino Leonardo, kan den här lilla killen minimera dina projekt med lätthet utan att behöva offra funktionalitet.Efter...

Motion Sensing Digital kamera & larm (aka Critter Cam)

Välkommen till min instructable om hur man gör en Arduino-kontrollerad rörelse sensing kameran och larm!Motivationen bakom detta projekt, som jag arbetade på i min elektronik klass på Pomona College, var behovet av att hålla bort varmints (särskilt t...

Arduino Smart arbetar hjälm

Arbetare i gruvor och inom andra farliga arbetsplatser, riskerar deras hälsa och liv varje dag! Gruvdrift är en av de mest farliga yrken i världen. Gruvarbetare itu varje dag med farliga gaser och hög temperatur i en mörk miljö. Med hjälp av Arduino...

RRRRRRRRRRBBA, en $3 Arduino

Hej, vi alla älskar Arduino, och för mina projekt jag gör extra säker på att jag använt den Arduino plattformen, så att alla i artist och hacker gemenskapen kunde språngbräda ut det för sina egna projekt, och så att jag kan springboard bort dem. Dess...

Arduino FTDI Header

så du vill programmera en bootloaded AVR. Eller kanske du har en Arduino Lilypad och inget sätt att programmera den. Det finns några lösningar tillgängliga för dig: du kan köpa en USB till FTDI adapter (finns i Adafruit, Sparkfun, etc), kan du köpa e...