wCncPcb - Úvod
V tomto článku sa budem venovať výrobe jednoduchých plošných
spojov (ďalej len PCB) pomocou malej frézy a aplikácie wCncPcb.
Pri praktickom vyučovaní často potrebujem vyrobiť viacero jednoduchých
PCB nejakou rýchlou a nenáročnou cestou. Spočiatku som si navrhol PCB na
štvorčekovaný papier a z neho som následne napísal gCode pre frézu.
Neskôr som navrhol jednoduchú aplikáciu, v ktorej som nakreslil náčrt dier,
drážok, kontúry a aplikácia následne z toho vygenerovala gCode. Takto som
dostal doštičku presne podľa mojich predstáv. Túto aplikáciu som nazval wCncPcb.
Po nejakom čase som sa dostal k malej fréze Route 3018 Pro (ďalej len 3018).
Rozhodol som sa preto celú aplikáciu naprogramovať odznova s tým, že som
opravil nedostatky prvej verzie, dodal komponenty (súčiastky) a možnosť
frézovať obojstranné PCB. Druhá verzia wCncPcb generovala gCode, ktorý som
mohol odoslať do frézy Proxxon pomocou aplikácie ncCad9, alebo do frézy 3018
pomocou aplikácie gSender. Malá fréza 3018 ponúka možnosť vloženia súboru
aj na SD kartu a vyrobiť tak doštičku PCB v režime offline. V tomto časovom
bode som radšej vyrábal PCB na veľkej fréze Proxxon, keďže sa malá fréza
3018 často „zasekla“. V aplikácii gSender som videl, ako počítač čaká na
potvrdenie vykonanej úlohy od frézy, a naopak, ako fréza čakala na ďalší
príkaz. Chýbalo zázračné tlačidlo „pokračuj“. Dokonca vznikli situácie,
kedy sa malá fréza zavŕtala až do podkladovej dosky, alebo vyrezala drážky niekde inde.
Na druhej strane fréza 3018 je rozmerovo malá, šikovná a lacná.
Preto som sa prioritne snažil spojazdniť komunikáciu medzi počítačom a touto
frézou. Našťastie ku GRBL (interpret použitý v 3018) je k dispozícii
rozsiahla dokumentácia, čo mi veľmi pomohlo. Aby som eliminoval všetky
chyby, ktoré by mohli vzniknúť zlou komunikáciou, rozhodol som sa namiesto
klasického pripojenia cez USB k PC použiť prepojenie pomocou kábla USB-USART.
Stranu s rozhraním USART som pripojil do komunikačného konektora frézy
určeného pre Bluetooth. Musím s pokorou priznať, že aplikácia s frézou
komunikuje absolútne bezchybne. Podľa mňa bola chyba zapríčinená zdrojom.
Kábel USB-USART dodáva záložné napätie 5 V centrálnej jednotke, preto pri
zakolísaní napätia adaptéra v komunikácii nenastane chyba. Ale to je len
môj osobný názor. Keď mi už aplikácia spoľahlivo komunikovala s frézou,
doprogramoval som ešte zopár funkcií na spravovanie interpretera GRBL.
Z predošlých skúseností som pre istotu do wCncPcb zabudoval spomínané tlačidlo
„pokračuj“. Môže sa použiť v prípade núdze, ak by fréza nepotvrdila prijatie
dát a proces by v nejakom bode zamrzol.
Keď mi komunikácia tak dobre fungovala, vŕtalo mi hlavou: „A čo tak skúsiť Bluetooth?“
Kúpil som najlacnejší Bluetooth (ďalej len BT) modul, aký bol v tej dobe
dostupný – JDY-33. Myslel som si, že ak nastavím v aplikácii rýchlosť sériového
portu na 115 200, tak aj modul s frézou bude komunikovať tou istou rýchlosťou.
Je to mylná predstava. Rýchlosť komunikácie BT je nutné nastaviť cez USART.
Aj s tým nám dokáže naša aplikácia pomôcť. V konzole sú doprogramované
tlačidlá, ktoré prestavia BT na požadovanú rýchlosť. K napájaniu BT modulu
som prispájkoval 1500 uF kondenzátor kvôli spomínanému výkyvu napätia.
Funguje to naozaj spoľahlivo. Najväčšia výhoda bezdrôtovej komunikácie
je, že notebook môže byť v inej miestnosti ako fréza, a tak sa do notebooku
nedostane prach z frézovania.
Chcel by som upozorniť na jednu dôležitú vec. Pri priamom odosielaní dát
do 3018 sa gCode generuje postupne počas frézovania. Ak by sme vybrali
na odoslanie iba dve položky, aplikácia by spustila inicializačný kód,
odoslal by sa kód pre obe položky a zakončil by sa ukončovacím kódom.
To dáva možnosť opraviť niektoré zle vyfrézované cestičky, poprípade
dokončiť výrobok pri nejakej poruche. Má to ešte jednu veľkú výhodu, a to
použiť korekciu nerovnosti povrchu.
Nerovnosť povrchu je ďalšia vec, ktorá mi nedala spať. Najprv som vyrovnával
podkladovú dosku podkladaním papierikov, neskôr mi napadlo doprogramovať
„vyrovnávanie povrchu frézou“. Funguje to jednoducho. Vyfrézuje povrch v
zadaných rozmeroch. Teda odfrézovaná časť v podkladovej doske bola voči
nástroju 100 % rovná. No aj tak je často PCB ohnuté a pri jemnom frézovaní
napríklad 0,3 mm je každý ohyb veľký problém. Tu prišla na rad potreba
vykonať meranie nerovnosti. GRBL má špeciálny príkaz, ktorý pri prepojení
vstupu A5 zastaví motor a v chybovom hlásení odošle súradnice, kde sa
presne vreteno nachádza. Keďže PCB má medený (vodivý) povrch, aj motorček s
vrátidlom a frézkou sú kovové (vodivé), stačí pripojiť jeden vývod A5 na
motorček frézy a druhý na PCB. Táto funkcia sa v GRBL označuje ako PROBE – sonda.
Aplikácia wCncPcb pozná tri úrovne merania povrchu. Prvá je najjednoduchšia
a v podstate iba nastaví nulový bod pri dotyku frézky o PCB. Druhá úroveň
vykonáva štyri merania na hranách PCB. Takto si vie prekladač kódu vytvoriť
korekciu súradnice Z. Najvyššia úroveň (Multi-meranie) vykoná sieť meraní.
Vhodné pre väčšie PCB. Tu len dodám, že multi-meranie má zmysel iba vtedy,
ak sú cestičky krátke. Aj na tom som myslel a do aplikácie som doprogramoval
rozdelenie dlhých cestičiek.
Zo strany návrhu PCB treba mať na pamäti, že aplikácia zobrazuje pohľad
zo strany súčiastok, teda pohľad zhora (ako v Eagle). Pre zostrojenie
jednoduchého obvodu stačí vložiť potrebné súčiastky a natiahnuť čiary tam,
kde majú byť vyfrézované drážky. Nástroj „kontúra“ vyfrézuje kontúru PCB
s úchytkami. Pri komplikovanejšom obvode je aj návrh dosky podstatne
zložitejší. Pre zložité obvody by bolo lepšie navrhnúť PCB v nejakej
klasickej aplikácii, ako napríklad Eagle, a dáta následne preniesť do wCncPcb.
To ma prinútilo doprogramovať niekoľko možností importu. Bolo problematické
vytvoriť celkový obrys pospájaných cestičiek. Preto som spočiatku využil
na tento účel aplikáciu FlatCAM. Z Eagle som vytvoril GERBER a ten som
následne importoval do FlatCAM. Vygenerovaný súbor DXF obrysu som nakoniec
načítal do wCncPcb. Tu chcem podotknúť, že DXF neobsahuje diery. Preto
som musel doprogramovať import Excellon priamo z GERBER. Zdalo sa mi to
celkom komplikované. Tak som skúsil importovať obrázok a z neho
vytvoriť obrys cestičiek. Celkom to funguje, len treba zachovať správne
rozlíšenie DPI a potom obrázok nastaviť na diery z Excellonu. Nebol som s
tým spokojný. Chcel som importovať GERBER jedným stlačením. To nakoniec
vyriešila knižnica Clipper (autor: Angus Johnson), ktorá dokáže zjednotiť
polygóny. Konečne som dokázal z GERBER súboru vytvoriť polygóny
(cestičky, pady...), ďalej knižnicou Clipper.union zjednotiť spojené
objekty do jedného tvaru (polygónu) a v poslednom kroku vyexportovať
obrys jednotného tvaru posunutý o polomer frézky. Momentálne import funguje
tak, že stačí kliknúť na akýkoľvek súbor GERBER a aplikácia si sama
vyhľadá všetky potrebné súbory. Algoritmus na dekódovanie súborov DXF, GERBER,
EXCELLON som prispôsobil jestvujúcim súborom vyexportovaným z programov EAGLE a FlatCAM.
Môže sa stať, že iná aplikácia vygeneruje súbor GERBER v inej štruktúre a
súbor nemusí byť správne načítaný. Napríklad GERBER súbor z aplikácie
Eagle obsahuje makro „AMOC8“, ktoré vytvára osemuholník. Aplikácia wCncPcb
nevytvára objekt „OC8“ pomocou spomínaného makra, ale berie ho priamo
ako objekt osemuholník. Ak by niekto importoval súbor GERBER, ktorý by
bol zle načítaný, prosím, napíšte mi. Veľmi rád opravím chyby.
Po importovaní dosky PCB z Eagle sa objavili ďalšie požiadavky. Tenšie
frézované drážky (výmena nástroja) a zmena rýchlosti či priemeru nástroja.
Doprogramoval som ďalšie tri tlačidlá, ktoré spúšťajú jednotlivo fázy výroby PCB.
Prvé tlačidlo spustí vŕtanie malých dier (do polomeru nástroja – frézky), druhé tlačidlo
frézuje iba drážky (vyššou rýchlosťou). Posledné tlačidlo spustí frézovanie otvorov
(diery väčšie ako polomer nástroja – frézky) a kontúry.
Aj keď frézou dokážeme vytvoriť dosku pre SMD montáž, nejako sa to na praktickom
vyučovaní neujalo. Vyfrézovaná drážka je pre začiatočníkov príliš tenká a žiaci
radšej osadzujú dosky, ktoré majú podstatne väčšie spájkovacie plochy a medzery.
Vrátil som sa k idei výroby PCB jednou frézkou (napríklad 0,8 mm).
Doplnil som preto možnosť zmeny rýchlosti frézovania podľa toho, či frézka
vŕta, odoberá meď (frézuje drážky), alebo reže (frézuje obrys).
Nutnosť vyrobiť viacero dosiek naraz mi dala príležitosť doprogramovať špeciálne tlačidlo.
Po nastavení požadovaného počtu PCB ho stačí stlačiť a fréza si sama nameria
nerovnosť povrchu a jednou frézkou vyfrézuje požadovaný počet dosiek.
Dnes už na frézu 3018 nedám dopustiť.
Nakoniec len dodám, že wCncPcb nie je komerčná, profesionálna aplikácia.
Naprogramoval som ju ako voľne šíriteľný softvér pre výrobu PCB v školských
a domácich podmienkach. Teda nevzťahuje sa na ňu žiadna licencia (ani Open-Source).
Aplikácia je primárne určená pre operačný systém Windows, ale vďaka „wine“ funguje aj pod Linuxom.