Arduino Animatronic ogen (7 / 8 stap)

Stap 7: programmeren


Dit kan het enkele meest verwarrende deel van het project zijn, dus ik geprobeerd om zo veel als ik kon om te ideaal het minimaliseren van de problemen die u wellicht-code schrijven.

Alle bestanden staan in de sketchbook.zip.

Hier is eerst de code om uw servo's gecentreerd. Het probleem dat u geconfronteerd wordt steeds de positie van de servo juiste. Houd in gedachten die deze servo's gaan van 0 tot 180 graden.

Dus kortom we willen de servo's ingesteld op 90 en 90 dus zijn in het midden van de servo's "range of motion". Dan kunnen we het instellen van de horizontale (x-as) en verticaal (y-as) beperkt. Daarvoor kunt u de eyes_servo_single_test wijzigen van horServo.write(); en vertServo.write();

[CODE eyes_servo_single_test]

#include < Servo.h >

Servo horServo;
Servo vertServo;

VOID Setup {}
horServo.attach(8);
vertServo.attach(9);
}

void loop {}
horServo.write(80);
vertServo.write(40);
}

[EINDE CODE]

Vervolgens zou ik eyes_full_servo_test opnieuw inpluggen in uw hoge en lage waarden voor de servo's op die manier kunt u zien als u bindende gebruiken. Ik gebouwd in een knipperende sleutel, zodat u wat stap visualiseren kunt uw op. U kunt altijd langskomen het midway trekken van de USB-kabel.

[CODE eyes_full_servo_test]

//==================
Dit is een snelle servo positie test die ik deed voor mijn oog-Project
De servo's verplaatsen uit de set banen voor de X- en Y-as
Test sets die de LED hoge 20 seconden lang knipperen.
Test twee stelt de servo's op positie 40,0 voor 6,5 seconden, twee knippert.
Test drie stelt de servo's op positie 80,0 7,5 seconden, drie knippert.
Test vier stelt de servo's op positie 0,70 voor 8,5 seconden, vier knippert.
Test vijf sets de servo's op positie 0,110 9,5 seconden, vijf knippert.

NOODZAAK OM DRUK OP RESET NADAT DE TEST IS VOLTOOID

#include < Servo.h > //servo bibliotheek

Servo horServo; x-as servo
Servo vertServo; y-asxis servo
int geleid = 13;

VOID Setup {}
horServo.attach(8); x-as servo pin 8
vertServo.attach(9); y-as servo pin 9
pinMode led (, uitvoer);
}

void loop {}
//==================TEST ONE=============//

Servo's in rust of center positie.
horServo.write(80);
vertServo.write(40);

Eenmaal knipperen
digitalWrite (led, hoog);
delay(20000);
digitalWrite (led, laag);

//============Test Two=================//

testen van de twee knippert twee keer

horServo.write(20); x links limiet
vertServo.write(40);

twee keer knipperen
digitalWrite (led, hoog);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(5000);

//=================Test Three==================//

test drie knippert driemaal

horServo.write(80); x rechts grenswaarde
vertServo.write(40);

drie keer knipperen
digitalWrite (led, hoog);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(5000);


//==================Test four==================//

Testen van vier knippert viermaal

horServo.write(80);
vertServo.write(0); y bovengrens

vier keer knipperen
digitalWrite (led, hoog);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(5000);

//=================Test Five===================//

Test vijf knippert vijfmaal

horServo.write(80);
vertServo.write(110); y ondergrens

vijf keer knippert
digitalWrite (led, hoog);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite (led, laag);
delay(5000);

//=====================END======================//

Servo's terug naar rust of centrum. Testen eindigde hit RESET of wait FOREVER

horServo.write(80);
vertServo.write(40);
digitalWrite (led, hoog);
while(1) {}


}

[EINDE CODE]

De code maakt gebruik van PI te bewegen de ogen in een straal. U moet ervoor zorgen u uw servo's op pin 8 en 9 hebben of wijzigingen in de code. Zodra u zeker weet dat u alles goed ingesteld hebt, kunt u de EZ-connectors instellen in plaats.

