Necomimi Arduino katt öron (4 / 8 steg)

Steg 4: Skissartade Detaljer



Här är koden för skissen.

Klippa bara och klistra in som du laddar upp en fil på ibles får inte behålla filnamnet och kommer att vara förvirrande.

=== starta skiss ===
/*
Detta program är baserade Arduino skiss exempel och följande:
ADXL345_Example.pde - exemplet skiss för integration med en ADXL345 triple axlig accelerometer.
Copyright (C) 2011 kärlek elektronik (loveelectronics.co.uk)

Detta program är fri programvara: du kan vidaredistribuera det och/eller ändra
det enligt villkoren i version 3 GNU General allmänhet licens som
Publicerad av Free Software Foundation.

Detta program är distribuerat i hopp om att det kommer att vara användbar,
men utan garantier; utan att ens underförstådd garanti om
SÄLJBARHET eller lämplighet för ett visst ändamål. Se den
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 < http://www.gnu.org/licenses/>.

*/

Inkludera Wire biblioteket så vi kan börja använda I2C.
#include < Wire.h >

Inkludera kärlek elektronik ADXL345 biblioteket så att vi kan använda accelerometern.
#include < ADXL345.h >

inkludera servo biblioteket för att styra servo
#include < Servo.h >

Servo myservoA; skapa objekt för att styra en servo servo
maximalt åtta servo objekt kan skapas

Servo myservoB; skapa objekt för att styra en servo servo
maximalt åtta servo objekt kan skapas

int posA = 0; variabel att lagra servo position
int posB = 0;

Deklarera en global instans av accelerometern.
ADXL345 accel;

Ställa in en PIN-kod vi använder för att ange vår status med hjälp av en LED.
int statusPin = 2; Jag använder digital stift 2.

//------------------------------------------------------

void setup()
{
myservoA.attach(7); tillmäter objektet servo servo på stift 6
myservoB.attach(6); tillmäter objektet servo servo på stift 7

Börja med att ställa in serieporten så vi kan mata våra resultat.
Serial.BEGIN(9600);
Starta I2C tråd biblioteket så att vi kan använda I2C för att prata med accelerometern.
Wire.BEGIN();

Redo en LED att ange vår status.
pinMode (statusPin, produktionen);

Skapa en instans av accelerometern på standardadressen (0x1D)
accel = ADXL345();

Kontrollera att accelerometern är infact ansluten.
IF(Accel. EnsureConnected())
{
Serial.println ("ansluten till ADXL345.");
digitalWrite (statusPin, hög); Om vi är anslutna, ljus vår status LED.
}
annat
{
Serial.println kunde ("inte ansluta till ADXL345.");
digitalWrite (statusPin, låg); Om vi inte är ansluten, stänga våra LED.
}

Ange de accelerometern till högst 2G.
Accel. SetRange (2, true);
Berätta accelerometern för att börja ta mätningar.
Accel. EnableMeasurements();
}

//----------------------------------
void loop()
{

IF(Accel. IsConnected) / / om vi är anslutna till accelerometern.
{
Läsa rådata från accelerometern.
AccelerometerRaw rå = accel. ReadRawAxis();
Dessa data kan nås som så:
int xAxisRawData = rå. XAxis;

Läs den * skalade * data från accelerometern (detta har egen Läs från accelerometern
så du behöver inte ReadRawAxis innan du använder denna metod).
Detta användbar metod ger du värdet i G tack vare kärlek elektronik biblioteket.
AccelerometerScaled skalas = accel. ReadScaledAxis();
Dessa data kan nås som så:
flyta xAxisGs = skalas. XAxis;

Vi ut våra mottagna data.
Utgång (rå, skalad);

}

}

Spara data ner den seriella porten.
void utgång (AccelerometerRaw raw, AccelerometerScaled skalas)
{
initiera LED stift som en utgång:
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);

Berätta om raw värdena kommer från accelerometern.
Serial.Print("RAW:\t");
Serial.Print (rå. XAxis);
Serial.Print("");
Serial.Print (rå. YAxis);
Serial.Print("");
Serial.Print (rå. ZAxis);

Berätta om denna data, men skala den till användbara enheter (G).
Serial.Print ("\tScaled:\t");
Serial.Print (skalas. XAxis);
Serial.Print ("G");
Serial.Print (skalas. YAxis);
Serial.Print ("G");
Serial.Print (skalas. ZAxis);
Serial.println("G");

Visa led för axel
om (skalas. XAxis > 0) {
digitalWrite 8, hög. ställa in lysdioden på
}
annat
{
digitalWrite 8, låg. iväg för LED

}
//
om (skalas. YAxis > 0) {
digitalWrite (9, hög). ställa in lysdioden på
}
annat
{
digitalWrite (9, låg). iväg för LED

}
//
om (skalas. ZAxis > 0,8) {
digitalWrite (11, hög). ställa in lysdioden på
}
annat
{
digitalWrite (11, låg). iväg för LED

}

gör servo flytta villkor anat---

om (skalas. ZAxis < 0,8) {
Serial.println ("*** ta upp lägre---höja lägre");
RaiseLower();
Delay(265);
}

//
om (skalas. YAxis < 0) {
Serial.println ("*** rycka mitten---rycka mitten");
twitchMiddle();
Delay(400);

}

//
om (skalas. XAxis < 0 och skalas. YAxis > 0 och skalas. ZAxis > 0) {
Serial.println ("*** rätt---Wink Wink rätt");
winkRight();
Delay(265);
}

}

//-------------------------------
subrutin för höjning och lägre
void RaiseLower()
{

twitchshort();
Twitch();

för (posA = 0; posA < 135; posA += 1) / / går från 0 grader till 135 grader
{/ / i steg om 1 grad
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(12); Waits 15 MS för servo att nå ställning
}
för (posA = 135; posA > = 1; posA-= 1) / / går från 135 grader till 0 grader
{
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(12); Waits 15 MS för servo att nå ställning
}

}

subrutin för rycka---
void twitch()
{
för (posA = 0, posA < 45, posA += 1) / / går från 0 grader till 45 grader
{/ / i steg om 1 grad
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(8); Waits 15 MS för servo att nå ställning
}
för (posA = 45, posA > = 1; posA-= 1) / / går från 45 grader till 0 grader
{
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(8); Waits 15 MS för servo att nå ställning
}
}
subrutin för kort rycka---
void twitchshort()
{
för (posA = 0; posA < 25; posA += 1) / / går från 0 grader till 25 grader
{/ / i steg om 1 grad
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(5); Waits 15 MS för servo att nå ställning
}
för (posA = 25; posA > = 1; posA-= 1) / / går från 25 grader till 0 grader
{
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(5); Waits 15 MS för servo att nå ställning
}
}

subrutin för rycka mellersta---
void twitchMiddle()
{
för (posA = 0; posA < 100; posA += 1) / / går från 100 grader till 0 grader
{/ / i steg om 1 grad
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(10); Waits 15 MS för servo att nå ställning
}
för (posA = 100; posA > = 1; posA-= 1) / / går från 100 grader till 0 grader
{
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(10); Waits 15 MS för servo att nå ställning
}
Delay(250);
för (posA = 0, posA < 120, posA += 1) / / går från 100 grader till 0 grader
{/ / i steg om 1 grad
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(10); Waits 15 MS för servo att nå ställning
}
}

subrutin för wink rätt---
void winkRight()
{
för (posA = 0, posA < 120, posA += 1) / / går från 0 grader till 120 grader
{/ / i steg om 1 grad
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(10); Waits 15 MS för servo att nå ställning
}
för (posA = 120, posA > = 1; posA-= 1) / / går från 180 grader till 0 grader
{
myservoA.write(posA); berätta servo gå för att placera i variabel "pos"
myservoB.write(180-posA);
Delay(10); Waits 15 MS för servo att nå ställning
}
myservoB.write(180); upp andra örat om vila för att matcha upprätt
}
=== slutet av skiss ===

Om du lutar huvudet framåt, ska öronen göra en full upp och ner.

Om du luta huvudet åt höger, ska vänster örat gå upp och ner.

Det bör finnas en liten wiggle om en liten lutning. Öronen sjunka till ett nedfällt.

Leka med förseningen värden och servo timing öglor för realistisk action.

Kom ihåg, du kan behöva räkna ut där din servon är placerade vid 0 grader början och vilket sätt de rotera. Du har då att rymma rörelsen med servo kommandon i skissen.

X, Y, Z och servo rörelse i min prototyp kanske inte matchar din.

Se Steg
Relaterade Ämnen

Animatronic katt öron

jag såg demovideo för neurowear "necomimi" hjärnan kontrollerade katt öron och jag trodde de var ganska häftigt. Jag bara börjar lära sig elektronik och jag trodde ett roligt projekt att börja skulle göra min egen version. Tyvärr, jag tror inte...

Katt öron!

Min odjuret marionett Thursenberger gungar dem katt öron!Dessa små öron är användbara om du är cosplaying som Meowth eller Pusheen eller några andra katt karaktär.Steg 1: Material Du behöver-Vykort-Lurviga tyg i valfri färg-Rosa mjukt tyg-Hår klipp (...

Geodesic katt öron smycken tillbehör

Denna vackra pjäs av hår smycken tillbehör, inspirerad av Himmeli skulptur och geodetiska struktur, är både roligt och unikt. Gjort av enkla kopparrör och pärla ledningar, är dessa dekonstrueras katt öron super fräscha och iögonfallande. För älskare...

Arduino katt detektor SD kort Logger

jag använde:en Arduino Unoen Parallax PIR rörelsesensorochen Seeed Studio SD kort sköldArduino, sköld, sd-kort, loggning sköld, lagring, loggerKolla in detta instructable på PIRs i fall du inte vet vad det är:Steg 1: Anslut din PIR-Sensor Krok PIR-se...

Arduino sy lätt bärbar sköld

Wearable computing, e-textilier, mjuk kretsar eller vad du vill kalla det, är ett växande område av teknik på plagg eller accessoarer som väskor, skor och ryggsäckar. Det är en rolig och kreativ utmaning som går längre än att bara lägga till LED-lamp...

Kaninöron på en mössa

vi är studenter från Singapore Polytechnic.Efter att titta på den berömda Necomimi Arduino katt öron, vi beslutade att ge det ett försök att hjälpa oss att bekanta oss med accelerometern och arduino.Med de material som vi hade på hand, lyckades vi at...

Halsduk Mitt päls fickor

en annan pocket halsduk. OK, har den bara två fickor. Ett bra tillbehör till din necomimi arduino katt öron eller om du behöver något lite mer dressat än utilitaristiska trafikljus stoppljus halsduken.Denna scarf gör dubbel plikt att hålla din hals v...

Spel med tankar/Mindwaves (med Arduino)

Vad vill du tänka varför vi gillar TV-spel? Svaret är inte svårt: videospel visar oss nya, extremt bra utmaningar. Jag spelar videospel sällan, men mina favoriter är Bilspel och öppen värld spel precis som Need for Speed och Grand Theft Auto-serien....

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...

Djurens öron bygel

denna söta pannsmycke, formad som katt öron, är ett perfekt komplement för en part eller informella händelse!Steg 1: Montera dina komponenter Välj några tråd, nål näsa tång, ball chain och skolans glue(Elmer's/PVA).Steg 2: Börja bilda formerna Börja...

Katt påse bygel

en för päls ansiktet. Jag har förstört min snug rug. Än sen då? Jag behövde inte ärmarna verkligen.Steg 1: Välj en bygel jag använder en gammal tröja och en mycket ny ombonad filt, :/. Min tröja har fickor så jag är att ta bort dem så de kan gå på fr...

Tjurig katt och Nyan katt

Alla hemgjorda och ingen sömnad krävs!Min flickvän och jag ville försöka göra ett par kostymatt vi var säkra på att vi inte kommer att se överallt detta Halloween, men skulle fortfarande vara något på och ha en bra tid med, så vi valde för att vara b...

Katt väska referens

Hej.Vänligen gör en påse i slutet av året.(Denna väska är krångligt att använda.)Jag försökte göra det, eftersom jag älskar design.Denna design tänkte jag i slutet av oktober.För dem som vill göra denna konstiga väska.Jag var beredd DWG data för männ...

Snabb och enkel kostym djurens öron

det är i sista minuten, och du behöver en kostym, snabbt!Denna metod kan du göra ett par bekväma djurens öron med en realistisk form i ungefär en halvtimme. Det är ganska flexibel - om korta nätta katt öron eller jätte vajande bunny öron, de ska komm...

Mycket lätt Halloween blingy katt öra pannband.

It's Halloween tomorrow! WoO!Här är hur man gör några sista minuten blingy katt öra om du har glömt att du behöver en kostym!De tar cirka 20 min att göra. Lägg bara till ansiktsmålning och en funky outfit. :)Följ den lätt att följa bilderna för att g...

Katt i hatt Fågelskrämman med Sugru

Vi in en fågelskrämma tävling och eftersom vi är ett bibliotek, våra Fågelskrämman var litterärt tema. Vi gjorde katten i hatten! OCH vi vann andra pris! Han är en ganska traditionell fågelskrämma, men vi använde Sugru bildar hans ansiktsdrag. De ble...

Kitty Cat öron

här är katt öron som matchar min katt kitty tass handskar!Material: lurviga tyg, stretchigt tyg, hårband eller hårspänne.Verktyg: symaskin/tråd & nål, limma pistol, sax, märkning penna, papper.Steg 1: Skapa en disposition och skär mönster Du kan anvä...

Tessellating katter dekoration eller pussel

jag gillar katter, jag gillar grupprojekt och jag gillar pussel (som en social aktivitet).Jag gillar också att skära saker ut med min bläddrar såg - dock skära massor av samma punkt suger och skulle vara mycket lättare med en laserskärare (ursäkta mi...

Hur man gör en anime katt peruk

Sommaren är den bästa tiden för sömnadsprojekt eftersom det finns så många konventioner under sommaren. Kons möjliggöra massor av kreativitet och fantasin kan flöda. Med den senaste filmen "Alice i Underlandet" ut kommer A Cheshire Cat att vara...