Machinekit je sada samostatně použitelných, ale vzájemně spolupracujících softwarových nástrojů, které programátorům poskytují při tvorbě programu značnou flexibilitu. Jistě už jste alespoň zaslechni, co je Internet věcí (IoT). A Machinekit je, mimo jiné, určen právě pro vývoj aplikací, kterými je možno stroje a přístroje dálkově řídit. Základním účelem Machinekitu je ale usnadnění vývoje složitějších aplikací, určených pro řízení CNC strojů a robotů.
Jak to všechno vlastně vzniklo?
Cílem projektu Machinekit a důvodem pro jeho odštěpení od projektu LinuxCNC je:
- Oproštení se závislosti na x86 platformě a RTAI prostředí a následná portace na širokou paletu hw platforem (ARM, x86_64) a do realtimových prostředí (Xenomai, RT-preempt)
- Rozšíření použitelnosti i pro řešení obecných automatizačních úloh
- Odstranění limitací LinuxCNC a rozšíření funkcionality
- Poskytnutí maximálního výkonu za nízkou cenu
Hlavní odlišnosti proti LinuxCNC:
- Náhrada zastaralých konceptů a technologií aktuálními
- Redesign a výrazné rozšíření komunikační vrstvy (OMQ, Protobuf, json, websockets…)
- Větší flexibilita a lepší integrovatelnost
- Podpora jak lokálních, tak vzdálených GUI, která nyní mohou běžet i na tabletech a mobilních telefonech
- Přidání nových HAL komponent
Vlastnosti Machinekitu:
- Je licencovaný pod licencí GNU GPL a LGPL
- Interpreter G-kódu (RS-274)
- Mnoho grafických uživatelských rozhraní
- Real-time plánovač pohybu
- Nízkoúrovňový přístup k driverům a senzorům (HAL)
- Jednoduchá instalace (.deb balíčky)
- Toolkit /platforma
- Sada modulů s definovaným rozhraním
- Moduly lze používat samostatně (například jen HAL + vlastní GUI)
- Plně konfigurovatelný
- Textové soubory, průvodci
- Škálovatelný od ARM SBC přes Pentium 4 s paralelním portem až po víceprocesorový Xeon s FPGA hw stepperem (Mesa Anything I/O)
Co Machinekit nabízí:
- Simultánní pohyb až 9 os stroje nebo přístroje
- Open loop řízení signály STEP a DIR
- Closed loop řízení SERVO – regulační smyčka se uzavírá přes LinuxCNC
- Kompenzaci podle parametrů nástrojů
- Kompenzaci mechanických nepřesností stroje
Podporu netriviálních kinematik:
- CoreXY, H-bot, Puma, Scara, …
- Vázaný pohyb os při soustružení nebo závitování
- Adaptivní rychlost otáčení vřetene
Architektura Machinekitu je modulární
Non real-time moduly
- GUI – grafické uživatelské rozhraní
- EMCTASK – koordinátor úloh
- EMCIO – diskrétní řízení vstupů/výstupů
Real-time moduly
- EMCMOT – řízení/plánování pohybu
- HAL – hardware abstraction layer , breadboard, >150 modulů s možnost snadné tvorby vlastních podle zadání
- Hw drivery (parport, hw steppery, FPGA, PRU, …)
Co Machinekit není:
- Není CAD (Computer aided design). To je nutno řešit jinými sw nástroji (Qcad, LibreCad, OpenSCAD, Eagle, Inkscape…)
- CAM (Computer aided manufacturing). K tomu jsou určeny programy Dxf2gcode, hpgl2gcode, pcb2gcode, Qcad CAM extension, Slic3r, Cura a mnohé jiné.
- Všechny tyto programy je ale možno do vlastního programu, vyvíjeného pomocí nástrojů Machinekitu, snadno začlenit. (Žádný z těchto programů není problém nainstalovat na Machinekit)