Sommario:

Macchina per la raccolta di pezzi CNC: 9 passaggi (con immagini)
Macchina per la raccolta di pezzi CNC: 9 passaggi (con immagini)

Video: Macchina per la raccolta di pezzi CNC: 9 passaggi (con immagini)

Video: Macchina per la raccolta di pezzi CNC: 9 passaggi (con immagini)
Video: E' POSSIBIE? Tagliare l'allumino con una CNC 3018. Si ma... 2024, Novembre
Anonim
Macchina per la raccolta di pezzi CNC
Macchina per la raccolta di pezzi CNC

Se sei un produttore serio come me, molto probabilmente avrai innumerevoli resistori, condensatori e vari altri componenti elettronici in giro. Ma c'è un grosso problema: come si fa a tenere traccia di cosa o quanti di qualcosa che hanno? Per questo problema ho creato una macchina CNC che ottiene informazioni da un database MySQL che poi va a recuperare l'elemento richiesto. Oltre al back-end del database, ho creato una pagina Web front-end che consente agli utenti di accedere e quindi creare categorie di parti, aggiungere nuove parti e modificare le quantità di parti. In questo modo è possibile contabilizzare ogni singolo articolo, proprio come un sistema di gestione delle scorte.

Componenti:

  • Arduino UNO e Genuino UNO
  • Viti a macchina: 8 mm, 3 mm, 4 mm
  • MOSFET a canale N
  • Diodo raddrizzatore 1N4001
  • Motore passo-passo NEMA 17 x2
  • Driver DRV8825 per motori passo-passo x2
  • Condensatore 100 µF x2
  • DFRobot Servo Pinza
  • Cinghia dentata DFRobot x2
  • DFRobot 5MM Puleggia dentata x2
  • Cuscinetto lineare DFRobot 6mmx12mm x2
  • Cuscinetto a sfere DFRobot 8mmx12mm

Fase 1: Teoria

Image
Image

La base di questo sistema è tenere traccia dell'inventario. Ad esempio, se qualcuno acquista 20 schede Arduino Uno, potrebbe facilmente aggiungere tale importo a una tabella di database. La categoria sarebbe "Arduino", nome di "Uno" e una quantità di 20. Per più persone, il proprietario di quella parte sarebbe il nome utente della persona che l'ha aggiunta. La parte includerebbe anche i dati sulla sua posizione su una griglia. Ogni volta che la quantità della parte cambia, la macchina CNC seleziona quella parte e la dà all'utente.

Passaggio 2: banca dati

Banca dati
Banca dati
Banca dati
Banca dati

Avevo bisogno di un database onnipresente a cui fosse possibile accedere sia da Python che da PHP. Doveva anche essere facile da usare con un sacco di supporto, rendendo MySQL il server di database perfetto. Ho iniziato scaricando il programma di installazione di mysql da https://dev.mysql.com/downloads/windows/installer/ e poi l'ho eseguito. Ho scelto di installare il server (ovviamente) e anche il workbench, la shell e le utilità. Quando scegli un nome utente e una password assicurati di ricordarli, poiché quelle stesse credenziali sono necessarie in tutti i file PHP e nello script Python. Dopo aver avviato il server, abilitalo per l'esecuzione come processo in background in modo che sia sempre attivo. Da qui in poi tutto deve essere scritto e nello stesso identico ordine in cui l'ho scritto io. Quindi, crea un nuovo database (schema) chiamato "componenti". Quindi aggiungere le seguenti tabelle: "categorie", "parti" e "utenti". Nella tabella delle categorie aggiungi le seguenti colonne in questo esatto ordine: "id" -int(11), PK, AI; "nome" -varchar(45); "proprietario" - varchar(45).

Nella tabella delle parti aggiungere le seguenti colonne in questo esatto ordine: "id" -int(11), AI, PK; "categoria" -varchar(45); "nome" -varchar(45); "quantità" -int(11); "proprietario" -varchar(45); "locationX" -int(11); "posizioneY" -int(11);

Nella tabella degli utenti aggiungi le seguenti colonne in questo esatto ordine: "id" -int(11), AI, PK; "nome utente" -varchar(45); "password" -varchar(128);

Passaggio 3: configurazione di Apache

Configurazione di Apache
Configurazione di Apache
Configurazione di Apache
Configurazione di Apache
Configurazione di Apache
Configurazione di Apache

Le pagine web che ho creato utilizzano HTML, CSS, Javascript e PHP. Inizia scaricando l'ultima versione di apache da https://www.apachelounge.com/download/ e decomprimila, spostando la cartella nella directory C:\. Quindi, scarica PHP da https://windows.php.net/download#php-7.2 e assicurati che sia la versione Thread Safe. Decomprimilo, rinominalo in "PHP" e spostalo nella directory C:\. Quindi vai in C:\Apache24\conf\httpd.conf e modificalo. Aggiungi le seguenti righe proprio sotto la sezione:

LoadModule php7_module C:/PHP/php7apache2_4.dll

DirectoryIndex index.html index.php

AddHandler application/x-httpd-php.php

PHPIniDir "C:/PHP"

Quindi testa il tuo server eseguendo httpd.exe che si trova nella cartella bin. Vai su "localhost/" nel tuo browser e verifica se viene visualizzata la pagina Hello World. Se lo fa, evviva, ora hai un server web locale.

Passaggio 4: configurazione di PHP

Configurare PHP
Configurare PHP
Configurare PHP
Configurare PHP

Per configurare MySQL per PHP è necessario fare diverse cose. Innanzitutto, rinomina "php.ini-recommended" in "php.ini" e quindi aprilo nel blocco note. Vai alla sezione delle estensioni e aggiungi o decommenta "extension=php_mysqli.dll" che consentirà a PHP di comunicare con il server MySQL. Ora riavvia httpd.exe e crea un nuovo file chiamato "phptest.php" e inseriscilo nel file. Ora vai su localhost/phptest.php e vedi se vengono visualizzate le informazioni del tuo browser.

Passaggio 5: progettazione della macchina

Progettare la macchina
Progettare la macchina
Progettare la macchina
Progettare la macchina
Progettare la macchina
Progettare la macchina

Ho iniziato creando alcune parti di base in Fusion 360: un'asta da 6 mm, un cuscinetto lineare e un motore passo-passo. Quindi ho allargato due aste per formare l'asse y e ho anche messo una cinghia di distribuzione attorno al motore passo-passo e al cuscinetto. Ho anche aggiunto un asse x. Ho quindi iniziato a stampare in 3D varie parti e ho anche fresato a CNC due pannelli laterali.

Passaggio 6: fare la macchina

Fare la macchina
Fare la macchina
Fare la macchina
Fare la macchina
Fare la macchina
Fare la macchina

Ho finito per passare attraverso più iterazioni di ogni parte, quindi se ce ne sono di diverse ecco perché. Ho iniziato carteggiando ogni parte e poi praticando ogni foro nelle parti stampate in 3D. Quindi ho inserito i cuscinetti lineari nei fori e ho fatto passare le aste da 6 mm attraverso di essi. Ho anche montato i motori passo passo nelle rispettive posizioni dopo aver collegato le pulegge ai loro alberi. La cinghia di distribuzione è stata avvolta attorno a ciascuno dei due lati per entrambi gli assi. Alla fine mi sono reso conto che la pinza sarebbe stata troppo ingombrante, quindi ho optato per un elettromagnete. Ho anche avuto un aiuto durante la costruzione, sotto forma di un gatto.

Passaggio 7: codice Arduino

Codice Arduino
Codice Arduino

La mia base per questa macchina era GRBL. L'inizio del codice elenca vari parametri, come la distanza per rotazione, gli offset e le estensioni. Ho usato la libreria BasicStepperDriver per controllare i driver del motore passo-passo DRV8825. I driver stepper sono impostati per utilizzare 1/32 micro-stepping, aumentando la risoluzione. Ogni volta che la macchina "si avvia" passa attraverso una sequenza di homing in cui ogni asse si sposta fino a quando non raggiunge un finecorsa. Quindi si sposta in base all'offset in una posizione impostata e imposta la posizione su 0, 0. Ora ogni volta che riceve un comando di spostamento tramite seriale si sposta in quella posizione della griglia.

Passaggio 8: programma Python

Ho scelto di utilizzare Flask come server web che avrebbe ricevuto richieste GET dal sito Web principale. Le richieste sono costituite dal nome e dalla categoria della parte. Dopo che Flask lo ha gestito, i dati vengono analizzati, quindi il server MySQL viene interrogato per scoprire la posizione della parte. Quindi lo script Python invia un comando ad Arduino, specificando dove si trova la parte.

Passaggio 9: utilizzo del selettore parti

Utilizzo del selettore parti
Utilizzo del selettore parti
Utilizzo del selettore parti
Utilizzo del selettore parti
Utilizzo del selettore parti
Utilizzo del selettore parti
Utilizzo del selettore parti
Utilizzo del selettore parti

Ho fornito i file del sito Web nel mio repository github: https://github.com/having11/cnc_part_picker_webpages Sostituisci i parametri mancanti nei file PHP per il tuo server MySQL specifico. Metti i file nella cartella htdocs nella cartella Apache. Esegui semplicemente lo script python e ogni volta che l'importo della parte viene modificato, la macchina andrà in quella posizione e lo otterrà. Trova i file di stampa 3D qui e i file della pagina web qui.

Consigliato: