Macchina pick&place

Questa macchina PnP è progettata per essere precisa (guide lineari) ed economica (piccole parti stampate in 3D, telaio in legno) e l’uso di feeder motorizzati stretti di un nuovo concetto: un servo -> due feeder -> alimentazione automatica. Poiché la macchina ha 4 motori (X, Y, Z, rotazione dell’ugello) sto praticamente utilizzando una scheda di controllo pensata per le stampanti 3D. L’uscita destinata all’ugello riscaldato (nozzle) comanderà invece la pompa del vuoto per prelevare i componenti SMD dai nastri. I feeder saranno montati sul lato destro, e la fotocamera sull’angolo in basso a destra.

Queste sono le mie note su ciò che ho fatto e su ciò che ho intenzione di fare, poiché la costruzione della macchina è in corso.

  • Software sul PC: OpenPnp
  • Scheda di controllo: MKS-GEN-L + A4988
  • Software sulla scheda di controllo: Marlin 2
  • Fotocamera superiore: microscopio USB Andonstar ZN528600
  • Fotocamera inferiore: webcam USB.

 

 

Elenco materiale

  • 3x 500 mm estrusi in alluminio 20×40 mm.
  • 3x guida lineare 500 mm MGN12 e una guida 100 mm MGN9 per l’ugello up-down.
  • Motori passo-passo: Nema 17 (X e Z), Nema 23 (Y), Nema 8 (ugello)
  • Cinghia dentata GT2 (in rotolo da 5 m)
  • Dadi a T M3 e M4.
  • Viti M3 di varie lunghezze (6-8-10-12 mm), alcune viti M4 e M6. Quattro viti M2x8 mm per il
  • motore Nema8.
  • Uggello 504 Juki.
  • Albero da 8 mm, con due pulegge piccole e una grande.
  • Puleggia piccola da 4 mm + 3 pulegge a rotazione libera da 4 mm.
  • Catena portacavi 2×1 cm

 

Testa

La testa porta un ugello e un microscopio USB di Andonstar. Il microscopio ha i LED stessi, quindi non c’è bisogno di altri. Non userò feeder a trascinamento (drag feeder, prick), quindi non c’è solenoide e prick sulla testa. Il drag feeder non funziona bene con nastri di plastica sottili, perché quando l’ago si muove e colpisce il nastro, i piccoli componenti come Led 0805 salteranno fuori dal nastro.

L’ugello viene spinto verso il basso dal motore passo-passo e tirato su da una molla. Ciò consente di spingere manualmente verso il basso l’ugello, estremamente utile ad esempio per configurare le posizioni di prelievo.

In linea di principio potresti mettere un secondo ugello, ma ho deciso di tenere le cose semplici per cominciare. Un ugello 504 Juki può sorprendentemente raccogliere parti piuttosto grandi come pulsanti SMD e chip 12×12 mm.

Alimentatori (feeder)

Voglio un feeder stretto e semplice. L’idea è quella di utilizzare un unico servomotore SG9 per azionare due nastri con un sistema “a cane”. La connessione a OpenPnP funziona utilizzando una seconda porta USB sul PC e un Arduino che riceverà i comandi seriali da OpenPnP e attiverà i meccanismi degli alimentatori. Userò un pin per due nastri di componenti .

In alternativa al comando dei feeder da OpenPnP, il sistema di feed potrebbe essere completamente autonomo. La testa di prelievo potrebbe premere il pulsante del feeder, il quale fa avanzare il nastro dopo che il componente é stato prelevato.

Il metodo del drag feeder secondo me è un problema, in quanto è inaffidabile su nastri di plastica sottili che trasportano piccoli componenti (che saltano fuori posto quando l’ago colpisce il nastro). I nastri contenenti piccole parti che potrebbero non gradire le vibrazioni, potrebbero essere realizzati con un motore che tira il nastro. Il nastro di plastica sottile non è possibile spingerlo, deve essere tirato.

Il nastro di copertura verrà tirato indietro usando dei pesi, forse.

 

Sistema di coordinate

La nostra origine degli assi è l’angolo in basso a sinistra.

  • X va a destra.
  • Y va via da te.
  • Z sale.

Connessioni alla scheda principale

Quello che conta per noi sono i connettori dei motori, dei finecorsa (endstops), dell’alimentazione (power in) e la porta USB.

Installa i piccoli PCB dei driver dei motori passo-passo. Ho usato A4988 e ho lasciato inserito tutti i ponticelli per avere 1/16 di microstepping.

 

 

Primo motore avviato da comandi seriali in codice G

Collegare il motore X e un finecorsa (al connettore X-) alla scheda principale. Il connettore del finecorsa sulla scheda madre ha 3 pin, V G S, che sta per Voltaggio, Massa, Segnale. È necessario collegare un contatto NC tra Massa e Segnale.

M119 X testerà la posizione dei finecorsa.

Apri Arduino IDE, scarica Marlin 2, imposta la scheda di destinazione su Arduino Mega 2560, esegui il flashing del firmware (ci vorrà molto tempo per compilarlo). Apri il monitor seriale. Quando la scheda si avvia dovresti vedere la configurazione della scheda.

Abilita i motori con M17 (la linea EN va bassa).

Invia G0 X10 F100 per spostare il motore X di 10 mm con velocitá di avanzamento 100. Se funziona, possiamo passare a OpenPnP.

In caso contrario, controlla le connessioni del motore (avevo un connettore JST cablato diverso dal driver passo-passo), controlla la linea Step con l’oscilloscopio.

Se il motore gira al contrario, scambiare due fili di un avvolgimento sfliando le spine dal connettore JST.

Primi movimenti da OpenPnP

Come funziona OpenPnp? sostanzialmente invia comandi G-code alla scheda madre. Le regole che definiscono quali codici G inviare si chiamano “il driver” e possono essere facilmente personalizzate.

Ad esempio, in Configurazione macchina -> driver -> driver Gcode->Gcode->Impostazioni->COMANDO HOME ho

G28 ; Home all axis“, ma aggiungerò prima di questa riga un comando per impostare i passi/mm al valore corretto “M92 X80 Y80 Z80

Marlin: https://marlinfw.org/docs/gcode/M092.html

Setup OpenPnp https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration

Finecorsa e azzeramento assi (homing)

Per iniziare è sufficiente un interruttore nella direzione di marcia negativa (vedi il sistema di coordinate OpenPnp), poiché la direzione positiva può utilizzare un finecorsa software. OpenPnP dovrà all’inizio eseguire l’home della macchina (spostare tutti gli assi fino al finecorsa negativo).

Per testare lo stato dei finecorsa tramite il monitor seriale scrivere il comando M119. (https://marlinfw.org/docs/gcode/M119.html )

G28 X per far tornare la macchina sull’asse X.

Prima di dare il comando è molto importante che il motore giri nella direzione corretta e che il finecorsa funzioni. Altrimenti la meccanica andrá a sbattere. Ti suggerisco di tenere la mano vicino all’interruttore di spegnimento se qualcosa dovesse andare storto.

G28 Y per l’home dell’asse Y.

 

 

Per ora é tutto.

Potrebbe interessarti: