Lego Nerf Arduino torentje (16 / 17 stap)

#include < Servo.h >
/ * door Gabe Magnuson
voor: Lego Nerf Arduino torentje
7/24/2013
*/
/*
deze schoen en testen van het bereik van getallen op uw analoge stick,


mijn ps1 stick waarden varieerden van 0 - 1000 en zet ze als sensorMin en sensorMax
ook controleren om ervoor te zorgen dat alle servo pinnen en pot pinnen kloppen
*/

Const int numReadings = 10;    Const kan niet worden gewijzigd
Const int sensorMin = 0;       minimumwaarde van analoge stick, test voor het gebruik van de seriële terminal
Const int sensorMax = 1000;    maximale waarde van analoge stick, test hetzelfde manier
byte byteRead;
Servo servo1;                  Start een exemplaar van de servo en geef het een naam
Servo servo2;
Servo servoFire;
int pos = 0;
int servo1Readings [numReadings];      de lezingen van de analoge ingang
int servo2Readings [numReadings];
int index = 0;                  de index van de huidige lezing
int servo1total = 0;                  het lopend totaal
int servo1Average = 0;                het gemiddelde
int servo2total = 0;                  het lopend totaal
int servo2Average = 0;                het gemiddelde
int pos1 = 90;
int pos2 = 90;
int pos1Old = 90;
int pos2Old = 90;
int inputVertical = A0;     input pinnen voor pot signaal draad
int inputHorizontal = a1 worden verkregen;
int sensorRange = 0;        variabelen die worden gebruikt om het bereik van de beweging
int topRange = 0;
int bottomRange = 0;

VOID Setup
{
pinMode(OUTPUT,A5); initialiseren van deze pinnen als uitgang aan macht analoge sticks
pinMode(OUTPUT,A4);
pinMode(INPUT,inputVertical);      pincode voor potten om input instellen
pinMode(INPUT,inputHorizontal);
Serial.begin(9600);             Initialiseer seriële communicatie met de computer:
voor (int thisReading = 0; thisReading < numReadings; thisReading ++) / / initialiseren van alle lezingen op 0 in beide arrays (te glad waarden, als verward checkout "glad" op de arduino website)
{servo1Readings [thisReading] = 0;
servo2Readings [thisReading] = 0;}
servo1.attach(10);            Dit is de A2, de numnering van de digitale pins blijven het analoge basisgewicht A0
servo2.attach(11);            Dit is A3
servoFire.attach(16);
sensorRange = sensorMax - sensorMin;  dit het bereik van de potten in zes brokken chops en dan neemt de boven- en onderkant 2 om te worden gebruikt in de beweging van de servo 's
sensorRange = sensorRange / 6;
bottomRange = sensorRange * 2;
topRange = sensorMax - bottomRange;
servoFire.write(0);
servo1.write(90);
servo2.write(90);
}

void loop {}
pos1Old = pos1;  pos weerhoudt wijzigen als er geen beweging wordt gedetecteerd
pos2Old = pos2;
analogWrite(A5,168);  deze twee pinnen worden gebruikt voor het aandrijven van analoge sticks
analogWrite(A4,168);
digitalWrite(12,HIGH);
de laatste lezing aftrekken:
servo1total = servo1total - servo1Readings [index];         glad data afkomstig van potten
lezen van de sensor:
servo1Readings [index] = analogRead(inputHorizontal);
de lezing aan het totaal toevoegen
servo1total = servo1total + servo1Readings [index];
het gemiddelde berekenen:
servo1Average = servo1total / numReadings;
de laatste lezing aftrekken:
servo2total = servo2total - servo2Readings [index];
lezen van de sensor:
servo2Readings [index] = analogRead(inputVertical);
de lezing aan het totaal toevoegen
servo2total = servo2total + servo2Readings [index];
verder naar de volgende positie in de matrix:
index = index + 1;

Als we aan het einde van de array...
Als (index > = numReadings)
.. .wrap rond naar het begin:
index = 0;
het gemiddelde berekenen:
servo2Average = servo2total / numReadings;

Als (servo1Average > topRange)
{pos1 ++;

Als (pos1 > 180)
{pos1 = 180;}
Serial.println ("servo1 omhoog");
}

else if (servo1Average < bottomRange)
{pos1--;

Als (pos1 < 0)
{pos1 = 0;}
Serial.println ("servo1 naar beneden");
}

anders
{pos1 = pos1Old;
Serial.println ("servo1 nergens");
}
Als (servo2Average > topRange)
{pos2 ++;

Als (pos2 > 110)
{pos2 = 110;}  servo verplaatsing beperkt

Serial.println ("servo2 omhoog");
}

else if (servo2Average < bottomRange)
{pos2--;

Als (pos2 < 75)
{pos2 = 75;}   servo verplaatsing beperkt

Serial.println ("servo2 naar beneden");
}

anders
{pos2 = pos2Old;
Serial.println ("servo2 nergens");
}

/ * Serial.println(pos2);   u kunt dit stukje debuggen en in welke mate de servo's zijn ingesteld op bijhouden
Serial.println(Pos1); * /
servo2.write(pos2);
servo1.write(Pos1);

/ * controleren als gegevens zijn verzonden vanaf de computer: * /
Als (Serial.available()) {}
/ * Lees de meest recente byte * /
byteRead = Serial.read();
/ * ECHO van de waarde die werd voorgelezen, terug naar de seriële poort. */
Als (byteRead = 'F');
{Serial.println("fire");
voor (pos = 0; pos < 120; pos += 1) / / gaat van 0 graden tot 120 graden
{/ / in stappen van 1 graad
servoFire.write(pos);              servo naar positie in de variabele 'pos' vertellen
delay(15);                       wacht 15ms voor de servo te bereiken de positie
}
voor (pos = 120; pos > = 1; pos-= 1) / / gaat van 120 graden tot 0 graden
{
servoFire.write(pos);              servo naar positie in de variabele 'pos' vertellen
delay(15);                       wacht 15ms voor de servo te bereiken de positie
}
}
}

