Sommario:
- Fase 1: Teoria
- Passaggio 2: banca dati
- Passaggio 3: configurazione di Apache
- Passaggio 4: configurazione di PHP
- Passaggio 5: progettazione della macchina
- Passaggio 6: fare la macchina
- Passaggio 7: codice Arduino
- Passaggio 8: programma Python
- Passaggio 9: utilizzo del selettore parti
Video: Macchina per la raccolta di pezzi CNC: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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
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
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
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
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
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
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
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:
Pezzi degli scacchi di parole pronunciate: 7 passaggi (con immagini)
Pezzi degli scacchi con parole pronunciate: ho realizzato alcuni pezzi degli scacchi molto personali usando la mia voce. Ogni pezzo si basa sulla forma del suono che ho prodotto mentre ne pronunciavo il nome. Non è un set completo, poiché l'altro lato dovrebbe essere fatto allo stesso modo, ma con la voce del mio avversario
Raccolta di componenti elettronici: 9 passaggi (con immagini)
Raccolta di componenti elettronici: con la scomparsa di negozi come Radio Shack, sta diventando difficile trovare semplici componenti elettronici. Il web, in particolare eBay, è stato di grande aiuto, ma la spedizione può diventare costosa. L'elettronica di consumo, come videoregistratori e forni a microonde, può essere una fonte
DRO basato su Arduino per macchina CNC GRBL: 3 passaggi (con immagini)
DRO basato su Arduino per GRBL CNC Machine: ho iniziato questo progetto con un unico obiettivo in mente. Volevo un modo semplice, ma efficace per visualizzare le informazioni sulla mia macchina CNC, stando in piedi davanti alla macchina CNC, piuttosto che allungare il collo in posizioni quasi contorsioniste e strizzare gli occhi come un
Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: 13 passaggi (con immagini)
Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: Introduzione: questo è un progetto che utilizza una scheda Arduino, un sensore (DHT11), un computer Windows e un programma di elaborazione (scaricabile gratuitamente) per visualizzare i dati di temperatura e umidità in formato digitale e grafico a barre, visualizzare l'ora e la data ed eseguire un conteggio del tempo
Centro di raccolta dati sensore abilitato per IoT con ESP8266 e PubNub: 9 passaggi (con immagini)
Centro di raccolta dati del sensore abilitato per IoT con ESP8266 e PubNub: la maggior parte dei tutorial su ESP8266 è a livello di principiante (lampeggio remoto di un led) o troppo complessa per qualcuno che sta cercando qualcosa da migliorare e aggiornare sulle sue abilità di lampeggiamento del led. istruibile mira a colmare questa lacuna per creare