Strumenti Utente

Strumenti Sito


riservata:project_work_3a

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
riservata:project_work_3a [2025/03/17 07:49] – [Robot 2 DOF] adminriservata:project_work_3a [2026/05/21 09:11] (versione attuale) – [Cablaggio] admin
Linea 11: Linea 11:
  
 E' un progetto ben documentato di jjrobots con software e modelli 3D disponibili da [[https://www.thingiverse.com/thing:4917505|qui]]. E' un progetto ben documentato di jjrobots con software e modelli 3D disponibili da [[https://www.thingiverse.com/thing:4917505|qui]].
 +
 +{{vimeo>1066599025}}
 +
  
 Mi piace perché: Mi piace perché:
Linea 16: Linea 19:
   * è abbastanza facile stampare le parti 3D   * è abbastanza facile stampare le parti 3D
   * abbiamo già a scuola i motori e i driver   * abbiamo già a scuola i motori e i driver
-  *  + 
-Pensato come robot a 2 assi per orientare un puntatore laser può montare anche altri payload (webcam, "pistole", ecc.). La BOM è abbastanza ridotta:+Pensato come robot a 2 assi per orientare un puntatore laser può montare anche altri payload (webcam, "pistole", ecc.).  
 + 
 +==== BOM ==== 
 + 
 +La BOM è abbastanza ridotta:
  
 ^ descrizione ^ numero ^ disponibile ^ prototipo ^  ^ descrizione ^ numero ^ disponibile ^ prototipo ^ 
-| pezzi 3D stampati | 11 | manca solo il supporto payload che va creato su misura modellare supporto lego dart shooter |+| pezzi 3D stampati | 11 | manca solo il supporto payload che va creato su misura | <del>modellare supporto lego dart shooter</del> |
 | stepper nema17 | 2 | sì | da L03 | | stepper nema17 | 2 | sì | da L03 |
 | driver stepper | 2 | sì | a4988 da L03? | | driver stepper | 2 | sì | a4988 da L03? |
-| cavi motore | 2 | | come collegarli al driver? |+| cavi motore | 2 | venduti col motore | come collegarli al driver? |
 | puleggia GT2 20 denti | 2 | da kit amazon | | puleggia GT2 20 denti | 2 | da kit amazon |
 | cuscinetti 6002RS or 6002ZZ | 2 | 5€ da cesena cuscinetti | | cuscinetti 6002RS or 6002ZZ | 2 | 5€ da cesena cuscinetti |
-| fascette 100x5mm | 10 | sì | |+| fascette 100x5mm | 10 | sì | nessuna |
 | cinghia 200mm 200 GT2 | 3 | da acquistare | da kit amazon | | cinghia 200mm 200 GT2 | 3 | da acquistare | da kit amazon |
-| fascetta avvolgi-cavo | 1 | opzionale | +| fascetta avvolgi-cavo | 1 | opzionale | nessuna 
-| ventose/piedini (rubber suction pad) | 3 | da acquistare | piedini da L51 | +| ventose/piedini (rubber suction pad) | 3 | da acquistare | piedini da L51 o si fa senza 
-| arduino zero | 1 | usare ESP32? | +| arduino zero | 1 | usare ESP32? | arduino uno 
-| alimentatore 12V | 1 | sì |  |+| alimentatore 12V | 1 | sì |  da laboratorio |
 | viti M3 6mm | 6 | ? | 8mm e 3-4 6mm da lab51 |  | viti M3 6mm | 6 | ? | 8mm e 3-4 6mm da lab51 | 
 | viti M3 10mm | 14 | da magazzino Comandini P09 | | viti M3 10mm | 14 | da magazzino Comandini P09 |
 | viti M3 15mm | 10 | da lab51 | | viti M3 15mm | 10 | da lab51 |
 | viti M3 45mm | 4 | ? | 40mm da lab51 | | viti M3 45mm | 4 | ? | 40mm da lab51 |
-dati M3 | 6 | ? | da lab51 |+dadi M3 | 6 | ? | da lab51 |
  
 Ho preso [[https://www.amazon.it/dp/B09QCRDDBV|questo kit]] da amazon con due pulegge 20 denti (foro 5mm), due 60 denti e due cinghie (larghezza 6mm) lunghezza 200mm GT2. I cuscinetti li ho presi da cesena cuscinetti (i più economici 5€). Ho preso [[https://www.amazon.it/dp/B09QCRDDBV|questo kit]] da amazon con due pulegge 20 denti (foro 5mm), due 60 denti e due cinghie (larghezza 6mm) lunghezza 200mm GT2. I cuscinetti li ho presi da cesena cuscinetti (i più economici 5€).
 +
 +==== Assemblaggio ====
 +
 +L'assemblaggio è mostrato passo per passo con delle immagini nel sito del progetto. Per non sbagliare è molto utile [[https://www.thingiverse.com/thing:4917505/files|scaricare da thingiverse]] il file ''.STEP'' che contiene l'intero assemblaggio. Aprendolo con FreeCAD si possono evidenziare le singole parti e l'insieme. Quando è possibile è sempre meglio usare i file STEP, infatti:
 +  * FreeCAD è molto più veloce nella loro gestione
 +  * il file STL tratta il pezzo come un'unica superficie mentre il file STEP mette in evidenza le varie facce e i bordi e permette di modificare facilmente la parte
 +NB: in entrambi i casi non è possibile risalire alle azioni con cui è stata creato il pezzo.
  
 L'assemblaggio pone questi problemi: L'assemblaggio pone questi problemi:
   * viti 6mm: ne ho poche, dove posso uso quelle da 8mm trovate nel lab51   * viti 6mm: ne ho poche, dove posso uso quelle da 8mm trovate nel lab51
-  * capnon è chiaro da che verso si monti, seguo quello della foto anche se sembra strano +  * il verso in cui montare il pezzo //cap// non è chiaro dalle foto ma si vede dal file STEP 
-  * motore: i NEMA17 di L03 sono compatibili con le misure di quelli indicati nel progetto ma poi non si riesce a fissarli con le viti da 40mm +  * i motori NEMA17 di L03 come misure sono compatibili con quelli indicati nel progetto ma poi non si riesce a fissarli con le viti da 40mm come descritto nelle istruzioni di montaggio 
-  * upper arm motor holder left: quello stampato non permette di montare il motore (la lunghezza delle viti da 40mm non è sufficiente e innestare il filetto del motore) e non si riesce a fissare upper arm motor right su upper right (i fori sono 2mm prima)+  * //upper arm motor holder left//: quello stampato non permette di montare il motore (la lunghezza delle viti da 40mm non è sufficiente e innestare il filetto del motore) e non si riesce a fissare //upper arm motor right// su //upper right// (i fori sono 2mm prima)
   * seguendo le istruzioni di montaggio se si fissa prima il secondo motore poi non si riesce a montare la cinghia; l'ho fatto e ho spezzato il perno del cuscinetto in un pezzo   * seguendo le istruzioni di montaggio se si fissa prima il secondo motore poi non si riesce a montare la cinghia; l'ho fatto e ho spezzato il perno del cuscinetto in un pezzo
-  * anche la base non è adatta al nostro NEMA17 e le viti da 40mm non arrivano ad impegnare il filetto. Bisognerebbe rifare il pezzo ma ho preferito scavare i fori con una punta da 5mm guadagnando i 2-3mm che mancavano+  * anche la base non è adatta al nostro NEMA17 e le viti da 40mm non arrivano ad impegnare il filetto; bisognerebbe rifare il pezzo ma ho preferito scavare i fori con una punta da 5mm guadagnando i 2-3mm che mancavano
  
-Rifacci il pezzo upper arm motor holder left ma lo traslo in basso di 2,7mm tagliando di fatto la parte che finisce sotto il piatto. Di fatto lo accorcio di quasi 3mm sperando che si adattino sia le viti che i fori dell'altro motor holder.+Rifaccio il pezzo //upper arm motor holder left// ma lo traslo in basso di 2,7mm tagliando di fatto la parte che finisce sotto il piatto. Di fatto lo accorcio di quasi 3mm sperando che si adattino sia le viti che i fori dell'altro //motor holder//.
  
-===== Software =====+==== Cablaggio ==== 
 + 
 + 
 + 
 +Il motore è collegato alla breadboard in questo modo: 
 + 
 +{{:stepper-breadboard-cable2.jpg?400|strip to breadboard}} 
 + 
 + 
 +In generale tutto il cablaggio è estremamente fragile e sarebbe opportuno progettare un PCB con driver, morsetti per l'alimentazione, header per i cavi dei motori. Anche un supporto stampato in PLA per alloggiare il tutto non sarebbe male. 
 + 
 +Per il collegamento dei due motori stepper seguire [[https://lastminuteengineers.com/a4988-stepper-motor-driver-arduino-tutorial/|questo tutorial]] (riportato anche nella pagina [[:stepper]]). In particolare la piedinatura è questa: 
 + 
 +{{:riservata:piedinatura_a4988.png|}} 
 + 
 +==== Problemi ==== 
 + 
 + 
 +Altri problemi: 
 +  * la comunicazione seriale va disattivata altrimenti il pilotaggio del motore non funziona correttamente 
 +  * pensavo di alimentare la scheda Arduino a 12V e utilizzare il piedino Vin per portare i 12V al driver ma non si può fare, probabilmente perché il driver disturba gli ingressi analogici e il motore si muove anche senza agire sul joystick (aggiungere condensatori di bypass?) 
 +  * serve un'alimentazione separata per Arduino (e quindi ingressi analogici): il test con alimentazione Arduino da USB e driver con alimentatore separato dà buoni risultati (fa ancora piccoli movimenti anche senza agire sul joystick ma sembra risolvibile magari anche solo via software) 
 + 
 + 
 + 
 + 
 +==== Software ====
  
 <code c> <code c>
-// basato sugli esempi di AccelStepper (multiple steppers e proportional)+// basato sugli esempi della libreria AccelStepper (multiple steppers e proportional)
 // joystick analogico comanda la velocità ma c'è una posizione limite che non viene superata // joystick analogico comanda la velocità ma c'è una posizione limite che non viene superata
 // il pulsante del joystick abilita/disabilita il driver (LED13 acceso se abilitato) // il pulsante del joystick abilita/disabilita il driver (LED13 acceso se abilitato)
-// il pulsante è gestito con un interrupt sul fronte di discesa il rimbalzo è gestito  +// il pulsante è gestito con un interrupt sul fronte di discesa 
-// trascurando commutazioni che si ripetono prima di 200ms +// il rimbalzo del pulsante è gestito trascurando commutazioni che si ripetono prima di 200ms 
-// rapporti di riduzione altezza 64:20 (3,2), rotazione 80:20 (4) +// rapporti di riduzione sono: 64:20 per l'altezza 80:20 per la rotazione  
-// 200 passi/giro diventano 640 e 800 passi/giro per altezza e rotazione +// 200 passi/giro diventano 640 passi/giro per altezza e 800 passi/giro per la rotazione 
-// NB il driver disturba molto l'ingresso analogico -> servono alimentazioni separate  +// NB il driver disturba molto l'ingresso analogico -> SERVONO ALIMENTAZIONI SEPARATE 
-// NB la seriale disturba il pilotaggio del motore, se attivata non gira correttamente!+// NB la seriale disturba il pilotaggio del motore -> DISATTIVARE LA SERIALE
  
-// libreria per gestire i motori stepper con driver A4988+// libreria per gestire i motori stepper con due driver A4988
 #include <AccelStepper.h> #include <AccelStepper.h>
  
Linea 74: Linea 114:
 int pinPulsante = 2; int pinPulsante = 2;
 int pinEnable = 7; int pinEnable = 7;
 +
 +// segnali analogici: X su A0 e Y su A1
  
 // variabili aggiornate dall'interrupt service routine (ISR) // variabili aggiornate dall'interrupt service routine (ISR)
riservata/project_work_3a.1742197767.txt.gz · Ultima modifica: da admin