Paso 2: Hacer el controlador
Controlador CNC regular es generalmente, a un amplificador de potencia. En realidad es controlado por PC (a través del puerto LPT). Como se puede ver, este regulador es mucho más complejo. Es porque el PC solo envía comandos, que son ejecutados por AVR.
Periféricos son controlados por ATmega16. Controla motores paso a paso (con ULN2803 y L293D) y el electroimán (con IRLML2502). También supervisa los conmutadores de límites (JP4) y envía los datos al LCD.
Para comunicarse con el PC, he usado FT232RL chip (convertidor de USB-UART). Utilizo mi propio "Protocolo" de comunicación para enviar órdenes y datos en bruto. Esos dos optoacopladores TCMT1109 se utilizan para aislar eléctricamente PC del controlador (porque quemé accidentalmente ATmega una vez ^^). Convertidor USB-UART necesita ser reprogramado con FT Prog mediante archivo XML adjunto a continuación. Sin hacerlo LEDs no indica lo supone que. Puede hacerlo cuando se sueldan todas las piezas FT232.
También hay 4 interruptores en el PCB. Uno es para resetear el procesador (fue útil durante la prueba), pero el resto fue montado para que su uso futuro para comunicarse con el usuario. Ahora el medio interruptor ("OK") se utiliza para aceptar el comando de arranque (voy a escribir más sobre eso más adelante).
Hacer el PCB
Después de que usted grabe el PCB, puede lata (por ejemplo con soldadura normal). Lo hice con aleación de Lichtenberg - nivel de genialidad > 9000 :D. Le sugiero que soldar en el orden que se muestra en las fotos. Aquí está la lista:
- ICs:
- ATmega16
- FT232RL
- L293DD
- ULN2803
- TCMT1109 x2
- 7805
- 47
- 100 x3
- 330
- 1k x2
- 2k 4 x2
- 4k 7 x3
- 10k
- p 22 x2
- 100N x4
- 330N
- 2u2
- 4u7
- 100U
- IRLML2502
- BC857 x2
- LL4148
- LED ROJO
- LED verde x2
- 1 x 2 x4
- 1 x 3
- 1 x 5
- 1 x 6 x2
- 2 x 4
- Puente x2
- potenciometro de 5 k
- Cristal de 16MHz
- interruptor momentáneo x4
- Conector USB mini B
- AK500/3 conector
- conmutador de canal de 2
- pantalla de LCD 16 x 2
La última foto presenta mi error al diseñar el controlador. Se me olvidaba el enderezamiento para salidas de optoacopladores. Extremadamente disminuía la velocidad de transmisión, así que tuve que soldar 2 resistencias adicionales. Pero no te preocupes, que era fijo y el PCB en rar es completado.
Programación del AVR
El archivo adjunto a continuación contiene el proyecto de PCB en Eagle, software escrito en C, compilado archivo hexadecimal y el archivo XML para FT232RL.
Como se puede ver, hay 6 almohadillas extras en el PCB. Eres capaz de programar el AVR con ellos, solo soldar algunos cables (está descritos en el archivo de Eagle, así que asegúrese de conectar las líneas de propper. Antes de programar el chip, coloque su fusebits:
- baja: 0xEE
- alta: 0x99
Son solo valores por defecto con cambiantes bits CKSEL externo cristal de 16MHz.
Información sobre código fuente
No es tan fácil controlar todo este material por solo AVR. La parte más difícil fue generar señales de movimiento XY cuando X y Y eje en movimiento. Cristal de 16MHz era casi demasiado lento, pero finalmente está funcionando muy bien.
La segunda parte dura fue la comunicación con PC. Tuve que escribir mi propio protocolo de comunicación a través de UART. Es similar a comandos AT, pero requiere mucho menos memoria y es más rápido, puesto que sus códigos de comando y los argumentos son solo bytes (en lugar de cadenas, como en a).
El código fue compilado con avr-gcc. Es comentado bien, supongo, pero yo sé que es fácil perderse. Hay algunas funciones adicionales que prácticamente no se usan - por ejemplo dibujar rectángulo, arco o un texto. Lo escribí sólo para obtener algunas habilidades;). De todos modos, usted todavía será capaz de ejecutar estos comandos por "la ventana de línea de comandos" en el software de PC para ver los efectos.