Paso 8: Descargar el código y probar la electrónica
Descargar el código al ordenador
La primera cosa a hacer es conseguir el sketch de Arduino para el A-Star.
- Descargar el código al ordenador desde aquí.
- Inyectar el código en tu IDE favorito.
- Asegúrese de que el código se compila en el IDE.
- [En este punto opcional] Descargar el código en el A-Star.
El bosquejo tiene dos archivos principales. desk_clock.ino y stepper.cpp. El último tiene un asociado stepper.h.
Manejo de conmutador
desk_clock.ino por supuesto contiene las funciones setup() y loop(), pero es principalmente responsable de tratar con el interruptor, contra rebotes y tiempo y contando prensas y lanza para interpretar "introducidos por el usuario" realizado mediante el interruptor. La interpretación del interruptor es un poco Arcana.
El reloj puede estar en dos Estados principales: corriendo y detenido. Si se pulsa el interruptor de parada, el reloj comienza inmediatamente.
Si el interruptor se presiona mientras está funcionando, el reloj se detiene inmediatamente. Si esa prensa dura menos que el "retardo" (establecido en 2000 milisegundos), entonces el reloj se detiene solo. Si la prensa dura más tiempo que el "retraso", el reloj también entra en sub-estado 'set mode'. Dos ciclos de comunicado de prensa deben ocurrir dejar el modo de ajuste. Tenga en cuenta que el reloj se detiene al entrar en modo de ajuste y permanece detenido después de salir de modo de ajuste.
La duración de ambas prensas en los dos ciclos de comunicado de prensa durante el modo de juego son importantes. Si una prensa dura que el "tiempo límite" (juego en 1000 milisegundos), se considera un "punto". Si la prensa dura más, se considera un "guión". Las cuatro combinaciones de punto-tablero permiten ajustar la velocidad y dirección del movimiento del reloj por motor paso a paso, o apague el motor paso a paso. Las interpretaciones:
- punto/punto, velocidad normal (el segundero gira a 1 RPM) y a la derecha
- punto/dash--24 X velocidad normal y a la derecha
- guión/punto--24 X velocidad normal y hacia la izquierda
- guión/dash--deshabilitar el controlador, así apagar el motor paso a paso
Combinación 1 obviamente permite que el reloj de tiempo. Combinación 2, permite ajustar el reloj, por ejemplo, para pasar al horario de verano de hora estándar. Combinación 3 permite ajustar el reloj al revés, por ejemplo, para pasar a hora estándar al horario de verano. Combinación 4 permite a ajuste manual hacia adelante o hacia atrás; lo mismo puede conseguir desconectando el reloj.
Nota: Cuando mi reloj corre en velocidad (24 X) en adelante o en reversa, hay un poco de ruido del engranaje cuando el segundero está en un lugar en particular. Esto es normal debido a la mayor velocidad y engranajes "usar en". No debe oír cualquier ruido, el motor o los engranajes, a una velocidad normal. Si lo hace, algo está seriamente mal.
Sin duda podría implementar una interpretación diferente del interruptor Prensas/comunicados. De hecho, estoy seguro de que existen sistemas mejores. Además, puede elegir un pin de I/O diferentes para leer el interruptor; por supuesto, el circuito tendría que modificar para reflejar un pin diferente.
Control de motor paso a paso
Los archivos de stepper.* controlan el SilentStepStick, que el motor paso a paso. Es una suerte que la configuración por defecto de SilentStepStick es exactamente lo que se necesita. Así, hay sólo tres señales de control necesarias.
- Enable: habilita o deshabilita al controlador; no hay ninguna energía aplicada al motor cuando está deshabilitado
- Dirección: determina la dirección de la rotación; para el reloj, esto significa hacia la derecha o hacia la izquierda
- Paso: dice que el motor de paso (puedes leer sobre la micro-escalonamiento resultante en la documentación de SilentStepStick)
El aspecto sólo interesante de control es la generación de la señal de paso. La frecuencia de la señal tiene que ser muy precisa, al menos durante períodos razonables de tiempo, para asegurar la exactitud del reloj. Hay probablemente muchas maneras para hacer esto correctamente. Elegí generar la señal de paso usando el ATmega32U4 reloj 3, que puede hacer salir una señal de "PWM" para pin digital 5. Consulte la ATmega32U4 documentación, sección 14.8.3, para más detalles.
Mientras que el pin 5 para la señal de paso tiene el mandato por el uso de reloj 3, las otras dos señales podrían ser en cualquier pin de E/S digitales. Si lo desea, puede utilizar alternativas.
Prueba de la electrónica
Ahora puede hacer lo que se denomina "pruebas de integración". Una posibilidad es que termine la instalación de la electrónica, electricidad y... vaya. Esto a menudo conduce al desastre. Te recomiendo un acercamiento más conservador, es decir, prueba una cosa a la vez y luego combinaciones, hasta que todo está integrado en el conjunto.
Por ejemplo, yo recomendaría derivados bocetos "de prueba" desde el boceto original:
- Uno podría probar sólo la gestión del interruptor y el estado. Declaraciones de depuración en el bosquejo original le permiten ver lo que está sucediendo. Sólo tienes que conectar en el conjunto del conmutador en la placa de circuito y conectar tu ordenador vía USB para el A-Star.
- Uno podría probar solamente la capacidad para generar las frecuencias de la señal de paso adecuado. Necesitarías un osciloscopio para verificar las frecuencias. Sólo tienes que conectar tu ordenador vía USB para el A-Star.
Obviamente en algún momento necesita poner a prueba todo el sistema. Esta razonablemente fáciles de hacer antes del montaje final. Tienes los cables colgando, por lo que puede ayudar a tener el soporte de la placa de circuito y el interruptor. Para probar
- Descargar el croquis de desk_clock para el A-Star.
- Desconecte el USB.
- Conecte el ensamblaje del motor a la placa de circuito.
- Conecte el conjunto del conmutador en la placa de circuito.
- Enchufe el motor paso a paso el circuito. IMPORTANTE: El cable negro debe ser lo más cercano al conector USB en el A-Star.
- Enchufe el adaptador de corriente para el ensamblaje del motor.
Como aplicar la potencia, puede o no podrá oír ni ver nada sucede al mecanismo del reloj. Sin embargo, menos de un segundo después de aplicar electricidad, usted debe oír nada, y las manos no deben ser móviles. A prueba de todo
- Oprima y suelte el botón. Las manos deben correr a velocidad normal hacia la derecha.
- Oprima y suelte rápidamente el botón. Las manos deben dejar cuando usted presiona el botón.
- Oprima y suelte el botón para volver a las manos.
- Presione y mantenga presionado el botón durante al menos dos segundos (si no cambias el "retraso"). Las manos deben dejar de inmediato en la prensa y la prensa mucha pone el reloj en "modo de ajuste".
- Oprima y suelte rápidamente el botón.
- Presione y mantenga presionado el botón durante menos de un segundo (si no cambias el "tiempo límite").
- Oprima y suelte el botón. Las manos deben correr a velocidad normal de 24 X en una dirección a la derecha.
- Presione y mantenga presionado el botón durante al menos dos segundos. Esto detiene el reloj y la pone en "modo de ajuste".
- Presione y mantenga presionado el botón durante menos de un segundo.
- Oprima y suelte el botón.
- Oprima y suelte el botón. Las manos deben correr a velocidad normal de 24 X en sentido antihorario.
- Presione y mantenga presionado el botón durante al menos dos segundos. Esto detiene el reloj y la pone en "modo de ajuste".
- Oprima y suelte el botón.
- Oprima y suelte el botón.
- Oprima y suelte el botón. Las manos deben correr a velocidad normal hacia la derecha.
- Presione y mantenga presionado el botón durante al menos dos segundos. Esto detiene el reloj y la pone en "modo de ajuste".
- Presione y mantenga presionado el botón durante menos de un segundo.
- Presione y mantenga presionado el botón durante menos de un segundo. Usted debe ser capaz de moverse libremente, la segunda mano como no debe ser poder al motor.
- Oprima y suelte el botón. Las manos deben correr a velocidad normal hacia la derecha.
Que, si eres como yo, tenga un poco de problemas con los tiempos de espera para el botón. Si al principio no triunfas, pruebe, pruebe otra vez. Si, sin embargo, encuentra que no puede obtener el comportamiento correcto, puede haber algo mal con el interruptor o puede ser que descargó un código incorrecto.