Inhoudsopgave:

CNC onderdelenverzamelmachine - Ajarnpa
CNC onderdelenverzamelmachine - Ajarnpa

Video: CNC onderdelenverzamelmachine - Ajarnpa

Video: CNC onderdelenverzamelmachine - Ajarnpa
Video: CNC 5 Axis Milling Working Process High Speed Cutting Machining 2024, November
Anonim
CNC onderdelenverzamelmachine
CNC onderdelenverzamelmachine

Als je een serieuze maker bent zoals ik, dan heb je waarschijnlijk talloze weerstanden, condensatoren en verschillende andere elektronische componenten rondslingeren. Maar er is een groot probleem: hoe houdt men bij wat of hoeveel van iets ze hebben? Voor dit probleem heb ik een CNC-machine gemaakt die informatie haalt uit een MySQL-database die vervolgens het gevraagde item gaat ophalen. Naast de back-end van de database, heb ik een front-end webpagina gemaakt waarop gebruikers kunnen inloggen en vervolgens categorieën onderdelen kunnen maken, nieuwe onderdelen kunnen toevoegen en de hoeveelheden onderdelen kunnen wijzigen. Op deze manier kan elk afzonderlijk item worden verantwoord, net als een voorraadbeheersysteem.

componenten:

  • Arduino UNO en echte UNO
  • Machineschroeven: 8 mm, 3 mm, 4 mm
  • MOSFET N-kanaal
  • Gelijkrichterdiode 1N4001
  • Stappenmotor NEMA 17x2
  • Driver DRV8825 voor stappenmotoren x2
  • Condensator 100 µF x2
  • DFRobot servogrijper
  • DFRobot Distributieriem x2"
  • DFRobot 5MM Timing Katrol x2
  • DFRobot Lineair Lager 6mmx12mm x2"
  • DFRobot kogellager 8mmx12mm

Stap 1: Theorie

Image
Image

De basis van dit systeem is het bijhouden van de voorraad. Als iemand bijvoorbeeld 20 Arduino Uno-kaarten koopt, kunnen ze dat bedrag gemakkelijk toevoegen aan een databasetabel. De categorie zou zijn "Arduino", de naam van "Uno", en een hoeveelheid van 20. Voor meerdere personen zou de eigenaar van dat onderdeel de gebruikersnaam zijn van de persoon die het heeft toegevoegd. Het onderdeel zou ook gegevens bevatten over de locatie op een raster. Telkens wanneer het onderdeelbedrag verandert, selecteert de CNC-machine dat onderdeel en geeft het aan de gebruiker.

Stap 2: Database

Database
Database
Database
Database

Ik had een alomtegenwoordige database nodig die toegankelijk was voor zowel Python als PHP. Het moest ook gemakkelijk te gebruiken zijn met veel ondersteuning, waardoor MySQL de perfecte databaseserver was. Ik begon met het downloaden van het mysql-installatieprogramma van https://dev.mysql.com/downloads/windows/installer/ en voerde het vervolgens uit. Ik koos ervoor om de server (natuurlijk) te installeren, en ook de werkbank, shell en hulpprogramma's. Wanneer u een gebruikersnaam en wachtwoord kiest, zorg er dan voor dat u deze onthoudt, omdat dezelfde inloggegevens nodig zijn in alle PHP-bestanden en het Python-script. Nadat de server is gestart, moet deze als achtergrondproces worden uitgevoerd, zodat deze altijd actief is. Vanaf hier moet alles worden gespeld en in exact dezelfde volgorde als ik het heb. Maak vervolgens een nieuwe database (schema) met de naam "componenten". Voeg vervolgens de volgende tabellen toe: "categorieën", "onderdelen" en "gebruikers". Voeg in de categorieëntabel de volgende kolommen toe in deze exacte volgorde: "id" -int(11), PK, AI; "naam" -varchar(45); "eigenaar" - varchar(45).

Voeg in de onderdelentabel de volgende kolommen toe in deze exacte volgorde: "id" -int(11), AI, PK; "categorie" -varchar(45); "naam" -varchar(45); "hoeveelheid" -int(11); "eigenaar" -varchar(45); "locatieX" -int(11); "locatieY" -int(11);

Voeg in de gebruikerstabel de volgende kolommen toe in deze exacte volgorde: "id" -int(11), AI, PK; "gebruikersnaam" -varchar(45); "wachtwoord" -varchar(128);

Stap 3: Apache instellen

Apache instellen
Apache instellen
Apache instellen
Apache instellen
Apache instellen
Apache instellen

De webpagina's die ik heb gemaakt, maken gebruik van HTML, CSS, Javascript en PHP. Begin met het downloaden van de nieuwste apache-versie van https://www.apachelounge.com/download/ en pak het uit door de map naar de map C:\ te verplaatsen. Download vervolgens PHP van https://windows.php.net/download#php-7.2 en zorg ervoor dat het de Thread Safe-versie is. Pak het uit, hernoem het naar "PHP" en verplaats het naar de map C:\. Ga dan naar C:\Apache24\conf\httpd.conf en bewerk het. Voeg de volgende regels toe direct onder de sectie:

LoadModule php7_module C:/PHP/php7apache2_4.dll

DirectoryIndex index.html index.php

AddHandler-toepassing/x-httpd-php.php

PHPIniDir "C:/PHP"

Test vervolgens uw server door httpd.exe in de bin-map uit te voeren. Ga naar "localhost/" in uw browser en kijk of de hallo wereld-pagina verschijnt. Als dat zo is, hoera, je hebt nu een lokale webserver.

Stap 4: PHP instellen

PHP instellen
PHP instellen
PHP instellen
PHP instellen

Om MySQL voor PHP in te stellen, moeten verschillende dingen worden gedaan. Hernoem eerst "php.ini-recommended" naar "php.ini" en open het vervolgens in Kladblok. Ga naar de sectie extensies en voeg "extension=php_mysqli.dll" toe of verwijder het commentaar, waardoor PHP kan communiceren met de MySQL-server. Start nu httpd.exe opnieuw en maak een nieuw bestand met de naam "phptest.php" en plaats het in het bestand. Ga nu naar localhost/phptest.php en kijk of uw browserinformatie verschijnt.

Stap 5: De machine ontwerpen

De machine ontwerpen
De machine ontwerpen
De machine ontwerpen
De machine ontwerpen
De machine ontwerpen
De machine ontwerpen

Ik begon met het maken van enkele basisonderdelen in Fusion 360: een staaf van 6 mm, lineair lager en een stappenmotor. Daarna spande ik twee staven om de y-as te vormen, en plaatste ook een distributieriem rond de stappenmotor en het lager. Ik heb ook een x-as toegevoegd. Ik ben toen begonnen met het 3D printen van verschillende onderdelen en ook CNC gerouteerd twee zijpanelen.

Stap 6: De machine maken

De machine maken
De machine maken
De machine maken
De machine maken
De machine maken
De machine maken

Ik heb uiteindelijk meerdere iteraties van elk onderdeel doorlopen, dus als er een zijn die anders is, is dat de reden. Ik begon met het schuren van elk onderdeel en boor vervolgens elk gat in de 3D-geprinte onderdelen. Daarna plaatste ik lineaire lagers in de gaten en liet ik de staven van 6 mm erdoorheen lopen. Ik heb ook de stappenmotoren op hun respectievelijke locaties gemonteerd nadat ik de katrollen aan hun assen had bevestigd. De distributieriem werd voor beide assen om elk van de twee zijden gelust. Uiteindelijk realiseerde ik me dat de grijper te omslachtig zou zijn, dus koos ik in plaats daarvan voor een elektromagneet. Ik heb ook wat hulp gehad bij het bouwen, in de vorm van een kat.

Stap 7: Arduino-code

Arduino-code
Arduino-code

Mijn basis voor deze machine was GRBL. Het begin van de code vermeldt verschillende parameters, zoals afstand per rotatie, offsets en begrenzingen. Ik heb de BasicStepperDriver-bibliotheek gebruikt om de DRV8825-stappenmotorstuurprogramma's te besturen. De stepper-drivers zijn ingesteld om 1/32 micro-stepping te gebruiken, waardoor de resolutie wordt verhoogd. Telkens wanneer de machine "opstart", doorloopt deze een homing-reeks waarbij elke as stapt totdat deze een eindschakelaar raakt. Vervolgens beweegt het op basis van de offset naar een ingestelde locatie en stelt de locatie in op 0, 0. Wanneer het nu een verplaatsingscommando via serieel ontvangt, gaat het naar die rasterlocatie.

Stap 8: Python-programma

Ik koos ervoor om Flask te gebruiken als een webserver die GET-verzoeken van de hoofdwebsite zou ontvangen. De verzoeken bestaan uit de naam en categorie van het onderdeel. Nadat Flask het heeft afgehandeld, worden de gegevens geparseerd, waarna de MySQL-server wordt gevraagd om de locatie van het onderdeel te achterhalen. Vervolgens stuurt het python-script een commando naar de Arduino om aan te geven waar het onderdeel is.

Stap 9: De onderdelenkiezer gebruiken

De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken
De onderdelenkiezer gebruiken

Ik heb de websitebestanden in mijn github-repository geleverd: https://github.com/having11/cnc_part_picker_webpages Vervang de ontbrekende parameters in de PHP-bestanden voor uw specifieke MySQL-server. Zet de bestanden in de htdocs-map in de Apache-map. Voer gewoon het python-script uit en wanneer het onderdeelbedrag wordt gewijzigd, gaat de machine naar die locatie en haalt het op. Vind de 3D-printbestanden hier en de webpaginabestanden hier.

Aanbevolen: