LEGO Nerf Arduino torreta (16 / 17 paso)

#include < Servo.h >
/ * por Gabe Magnuson
para: Lego Nerf Arduino torrecilla
24/07/2013
*/
/*
arrancar este en marcha y probar la gama de números en el stick analógico,


mis valores de memoria de ps1 oscilan entre 0 - 1000 y como sensorMin y sensorMax
También verifique que todas servo pernos y pernos de olla son correctos
*/

const int numReadings = 10;    const no se pueden cambiar
const int sensorMin = 0;       valor mínimo de stick analógico, prueba hacerlo mediante terminal de serie
const int sensorMax = 1000;    valor máximo de stick analógico, la prueba misma manera
byteRead de bytes;
Servo1 servo;                  iniciar una instancia del servo y darle un nombre
Servo servo2;
Servo servoFire;
int pos = 0;
int servo1Readings [numReadings];      las lecturas de la entrada analógica
int servo2Readings [numReadings];
Índice de int = 0;                  el índice de la lectura actual
int servo1total = 0;                  la corriente total
int servo1Average = 0;                el medio de
int servo2total = 0;                  la corriente total
int servo2Average = 0;                el medio de
int pos1 = 90;
int pos2 = 90;
int pos1Old = 90;
int pos2Old = 90;
int inputVertical = A0;     pines de entrada para el cable de señal de la olla
int inputHorizontal = A1;
int sensorRange = 0;        variables utilizadas para decidir el rango de movimiento
int topRange = 0;
int bottomRange = 0;

void setup()
{
pinMode(OUTPUT,A5); inicializar estos pines como salidas a sticks analógicos de potencia
pinMode(OUTPUT,A4);
pinMode(INPUT,inputVertical);      Set ollas a la entrada de los pines
pinMode(INPUT,inputHorizontal);
Serial.Begin(9600);             inicializar la comunicación serial con la computadora:
para (int thisReading = 0; thisReading < numReadings; thisReading ++) / / inicializar todas las lecturas a 0 en ambas matrices (para suavizar los valores, si confunde checkout "atenuación" en la Página Web de arduino)
{servo1Readings [thisReading] = 0;
servo2Readings [thisReading] = 0;}
servo1.Attach(10);            se trata de A2, la numnering de los pines digitales continúan el analógico a partir de A0
servo2.Attach(11);            Esto es A3
servoFire.attach(16);
sensorRange = sensorMax - sensorMin;  Esto corta la gama de las ollas en seis trozos y luego toma la parte superior e inferior 2 para ser utilizado en el movimiento de los servos
sensorRange = sensorRange / 6;
bottomRange = sensorRange * 2;
topRange = sensorMax - bottomRange;
servoFire.write(0);
servo1.Write(90);
servo2.Write(90);
}

void loop() {}
pos1Old = pos1;  mantiene posición de cambiar si no se detecta ningún movimiento
pos2Old = pos2;
analogWrite(A5,168);  Estos dos pines se utilizan para sticks analógicos
analogWrite(A4,168);
digitalWrite(12,HIGH);
Reste la lectura:
servo1total = servo1total - servo1Readings [índice];         Suaviza los datos provenientes de los potes
lectura del sensor:
servo1Readings [index] = analogRead(inputHorizontal);
Añadir la lectura al total:
servo1total = servo1total + servo1Readings [índice];
calcular la media:
servo1Average = servo1total / numReadings;
Reste la lectura:
servo2total = servo2total - servo2Readings [índice];
lectura del sensor:
servo2Readings [index] = analogRead(inputVertical);
Añadir la lectura al total:
servo2total = servo2total + servo2Readings [índice];
avanzar a la siguiente posición en la matriz:
index = index + 1;

Si estamos en el final de la matriz...
Si (Índice > = numReadings)
.. .wrap todo al principio:
índice = 0;
calcular la media:
servo2Average = servo2total / numReadings;

Si (servo1Average > topRange)
{pos1 ++;

Si (pos1 > 180)
{pos1 = 180;}
Serial.println ("servo1 para arriba");
}

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

Si (pos1 < 0)
{pos1 = 0;}
Serial.println ("servo1 abajo");
}

otra cosa
{pos1 = pos1Old;
Serial.println ("servo1 en ninguna parte");
}
Si (servo2Average > topRange)
{pos2 ++;

Si (pos2 > 110)
{pos2 = 110;}  limita el movimiento del servo

Serial.println ("servo2 para arriba");
}

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

Si (pos2 < 75)
{pos2 = 75;}   limita el movimiento del servo

Serial.println ("servo2 abajo");
}

otra cosa
{pos2 = pos2Old;
Serial.println ("servo2 en ninguna parte");
}

/ * Serial.println(pos2);   puede usar este bit para depurar y qué grado los servos se establecen en la pista
Serial.println(Pos1); * /
servo2.Write(POS2);
servo1.Write(Pos1);

/ * verificar si los datos se ha enviado desde el ordenador: * /
Si (Serial.available()) {}
/ * leer el byte más reciente * /
byteRead = Serial.read();
/ * El valor leído, hacia el puerto serial del eco. */
Si (byteRead = 'F');
{Serial.println("fire");
para (pos = 0; pos < 120; pos += 1) / / va desde 0 grados hasta 120 grados
{/ / en pasos de 1 grado
servoFire.write(pos);              Dile el servo a la posición en la variable 'pos'
Delay(15);                       espera 15ms para el servo a la posición
}
para (pos = 120; pos > = 1; pos-= 1) / / va de 120 grados a 0 grados
{
servoFire.write(pos);              Dile el servo a la posición en la variable 'pos'
Delay(15);                       espera 15ms para el servo a la posición
}
}
}

