Billigt, trevligt och konstiga du plotter med A4 rutat ($25 + några skrot) (2 / 9 steg)
Steg 2: Att göra registeransvarige
Regelbundna CNC controller är oftast bara en förstärkare. Det är faktiskt kontrolleras av PC (via LPT-port). Som ni kan se, är den här domänkontrollanten mycket mer komplex. Det är för PC bara skickar kommandon som körs av AVR.
Kringutrustning styrs av ATmega16. Det styr stegmotorer (med ULN2803 och L293D) och elektromagnet (med IRLML2502). Dessutom övervakar begränsande växlar (JP4) och skickar data till LCD.
För att kommunicera med PC, använde jag FT232RL chip (USB-UART converter). Jag använder min egen kommunikation "protokoll" att enkelt skicka kommandon och rådata. De två TCMT1109 optocouplers används till att elektriskt isolera PC från registeransvarige (eftersom jag brände av misstag ATmega en gång ^^). USB-UART converter måste omprogrammeras med FT Prog med hjälp av XML-filen bifogas nedan. Utan att göra det lysdioder kommer inte ange vad de är tänkt att. Du kan göra det när alla FT232 delar är lödda.
Det finns också 4 växlar på PCB. En är för reseting processorn (det var nyttigt medan testning), men resten var monterad för framtida bruk att kommunicera med användaren. För nu mitten växlar används ("OK") att acceptera kommandot start (jag ska skriva mer om det senare).
Att göra PCB
Efter du etch PCB, kan du tenn det (till exempel med regelbundna löda). Jag gjorde det med Lichtenbergs legering - awesomeness nivå > 9000 :D. Jag föreslår att du löda i ordning som visas på bilderna. Här är listan del:
- ICs:
- ATmega16
- FT232RL
- L293DD
- ULN2803
- TCMT1109 x2
- 7805
- Motstånd:
- 47
- 100 x3
- 330
- 1k x2
- 2k 4 x2
- 4k 7 x3
- 10k
- Kondensatorer:
- 22p x2
- 100n x4
- 330n
- 2u2
- 4u7
- 100U
- Transistorer:
- IRLML2502
- BC857 x2
- Dioder:
- LL4148
- LED RÖD
- LED grön x2
- PIN-headers:
- 1 x 2 x4
- 1 x 3
- 1 x 5
- 1 x 6 x2
- 2 x 4
- bygel x2
- Andra:
- 5 k potentiometer
- 16MHz kristall
- momentan switch x4
- USB mini B kontakt
- AK500/3 kontakt
- 2-kanals switch
- 16 x 2 LCD uppvisning
Den sista bilden presenterar mitt misstag när man utformar registeransvarige. Jag glömde pullup motstånd för optocouplers' utgångar. Som extremt minskar överföringshastigheten, så jag fick löda 2 extra motstånd. Men oroa dig inte, som var fast och PCB i rar är klar.
Programmering av AVR
Filen bifogas nedan innehåller PCB projekt i örn, mjukvara skriven i C, kompilerade hex filen och XML-filen för FT232RL.
Som ni ser, är det 6 extra kuddar i PCB. Du har möjlighet att programmera AVR med dem - bara löda några kablar (de är beskrivna i Eagle fil, så se till att du ansluter propper linjer. Innan du programmera chip, in sin fusebits på:
- låg: 0xEE
- hög: 0x99
De är bara standardvärden med ändrande CKSEL bitar till 16MHz externa crystal.
Lite info om källkoden
Det är inte så lätt att styra allt det här av en AVR. Svåraste var genererar XY rörelse signaler när både X och Y axel var i drag. 16MHz kristall var nästan alltför långsamt, men så småningom det fungerar ganska bra.
Det andra svåra var kommunikation med PC. Jag var tvungen att skriva min egen kommunikationsprotokoll via UART. Det liknar AT-kommandon, men kräver mycket mindre minne och det är snabbare, eftersom dess kommando koder och argument är enda byte (i stället för strängar, som i AT).
Källkoden var kompilerat med avr-gcc. Det är kommenterade väl, antar jag, men jag vet det är fortfarande lätt att gå vilse. Det finns några ytterligare funktioner som praktiskt taget inte används - till exempel rita rektangel, arc eller text. Jag skrev det bara för att få vissa färdigheter;). Hur som helst, du fortfarande kommer att kunna utföra de här befallningen av "kommandoraden fönster" i PC programvara se effekterna.