Servo comentarios Hack (gratis) (7 / 8 paso)

Paso 7: Prueba de microcontrolador

En la prueba inicial, comentarios del potenciómetro interno del servo funciona muy muy bien sin demasiado afinar el software. El filtro de suavizado que construí en el software toma 20 lecturas, descarta el más alto y más bajo 6 valores y luego promedia los 8 restantes. Me centré en conseguir lecturas, mientras que el servo todavía era para probar la resolución y suavizado de funcionalidad. Debe haber suficiente código aquí para que usted mismo se meten en problemas:). Notas a continuación, el código sigue después en línea.

Notas de código: ServoWithFeedback_V1

Este es el primer intento (bueno, no es la primera. No posteo ese lío;), tiene como objetivo tomar una lectura de uno a uno de la posición de retroalimentación servo, guardar todos los 180 puntos en una matriz y luego comparar la matriz de nuevas lecturas como el servo se mueve a ellos. Pruebas para suavizar la funcionalidad y del sensor.

Notas de código: ServoWithFeedback_V2

Aquí estoy simplificando la adquisición inicial de la gama. Tomar una lectura alta y baja en cada extremo de la gama y nos map() para correlacionar con ángulos de grado. Esto funciona muy bien. He creado un barrido que compara las lecturas actuales del sensor del cable de retroalimentación para el valor esperado por map(). El desplazamiento es mínimo (-1 a 1) en el loop de levantamiento. En el bucle de caída, el desplazamiento es más parecido a -4 a -6. Esto es bastante consistente y podría trabajarse alrededor de software. Fue capaz de aplicar presión leve y el cuerno del servo hacia el sentido de la marcha de la oposición y algunos valores agradable que conste mi fuerza aplicada.
Aquí tienes, divertirse.

/ * > servo con Feedback_V1 <
Código de prueba de servo con retroalimentación hackeado del pote interno.
Cable de control del servo conectado al digital 2
Cable de retroalimentación de posición conectado a analógico 0
Construir un divisor de voltaje en el pin ARef con dos resistencias de 10K.
La referencia analógica resultante será ~2.2V (véase http://arduino.cc/en/Reference/AnalogReference)
Esto aumentará la resolución del potenciómetro de la lectura.
Utilice los siguientes comandos para toggel entre leer los comentarios de servo
y la lectura de cualquier otro pin analógico que necesita ver a 5V como referencia
analogReference(EXTERNAL); establece 1023 analógica en voltaje en el pin ARef
analogReference(DEFAULT);  sistemas analógicos 1023 a 5V o 3.3V dependiendo de la fuente de alimentación
*/
Biblioteca de servo //import #include

Servo1 servo;                declair servo!
int leer [20];
int respuesta [181];
int servoPin1 = 2;
int prueba;               int de propósito general
int desplazamiento = 0;
ruido de int = 50;
int promedio;
int resultado;

Boolean hecho;

void setup() {}
Serial.Begin(9600);                     inicializar la salida serie
analogReference(EXTERNAL);
pinMode (servoPin1, salida);
Servo1.Attach(servoPin1,570,2400);      activar control de servo en el pin digital 2
setRange();                             ir a la gama de prueba y ajuste de los valores
}

void loop() {}

Servo1.Write(0);
Delay(2000);
para (int i = 0; i < = 180; i += 10) {}
Servo1.Write(i);
Delay (50);
prueba = getFeedback();
offset = test - comentarios [i];
Serial.Print(i);
Serial.Print ("=");
Serial.Print(test);
Serial.Print("");
Serial.Print(Offset);
Serial.Print("");
Serial.println(feedback[i]);
}
Serial.println("");
}

void setRange() {}

Servo1.Write(0);                  enviar el servo a la posición de 0 grados
Delay(2000);                      dar servo tiempo suficiente para llegar allí
para (int i = 0; i < = 180; i ++) {}
Servo1.Write(i);                enviar el siguiente pulso de grado a servo
Delay(50);                      dejar que las cosas dejen de parpadear
Comentarios [i] = getFeedback();    leer los comentarios de servo
Serial.Print(i);
Serial.Print ("=");
Serial.println(feedback[i]);
}
}

int getFeedback() {}

para (int j = 0; j < 20; j ++) {}
lectura [j] = analogRead(0);    obtener datos del potenciómetro de servo
Delay(3);
} / / ordenar el array bajo a alto en lecturas
= false;                    clara clasificación bandera
mientras que (hecho! = true) {/ / intercambio simple ordena números de menor a mayor
= true;
para (int j = 0; j < 20; j ++) {}
Si (lectura [j] > lectura [j + 1]) {/ / aquí los números de clasificación
prueba = lectura [j + 1];
la lectura [j + 1] = lectura de [j];
lectura [j] = prueba;
= false;
}
}
}
para (int j = 0; j < 20; j ++) {//un-comment este bucle for para ver la raw pidió datos
Serial.Print(i);
Serial.Print("");
Serial.println(Reading[j]);
//  }
significa = 0;
para (int k = 6; k < 14; k ++) {//discard los 6 mayores y 6 lecturas más bajas
significa += leyendo [k];
}
resultado = media/8;                  media lecturas útiles
volver (resultado);
}
FINAL DE SERVO_WITH_FEEDBACK_V1

/ * > servo con Feedback_V2 <
Código de prueba de servo con retroalimentación hackeado del pote interno.
Cable de control del servo conectado al digital 2
Cable de retroalimentación de posición conectado a analógico 0
Construir un divisor de voltaje en el pin ARef con dos resistencias de 10K.
La referencia analógica resultante será ~2.2V (véase http://arduino.cc/en/Reference/AnalogReference)
Esto aumentará la resolución del potenciómetro de la lectura.
Utilice los siguientes comandos para toggel entre leer los comentarios de servo
y la lectura de cualquier otro pin analógico que necesita ver a 5V como referencia
analogReference(EXTERNAL); establece 1023 analógica en voltaje en el pin ARef
analogReference(DEFAULT);  sistemas analógicos 1023 a 5V o 3.3V dependiendo de la fuente de alimentación
*/
Biblioteca de servo //import #include

Servo1 servo;                declair servo!

int respuesta;           utilizado para sostener el valor de retroalimentación servo
int mappedPulse;        utilizado para mantener el valor asignado entre servo y rango de grado
lowEnd int;             Comentarios de servo en 0 grados
int High-End;            Comentarios de servo en 180 grados
int leer [20];
int servoPin1 = 2;
test1 int;               int de propósito general
test2 int;
int desplazamiento = 0;
ruido de int = 50;

Boolean rangeTest = false;

void setup() {}

Serial.Begin(9600);   inicializar la salida serie
analogReference(EXTERNAL);
pinMode (servoPin1, salida);
Servo1.Attach(servoPin1,570,2400);       activar control de servo en el pin digital 2
setRange();                            ir a la gama de prueba y ajuste de los valores
}

void loop() {}
Servo1.Write(0);
Delay(2000);                       Espere a llegar
para (int i = 0; i < 181; i ++) {/ / bucle subiendo grados
Servo1.Write(i);
Delay(50);
Comentarios = getFeedback();        subrutina suaviza los datos
mappedPulse = map(i,0,180,lowEnd,highEnd);  mapa de grados a setRange() lecturas
offset = mappedPulse - regeneración;            resolución de mapeado retroalimentación real de V
printData();
}
para (int i = 180; i > 0; i--) {/ / bucle grados bajando
Servo1.Write(i);
Delay(50);
Comentarios = getFeedback();
mappedPulse = map(i,0,180,lowEnd,highEnd);
offset = mappedPulse - regeneración;
printData();
}
}

{} void printData()
Serial.Print(i);
Serial.Print ("=");
Serial.Print(feedBack);
Serial.Print("");
Serial.Print(Offset);
Serial.Print("");
Serial.println(mappedPulse);
}

void setRange() {}
Servo1.Write(0);
Delay(2000);              Espere a que servo llegar
lowEnd = getFeedback();
Servo1.Write(180);
Delay(2000);              Espere a que servo llegar
High-End = getFeedback();
rangeTest = true;
Serial.Print ("0 =");
Serial.Print(lowEnd);
Serial.Print("");
Serial.Print ("180 =");
Serial.println(highEnd);

}


int getFeedback() {}
int promedio;
int resultado;
int prueba;
Boolean hecho;

para (int j = 0; j < 20; j ++) {}
lectura [j] = analogRead(0);    obtener datos del potenciómetro de servo
Delay(3);
} / / ordenar el array bajo a alto en lecturas
= false;              clara clasificación bandera
mientras que (hecho! = true) {/ / clase de intercambio simple, ordena números de menor a mayor
= true;
para (int j = 0; j < 20; j ++) {}
Si (lectura [j] > lectura [j + 1]) {/ / aquí los números de clasificación
prueba = lectura [j + 1];
la lectura [j + 1] = lectura de [j];
lectura [j] = prueba;
= false;
}
}
}
significa = 0;
para (int k = 6; k < 14; k ++) {//discard los 6 mayores y 6 lecturas más bajas
significa += leyendo [k];
}
resultado = media/8;                  media lecturas útiles
Return(Result);
}
SERVO_WITH_FEEDBACK_V2 FINAL

Artículos Relacionados

IKEA MOLGER paquete plano HACK

IKEA MOLGER paquete plano HACK

Paquete plano muebles hacks son una pasión enorme y ha sido así desde mi primer caso de libro de Billy.La Asamblea de este hack de herramienta de almacenaje molger particular no requiere de habilidades de alto montaje, ni herramientas específicas. De
Sub Micro (espía) dirigible no rígido del edificio con Servos hackeado

Sub Micro (espía) dirigible no rígido del edificio con Servos hackeado

Ible este describe la estructura de propulsión interior dirigible alrededor de 10g, adecuado para uso con un común 11" globo del látex. Con 14" o más grande del globo tiene una capacidad de carga para una película de antena miniatura cámara para
Máquina de café de Arduino

Máquina de café de Arduino

Hice este proyecto porque era molesto para iniciar la máquina, que regresar un minuto más tarde cuando la máquina de café está lo suficientemente caliente para encender el interruptor. Encienda el interruptor por 10 segundos, luego apagarlo nuevament
PROTEI_007

PROTEI_007

Protei_007 es el séptimo prototipo para un proyecto llamado proteinuria, que es de código abierto, articulado, segmentado, robótica, sin tripulación, velero, construido para navegar contra el viento, arrastrando un auge largo aceite absorbente, para
Móvil infantil interactivo

Móvil infantil interactivo

¿qué se puede hacer con acrílico fluorescente como la inspiración?  Decidimos hacer un resplandor en la oscuridad bebé móvil, con un juguete que lo acompaña.  Este proyecto se completó como parte de la clase de arte y Computación Universidad de Olin
DIY administradores de contraseñas utilizando Kurety

DIY administradores de contraseñas utilizando Kurety

Seguridad en línea se está convirtiendo en cada vez más importante cada año. Parece como que crecen exponencialmente en tecnología y aquellos que quieran hacer vida peor para empresas y consumidores por igual. Sentí que era mi deber dar un paso lejos
Inteligente de impresión 3D

Inteligente de impresión 3D

¿Por qué smart?Pausa el proceso de impresión le permite integrar sin problemas los componentes internos. Una vez que vayas en este instructable, podrás añadir sensores (RFID), hardware (tornillos, tuercas) e incluso refuerzan su plástico 3d parte imp
Cable Control remoto sin pilas

Cable Control remoto sin pilas

este dínamo Rover es un juguete de control remoto con cable que no requiere ningún tipo de batería, pero utiliza la fuente de energía renovable de la energía del músculo de los niños (o la potencia muscular de los adultos a su niño interior).La idea
Cómo hacer un obstáculos evitando Robot Arduino estilo

Cómo hacer un obstáculos evitando Robot Arduino estilo

que siempre has querido hacer uno de esos robots cool que básicamente pueden evitar cualquier objeto. Pero no tienes suficiente dinero para comprar uno de esos realmente caros, con piezas del corte ya que todos los materiales donde allí para usted. S
Guía secreta de Candy Crush tus amigos con puntajes altos no quieren saber sobre

Guía secreta de Candy Crush tus amigos con puntajes altos no quieren saber sobre

Haga clic aquí ahora http://www.youtube.com/watch?v=E2cLTfcgQ2c y conseguir el número 1 caramelo aplastar secreto guía para vencer a todos su Facebook amigos puntuaciones 100% Legal y totalmente Hack gratis técnicasSi eres como yo, probablemente has
De la torre Pro SG 90 Micro Servo Hack

De la torre Pro SG 90 Micro Servo Hack

Hola allí! Este instructivo contiene las instrucciones completa de cómo se puede hackear una torre pro SG 90 micro servo para rotación continua.¿Por qué?Servos micro pueden ser utilizados como las ruedas del robot y son más convenientes para tales us
Hack de vida: Cómo hacer una película de Redbox gratis

Hack de vida: Cómo hacer una película de Redbox gratis

Todo el mundo quiere cosas gratis. Aquí es un hack de vida simple para conseguir una película libre de Redbox.Paso 1: El único pasoSólo hay uno, solo paso para conseguir una película libre de Redbox.Cuando pide un código de promoción, escriba en: dvd
Servo mecánico Hack. ¿

Servo mecánico Hack. ¿

Otro hack de servo, esto es realmente necesario?Solamente, si agrega algo nuevo. Creo que esto se hace, pero corregirme si me equivoco.Como un novato, al principio me costó entender las diferencias entre los tipos de hacks. Lo que puedo decir hay 3 t
Hack Cube Servo (G15) de alta velocidad

Hack Cube Servo (G15) de alta velocidad

Este Instructable le guiará para modificar el Servo del cubo para conseguir una mayor velocidad de servo de cubo normal.Paso 1: Obtener herramientas necesarias listosLo que se necesita:1. un destornillador philips.2. pegamento para plástico de epoxy.