Controlador de lente Arduino - Zoom / enfoque sincronizado con el controlador clásico de Wii: 11 pasos (con fotos)

Controlador de lente Arduino - Zoom / enfoque sincronizado con el controlador clásico de Wii: 11 pasos (con fotos)

Tabla de contenido:

Anonim

Mi cámara Lumix GH2 Micro Four Thirds no solo graba videos fantásticos de alta definición, sino que con adaptadores de bajo costo, puedo usarlos con lentes manuales más antiguos que son baratos y, a menudo, de muy alta calidad. Grabo muchos videos de rendimiento para el estudio de danza de mi hija, y uso un lente de zoom Nikon 28-85mm f3.5 porque ofrece un buen rango de zoom y una apertura rápida para un lente de zoom. El problema con esta configuración es que tengo que hacer zoom y enfocar el lente manualmente, y aunque trato de minimizar el zoom al disparar, hay ocasiones en que es esencial para mantener el encuadre correcto y mostrar las habilidades de los bailarines. Me las arreglé para aprender a hacer zoom manualmente sin introducir un exceso de fluctuación en la cámara (generalmente), pero como también me estoy enfocando manualmente, es un poco más complicado ajustar el enfoque de manera rápida y suave después de acercar o alejar el zoom. Para superar este inconveniente, decidí crear un controlador de zoom y enfoque para mi cámara (como muchos otros lo han hecho), con el objetivo fundamental de poder mantener automáticamente el enfoque adecuado a medida que la lente se acerca y se aleja sin problemas. Después de muchos meses de creación de prototipos, llegué a una gran solución que utiliza un clon Arduino que acepta la entrada de un controlador clásico de Wii y que utiliza 2 servos de hobby para mover la lente.El costo total del producto final es menos de $ 100.

El diseño que finalmente implementé tiene una serie de características avanzadas:

- 2 joysticks proporcionan control de lente de velocidad continuamente variable. Al mover el joystick derecho hacia adelante y hacia atrás, los controles sincronizados enfocan el zoom y el enfoque, y al mover el joystick izquierdo de lado a lado los controles solo enfocan. La implementación del control de velocidad también ayuda a mantener el ruido del servo a niveles aceptables.

- Hay 6 configuraciones programables "goto" de zoom / enfoque que se pueden programar al vuelo desde el Wii Classic, y que moverán el zoom y el enfoque a la posición deseada con solo presionar un botón (hombro izquierdo para el zoom más amplio, hombro derecho) para la mayoría del zoom, y a, b, xey para cualquier posición de zoom / enfoque).

- Los ajustes máximos de movimiento de la lente también se pueden programar sobre la marcha para garantizar que los servos no intenten girar más allá de los límites de las posiciones de enfoque y zoom de la lente.

- D-pad proporciona movimientos de un solo grado de zoom (arriba y abajo) y enfoque (izquierda y derecha) para realizar ajustes precisos para el enfoque / zoom crítico.

Aquí hay una demostración de cómo funciona el enfoque del zoom sincronizado en mi GH2 con una lente de zoom Nikon 28 - 85 mm:

En esta instrucción, cubriré los conceptos básicos de cómo construir su propia versión de este controlador, incluido el código Arduino y las instrucciones para montar los servos en una plataforma de cámara basada en rieles. Mencionaré cómo construí mi plataforma, pero como no estoy realmente contento con ella, no daré pasos detallados sobre eso y le dejaré a usted que descubra su propia solución basada en las imágenes de mi plataforma. Y algunas notas sobre cómo lo hice.

Este fue mi primer intento de construir algo con Arduino, aunque he tenido algo de experiencia en programación, por lo que no fue demasiado difícil para mí aprender los conceptos básicos del código de Arduino. Sin embargo, si desea abordar este proyecto y aún no se ha familiarizado con la configuración y programación de un Arduino, le recomiendo que siga los tutoriales en el sitio de Arduino, especialmente los de Servos.

Suministros:

Paso 1: Comenzando: Herramientas y Materiales

Puede completar la electrónica para este proyecto con solo algunos pelacables y un soldador. Pero para hacer los brazos de montaje servo ayuda tener acceso a una sierra de cinta y una prensa de taladro (aunque el trabajo cuidadoso con un taladro de mano puede anular la necesidad de este último). También utilicé una sierra de mesa para cortar la lámina de plástico y un enrutador montado en la mesa con una broca de 1/2 caja de diámetro para cortar las ranuras del plástico para que coincidan con los rieles de mi sistema de riel de cámara hecho en casa.

Aquí hay una lista de los principales suministros que necesitará para completar este proyecto, pero lea todo el instructivo antes de comprar cualquier cosa para que comprenda qué comprar para satisfacer sus propias necesidades.

- Arduino o clon de Arduino (utilicé un Seeeduino porque era un poco más barato que el Arduiino y ofrece la misma funcionalidad).

- Controlador clásico de Wii. Compré el mío de eBay por alrededor de $ 10 enviados.

- Adaptador Wiichuck (una pequeña placa de circuito que se conecta a tu Wii Classic para que no tengas que cortar el cable). Obtuve esto de FunGizmos por $ 4:

- 2 servos de tamaño estándar con engranajes de nylon y rodamientos de bolas. Los engranajes de nylon son más silenciosos y los cojinetes de bolas proporcionan un mejor soporte para el eje al manejar la carga de lentes de zoom más rígidas. Compré algunos servos excedentes en una tienda RC local por $ 5 cada uno, pero los estoy reemplazando con servos digitales de 360 ​​grados que deberían ser aún más silenciosos y precisos, y esos me cuestan $ 20 cada uno de eBay.

- 2 engranajes de lentes para montar en los anillos de enfoque y enfoque de su lente. Utilicé los flexibles que encontré en eBay por $ 10 cada uno, e hice mis propios anillos espaciadores para proporcionar una mejor resolución y un poco más de ventaja mecánica para los servos. También puede gastar aproximadamente el doble y obtener anillos para lentes que tienen espaciadores integrados, y estos también están disponibles en eBay. simplemente busque "lente de engranaje, siga el enfoque".

- 2 Engranajes de transmisión para montar en los servos para impulsar los engranajes de la lente. Estos deben ser 32p o mod.8 gear pitch (que es el paso estándar para los engranajes de la lente). Formé mis propios engranajes de transmisión ajustando unos engranajes rectos RC de $ 4 a los brazos de servocontrol originales, pero eso requirió un poco de trabajo en un mini torno que no todos tienen. Una mejor opción sería comprar los engranajes de servo-montaje de Servo City por unos pocos dólares más: http://www.servocity.com/html/32_pitch_hitec_servo_gears.html. Mientras ordena esos, se ahorrará algunos problemas si también compra un par de cables de servo macho para que sea más fácil conectarlos a su Arduino e intercambiar los servos si es necesario.

- Hoja de plástico de 1/2 pulgada de espesor o aluminio de 3/4 "de espesor para hacer los montajes de servo. Usé una tabla de cortar de plástico vieja, pero si lo hace, asegúrese de que sea del tipo más rígido (no debería ser capaz de abollarlo). la superficie con su imagen en miniatura). El tipo más suave es UHMW y no se mecanizará suficientemente bien para este propósito.

- perillas y pernos de carruaje correspondientes para sujetar los montajes servo a los rieles.

Paso 2: Elección de engranajes y servos para sus lentes

Antes de comprar sus servos o engranajes, necesita entender algunas cosas acerca de los servos. Los servos tienen un rango de movimiento limitado (típicamente 180), por lo que si desea poder controlar su lente a través de todo su rango de enfoque y enfoque, necesita hacer un pequeño cálculo basado en el movimiento del anillo de su lente y el diámetro de la lente. Engranaje que conducirá el servo. Creo que es mejor pasar por el proceso por el que pasé, para que pueda seguir el mismo enfoque para las necesidades de su propio sistema.

