MKR1000 sizes è più un tool che un articolo dedicato alla neonata genuino mkr1000 che ho scritto dopo aver cercato le dimensioni della board per realizzare case e supporti in cui alloggiare la scheda.
Negli ultimi mesi ho iniziato a progettare in 3D e stampare dei case in cui alloggiare la mkr1000 e mi sono accorto che ogni volta mi ritrovavo con il calibro in mano a ricavare le misure della board e dei fori in cui alloggiare le viti di fissaggio.
Ho quindi deciso di partire dagli schemi che trovi sul sito www.arduino.cc e di ricavarmi una volta per tutte le dimensioni di cui necessiti per progettare il tuo case personalizzato.
Come puoi ricavare le mkr1000 sizes
Grazie agli strumenti presenti in EAGLE CAD puoi tracciare tutte le quite della scheda che ti occorrono, come puoi vedere nell’immagine di apertura.
in particolare, le dimensioni che più spesso possono servirti sono quelle relative ai fori superiori:
e quelle relative ai fori inferiori:
in cui vedi anche le dimensioni relative all’antenna wifi che sporge, come sai, in questa scheda.
Realizzazione di un supporto per la mkr1000 sizes
Note le misure della scheda non è stato difficile disegnare una riproduzione, molto rudimentale, in openScad:
usando dei semplici comandi.
Ecco il programma che ho realizzato per disegnare la MKR1000 ed il supporto di cui avevo necessità:
mkrX = 25; mkrY = 61.5; mkrZ = 1.5; wifiX = 15; wifi_overhanging =3.5; margin=5; depth = .6; hole=2; hole_dist=1.25 ; fullX = (mkrX+margin); fullY = (mkrY+margin); difference() { union() { cube([fullX,fullY,depth]); translate([hole_dist+(hole/2),(margin/2)+hole_dist+(hole/2),depth+1]) cylinder(r=(hole/2)+1,h=3*depth,center=true,$fn=96); translate([mkrX-(hole_dist+(hole/2)),(margin/2)+hole_dist+(hole/2),depth+1]) cylinder(r=(hole/2)+1,h=3*depth,center=true,$fn=96); translate([hole_dist+(hole/2),(fullY-(margin/2))-(hole_dist+(hole/2)),depth+1]) cylinder(r=(hole/2)+1,h=3*depth,center=true,$fn=96); translate([mkrX-(hole_dist+(hole/2)),(fullY-(margin/2))-(hole_dist+(hole/2)),depth+1]) cylinder(r=(hole/2)+1,h=3*depth,center=true,$fn=96); } union() { translate([hole_dist+(hole/2),(margin/2)+hole_dist+(hole/2),0]) cylinder(r=hole/2,h=9*depth,center=true,$fn=96); translate([mkrX-(hole_dist+(hole/2)),(margin/2)+hole_dist+(hole/2),0]) cylinder(r=hole/2,h=9*depth,center=true,$fn=96); translate([hole_dist+(hole/2),(fullY-(margin/2))-(hole_dist+(hole/2)),0]) cylinder(r=hole/2,h=9*depth,center=true,$fn=96); translate([mkrX-(hole_dist+(hole/2)),(fullY-(margin/2))-(hole_dist+(hole/2)),0]) cylinder(r=hole/2,h=9*depth,center=true,$fn=96); } } // MKR1000 //translate([0,(margin/2),3]) MKR1000(); module MKR1000() { color("blue") { difference() { cube([mkrX,mkrY,mkrZ]); translate([hole_dist+(hole/2),hole_dist+(hole/2),.5]) cylinder(r=(hole/2),h=3*mkrZ,center=true,$fn=96); translate([mkrX-(hole_dist+(hole/2)),hole_dist+(hole/2),.5]) cylinder(r=(hole/2),h=3*mkrZ,center=true,$fn=96); translate([hole_dist+(hole/2),mkrY-(hole_dist+(hole/2)),.5]) cylinder(r=(hole/2),h=3*mkrZ,center=true,$fn=96); translate([mkrX-(hole_dist+(hole/2)),mkrY-(hole_dist+(hole/2)),.5]) cylinder(r=(hole/2),h=3*mkrZ,center=true,$fn=96); } translate([(mkrX/2)-(wifiX/2),-wifi_overhanging,0]) cube([wifiX,5,mkrZ]); } }
anche se non si tratta di uno sketch, come sei abituato a leggere in questo blog, voglio cogliere l’occasione per descrivere come sono arrivato alla realizzazione del disegno 3D partendo dalle MKR1000 sizes.
Le prime 12 linee sono i parametri della scheda che in questo modo puoi variare per adattare il programma ad una scheda differente od in futuro se dovessero nascere delle altre schede similari.
Linee 01-03: rappresentano la dimensione X,Y e Z della scheda. Ossia la larghezza, l’altezza della mkr1000 sizes e lo spessore della basetta per quanto riguarda la Z;
linea 07: è la dimensione dei margini oltre la scheda che ti serve per realizzare un supporto di dimensioni superiori a quello della scheda stessa, i grafici la chiamano abbondanza;
linea 08: lo spessore della basetta di supporto, nel mio esempio mi basta di 0.6 mm;
linee 09-10: stabilisci rispettivamente la dimensione dei fori e la loro distanza dal bordo della scheda;
linee 11-12: ho sommato alla dimensione della mkr1000 sizes quella del margine da osservare in modo da avere questo valore calcolato sempre disponibile nel corso del programma e non doverlo ricalcolare ogni volta;
linee 14-36: rappresentano il disegno vero e proprio del supporto che, come vedrai nelle immagini seguenti, ho deciso di far sporgere da un solo lato, essendo un supporto e non un case quello disegnato;
linea 39: richiama il modulo, definito in seguito, che disegna la board vera e propria ( ATTENZIONE: nell’esempio è commentato, devi rimuovere i commenti “//” per vedere il rendering della MKR1000;
linee 40-56: imposta il modulo “MKR1000” che disegna la scheda partendo dal corpo della scheda e sottraendo da essa i cilindri per realizzare i fori. Aggiunge infine il cubo per identificare l’antenna che sporge;
Il risultato del rendering del solo modulo MKR1000 è il seguente:
a cui se aggiungi il supporto ed in seguito commenti il rendering della scheda otterrai qualcosa di simile:
non ti resta che esportare il file STL, openScad te lo permette facilmente, e stampare il risultato.
Buona realizzazione del tuo case MKR1000 sizes con openScad.