[CODE eyes_sketch]


#include < math.h >

#define pi 3.14159265358979323846
#define twopi (2 * pi)
zweven circleradius = 50; 50 elk zijde - maakt geen meer niet van uw max grenswaarden
zweven stepnumber = 360;
float stepangle;

#include < Servo.h > //include servo bibliotheek voor servo control

Servo horServo; Servo voor links/rechts beweging
Servo vertServo; Servo voor op/neer beweging

byte randomhor; willekeurige horizontale positie variabele definiëren
byte randomvert; willekeurige verticale positie variabele definiëren
int randomdelay; willekeurige vertraging variabele definiëren

#define HLEFTLIMIT 40 //define linker grens op de horizontale (links/rechts) servo
#define HRIGHTLIMIT 80 //define juiste limiet op de horizontale (links/rechts) servo

#define VTOPLIMIT 70 / / top limiet op verticaal (omhoog/omlaag) servo definiëren
#define VBOTLIMIT 110 //define ondergrens op horizontale (omhoog/omlaag) servo

VOID Setup
{
horServo.attach(8); horizontale servo op pin 8
vertServo.attach(9); verticale servo op pin 9
randomSeed(analogRead(0)); Enkele willekeurige waarden met behulp van een onsamenhangende analoge pin maken

stepangle = twopi/stepnumber;
for (int i = 0; ik < stepnumber; i ++) {}
float hoek = i * stepangle;
float x = zonde (hoek) * circleradius;
float y = cos (hoek) * circleradius;

x = kaart (x, 1-circleradius, circleradius, 0, 2 * circleradius);
y = kaart (y, 1-circleradius, circleradius, 0, 2 * circleradius);

horServo.write(x); schrijven naar de horizontale servo
vertServo.write(y); schrijven naar de horizontale servo

delay(10);
}
}

void loop
{
randomhor = willekeurige (HLEFTLIMIT, HRIGHTLIMIT); limieten instellen
randomvert = willekeurige (VTOPLIMIT, VBOTLIMIT); limieten instellen
randomdelay = random(1000, 4000); beweegt elke 1 tot en met 4 seconden

horServo.write(randomhor); schrijven naar de horizontale servo
vertServo.write(randomvert); schrijven naar de verticale servo
delay(randomdelay); vertraging van een willekeurige hoeveelheid tijd (binnen de waarden zoals hierboven)
}

[Einde CODE]

Gerelateerde Artikelen

Enorme Arduino Animatronic LED Eyeball

Enorme Arduino Animatronic LED Eyeball

Ik ben momenteel bezig met een Halloween contraption dat bestaat uit een paar onderdelen die de moeite waard documenteren. De Enorme Arduino Animatronic LED Eyeball is een van hen.AchtergrondDe meeste animatronic oogbol projecten die ik vond waren mi
Nieuwe animatronic ogen: Rock On!

Nieuwe animatronic ogen: Rock On!

Iemand Peter Penguin of mijn Instructables op Animatronic Penguin Torso of Animatronic ogen had gezien, en was bezig met een sculptuur. Hij wilde de sculptuur van animatie voorzien wanneer iemand liep in de kamer en vroeg als ik het kon doen. Ik dach
Animatronic ogen en Wii Nunchuck deel 2 - Geef het een stem

Animatronic ogen en Wii Nunchuck deel 2 - Geef het een stem

Nadat ik de animatronic ogen in deel 1 bouwde, wilde ik om te voltooien van het gezicht met een stem en eventueel verplaatsen wenkbrauwen. Als je kijkt terug op mijn deel 1, ziet u dat voor de base ik een model uit Thingiverse gebruikte. Als u eenmaa
Animatronic ogen en Wii Nunchuck

Animatronic ogen en Wii Nunchuck