Los anillos de enfoque y zoom de mi lente se mueven aproximadamente 90 grados de un extremo a otro, y con los espaciadores y el engranaje de la lente, el diámetro total de la marcha accionada por el servo es de 4.25 pulgadas. Usé una calculadora de circunferencia de este sitio web (http://math.about.com/library/blcirclecalculator.htm) para obtener una circunferencia de 13.35 pulgadas. Como 90 grados es 1/4 de 360, puedo calcular que mi servo debe proporcionar aproximadamente 3.4 pulgadas de recorrido (13.35 / 4). Utilicé servos estándar de 180 grados, así que sé que la circunferencia de mis engranajes del servodrive tenía que ser de al menos 6.8 pulgadas (180 grados es la mitad de 360, por lo que mis servos solo podrán proporcionar un movimiento que sea la mitad de la circunferencia total de los engranajes del servoaccionamiento). Usando la calculadora de circunferencia nuevamente, sé que necesito engranajes que tengan al menos 2.2 pulgadas de diámetro. De hecho, terminé usando un engranaje de lente un poco más pequeño porque no necesito el rango completo de movimiento del enfoque y quería tener un poco más de control del enfoque ya que eso es más crítico que el zoom para mí. Esta es otra consideración que debe tener en cuenta: cuanto más cerca esté de 1: 1 entre el engranaje impulsor y el engranaje de la lente, menor será la resolución que tenga. Por ejemplo, en mi configuración, un paso servo de 1 grado = paso de lente de 1/2 grado, pero si el diámetro de mi engranaje de transmisión fuera igual al engranaje de la lente, la lente se movería 1 grado por cada grado de servo. También necesita más par servo para una relación 1: 1 unidad: lente que para una unidad 1: 2: unidad.

También debe saber que hay otra variable que puede introducir: la rotación del servo. Mi código de control de servo está escrito para servos estándar que giran 180 grados, pero he ordenado un par de servos digitales que giran 360 grados y eso permitirá que mi controlador maneje lentes que requieren más desplazamiento. Puede obtener servos que giran hasta 3 vueltas, lo que debería ser suficiente para manejar la mayoría de las lentes mientras mantiene bajos los rangos de transmisión entre la unidad y la lente. Por supuesto, tendrá que hacer algunos cambios menores en el código para manejar el aumento del rango de grados, pero debería ser bastante sencillo. Si desea servos de giro completo o de varios giros, busque "servo de cabrestante" en eBay.

Paso 3: Prepare su Arduino (o clon)

Una vez que tenga su Arduino (o equivalente), su conector Wiichuck, sus servos y cables, y su controlador clásico de Wii, estará listo para comenzar a armar las cosas y cargar el código en su Arduino. Aquí está el esquema: conecte el conector Wiichuck y los cables del servo para que puedan comenzar a probar todo juntos (ese paso requiere un poco de soldadura). Una vez que tenga las cosas conectadas, configure el IDE de Arduino en su computadora, conecte su Arduino y comience a cargar las bibliotecas y los ejemplos que necesita. Entonces comienza la diversión.

Cableado del adaptador de WiiChuck:

Esta parte es bastante fácil, si no haces lo que hice y pierdes el pequeño encabezado de 4 pines que viene con ella. Simplemente suelde el encabezado en su lugar, luego enchúfelo en el Arduino como se ilustra en la imagen en el sitio web de FunGizmos. Para conectar su controlador Classic, solo asegúrese de que la muesca en el conector del controlador se alinee con la "nc" en el adaptador Wiichuck.

Cableado de los Servos:

Originalmente compré una placa de controlador de motor porque primero intenté construir este proyecto con motores paso a paso en lugar de servos (porque pensé que serían más silenciosos, lo que resultó ser bastante imprudente). La placa tiene 2 conectores de servo hobby, por lo que no tuve que hacer ningún tipo de soldadura para conectar mis servos. Pero el proceso es para conectarlos directamente: simplemente conecte los cables de alimentación de ambos servos (el negro es negativo, el rojo es positivo) a tierra y VCC de su placa. Tienes varios lugares desde los que puedes elegir. Luego conecte uno de los cables de señal (amarillo) de un servo al pin 9 y el otro al pin 10. Estos son los pines PWM predeterminados que proporcionan salidas de modulación de ancho de pulso predeterminadas que se requieren para decirle al servo qué tan lejos deben girar.

Una vez que haya terminado con el cableado, puede conectar todo, conectar su Arduino a su computadora a través del cable USB y comenzar a cargar el código.

Paso 4: Programe su tablero: obtenga las bibliotecas y mi código y comience a jugar

Antes de cargar el código que escribí para mi controlador de lente, necesita configurar el IDE de Arduino en su computadora y cargar las bibliotecas que necesita. La biblioteca de control Servo se incluye con el IDE de Arduino, por lo que no necesita hacer nada para eso. Sin embargo, mi código también utiliza una biblioteca de Wii Classic Controller contribuida por el usuario que está disponible en el patio de Arduino.

Puedes seguir los pasos en la página para agregar esto a tu biblioteca, o simplemente descargar el archivo zip que he adjuntado y descomprimirlo en tu carpeta de bibliotecas Arduino. El mío está en este camino:

.. Documents Arduino arduino-1.0 aries

Creé una carpeta llamada MiconoWiiClassic en la carpeta libararies, y guardé el archivo "WiiClassic.h" en esa carpeta. Puede simplemente descomprimir el archivo MiconoWiiClassic.zip que he incluido aquí en su carpeta Arduino-1.9 aries.

ACTUALIZACIONES:

1) Desde la primera publicación de este Instructable, he descubierto cómo duplicar la resolución de los servos, lo que los hace más suaves y precisos. Hice esto ajustando la biblioteca de Servos instalada por Arduino. Puede modificar la biblioteca usted mismo o puede descargar el archivo Servo.zip y extraer el archivo Servo.cpp en su carpeta.. Arduino arduino-1.0 aries Servo y sobrescribir el archivo Servo.cpp que está allí. Si desea modificar el archivo usted mismo, puede abrir el archivo de su biblioteca en el Bloc de notas y reemplazar todas las instancias de "180" con "360". Si descargó mi boceto antes de realizar esta actualización, debe volver a descargar FocusController_gp.zip y extraerlo en su carpeta de bocetos. Agregará focus_zoom_controller_servo_final_2xresolution.ino a esa carpeta.

2) Después de descomprimir los archivos, necesita cambiar una cosa en el archivo WiiClassic.h para que la biblioteca funcione como se esperaba con mi código. La biblioteca WiiClassic.h contiene una característica DEFINE_ON_HOLD que debe estar sin comentarios para garantizar que las pulsaciones de los botones se informan una sola vez. Para descomentar esto, debe abrir el archivo.. arduino-1.0 aries MiconoWiiClassic WiiClassic.h en el Bloc de notas y cambiar la siguiente línea:

// # define REPORT_ON_HOLD

a

#define REPORT_ON_HOLD

Si no hace esto, notará que la presión del botón D-pad continuará moviendo los servos mientras mantiene presionado el botón, mientras que solo debe mover el servo un paso por presión. Este error también puede causar un comportamiento extraño al presionar otros botones.

3) Si está enchufando el adaptador WiiChuck a los pines analógicos 2,3,4 y 5, debe configurar 2 y 3 como tierra y alimentación, agregando lo siguiente a la sección de configuración de su código (gracias a Phillip James para captar esta omisión

"pinMode (16, SALIDA);" Establece el pin digital 16 (también conocido como Analógico 2) como pin de tierra

"digitalWrite (16, LOW);"

"pinMode (17, SALIDA);" Establece el pin digital 17 (también conocido como Analógico 3) como un pin de 5 V

"digitalWrite (17, ALTO);"

Una vez que tenga esa biblioteca en su lugar, también puede descargar mi código de proyecto y descomprimirlo en su carpeta principal de Arduino, y la próxima vez que inicie el IDE de Arduino, mis proyectos se mostrarán en su carpeta de Sketchbook. Mi carpeta Arduino está en mi carpeta de documentos, así:

.. Documents Arduino

Paso 5: Prueba las cosas: Wii Classic Controller

Con las partes electrónicas conectadas y su código en su lugar, es hora de comenzar a probar y modificar el código, si es necesario. Comience cargando el boceto de WiiClassicTestValues ​​desde su Sketchbook (Archivo> Sketchbook> WiiClassicTestValues). Antes de cargarlo en su tablero, compílelo para asegurarse de que ha instalado la biblioteca WiiClassic.h correctamente (también debería poder verlo en su lista de bibliotecas (Sketch> Import Library). Si se compila correctamente, cárguelo en su tablero.

El programa envía el valor de cada uno de sus sticks en el Wii Classic al Monitor de serie, por lo que deberá abrir el Monitor de serie (Herramientas> Monitor de serie). Deje que el controlador funcione con los sticks en reposo para ver cuáles son los valores en las posiciones centrales, luego empuje metódicamente ambos sticks hacia adelante durante unos segundos, luego hacia abajo, luego hacia abajo a la izquierda, luego hasta el final Correcto. Una vez que haya hecho eso, puede desactivar la función de desplazamiento automático en la ventana del monitor, copiar los resultados en el Bloc de notas y guardar el archivo para una revisión adicional. Ahora estás listo para asegurarte de que el código del controlador esté calibrado para tu Wii Classic Controller.

Paso 6: Cargue el código del controlador de lente y ajústelo a su controlador Wii

Ahora puede cargar el código del controlador y asegurarse de que los valores esperados del controlador coincidan con su controlador clásico de Wii. Comience cargando el bosquejo de mi controlador desde Archivo> Sketchbook> focus_zoom_controller_final.

Una vez que esté cargado, desplácese hasta la línea 101 del código para ver la configuración de los valores de la palanca del controlador, que se muestran a continuación:

// la palanca derecha tiene la mitad de la resolución de la izquierda - estos valores pueden variar de uno

// controlador a otro, por lo que deberá ejecutar un programa de prueba para discernir los valores de

// cada posición del palo

int yCenterRight = 15;

int yMinRight = 2;

int yMaxRight = 28;

int xCenterRight = 15;

int xMinRight = 3;

int xMaxRight = 28;

int centerOffsetRight = 3;

int endOffsetRight = 0;

int yCenterLeft = 32;

int yMinLeft = 6;

int yMaxLeft = 55;

int xCenterLeft = 31;

int xMinLeft = 6;

int xMaxLeft = 55;

int centerOffsetLeft = 6;

int endOffsetLeft = 0;

Verifique estos valores contra la lectura de su controlador y cambie los valores según sea necesario. Asegúrese de guardar sus cambios.

Paso 7:

Es hora de probar el código con tus servos. En mi código tengo el servo de zoom conectado al pin 9 de Arduino y el servo de enfoque conectado al pin 10. Puedes cambiar eso fácilmente en el código cambiando los números aquí:

configuración vacía () {

Serial.begin (9600); // configurar la biblioteca serial a 9600 bps

// adjunte los servos y ajústelos a las posiciones iniciales para montar los servos en la lente

zoomServo.attach (9);

focusServo.attach (10);

Una vez que haya terminado y sus servos estén conectados, conecte su tarjeta al puerto USB de su computadora y descargue el código en su tarjeta. Cuando termine de descargar y arrancar, el servo Zoom se moverá 180 grados y el servo Focus se moverá a 0. Ahora puede comenzar a jugar con los sticks y botones para ver qué sucede, y puede intentar programar las diferentes posiciones de servo y el enfoque. proporción. Algunos de los botones tienen valores predeterminados, pero puede programar cualquier botón presionando, INICIO, luego el botón y el programa recordarán la configuración hasta que la placa se reinicie o apague.

Una vez que esté satisfecho de que el controlador está funcionando correctamente para mover los servos, puede agarrar su cámara y lente y evaluar si las direcciones de los servos para los movimientos del stick son correctas. Empujar la palanca derecha hacia adelante debe girar el servo en la dirección correcta para hacer zoom en la lente, y tirar de ella hacia atrás debe hacer lo contrario. Al mismo tiempo, debe mover el enfoque en la dirección necesaria para mantener la cámara enfocada cuando se mueve el zoom. Tengo el mío configurado para que cuando haga zoom (empuje la palanca derecha hacia adelante), tenga que mover la palanca de enfoque hacia la derecha para corregir el enfoque, y cuando aleje (tire de la palanca derecha hacia atrás), tenga que mueva la palanca de enfoque hacia la izquierda para corregir el enfoque. Este parecía el arreglo más intuitivo.

Al colocar los servos junto a su cámara y lente de la manera que planea montarlos en la plataforma de la cámara, puede saber si se están moviendo en la dirección correcta dado cómo se mueve su lente. Si no lo hacen, hay instrucciones en el código sobre cómo cambiar la dirección del movimiento del servo en relación con cada movimiento de palanca. Tengo planes futuros para piratear la biblioteca Servo para hacer esto más fácil, pero por ahora no es tan fácil como pulsar un interruptor, pero tampoco es demasiado complicado.

Paso 8: Júntalo para una prueba real

Aquí es donde realmente se pone divertido. Una vez que esté satisfecho de que los servos se mueven en la dirección correcta para su cámara, realmente no hay razón para no montar todo y ver cómo funciona con su cámara y su lente. Puede hacer recintos y agregar interruptores, conectores de alimentación y luces bonitas una vez que todo esté funcionando a su entera satisfacción, pero realmente no tiene sentido hacerlo hasta que vea si su configuración es capaz de conducir su lente de la manera que desee. Hice esto con varias versiones de mi proyecto, incluida una versión paso a paso que fue un completo desastre y me llevó a cambiar de rumbo y cambiar a servos. La idea es fallar rápido, antes de que haya realizado demasiado trabajo en un producto final que aún necesita ajustes.

Comience montando los engranajes del servodrive y los engranajes de la lente. Todo esto es bastante sencillo, pero si descubre que su lente se está deslizando (como el mío), puede ser útil saber que puede aumentar el agarre de cualquier cosa con el respaldo de goma que se puede desprender fácilmente de la parte trasera de un aparato barato., mousepad fino. Las mismas cosas también pueden usarse para amortiguar el ruido de los servos. En esa línea, agregar un poco de grasa segura para el plástico a la caja de engranajes del servo también puede ayudar a reducir el ruido del servo.Usé grasa para carretes de pesca que está designada como caja fuerte de plástico, y realmente calmó mi zoom servo.

Si no tiene un sistema de rieles, deberá diseñar uno siguiendo lo que hice (dejaré que la imagen lo guíe) o encontrar un diseño aún mejor en la web. Mi equipo se montó rápidamente para fines de prueba, y planeo reemplazar el diseño adoquinado con algo más atractivo, rígido y fácil de ajustar. Mis rieles son postes de esquí de carbono de 1/2 diámetro que me enganché de Goodwill por $ 4 (la marca Goode no está afilada, por lo que funcionó bien para esto). El soporte del riel está hecho de una tabla de cortar de plástico duro de 1/2 "de espesor que corté en una tira de 2-1 / 2 pulgadas de ancho por 6" de largo. Para crear los "orificios" del riel, guié dos ranuras de 1/4 "de profundidad por 1/2" de diámetro con una broca de caja central montada en una mesa de fresas y guiada por una pequeña cerca. Ahora desearía haberlo hecho todo más ancho, pero quería mantenerlo estrecho para poder llegar a la puerta de la batería sin desmontar la cámara de los rieles. Luego corté la pieza en 2 a lo largo, monté un bloque espaciador de madera contrachapada de abedul báltico en un extremo con algunos tornillos para madera, y luego perforé un par de agujeros de 1.4 "para fijarlo a la cámara y la placa de liberación rápida de Manfrotto.

Una vez que tenga una plataforma de rieles, puede diseñar algunos bloques de montaje servo para que se ajusten a sus rieles. También hice el mío a partir de un trozo de plástico duro que corté en la tabla de mi enrutador. Atornillé un extremo junto con algunos tornillos pequeños para paneles de yeso y perforé un conjunto de 1.4 "en el otro lado del orificio del riel para sostener un perno de carruaje. Un pequeño botón me permite apretar el bloque de montaje para un ajuste perfecto en los rieles. Una vez que estuve seguro de que todo encajaba bien, perforé orificios piloto pequeños para ajustar los tornillos de montaje del servo que venían con mis servos, y até los servos en su lugar. Tenga en cuenta que con esta disposición, el servo solo se sujeta en el borde delantero, así que tenga cuidado donde se ejerce presión al montar el conjunto de servo y bloque en los rieles.

Paso 9: Dale una prueba

Con la cámara en su lugar (y montada en un trípode resistente) y los servos montados en los rieles, es el momento de conectar todo para una prueba de funcionamiento. Sin embargo, no encienda el Arduino con los engranajes enganchados. En su lugar, primero, gírelos del engranaje de la lente para que los servos puedan girar sin mover la lente. A continuación, puede encender su tablero. Si no lo hace, es posible que su servo intente girar la lente más allá de sus límites, y eso no es bueno.

Programe su controlador para su lente (estas instrucciones también están en el código Arduino)

Después de que la placa se inicie y los servos hayan dejado de moverse, mueva el anillo del zoom de la lente a la posición máxima que corresponda a la posición del servo. Cuando mi controlador se inicia, mi servo de zoom se mueve a la posición de zoom más amplia, de modo que es donde muevo la lente antes de activar el servo de zoom. Después de mover la lente, coloco el servo en su posición para que el engranaje impulsor se acople a la lente de la lente (si pones demasiada presión en la lente, puedes hacer que se pegue y no puedas moverte tan suavemente). Luego programo esto como la configuración de zoom más amplia presionando "Inicio", luego "Hombro izquierdo" en el Wii Classic Controller. Luego uso el joystick derecho para acercar hasta que la cámara alcanza su límite de zoom, y uso el teclado para retroceder un grado o dos. Luego programo esta posición de zoom máxima presionando "Inicio", luego "Hombro derecho" para programar la configuración de zoom máxima de la lente.

Repito un procedimiento similar para el servo de enfoque, pero programo los ajustes del servo de enfoque más a la derecha y más a la izquierda usando los botones "Z derecha" e "Z izquierda".

Una vez que se establecen estos límites, es hora de encender su cámara, elija un sujeto y establezca el enfoque para la configuración de zoom más amplia y cercana. No importa dónde empieces, pero normalmente uso el zoom máximo (solo presiona el botón derecho del hombro para ir allí automáticamente). Luego uso el joystick izquierdo y el D-Pad izquierdo-derecho para enfocar correctamente, luego presiono "Inicio" y luego "+" para establecer el enfoque para el zoom máximo. A continuación, gire el lente hasta el zoom más amplio y, nuevamente, use el joystick izquierdo y el D-Pad para marcar el foco en su sujeto. Una vez que esté bien, presione "Inicio" y luego "-" para establecer el enfoque en la posición de Zoom mínimo (zoom más amplio). Cada vez que programe los botones "-" o "+", el código calcula la proporción correcta para mover el enfoque mientras hace zoom para mantener al sujeto enfocado mientras hace zoom. Puede ajustar el enfoque en cualquier momento usando el joystick izquierdo o el D-Pad, y hasta que reprograme la tecla "+" o "-", el enfoque siempre se moverá en sincronización con el movimiento del zoom cuando use la tecla derecha. quédate para hacer zoom en tu lente. Aquí es donde está la magia de mi "artilugio" (como lo llama mi esposa).

También puede programar los botones 4 (x, y, a, b) con posiciones dedicadas de Zoom / Enfoque. Simplemente mueva el zoom y el enfoque a la posición deseada, luego presione "Inicio" y luego uno de los botones para programarlo para esa posición. Si mueve solo el servo de enfoque mientras programa cada uno de estos botones, puede hacer que su controlador funcione como un enfoque de seguimiento con 4 posiciones de enfoque preestablecidas que no mueven la lente del zoom.

Aquí hay un video que muestra este proceso con el controlador montado en mi cámara GH2:

Paso 10: Envuélvelo

Cuando haya terminado de jugar y jugar, y esté satisfecho de que su propia versión de mi controlador funcionará para usted, es el momento de hacerlo todo permanente, bonito y fácil de montar y desmontar. Te dejaré descifrar esa parte por tu cuenta (pero espero que compartas tus resultados conmigo). Tengo varios ajustes que hacer en mi controlador antes de finalizarlo, así que pensé que compartiría mis planes aquí para que piense en la misma línea.

Cerramiento y mejores montajes servo.

Todavía no he encontrado el recinto correcto, así que me gustaría recibir sugerencias aquí. Probablemente compraré un Arduino más pequeño como un mini para poder mantener las cosas pequeñas y eso abrirá mis opciones. También voy a reemplazar los soportes de plástico con soportes de aluminio mecanizado ahora que sé lo bien que funciona esto. También voy a actualizar los servos ellos mismos.

Fuente de alimentación

En este momento, mi controlador se queda sin alimentación USB conectando mi cable USB a un cargador de iPod. Sin embargo, tengo una batería de DVD externa de 9 voltios de repuesto que se puede cargar mientras está suministrando energía al controlador, y me gusta la idea de tener solo una opción para la batería, así que una vez que encuentre el gabinete adecuado, voy a cablear el cable correcto. Conector a los pines externos de mi tarjeta.

Indicadores LED

Eso estaría bien (y es muy fácil agregar un indicador para "modo de programa", así que tengo algunos LED que se iluminarán cuando el controlador esté en modo de Programa o de Funcionamiento.

Servo de inversión fácil

Como indiqué anteriormente, es un poco tedioso cambiar la dirección del servo en relación con los movimientos del stick, por lo que comencé a trabajar en piratear la biblioteca de servo de Arduino para aceptar una bandera de dirección del servo.

Memoria para ajustes de lentes

También sería bueno no tener que reprogramar la configuración del límite de la lente cada vez que el control se dispara, así que planeo agregar almacenamiento basado en tarjeta SD para cada configuración de la lente.

Paso 11: Retroalimentación y seguimiento

Otro miembro Steve Dray, ha hecho un gran trabajo construyendo un par de sus propias versiones de esta plataforma, y ​​ha compartido generosamente sus diagramas de cableado e imágenes. Espero que esto inspire y ayude a otros a tratar de construir este proyecto, especialmente porque he tenido un tiempo limitado para responder preguntas. Steve estaba teniendo algunos problemas que diagnosticó como una fuente de alimentación deficiente, por lo que construyó su propio suministro regulado e incluyó el esquema para eso también. Me las arreglé para arreglármelas con mi pequeño cargador de iPod de cubo

Gracias Steve