Obsah:
Video: CNC stroj na vychystávání dílů: 9 kroků (s obrázky)
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Pokud jste seriózní tvůrce jako já, pak s největší pravděpodobností budete mít kolem sebe nespočet odporů, kondenzátorů a různých dalších elektronických součástek. Ale je tu zásadní problém: Jak si člověk nechá sledovat, co nebo kolik z něčeho mají? Pro tento problém jsem vytvořil CNC stroj, který získává informace z databáze MySQL, která poté přejde a načte požadovanou položku. Kromě databázového back-endu jsem vytvořil webovou stránku front-end, která umožňuje uživatelům přihlásit se a poté vytvářet kategorie dílů, přidávat nové díly a měnit množství dílů. Tímto způsobem lze zaúčtovat každou jednotlivou položku, stejně jako systém řízení zásob.
Složky:
- Arduino UNO a Genuino UNO
- Strojní šrouby: 8 mm, 3 mm, 4 mm
- N-kanál MOSFET
- Usměrňovací dioda 1N4001
- Krokový motor NEMA 17 x2
- Ovladač DRV8825 pro krokové motory x2
- Kondenzátor 100 µF x2
- Servo chapadlo DFRobot
- Rozvodový řemen DFRobot x2
- Rozvodová kladka DFRobot 5 mm x2
- Lineární ložisko DFRobot 6mmx12mm x2
- Kuličkové ložisko DFRobot 8 mm x 12 mm
Krok 1: Teorie
Základem tohoto systému je sledování zásob. Pokud si například někdo koupí 20 desek Arduino Uno, může tuto částku snadno přidat do databázové tabulky. Kategorie by byla „Arduino“, název „Uno“a množství 20. Pro více lidí by vlastníkem této části bylo uživatelské jméno osoby, která ji přidala. Část by také obsahovala údaje o jeho umístění na mřížce. Kdykoli se množství součásti změní, CNC stroj by pak vybral tuto součást a dal ji uživateli.
Krok 2: Databáze
Potřeboval jsem všudypřítomnou databázi, ke které by bylo možné přistupovat jak v Pythonu, tak v PHP. Muselo to být také snadné použití se spoustou podpory, což z MySQL udělal perfektní databázový server. Začal jsem stažením instalačního programu mysql z https://dev.mysql.com/downloads/windows/installer/ a poté jej spustil. Rozhodl jsem se nainstalovat server (samozřejmě) a také pracovní stůl, shell a nástroje. Když zvolíte uživatelské jméno a heslo, nezapomeňte si je zapamatovat, protože stejná pověření jsou potřebná ve všech souborech PHP a skriptu Python. Po spuštění serveru povolte, aby běžel jako proces na pozadí, takže bude vždy aktivní. Od této chvíle musí být vše napsáno a přesně ve stejném pořadí, v jakém to mám. Dále vytvořte novou databázi (schéma) s názvem „komponenty“. Poté přidejte následující tabulky: „kategorie“, „součásti“a „uživatelé“. Do tabulky kategorií přidejte následující sloupce v tomto přesném pořadí: "id" -int (11), PK, AI; "jméno" -varchar (45); „majitel“- varchar (45).
Do tabulky dílů přidejte následující sloupce v tomto přesném pořadí: "id" -int (11), AI, PK; "kategorie" -varchar (45); "jméno" -varchar (45); "množství" -int (11); "vlastník" -varchar (45); "locationX" -int (11); "locationY" -int (11);
Do tabulky uživatelů přidejte následující sloupce v tomto přesném pořadí: "id" -int (11), AI, PK; "uživatelské jméno" -varchar (45); "heslo" -varchar (128);
Krok 3: Nastavení Apache
Webové stránky, které jsem vytvořil, využívají HTML, CSS, Javascript a PHP. Začněte stažením nejnovější verze apache z https://www.apachelounge.com/download/ a rozbalte ji, přesuňte složku do adresáře C: \. Dále si stáhněte PHP z https://windows.php.net/download#php-7.2 a ujistěte se, že jde o verzi Thread Safe. Rozbalte jej, přejmenujte jej na „PHP“a přesuňte do adresáře C: \. Poté přejděte do C: / Apache24 / conf / httpd.conf a upravte jej. Přidejte následující řádky přímo pod sekci:
LoadModule php7_module C: /PHP/php7apache2_4.dll
DirectoryIndex index.html index.php
Aplikace AddHandler/x-httpd-php.php
PHPIniDir "C:/PHP"
Poté otestujte svůj server spuštěním httpd.exe umístěného ve složce bin. Přejděte ve svém prohlížeči na „localhost/“a podívejte se, zda se objeví stránka Hello world. Pokud ano, hurá, nyní máte místní webový server.
Krok 4: Nastavení PHP
Aby bylo možné nastavit MySQL pro PHP, je třeba udělat několik věcí. Nejprve přejmenujte „php.ini-recommended“na „php.ini“a poté jej otevřete v poznámkovém bloku. Přejděte do sekce rozšíření a přidejte nebo odkomentujte soubor „extension = php_mysqli.dll“, který umožní PHP komunikovat se serverem MySQL. Nyní restartujte httpd.exe a vytvořte nový soubor s názvem „phptest.php“a vložte jej do souboru. Nyní přejděte na localhost/phptest.php a zjistěte, zda se objeví informace o vašem prohlížeči.
Krok 5: Navrhování stroje
Začal jsem vytvořením několika základních částí ve Fusion 360: 6mm tyč, lineární ložisko a krokový motor. Poté jsem překlenul dva pruty napříč, aby se vytvořila osa y, a také jsem nasadil rozvodový řemen kolem krokového motoru a ložiska. Také jsem přidal osu x. Poté jsem začal 3D tisk různých dílů a také CNC směrovány dva boční panely.
Krok 6: Výroba stroje
Nakonec jsem prošel několika iteracemi každé části, takže pokud se nějaké liší, proto. Začal jsem vybroušením každé části a následným vyvrtáním každé díry v 3D tištěných dílech. Poté jsem do otvorů vložil lineární ložiska a prošel jimi 6mm tyče. Po připevnění řemenic na jejich hřídele jsem také namontoval krokové motory na jejich příslušná místa. Ozubený řemen se obtočil kolem každé ze dvou stran pro obě osy. Nakonec jsem si uvědomil, že chapadlo bude příliš těžkopádné, a tak jsem místo toho zvolil elektromagnet. Také jsem měl nějakou pomoc při jeho stavbě, v podobě kočky.
Krok 7: Arduino kód
Můj základ pro tento stroj byl GRBL. Na začátku kódu jsou uvedeny různé parametry, například vzdálenost na otáčení, offsety a rozsahy. K ovládání ovladačů krokových motorů DRV8825 jsem použil knihovnu BasicStepperDriver. Krokové ovladače jsou nastaveny na použití mikrokroků 1/32, což zvyšuje rozlišení. Kdykoli stroj „nastartuje“, projde naváděcí sekvencí, kde každá osa vykročí, dokud nenarazí na koncový spínač. Poté se přesune na základě offsetu do nastaveného umístění a nastaví umístění na 0, 0. Nyní, když obdrží příkaz k přesunu přes sériové číslo, přesune se do tohoto umístění mřížky.
Krok 8: Program Python
Rozhodl jsem se použít Flask jako webový server, který bude přijímat požadavky GET z hlavního webu. Požadavky se skládají z názvu a kategorie součásti. Poté, co to Flask zvládne, data se analyzují a poté se server MySQL dotazuje, aby zjistil umístění součásti. Poté skript pythonu odešle příkaz do Arduina s uvedením, kde je část.
Krok 9: Použití nástroje pro výběr dílů
Soubory webových stránek jsem poskytl ve svém úložišti github: https://github.com/having11/cnc_part_picker_webpages Nahraďte chybějící parametry v souborech PHP pro váš konkrétní server MySQL. Vložte soubory do složky htdocs ve složce Apache. Jednoduše spusťte skript python a poté, kdykoli se změní částka, stroj přejde na toto místo a získá ho. Soubory pro 3D tisk najdete zde a soubory webových stránek zde.