Ik vond deze 3D-bestand op Thingiverse door Micropuller. Ik besefte al snel dat het bestand een oversized oog-eenheid creëert. Maar ik wilde nog verkennen een animatronic gezicht waarmee ik kon maken met een Arduino.Hoe meer ik erover nadacht, hoe me
Arduino Animatronic Hand Mark 1

Arduino Animatronic Hand Mark 1

dit is een animatronic hand ik gebouwd. De vingers, de palm en de onderarm zijn volledig gemaakt van hout (populier om precies te zijn). De vingers zijn geleed door pezen (vislijn) getrokken door motoren. Nu, de 5 servomotoren worden geregeld met een
Animatronic ogen

Animatronic ogen

dit instructable toont hoe maakte ik een set van ogen voor een animatronic robot karakter. Ze alleen verplaatsen van links naar rechts, maar hebben werkende oogleden. (18 +)Ik heb eigenlijk een handmatig gecontroleerde aantal DIY marionet ogen, gebru
Snoep levering Monster

Snoep levering Monster

De Candy levering Monster is de laatste module in een grotere Halloween thema Rube Goldberg-achtig systeem dat leden van de Marin afkomstig is voor de Bon Air Center Halloween Bash 2014. Kinderen komen naar het winkelcentrum en naast het Halloween bi
Arduino gereguleerde Animatronic Skeleton rockband - lopende

Arduino gereguleerde Animatronic Skeleton rockband - lopende

Voor Halloween dit jaar besloten heb ik om te bouwen van een animatronic skeleton rockband. Het is een work in progress op dit punt, maar ik ben best wel blij met hoe het komt langs. De meeste alles is gemaakt van materialen die ik had op hand (ik be
De rollende monster ogen (eenvoudige animatronic)

De rollende monster ogen (eenvoudige animatronic)

Dit is zeer goedkoop en eenvoudig animatronic, alleen gebruikt een enkele dc motor versnellingsbak en 1battery AA operatie. Als onderdeel van rekwisieten voor Halloween kunt gebruiken.Stap 1: materiaal 1. 5mm multiplex2. de lijmpistool3. dc motor ver
Arduino draadloze Animatronic Hand

Arduino draadloze Animatronic Hand

BTW!!! Dit instructable is awsomeeeeeeDit is een zeer eenvoudig, maar op hetzelfde moment een moeilijk project afhankelijk van uw vaardigheidsniveau. Laat krijgen gebouw!Wat dit is, is een draadloze animatronic hand die heeft geen behoefte aan een co
Arduino Steve - een Minecraft Animatronic

Arduino Steve - een Minecraft Animatronic

SamenvattingIk doe vaak Inleiding tot de elektronica voor groepen - en nadat de theorie is uit de weg - dit is leuk project om te zien van de theorie in de praktijk. Met een beetje voorbereiding (pre drukwerken) kan het worden afgerond in minder dan
Arduino gecontroleerd animatronic houten hoofd (leeslamp)

Arduino gecontroleerd animatronic houten hoofd (leeslamp)

deze kop is een leeslamp die kan worden aangepast aan de richting van de verlichting, en grijs als vereist.Dit Instructable combineert Arduino, programmering, sommige eenvoudig elektronica, snijwerk met hand en power tools, mechanische controle en ee
Animatronic tentakels met Arduino

Animatronic tentakels met Arduino

Disclaimer *** dit instructable is documentatie voor een work in progress. Hoewel het project is nog niet compleet, het heeft bereikt kan een plaats waar ik denk het dat beginnen dat zij heilzaam zijn voor andere makers.Het concept voor dit project w
Super Spooky Evil LED ogen van Doom met behulp van atTiny85 en Arduino IDE

Super Spooky Evil LED ogen van Doom met behulp van atTiny85 en Arduino IDE

er zijn een paar spooky ogen instructables daar. Bijvoorbeeld, is er een op basis van een 555 timer, op basis van een aan/uit-schakelaar, een op basis van Arduino, en een gebaseerd op tape.Ik wilde een aantal spookachtige kwade ogen die voldoet aan d