Sistema de orientación accionado de cohete de Arduino (6 / 6 paso)

Paso 6: código de

Este código no puede trabajar, no dude en cambiarlo y quiero saber cómo cambió. Esto es dominio del público.

/*
Este Introdúzca está basado en el acelerómetro Memsic 2125 leer código de http://www.arduino.cc/en/Tutorial/Memsic2125
y el RCServoMotorsControlledWithAccelMeter2
basado en el código de ejemplo de ITP
http://ITP.nyu.edu/physcomp/Labs/servo
Estos bocetos han sido modificados y reelaborados por Chris Barta.
therocketgeek.wordpress.com

Este ejemplo de código es de dominio público.
*/
#include < Servo.h >

Servo myservo;

const int xPin = 11; X salida del acelerómetro
const int yPin = 12; Y salida del acelerómetro

lastPulse largo = 0; Tiempo en milisegundos del pulso del pasado
int refreshTime = 10; Tiempo entre pulsos

int minSensorValue [xPin] = {-180, -180}; puede leer el valor menos el acelerómetro
int maxSensorValue [yPin] = {180, 180}; el mayor valor que el acelerómetro puede leer
int anchura de impulso [xPin] [yPin] = {0, 0}; Anchura de pulso para los servos

int sensorRange [xPin] [yPin] = {maxSensorValue [0] - minSensorValue [0]
maxSensorValue [1] - minSensorValue [1]};
int i = 0;

fase de int = 0; variable para seleccionar el motor servo para conducir

void setup()
{
myservo.Attach (1, 45, 135); definir qué pines son los servos en
myservo.Attach (2, 45, 135); el ángulo mínimo
myservo.Attach (3, 45, 135); puede girarse
myservo.Attach (4, 45, 135); y el ángulo máximo
myservo.Attach (5, 45, 135); puede girarse
myservo.Attach (6, 45, 135);
myservo.Attach (7, 45, 135);
myservo.Attach (8, 45, 135);
myservo.Write(90); conjunto servo a mitad de carrera (90 grados)

pinMode (xPin, entrada); set x valor del acelerómetro como insumo
pinMode (yPin, entrada); ajuste y de acelerómetro como insumo
}

void loop()
{
variables para leer las anchuras de pulso:
int pulseX, pulseY;
variables que contienen las aceleraciones resultantes
int accelerationX, accelerationY;

leer pulso de ejes x e y:
pulseX = pulseIn(xPin,HIGH);
pulseY = pulseIn(yPin,HIGH);

convertir el ancho de pulso de aceleración
accelerationX y accelerationY en milli-g es:
gravedad de la tierra es 1000 milli-g o 1 g.
accelerationX = ((pulseX / 10) - 500) * 8;
accelerationY = ((pulseY / 10) - 500) * 8;

el servo de pulso otra vez si la actualización tiempo (20ms) han pasado:
Si (millis() - lastPulse > = refreshTime) {}

Si (accelerationX < 0) / / si el cohete se mueve fuera del eje x entonces
{
myservo.Attach(1); los dos servos 1.3 se moverán para oponerse a la circulación
myservo.Write(135); la dirección del servo 1
myservo.Attach(3); los dos servos son uno frente al otro
myservo.Write(45); entonces tienen que moverse las direcciones "opuestas"

} else if (accelerationX > 0); Si el cohete va
(accelerationY > 0); x, y la dirección
{
myservo.Attach(5); luego los servos en el uppersection
myservo.Write(135); umbral (5,7) contrarrestar el movimiento en esa dirección
myservo.Attach(7);
myservo.Write(45);
}

} else if (accelerationX = 0); Si entonces no hay ningún movimiento
(accelerationY = 0); mantener los servos con el cohete
{
myservo.Attach(5);
myservo.Write(90);
myservo.Attach(7);
myservo.Write(90);
}

{
Si (accelerationX > 0) / / igual cosa en la otra dirección
{
myservo.Attach(1);
myservo.Write(45);
myservo.Attach(3);
myservo.Write(135);

} else if (accelerationX < 0);
(accelerationY < 0);
{
myservo.Attach(5);
myservo.Write(45);
myservo.Attach(7);
myservo.Write(135);

Si (accelerationX = 0);
(accelerationY = 0);
{
myservo.Attach(5);
myservo.Write(90);
myservo.Attach(7);
myservo.Write(90);
}
}

Si (accelerationX = 0); Si no hay ningún movimiento
{
myservo.Attach(1); Mantenga los servos con el cohete
myservo.Write(90);
myservo.Attach(3);
myservo.Write(90);
}
}
Si (accelerationY < 0)
{
myservo.Attach(2);
myservo.Write(45);
myservo.Attach(4);
myservo.Write(135);

} else if (accelerationX > 0);
(accelerationY < 0);
{
myservo.Attach(6);
myservo.Write(135);
myservo.Attach(8);
myservo.Write(45);
}
{
Si (accelerationX = 0);
(accelerationY = 0);
{
myservo.Attach(6);
myservo.Write(90);
myservo.Attach(8);
myservo.Write(90);
}
}

{
Si (accelerationY > 0)
{
myservo.Attach(2);
myservo.Write(135);
myservo.Attach(4);
myservo.Write(45);

} else if (accelerationX < 0);
(accelerationY > 0);
{
myservo.Attach(6);
myservo.Write(45);
myservo.Attach(135);
myservo.Write(135);
}
{
Si (accelerationX = 0);
(accelerationY = 0);
{
myservo.Attach(6);
myservo.Write(90);
myservo.Attach(8);
myservo.Write(90);
}
}
}
Si (accelerationY = 0);
{
myservo.Attach(2);
myservo.Write(90);
myservo.Attach(4);
myservo.Write(90);
}
{
Delay(100); Esto es para repetir el tiempo de retardo para que los servos pueden ponerse
}
}

