CNC Router
Projektin kuvaus
Projekti alkoi mekaniikan suunnittelulla, joka jatkuikin aina projektin viime metreille. Mekaniikkaa parannettiin ja muokatiin sitä mukaa, kun uusia osia tilattiin tai ongelmia havaittiin. Tästä syystä mekaniikan suunnittelu olikin yksi projektin aikaavievin työvaihe. Onneksi runko kuitenkin päätettiin rakennettiin alumiiniprofiileista, mikä säästi hurjasti aikaa. Alumiiniprofiilien ainoaksi haittapuoleksi muodostui niiden korkea hinta. Nykyaikainen CNC jyrsin ei kuitenkaan ole pelkkää rautaa, vaan se sisältää suuren määrän erilaista ohjelmistoa ja koodia. Jyrsimen ohjausta varten etsittiin ja kokeiltiin muutamaa erilaista Ohjelmaa. Lopulta muutaminen kokeilujen jälkeen päädyttiin valitsemaan Arduino Megaan Grbl-ohjelma ja Raspberryyn bCNC-ohjelma. Näiden avoimeenlähdekoodiin perustuvien ohjelmien avulla jyrsimen ohjaaminen osoittautui varsin yksinkertaiseksi. Lopullisessa ratkaisussa bNC muodostaa yhdessä Raspberryn kosketusnäytön kanssa jyrsimen käyttöliittymän. Tämän käyttöliittymän kautta käyttäjä voi ohjata jyrsimen toimintoja. Raspberry välittää sen jälkeen saadut komennot Arduinolle, joka vastaa askelmoottorien ohjauksesta yhdessä askelmoottorienohjainten kanssa. Jysimessä oli lisäksi muutamia IoT ominaisuuksia koodin lähettämistä ja etävalvontaa varten. Nämä ominaisuudet toteutettiin hyödyntäen Raspberryn WiFi-yhteyttä. Raspberry ohjelmoitiin pitämään yllä verkkosivua, jonka kautta käyttäjä pystyy helposti lähettäämään G-koodit jyrsimelle. Käyttäjä voi myös katsella live kuvaa jyrsimen työskentelystä.
Suurimpia haasteita projektissa olivat aikataulun tiukkuus, karamoottorin kytkentä ja ohjaus sekä muutamat mittavirheet. Aikataulu oli todella tiukka näin suureen projektiin ja siitä syystä osa rakenteestä jäikin vähän keskeneräisiksi. Esimerkiksi karamoottoria ei keritty kiinnittämään sirkukseen mennessä, koska kiinnittämiseen tarvittavat alumiinilevyt kiersivät pitkin Suomea. Karamootori aiheutti lisäksi myös muita ongelmia. Moottorin ohjaukseen käytettiin kiinalaista taajuusmuutinta, jonka ohjaaminen Arduinon avulla osoittautui erittäin hankalaksi. Siksi moottorin ohjaus päätettiin jättää toistaiseksi käsikäyttöiseksi, mutta sitä tullaan luultavasti kehittämään vielä tulevaisuudessa. Viimeinen kolmesta suuresta hankaluudesta oli kuularuuuvien pituuden mittausvirhe, joka aiheutti muutaminen muutoksia rakenteeseen vielä aivan loppumetreillä. Näkyvin muutos on yksi ylimääräinen pystypalkki y-akselin toisessa päässä, mutta muut virheet saatiin kompensoitua 3D-tulostetuilla moottorisovittimilla.
Kaikenkaikkiiaan projekti oli varsin opettavainen kokonaisuus, joka opetti jokaiselle ryhmäläiselle mm. projektin hallintaa, sähkötöitä ja mikrokontrollereiden koodaamista. Projektin mieleen painuvimpia hetkiä olivat karamoottorin ensimmäinen testaus ja kahden akselin ensimmäinen yhtäaikainen liike. Nämä pienet saavutukset loivat uskoa projektia kohtaan ja lisäsivät onnistumisen tunnetta.
Mekaniikka & rakenne
CNC jyrsimen rakenne suunniteltiin Creo Parametric 3.0 avulla. Runkomateriaaliksi valittiin alumiiniprofiili sen kestävyyden ja kasattavuuden takia. Alumiiniprofiilit ja tarvittavat kiinnitystarvikkeet tilattiin Itemprofiili Oy:ltä. Itemprofiili teki tarvittavat katkaisut ja työstöt kiinnityksiä varten, jolloin itse kasaaminen oli varsin suoraviivaista.
Takana oleva sähkökaappi sekä työstöpöytä valmistettiin puolestaan 24 mm koivuvanerista. Lisäksi projektissa käytettiin muutamia itse suunniteltuja 3D-tulosttettuja osia. Tälläisia osia ovat mm. askelmootorien kiinnittämiseen tarvittavat sovittimet sekä rajakytkimien kiinnikkeet.
Sähkökaapelit askelmoottoreille, rajakytkimille ja jyrsinmoottorille vietiin energiansiirtoketjun avulla.
Käyttöohje
Koneen käyttöliittymä on toteutettu Raspberrry Pi:n virallisella 7-tuumaisella kosketusnäytöllä. Tämän lisäksi invertterin napeilla ohjataan terän kierrosnopeutta. Käyttöpaneeliin on myös asennettu virtakytkimet steppereitten ohjaimille ja invertterille. Paneelissa on myös hätäseisnappi, joka katkaisee kaikilta laitteilta virran.
Raspberry Pi:n käynnistyessä se avaa automaattisesti bCNC ohjelmiston. Voit avata tiedoston, jolloin näytölle pitäisi tulle kuva g-kooditiedostostasi.
Lisää ohjeita bCNC:hen löytyy osoitteesta:https://github.com/vlachoudis/bCNC/wiki
Stepperien nopeuksia, kiihtyvyyksiä yms voi säätää Grbl:n asetuksista. Tämä tapahtuu bCnc ohjelmassa "command" rivillä antamalla komentoja joita Grbl ymmärtää. Lista näistä komennoista löytyy osoitteesta: https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration
Terän pyörimisnopeus säädetään invertterin napeista. Tähän löytyy käyttöohje osoitteestaw.exoror.com/datasheet/VFD.pdf
Taajuusmuuttajan sekä Grbl:n ohjeet löytyvät myös sivun ylälaidassa olevasta CNC router handbookista.
Kytkennät
Raspberry pi:ssa kiinni on kosketusnäyttö, kamera sekä arduino mega. Arduinossa on asennettuna Grbl. Arduinosta lähtee jokaiselle kolmesta stepperinohjaimelle kolme signaalikaapelia, jotka ohjaavat pyörimissuuntaa, nopeutta, ja enable/disable:a. Stepperinohjaimille tulee virta niiden omasta virtalähteestä. Kotelossa on myös kaksi tuuletinta viilentämässä sisätilaa.
IoT ominaisuudet
Laitteessa on muutama IoT ominaisuus, jotka toimivat WLAN-verkossa.
Työn lähettäminen jyrsimelle esimerkiksi tietokoneesta tai älypuhelimesta:
Jyrsimelle pystyy lähettämään työn WLAN yhteyden ylitse. Serveriohjelmistona toimii Apache, jota ajetaan Rasperry Pi -alustalla. Koodin lataamiseen käytetty nettisivu on toteutettu hyödyntäen html ja php koodia. Työllä tarkoitetaan g-koodia, jota jyrsimen ohjainsovellus ymmärtää.
Ohjeet koodin lähettämiseksi jyrsimelle:
- Yhdistä tietokone/älypuhelin ja jyrsin samaan WLAN-verkkoon.
- Selvitä jyrsimen IP-osoite syöttämällä komentoriville "hostname -I"
- Syötä komennon tulostama IP-osoite johonkin nettiselaimen osoiteriville. (esim 192.168.1.1). Tällöin pitäisi avautua nettisivu, jossa näkyy kentät tiedoston lähettämistä varten.
- Valitse tiedosto, jonka haluat lähettää laitteelle ja lähetä tiedosto. Sinun pitäisi saada kuittaus tiedoston lähettämisen onnistumisesta.
- Työ löytyy kansiosta /var/www/html/uploads.
- Työn avaaminen kyseisestä kansiosta onnistuu suoraan käyttämällä jyrsimen ohjaussovellusta.
HUOM! Saman nimisen tiedoston useaan kertaan tai erityisen suuren tiedoston lähettäminen voi aiheuttaa ongelmia. Poista tiedostot kyseisestä kansiosta, joita et tarvitse!
Koodit nettisivuja varten löytyvät kansiosta /var/www/html. Huomaa, että koodien editoimiseen tarvitaan sudo-oikeudet. Jos haluat avata koodin muokkausta varten, niin kirjoita komentoriville oikeassa kansiossa "sudo vim <kooditiedoston nimi>".
Videostriimi:
Laitteessa on kamera, jonka avulla työtä voi seurata livenä. Videostriimin tuottamiseen käytetty sovellus on VLC, ja VLC täytyy olla asennettuna koneelle, jolla videota aiotaan katsoa. Videostriimin tuottaminen ajetaan Rasperry Pi -alustalla.
Ohjeet striimin avaamista varten:
- Yhdistä tietokone ja laite samaan WLAN-verkkoon.
- Selvitä jyrsimen IP-osoite käyttämällä komentorivillä komentoa hostname -I
- Jyrsimen kotihakemistosta löytyy tiedosto video.sh, joka ajaa tarpeelliset komennot striimin aloittamiseksi. Suorita kyseinen tiedosto komentoriviltä käsin komennolla ./video.sh. Jätä tämä terminaali-ikkuna auki taustalle.
- Avaa tietokoneella VLC, ja avaa striimi lähteestä rtsp://<ip-osoite>
Myös videostriimin katsominen älypuhelimella pitäisi onnistua, mikäli käytössä on sovellus, joka tukee rtsp-striimiä.
Osaluettelo
Materiaali | lkm | |
---|---|---|
1 | Alumiiniprofiili 6, 60X30 1m | 14,2 |
2 | Alumiiniprofiili 6, 30X30 1m | 0,6 |
3 | Alumiiniprofiili 6, 30X12 1m | 1,7 |
4 | Alumiiniprofiili 8, 80X40 1m | 0,4 |
5 | Nivel 30X30 | 4 |
6 | Kulmaliitos-sarja 6 30X30 | 12 |
7 | Puristuskulma 6 | 14 |
8 | Lineaarijohde SBR16, 1100mm | 2 |
9 | Lineaarijohde SBR16, 700mm | 2 |
10 | Lineaarijohde SBR16, 300mm | 2 |
11 | Kuularuuvi RM1605, 1100mm | 2 |
12 | Kuularuuvi RM1605, 700mm | 2 |
13 | Kuularuuvi RM1605, 300mm | 2 |
14 | Laakeripesä BK12 | 3 |
15 | Laakeripesä BF12 | 3 |
16 | Lineaarikelkka SBR16UU | 12 |
17 | Kuulamutteri SFU1605 | 3 |
18 | Holkki kuulamutterille | 3 |
19 | NEMA 23 askelmoottori 23HS8430 | 3 |
20 | Askelmoottoriohjain DM542A | 3 |
21 | 1,5kW jyrsinmoottori | 1 |
22 | 1,5kW taajuusmuuttaja | 1 |
23 | Jyrsinterä | 1 |
24 | Jyrsinteräpidike ER11 | 1 |
25 | Arduino Mega 2560 | 1 |
26 | Rasperry Pi 3b | 1 |
27 | Rasperry Pi 7" kosketusnäyttö | 1 |
28 | Rasperry Pi kamera | 1 |
29 | Rasperry Pi kameran jatkojohto 1m | 1 |
30 | Muistikortti 16GB | 1 |
31 | 6-paikkainen jatkojohto | 1 |
32 | Hätäseis-kytkin | 1 |
33 | Tuuletin 40X40 NMB-MAT 24V 0.13A | 2 |
34 | Virtalähde 35V 10A | 1 |
35 | Virtalähde 24V 1.5A | 1 |
36 | Energiansiirtoketju 1m | 3 |
37 | Rajakytkin | 6 |
38 | Kytkin ON-OFF | 3 |
39 | Askelmoottori-kuularuuvi -kytkin | 3 |
40 | Alumiinilevy, 10mm | 1 |
41 | Alumiinilevy, 15mm | 1 |
42 | Koivuvaneri, 24mm | 1 |
43 | 3D tulostettu askelmoottoriadapteri | 3 |
44 | 3D tulostettu rajakytkintuki | 4 |
45 | 3D tulostettu päätytulppa | 24 |
46 | 3D tulostettu energiasiirtoketjun tuki | 1 |
47 | 3D tulostettu energiasiirtoketjun päätykiinnike | 2 |
48 | 3D tulostettu puhallinteline | 2 |
49 | 3D tulostettu kosketusnäytön tuki | 1 |
50 | Häiriösuojattu 4-napainen kaapeli | |
51 | Arduino kytkentäkaapeli | |
52 | Kiinnitystarvikkeita (ruuvit, mutterit, yms) |