Paso 4: Hacer el CNC adecuadamente
La programación parte de este proyecto ha sido realizada enteramente en VHDL, y he preferido escribir mi propia implementación de componentes, aunque usted encontrará varios ejemplos de código para controlar los Servos RC de motores de DC.
Para el control de ambos tipos de motores, necesitamos implementar un PWM (modulación por ancho de pulso). Si no estás familiarizado con él trate de buscar en internet para obtener más información. También puede leer acerca de cómo los Servos y DC motores de trabajo, si usted quiere saber más.
El período PWM será diferente para cada tipo de motor por lo que al final tenemos 2 diferentes códigos para pwm para la simplicidad.
Controlar un Motor DC
El Motor de la C.C. es controlado a través del puente de H. En la hoja de datos del puente en H vemos que el pin de entrada enable debe estar conectado a una señal PWM y su período debe ser de 2 KHz. Porque el reloj interno Arty tiene frecuencia de 100MHz, para obtener el período de reloj deseado de 2 KHz se dividen 100 MHz / 2 KHz = 50000. Usé un contador de 0 a 49999 que actualiza cuando se llega a 50000 y fuerzas la salida PWM señal '1' y una bandera '1'. Para el ciclo de trabajo he utilizado otro contador que empieza a contar según el factor de relleno cuando la bandera es 1 'y cuando termine el fuerzas que detrás de la bandera a ' 0'. Los factores de llenado se almacenan en una matriz como una constante en la arquitectura de Sinuosidal.
Porque necesitamos el motor de C.C. se detenga después de mover ciertos pasos, la señal PWM debe ser 0 en este caso he añadido otra señal que nos indica si el motor se debe mover o no; Si no, establecemos salida PWM a 0.
En este paso del proyecto, el PWM en el DC es un poco irrelevante. Su importancia se verá en las próximas semanas cuando el codificador de motor DC y el control del PID se aplicarán.
Por ahora, la dirección del motor se ajustará automáticamente según el botón pulsado.
Controlar dos motores DC de la misma manera.
Control de un Servo RC
3. crear nuevas fuentes de diseño para cada uno de los siguientes códigos. Usted tendrá que definir el para algunos de los componentes de los puertos, como los siguientes códigos de describir el comportamiento. Establecer como módulo superior el componente CNC.
4. implementar el archivo de restricción. Esto es una cosa fácil, así que voy a presentar pronto. Puedes utilizar diferentes pines que yo (esto es irrelevante en el extremo). Descargar el maestro XDC desde aquí https://reference.digilentinc.com/arty:refmanual y según que seleccionó para entrada/salida en su proyecto los pernos descomentar las clavijas del tablero adecuado y ponen el nombre de sus pernos en lugar del nombre predeterminado. Después de hacer esto establece como archivo de restricción de destino.
Nota: No olvides descomentar la señal de reloj!!!!!!
5. síntesis e implementar su diseño. Generar flujo de bits, abra nuevo objetivo y programa dispositivo :)
Ahora trato de empujar a uno de los botones. El motor debe mover siempre y cuando usted mantenga pulsado el botón. Utilice el interruptor para hacer que el creyon arriba/abajo.
Eso es todo amigos!
Estad atentos porque cosas más increíble va a suceder: codificación de los motores de DC, implementar el control PID y enviar el retrato deseado para ser dibujado con la aplicación especial para Android a la Junta a través de Bluetooth.