Machinekit

machinekit_header

machinekit-na-facebooku


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?

Machinekit_history

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)