Étape 2: Faire le contrôleur
En général, régulier contrôleur CNC est juste un amplificateur de puissance. C’est en fait contrôlée par PC (via le port LPT). Comme vous pouvez le voir, ce contrôleur est beaucoup plus complex. C’est parce que le PC envoie juste des commandes qui sont exécutées par AVR.
Périphériques sont contrôlés par ATmega16. Il contrôle de moteurs pas à pas (avec ULN2803 et L293D) et l’électro-aimant (avec IRLML2502). Elle surveille les commutateurs de limitants (JP4) et envoie des données à l’écran LCD.
Pour communiquer avec le PC, j’ai utilisé FT232RL puce (convertisseur USB-UART). J’utilise ma propre communication « Protocole » d’envoyer facilement les commandes et les données brutes. Ces deux optocoupleurs TCMT1109 sont utilisés pour isoler électriquement le PC du contrôleur (parce que j’ai brûlé accidentellement ATmega une fois ^^). Convertisseur USB-UART doit être reprogrammé avec FT Prog à l’aide du fichier XML en pièce jointe ci-dessous. Sans le faire voyants n’indique ce qu’ils sont censés. Vous pouvez le faire lorsque toutes les parties de FT232 sont soudés.
Il y a également 4 interrupteurs sur le circuit imprimé. L’un est pour réinitialisation du processeur (il est utile lors des tests), mais le reste a été monté pour une utilisation future communiquer avec l’utilisateur. Pour pouvoir y maintenant au milieu ("OK") est utilisé pour accepter la commande de départ (je vais écrire davantage à ce sujet plus tard).
Faire le circuit imprimé
Après que, vous graver le circuit imprimé, vous pouvez l’étain (par exemple avec soudure régulière). Je l’ai fait avec l’alliage de Lichtenberg - niveau awesomeness > 9000:D. Je vous suggère à souder dans l’ordre indiqué sur les photos. Voici la liste des pièces :
- ICs :
- ATmega16
- FT232RL
- L293DD
- ULN2803
- TCMT1109 x2
- 7805
- 47
- 100 x3
- 330
- 1k x2
- 2k 4 x2
- 4k 7 x3
- 10k
- 22p x2
- 100N x4
- 330N
- 2U2
- 4u7
- 100U
- IRLML2502
- BC857 x2
- LL4148
- LED ROUGE
- LED verte x2
- 1 x 2 x4
- 1 x 3
- 1 x 5
- 1 x 6 x2
- 2 x 4
- cavalier x2
- potentiomètre de k 5
- Cristal de 16MHz
- interrupteur momentané x4
- Port USB mini B
- AK500/3 connecteur
- interrupteur 2 canaux
- écran LCD 16 x 2
La dernière photo présente mon erreur lors de la conception du contrôleur. J’ai oublié les résistances pullup pour les sorties des optocoupleurs. Qui a été extrêmement diminuant la vitesse de transmission, donc j’ai eu à souder 2 résistances supplémentaires. Mais ne vous inquiétez pas, qui a été résolu et le PCB en rar est terminé.
Programmation de l’AVR
Le fichier joint ci-dessous contient projet PCB à Eagle, un logiciel écrit en C, fichier hex compilé et FT232RL dans le fichier XML.
Comme vous pouvez le voir, il y a 6 touches supplémentaires dans le circuit imprimé. Vous êtes en mesure de programmer l’AVR avec eux - juste quelques fils à souder (ils sont décrits dans le fichier de l’aigle, alors assurez-vous que vous êtes en Bancher propper. Avant de programmer la puce, affectez sa fusebits :
- faible : 0xEE
- haut : 0x99
Ils sont juste des valeurs par défaut avec des morceaux CKSEL changé au cristal externe 16MHz.
Quelques infos sur le code source
Il n’est pas si facile à contrôler tout ça par un seul AVR. La partie la plus difficile a été générer des signaux de mouvement XY lorsque les axes X et Y étaient en déplacement. Cristal de 16MHz était presque trop lent, mais finalement il ne fonctionne pas très bien.
La deuxième partie dure a été la communication avec le PC. Je devais écrire mon propre protocole de communication par l’intermédiaire de UART. Il est similaire à commandes AT, mais nécessite beaucoup moins de mémoire et il est plus rapide, puisque ses codes de commande et les arguments sont octets simples (au lieu de chaînes, comme dans l’AT).
Le code source est compilé avec gcc-avr. Il est commenté bien, je suppose, mais je sais que c’est toujours facile de se perdre. Il y a quelques fonctions supplémentaires qui ne sont pas pratiquement utilisées - par exemple le dessin rectangle, arc ou un texte. Je l’ai écrit juste pour obtenir certaines compétences;). De toute façon, vous toujours sera en mesure d’exécuter ces commandes de « fenêtre de ligne de commande » dans le logiciel PC pour voir les effets.