/ * Serial.println(analogRead(inputVertical));
Serial.println(analogRead(inputHorizontal)); * /
Esto puede usarse para probar el mín/máx de ollas

Delay(5);        demora en el medio para dar tiempo de servo para mover

}

Artículos Relacionados

Twitter seguimiento juguete construido con LEGO y Arduino

Twitter seguimiento juguete construido con LEGO y Arduino

Se trata de un juguete LEGO animado que monitorea twitter y celebra cada vez que encuentra una nueva ocurrencia del hashtag #BLOCKSHELL que suena una campana, una luz intermitente y enviando a un poco huevón activista minfigure encima de la superestr
El primer completamente automático, clip fead, LEGO Nerf pistola: Raptor CS-35

El primer completamente automático, clip fead, LEGO Nerf pistola: Raptor CS-35

este es mi primer Instructable, así que Hola.¿Has pensado qué pasaría si combinas LEGO con Nerf? Bueno resulta que le sale esto...He tenido dos de estas armas por casi un año y quiero compartir con el mundo ahora que he terminado la Universidad.El co
LEGO nerf dart

LEGO nerf dart

soy un fan de lego grande y también un gran fan de pistolas nerf, así que tenía que averiguar una forma de mezclar los dos y entonces subió con este dardo increíble.Paso 1: obtener las piezas 1 lego clavija conector1 separador pequeño de lego1 clavij
Caja de Lego de Arduino.

Caja de Lego de Arduino.

Hola este es mi primer proyecto. Espero que me entiendas la guía, muy simple y práctico. Cualquier problema o duda dar feedback en los comentarios.Paso 1: Lo que se necesita. Aquí encontrará una lista de artículos necesarios para el proyecto.-Lego:1
Microduino mCookie reproductor de música - enlaces magnéticamente, LEGO® y Arduino-compatible

Microduino mCookie reproductor de música - enlaces magnéticamente, LEGO® y Arduino-compatible

Me gustaría compartir con ustedes este fácil hacer mCookie reproductor de música de Microduino. Todo proyecto requiere sólo 5 módulos de mCookie, que unen magnéticamente para que siempre se hace la correcta conexión. Puede ser programado en un entorn
Arduino y Lego seguidor Solar (doble eje)

Arduino y Lego seguidor Solar (doble eje)

Hice un seguidor solar con lego y arduino.Es un proyecto muy bonito y sencillo si quieres aprender arduino y la electrónica. No requiere soldadura.Su propósito es sólo educativo porque los motores no son lo suficientemente fuertes como para soportar
LEGO + Arduino = Brickduino (1. el LED)

LEGO + Arduino = Brickduino (1. el LED)

¿Sé que LEGO tiene el set de Mindstorms que probablemente es grande, pero estaría aún mejor (y más barato) para hackear sus ladrillos regulares en su propio micro controlador controlado LEGO? Así lo creo!Tenía esta idea durante mucho tiempo, pero a m
R/C LEGO® Dart Shooter droide

R/C LEGO® Dart Shooter droide

juguete implica interacción! Pero cuando construyo LEGO® pista Bot careció de cualquier interacción. En la época que construyó el Bot de pista de LEGO no estaba pensando en la parte de la interacción de la misma en todos. Así que decidí construir otr
Construir un pequeño teclado electrónico con LEGO y faya-pepita

Construir un pequeño teclado electrónico con LEGO y faya-pepita

En mi último Instructable, demostré cómo utilizar Lego, un Arduino board y faya-nugget módulos para construir un ventilador: http://goo.gl/brQ9tR,Esta vez voy a mostrar cómo utilizar pepitas de faya para crear un pequeño teclado electrónico,Paso 1: M
Velocímetro de B-Daman

Velocímetro de B-Daman

"Papá, ¿existe algo que podemos construir para medir la velocidad de una canica de B-Daman?Ahora es el tipo de pregunta un padre geek ama.Este proyecto está construido con Arduino, una computadora programable barata en un tablero de circuito. Permite
Self Balancing Robot con LCD

Self Balancing Robot con LCD

La versión modificada de mi mpu6050 robot de equilibrio más estable con LCD y ejemplo de conectar 2 i2c en el mismo pinVideo 1Video 2Paso 1: Paso 1: tablero de arranque de controlador dual de motor ◾L298NTablero de arranque de controlador dual de mot
Arduino / Wii control torreta de cohetes Lego Star Wars

Arduino / Wii control torreta de cohetes Lego Star Wars

placa Arduino un recibe datos desde un Wii Nunchuck y lo envía a res servos: x, y, gatillo. Se ha añadido un láser independiente para apuntar. Actualmente es muy inestable debido a los servos baratos usados.Paso 1: construcción La torreta cohete fue
Torreta de bola de goma de Arduino

Torreta de bola de goma de Arduino

La torreta de bola de goma de mascar es proyecto que hice en HKU en los países bajos. Este proyecto fue significado como una introducción a las posibilidades de Arduino y era muy libre en forma.Tomé mi inspiración desde las torretas que puedes ver en
Auto torreta con Pixy y pistola Nerf

Auto torreta con Pixy y pistola Nerf

Con el proyecto de Auto-Torrecilla, automáticamente puede rastrear y disparar a tus enemigos! Este proyecto utiliza un módulo de cámara de duende, un RobotGeek de pan/tilt base, una pistola de dardos de espuma y un Geekduino para coordinar los compon