También, usted puede ir a https://sites.google.com/site/arduinorocket/products-experiment . Es casi lo mismo excepto hay muescas. 

Artículos Relacionados

Sistema de seguridad y Control de acceso con Arduino y RFID

Sistema de seguridad y Control de acceso con Arduino y RFID

sistema de seguridad y Control de acceso con Arduino y RFIDEste proyecto es un evolotuin de mi primer proyecto llamado "Arduino – sistema de seguridad y acceso Control"Como se puede ver en el http://arduinobymyself.blogspot.com.br/2012/03/arduin
Hacer un sistema de orientación láser de Nerf de la luz táctica

Hacer un sistema de orientación láser de Nerf de la luz táctica

por lo que había visto en algún lugar en internet alguien que ponga un puntero láser en el Nitefinder EX-3 para reemplazar el "rayo rojo" y parecía bastante interesante. después de no encontrar ese mod otra vez, decidí hacer mi propia.Este proye
Cohete de Arduino datalogger

Cohete de Arduino datalogger

¿Si alguna vez queríamos analizar todos los aspectos de su vuelo de cohetes modelo para solamente £15?En este instructable incluir código e instrucciones para un Arduino cohete datalogger capaz de medir la altitud del cohete, aceleración, temperatura
Sistema de puerta automática de garaje de Arduino

Sistema de puerta automática de garaje de Arduino

nuestra clase TEJ recibió el desafío de construir algo que sea original o y mejora algo que ya existe y de alguna manera debe implementar "Arduino"Este Instructable permitirá crear una puerta de garaje equipada con un sensor a sentido cuando un
Construir un arma centinela con sistema de cable de viaje láser y Arduino

Construir un arma centinela con sistema de cable de viaje láser y Arduino

* NOTA * ESTE PROYECTO ES REALIZADO POR UN GRUPO DE ESTUDIANTES DE SINGAPUR POLITÉCNICA BAJO FYP SUPERVISOR TEO SHIN JEN. REALIZADO POR CHAN KAI CHI Y 2 ANÓNIMOS.Concepto:Gatillo de la pistola cuando el láser está bloqueado por entrometerse objeto.No
NRF905 de medición de distancia por ultrasonidos sistema de transmisión inalámbrico basado en Arduino

NRF905 de medición de distancia por ultrasonidos sistema de transmisión inalámbrico basado en Arduino

ICStation Equipo de presentar esta medición de distancia por ultrasonidos NRF905 sistema de transmisión inalámbrico con UNO de ICStation y Mega 2560 compatible con Arduino. El voltaje de funcionamiento es DC5V. Utiliza ultrasónico para medir distanci
NRF24L01 teclado inalámbrico sistema de transmisión de datos basado en Arduino

NRF24L01 teclado inalámbrico sistema de transmisión de datos basado en Arduino

ICStation Equipo es introducir este sistema de transmisión sin hilos basado en ICStation Mega 2560 y R3 UNO compatible con Arduino. Utiliza voltaje de funcionamiento de DC5V. Cuando hay alguien presionando las teclas, el sistema de envío enviará el v
Sistema de alarma antirrobo entrada protector basado en Arduino

Sistema de alarma antirrobo entrada protector basado en Arduino

ICStation equipo presentarles esta entrada guardia alarma antirrobo basado en MEGA ICStation. Este sistema trabaja bajo fuente de alimentación de 5V DC, puede realizar la guardia de entrada infrarrojo vigilancia y utiliza el zumbador activo para acab
Sistema de navegación de mapa GPS de Arduino

Sistema de navegación de mapa GPS de Arduino

Construido sobre la base de Arduino UNO, GPS, tarjeta SD, TFT, sistema de navegación GPS mapa es para obtener la información de posición en tiempo real via GPS, enviar a la ONU para el cálculo, según los resultados de cálculo y teamed para arriba con
NRF24L01 RF Control sistema para R/C vehículo basado en Arduino y

NRF24L01 RF Control sistema para R/C vehículo basado en Arduino y

El objetivo de este proyecto es construir un transmisor y un receptor utilizando un componente barato y fácil de usar como nRF24L01, Arduino UNO y Arduino Nano transceptor. Este proyecto es un sencillo y fácil de implementar y puede ser un buen punto
Modelo cohete encendido y plataforma de lanzamiento para menos de $5

Modelo cohete encendido y plataforma de lanzamiento para menos de $5

Se trata de un Instructable simple, le enseña a construir su plataforma de lanzamiento de cohete modelo propio y sistema de encendido. La razón por la que he hecho este Instructable es porque la mayoría de sistemas de lanzamiento es muy costoso, hast
Radio telemetría para un cohete modelo

Radio telemetría para un cohete modelo

vuelan cohetes modelo es divertido, pero siempre existe la pregunta de qué tan alto lo hizo ir. Utilizando un microcontrolador programable y algunos sensores, puede supervisar la fase entera de vuelo y aceleración medida y altura, entre otras cosas.
Encendedor de cohetes modelo remoto

Encendedor de cohetes modelo remoto

este proyecto es un sistema de ignición para los cohetes modelo de estes. Es accionado por una batería de 9V, por lo que el motor del cohete tiene un 99% de probabilidad de ignición correctamente. Tiene un interruptor de seguridad, un LED armado y un
Cohete de una rama de sauce

Cohete de una rama de sauce

Una colección diversa de madera que se reunieron durante los años puede llevar a algunos proyectos interesantes. Finalmente consiguió a hacer algo había estado pensando por un rato - rayar la construcción de un cohete de una rama de sauce. Aquí está