You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
300 lines
8.0 KiB
300 lines
8.0 KiB
round_quality = 100;
|
|
show_faceplate = true;
|
|
|
|
if(show_faceplate) {
|
|
// Basic structures
|
|
translate([-30,-80,0])
|
|
gimbal_unit_face();
|
|
translate([0,0,0])
|
|
pi_screen();
|
|
translate([100,0,0])
|
|
m5stack();
|
|
translate([95,-80,0])
|
|
gimbal_unit_face();
|
|
|
|
// Spacers
|
|
difference() {
|
|
spacers();
|
|
// Power Switch 1
|
|
translate([20,-80,0])
|
|
cube([11,16,5], center=true);
|
|
// Power Switch 2
|
|
translate([45,-80,0])
|
|
cube([11,16,5], center=true);
|
|
// Screw Holes
|
|
translate([-70,38,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([-70,-38,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([-70,-110,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([70,38,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([70,-38,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([133,-110,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([133,-38,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([133,38,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
translate([33,-110,0])
|
|
cylinder($fn=round_quality, h=5, d=5, center=true);
|
|
}
|
|
|
|
// Ruler
|
|
// translate([30,-48,0])
|
|
// cube([360,2,2], center=true);
|
|
|
|
// Display Decor
|
|
translate([0,0,3])
|
|
difference() {
|
|
cube([130,86,5], center=true);
|
|
cube([121,76,8], center=true);
|
|
}
|
|
|
|
// M5Stack Decor
|
|
translate([100,0,3])
|
|
difference() {
|
|
translate([0,0,0])
|
|
cube([55,55,5], center=true);
|
|
translate([0,0,0])
|
|
cube([50,50,8], center=true);
|
|
}
|
|
|
|
// Pi Screen and M5Stack Links
|
|
translate([0,0,3]) {
|
|
translate([70,0,0])
|
|
cube([10,5,2], center=true);
|
|
translate([70,10,0])
|
|
cube([10,5,2], center=true);
|
|
translate([70,20,0])
|
|
cube([10,5,2], center=true);
|
|
translate([70,-20,0])
|
|
cube([10,5,2], center=true);
|
|
translate([70,-10,0])
|
|
cube([10,5,2], center=true);
|
|
}
|
|
} // End of show_faceplate
|
|
|
|
// Gimbal Decor
|
|
translate([17,-55,-20])
|
|
gimbal_ring();
|
|
translate([143,-55,-20])
|
|
gimbal_ring();
|
|
|
|
|
|
/**
|
|
translate([-125,-8,0])
|
|
gimbal_unit_face();
|
|
translate([125,-8,0])
|
|
gimbal_unit_face();
|
|
translate([0,0,0])
|
|
pi_screen();
|
|
translate([0,-72,0])
|
|
m5stack();
|
|
|
|
// Bridges
|
|
translate([0,0,0])
|
|
face_bridges();
|
|
**/
|
|
|
|
module spacers() {
|
|
translate([-70,0,0])
|
|
cube([10,86,2], center=true);
|
|
translate([68,0,0])
|
|
cube([10,86,2], center=true);
|
|
translate([132,0,0])
|
|
cube([10,86,2], center=true);
|
|
translate([100,35,0])
|
|
cube([55,16,2], center=true);
|
|
translate([100,-35,0])
|
|
cube([55,16,2], center=true);
|
|
translate([31,-44,0])
|
|
cube([212,5,2], center=true);
|
|
translate([30,-80,0])
|
|
cube([60,70,2], center=true);
|
|
translate([-70,-80,0])
|
|
cube([10,70,2], center=true);
|
|
translate([132,-80,0])
|
|
cube([10,70,2], center=true);
|
|
}
|
|
|
|
|
|
module face_bridges() {
|
|
translate([-80,0,0])
|
|
cube([30,86,2], center=true);
|
|
translate([80,0,0])
|
|
cube([30,86,2], center=true);
|
|
translate([0,48,0])
|
|
cube([190,10,2], center=true);
|
|
translate([0,-48,0])
|
|
difference() {
|
|
cube([320,10,2], center=true);
|
|
translate([0,-25,1])
|
|
m5stack_solid();
|
|
}
|
|
}
|
|
|
|
|
|
module m5stack_solid() {
|
|
cube([55,55,10], center=true);
|
|
}
|
|
|
|
|
|
module m5stack() {
|
|
difference() {
|
|
translate([0,0,0])
|
|
cube([55,55,2], center=true);
|
|
translate([0,0,0])
|
|
cube([50,50,3], center=true);
|
|
}
|
|
}
|
|
|
|
|
|
// 121mm x 76mm (hole)
|
|
module pi_screen() {
|
|
difference() {
|
|
translate([0,0,0])
|
|
cube([130,86,2], center=true);
|
|
translate([0,0,0])
|
|
cube([121,76,3], center=true);
|
|
}
|
|
}
|
|
|
|
|
|
module gimbal_unit_face() {
|
|
translate([0,0,0]) {
|
|
// Top
|
|
difference() {
|
|
translate([0,0,0])
|
|
rotate([0,0,0])
|
|
cube([70,70,2], center=true);
|
|
|
|
// Frsky M9 Gimbal
|
|
translate([0,0,0])
|
|
rotate([0,0,0])
|
|
cylinder($fn=round_quality, h=5,d=49, center=true);
|
|
|
|
// Frsky M9 Screen Top Left
|
|
translate([-27.25,27.25,0])
|
|
rotate([0,0,0])
|
|
cylinder($fn=round_quality, h=5,d=5.6, center=true);
|
|
|
|
// Frsky M9 Screen Top Right
|
|
translate([27.25,27.25,0])
|
|
rotate([0,0,0])
|
|
cylinder($fn=round_quality, h=5,d=5.6, center=true);
|
|
|
|
// Frsky M9 Screen Bottom Left
|
|
translate([-27.25,-27.25,0])
|
|
rotate([0,0,0])
|
|
cylinder($fn=round_quality, h=5,d=5.6, center=true);
|
|
|
|
// Frsky M9 Screen Bottom Right
|
|
translate([27.25,-27.25,0])
|
|
rotate([0,0,0])
|
|
cylinder($fn=round_quality, h=5,d=5.6, center=true);
|
|
/*
|
|
translate([0,0,0])
|
|
rotate([0,0,0])
|
|
cube([77,51,4], center=true);
|
|
*/
|
|
}
|
|
}
|
|
|
|
// Just a ruler
|
|
/***
|
|
translate([-13.9,-44.4])
|
|
cube([100,10,10], center=true);
|
|
***/
|
|
|
|
}
|
|
|
|
|
|
module gimbal_ring_full() {
|
|
translate([-47,-25,23.5])
|
|
cylinder(h=5, d=64.5, center=true, $fn=round_quality);
|
|
|
|
translate([-71,-49,23.5])
|
|
rotate([0,0,45])
|
|
difference() {
|
|
cube([15,10,5], center=true);
|
|
|
|
translate([-9,0,2])
|
|
rotate([0,-15,0])
|
|
cube([25,15,5], center=true);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=10, d=3.5, center=true, $fn=round_quality);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=3, d=5.6, center=true, $fn=round_quality);
|
|
}
|
|
|
|
translate([-23,-49,23.5])
|
|
mirror([-1,0,0]) {
|
|
rotate([0,0,45])
|
|
difference() {
|
|
cube([15,10,5], center=true);
|
|
|
|
translate([-9,0,2])
|
|
rotate([0,-15,0])
|
|
cube([25,15,5], center=true);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=10, d=3.5, center=true, $fn=round_quality);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=3, d=5.6, center=true, $fn=round_quality);
|
|
}
|
|
}
|
|
|
|
translate([-71,-0.8,23.5])
|
|
mirror([0,-1,0]) {
|
|
rotate([0,0,45])
|
|
difference() {
|
|
cube([15,10,5], center=true);
|
|
|
|
translate([-9,0,2])
|
|
rotate([0,-15,0])
|
|
cube([25,15,5], center=true);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=10, d=3.5, center=true, $fn=round_quality);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=3, d=5.6, center=true, $fn=round_quality);
|
|
}
|
|
}
|
|
|
|
translate([-22.5,-0.5,23.5])
|
|
mirror([-1,-1,0]) {
|
|
rotate([0,0,45])
|
|
difference() {
|
|
cube([15,10,5], center=true);
|
|
|
|
translate([-9,0,2])
|
|
rotate([0,-15,0])
|
|
cube([25,15,5], center=true);
|
|
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=10, d=3.5, center=true, $fn=round_quality);
|
|
|
|
translate([-4,0,0])
|
|
cylinder(h=3, d=5.6, center=true, $fn=round_quality);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
module gimbal_ring() {
|
|
difference() {
|
|
gimbal_ring_full();
|
|
|
|
translate([-47,-25,23.5])
|
|
cylinder(h=6, d1=47.5, d2=57.5, center=true, $fn=round_quality);
|
|
}
|
|
}
|
|
|