/ * Serial.println(analogRead(inputVertical));
Serial.println(analogRead(inputHorizontal)); * /
Dit kan worden gebruikt voor het testen van de min/max potten

delay(5);        vertraging tussendoor servo om tijd te geven om te verplaatsen

}

Gerelateerde Artikelen

De eerste volautomatische, clip fead, LEGO Nerf gun: Raptor CS-35

De eerste volautomatische, clip fead, LEGO Nerf gun: Raptor CS-35

dit is mijn eerste Instructable, dus hallo.Heb je ooit gedacht wat er zou gebeuren als u LEGO met Nerf combineren? Nou, het blijkt dat u krijg dit...Ik heb twee van deze wapens voor ongeveer een jaar nu, en wil om het te delen met de wereld nu dat ik
Lego Motor Arduino Interface

Lego Motor Arduino Interface

ik wilde een Microcontroller toevoegen aan mijn Technic lego, maar ik kan niet veroorloven Mindstorms of NXT nu, dus waarom niet toevoegen mijn Arduino?Ik wilde een oplossing aan het toevoegen van motoren die is niet invasief, doet niet vernietigen e
Lego nerf dart

Lego nerf dart

ik ben een grote lego-fan en ook een grote fan van nerf geweren, dus ik bedenken een manier moest te mengen van de twee en vervolgens kwam met dit geweldige dart.Stap 1: de delen krijgen 1 lego peg connector1 kleine lego spacer1 kleine peg (hoeft nie
Awesome Lego Minifig terug torentje

Awesome Lego Minifig terug torentje

een ander ding ik struikelde op wanneer het proberen om een machinegeweer stok op zijn rugStap 1: gebouw Just follow the pics
Auto-torentje met Pixy en Nerf Gun

Auto-torentje met Pixy en Nerf Gun

Met het Auto-torentje-Project, kunt u automatisch opsporen en brand op uw vijanden! Dit project maakt gebruik van een Pixy cameramodule, een RobotGeek pan/tilt base, een schuim dart kanon en een Geekduino te coördineren van de componenten. De Pixy ka
Arduino & Lego Solar Tracker (dubbele as)

Arduino & Lego Solar Tracker (dubbele as)

Ik maakte een solar tracker met lego en arduino.Het is een zeer mooi en eenvoudig project als u wilt leren van de arduino en elektronica. Geen solderen vereist.Het doel is alleen educatieve omdat de motoren niet sterk genoeg om het gewicht van de zon
R/C LEGO® Dart Shooter Droid

R/C LEGO® Dart Shooter Droid

speelgoed impliceert interactie! Maar wanneer ik het opbouwen van LEGO® Track Bot het ontbrak van de tussenkomst. Op het moment dat ik de LEGO Track Bot bouwde was ik niet na te denken over het deel van de interactie van het at all. Dus besloten heb
LEGO:: PORTAL

LEGO:: PORTAL

In deze instructie ik zal je laten zien hoe te bouwen sommige tekens uit Portal 2. Ik probeerde te delen gebruik niet gewijzigd, zodat je de modellen zonder verwoesten uw onderdelen opbouwen kan.Ik denk dat de foto's moeten zelf uitleggen.Stap 1: LEG
Bouwen van een kleine elektronische toetsenbord met LEGO en faya-nugget

Bouwen van een kleine elektronische toetsenbord met LEGO en faya-nugget

In mijn laatste Instructable, ik aangetoond hoe met Lego, een Arduino board en faya-nugget modules te bouwen van een fan: http://goo.gl/brQ9tR,Deze keer ga ik u tonen hoe faya-nuggets kunt met het maken van een kleine elektronische toetsenbord,Stap 1
B-Daman snelheidsmeter

B-Daman snelheidsmeter

"Papa, is er iets wat we kunnen bouwen voor het meten van de snelheid van een B-Daman marmeren?"Nu dat is het soort vraag houdt een papa geek.Dit project is gebouwd met Arduino, een goedkope programmeerbare computer op een Printplaat. U kunt com
Het Legoduino Circuit leren Project

Het Legoduino Circuit leren Project

dit project was gemaakt/ontworpen/het geesteskind van een 9-jarige meisje.Mijn dochter is de uitvinder van dit Lego Circuit/Arduino Learning Project, ik net geholpen met de foto's en de write-up van dit instructable.  Ze is bouwt circuits hier thuis
Self Balancing Robot met LCD

Self Balancing Robot met LCD

De gewijzigde versie van mijn mpu6050 balancing robot stabieler met LCD en voorbeeld van verbinding 2 i2c op dezelfde pincodeVideo 1Video 2Stap 1: Stap 1: ◾L298N dual motor stuurprogramma breakout board◾L298N dual motor stuurprogramma breakout board1
Arduino / Wii controlled Lego Star Wars raket torentje

Arduino / Wii controlled Lego Star Wars raket torentje

An Arduino board gegevens worden ontvangen van een Wii Nunchuck en stuurt dit naar RIE servo's: x-, y- en trigger. Een onafhankelijke laser is toegevoegd voor targeting. Op dit moment zeer wiebelende vanwege de goedkope servo's gebruikt.Stap 1: bouw
Arduino Gum Ball torentje

Arduino Gum Ball torentje

De Gum Ball torentje is project ik bij HKU in Nederland maakte. Dit project was bedoeld als een inleiding tot de mogelijkheden van de Arduino en was heel vrij in vorm.Ik nam mijn inspiratie uit de torentjes verschijnt in Portal. Ik wilde om te replic