element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Halloween
  • Challenges & Projects
  • More
Halloween
Forum Competition Discussion Thread | Halloween Hackathon 2025
  • News
  • Forum
  • Projects
  • Past Projects
  • More
  • Cancel
  • New
Join Halloween to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 9 replies
  • Subscribers 46 subscribers
  • Views 342 views
  • Users 0 members are here
  • p14-halloween
Related

Competition Discussion Thread | Halloween Hackathon 2025

JoBatcliffe🦇
JoBatcliffe🦇 10 days ago

It's time for the annual element14 Halloween competition!

I thought I'd create a space for general discussion on Halloween projects, your progress, challenges, and successes.

Plus, feel free to discuss any competition details here too. Don't forget the all-important deadline of November 9th. You can also send me a direct message if there is anything you would like to ask.

Happy building and wishing you all a happy Halloween in advance! Jack o lanternBat

  • Sign in to reply
  • Cancel

Top Replies

  • rsc
    rsc 10 days ago +6
    I picked up a new mask to animate and a couple of SEEED round tft XIAO displays for crazy eyes. Moderation Edit : The image of the mask was too spooky and it scared the image moderation. Please do…
  • beacon_dave
    beacon_dave 10 days ago +6
    These projects can quickly get out of hand you know... https://www.instructables.com/LEGO-Skeleton-MegaFig/ Can you imagine the e14 blue dancing robot at that scale ?
  • javagoza
    javagoza 9 days ago in reply to beacon_dave +3
    Here is my attempt to model the e14 blue dancing robot using OpenSCAD. My primary goal with this project was to learn and practice OpenSCAD, rather than to recreate the robot's functionality or exact design…
Parents
  • beacon_dave
    beacon_dave 10 days ago

    These projects can quickly get out of hand you know...

    image

    https://www.instructables.com/LEGO-Skeleton-MegaFig/

    Can you imagine the e14 blue dancing robot at that scale ?  Slight smile

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • Cancel
  • javagoza
    javagoza 9 days ago in reply to beacon_dave

    Here is my attempt to model the e14 blue dancing robot using OpenSCAD. My primary goal with this project was to learn and practice OpenSCAD, rather than to recreate the robot's functionality or exact design.

    image

    This is the OpenSCAD code used to generate the 3D model of the e14 blue dancing robot. The design is broken down into modular components like legs(), head(), and various brackets. Note that my main focus was on learning OpenSCAD syntax and modular design, rather than creating a perfectly functional replica. The final model is compiled via the bluebot() module.

    // Configuración global
    botColor = "blue";
    $fn = 100;
    
    // ====================================================
    // ======================= LEGS =======================
    // ====================================================
    
    // Parámetros del pie
    footLength = 30;
    footHeight = 5;
    footThikness = 1;
    footWidth = 10;
    
    // Puntos de la sección de la pierna
    legPoints = [[0,0],[9,0],[13, 12],[11.5,23],[6.5,23],[5.7,19],[6,12]];
    
    legWidth = 7;
    legThickness = 4 ;
    bottomLegAngle = 60;
    bottomLegLength = 20;
    
    module solidFoot(footLength = 30, footWidth = 10, footHeight = 5) {
        difference() {
            hull() {
                sphere(d = footWidth);
                translate([footLength - footWidth ,0,0]) sphere(d = footWidth);
            };
            translate([-footWidth/2, -footWidth/2 , -footHeight]) cube([footLength , footWidth, footHeight]);
        }
    }
    
    module foot(footLength = 30, footWidth = 10, footHeight = 5) {
        difference() {
            solidFoot(footLength = footLength, footWidth = footWidth, footHeight = footHeight);
            translate([0,0,-0.1]) solidFoot(
                footLength = footLength - 2 * footThikness ,
                footWidth = footWidth - 2 * footThikness,
                footHeight = 5 - 2 * footThikness
            );
        }
    }
    
    module leg() {    
        translate([9,23+2,0]) 
          rotate([0,-90,0]) 
          difference () {
              cylinder(h=6,d=6, center=true);
              union(){
                  translate ([0,0,-2]) cylinder(h=112,d=2, center=true);
                  translate ([0,0,4]) cube([2,2,7],center=true);
              }
          }
    
        union () {
            // face surface
            linear_extrude(2){
                polygon(points = legPoints);
            }
            // border
            linear_extrude(4,center=true){
                
                difference() {
                    
                    polygon(points = legPoints);
                    union() {
                        offset(delta = -2) polygon(points = legPoints);
                        translate([5,20]) square([5,1]);
                    }
                }
                
            }
        
        }
    
        // inner nerves
        translate([7.5,6,0]) rotate([0,0,-8])  cube([6,.5,4], center = true);
        translate([9,17,0]) rotate([0,0,8])  cube([6,.5,4], center = true);
        translate([9,12,0])    cube([6,.5,4], center = true);
    }
    
    module leftLeg() {
        
        translate([0,0,4]) rotate([90,0,0]) leg();
        foot();
    }
    
    module rightLeg() {
        mirror([0,1,0])
        translate([0,0,4]) rotate([90,0,0]) leg();
        foot();
    }
    
    module legs() {
          translate([0,-2.5,1]) rotate([-10,0,0]) leftLeg();
          translate ([0,22,1]) rotate([10,0,0]) rightLeg();
    }
    
    
    // ====================================================
    // ================== FRONT BODY BOX ==================
    // ====================================================
    
    module frontBodyBox(){
        difference() {
            cube([5,20,30]);
            union() {
                translate([2,1,1]) cube([6,18,28]);
                translate([2.5,-5,3]) cube([10,30,15]);
                translate([0,10,13]) rotate([90,90,90]) cylinder(h=10 ,d=2, center=true);
                translate([0.5,10,-1]) rotate([0,90,0]) cylinder(h=5 ,d=3.9, center=true);
                
            }
            
        }
        translate([5,10,32]) rotate([0,0,0]) cylinder(h=6 ,d=3, center=true);
        translate([5,10,35]) sphere(d=5);
        
        rotate([90,90,90]) translate([2.5,3,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        
        rotate([90,90,90]) translate([2.5,17,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        difference() {
            translate([4,10,-1]) rotate([0,90,0]) cylinder(h=2 ,d=4, center=true);
            translate([3,10,-1]) rotate([0,90,0]) cylinder(h=6 ,d=1, center=true);
        }
        
    }
    
    
    module upperShoulderBracket() {
        difference() {
            union(){
                hull(){
                    cube([7,1,1]);
                    translate([4.5, 4.5, 0]) cylinder(h=1,d=4.5);
                }
                translate([4.5,4.5,0]) cylinder(h=3,d=4.5);
            }
            union(){
                translate([5.1,-0.5,-1]) cube([2,2.1,4.5]);
                translate([4.5,4.5,-2]) cylinder(h=6,d=1);
            }
        }
    
    }
    
    module lowerShoulderBracket() {
        difference() {
                hull(){
                    cube([7,1,1]);
                    translate([4.5, 4.5, 0]) cylinder(h=1,d=4.5);
                }
            union(){
                translate([5.1,-0.5,-1]) cube([2,2.1,4.5]);
                translate([4.5,4.5,-2]) cylinder(h=6,d=1);
            }
        }
    }
    
    module elbowBracket() {
        difference() {
                hull(){
                    cube([5,1,1]);
                    translate([0, 4.5, 0]) cylinder(h=1,d=3.5);
                }
            union(){
                translate([0, 4.5, -1]) cylinder(h=6,d=1);
            }
        }
    }
    
    module leftElbowBracket(){
        translate([0,19,20]) elbowBracket();
    }
    module rightElbowBracket(){
        translate([0,1,20]) mirror([0,1,0]) elbowBracket();
    }
    
    module upperLeftShoulderBracket() {
        translate([0,19,29]) upperShoulderBracket();
        translate([0,19,23]) lowerShoulderBracket();
    }
    
    module upperRightShoulderBracket() {
        translate([0,1,29]) mirror([0,1,0])  upperShoulderBracket();
        translate([0,1,23]) mirror([0,1,0]) lowerShoulderBracket();
    }
    
    module bodyFront() {
        union() {
            frontBodyBox();
            upperLeftShoulderBracket();
            upperRightShoulderBracket();
            leftElbowBracket();
            rightElbowBracket();
        }
    }
    
    
    // ====================================================
    // =================== BACK BODY BOX ==================
    // ====================================================
    
    
    module backBodyBox(){
        difference() {
            cube([5,20,30]);
            union() {
                translate([2,1,1]) cube([6,18,28]);
                translate([0.5,10,22]) rotate([0,90,0]) cylinder(h=5 ,d=6, center=true);
                translate([0,10,13]) rotate([90,90,90]) cylinder(h=10 ,d=16, center=true);
                translate([5,10,30]) rotate([0,0,0]) cylinder(h=10 ,d=4, center=true);        
            }
            
        }
        rotate([90,90,90]) translate([2.5,3,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        
        rotate([90,90,90]) translate([2.5,17,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        difference() {
            translate([2.5,10,-1]) rotate([0,90,0]) cylinder(h=5 ,d=4, center=true);
            translate([2.5,10,-1]) rotate([0,90,0]) cylinder(h=6 ,d=1, center=true);
        }
        
    }
    
    
    // ====================================================
    // ======================= HEAD =======================
    // ====================================================
    
    module head() {
        difference(){
            sphere(d=15);
            union() {
                sphere(d=12);
                translate([0,0,-10]) cylinder(h=10, d=8);
            }
        }
        translate([-7.5,0,0]) sphere(d=3);
        hull(){
            translate([-9,-.50,-1]) cube([1,1,1]);
            translate([-8,-.50,-6]) cube([1,1,1]);
            translate([-8,-.5,-10]) rotate ([0,90,0]) cylinder(h=1,d=2);
        }
    }
    
    // ====================================================
    // =================== FRONT DISK =====================
    // ====================================================
    
    module frontDisk() {
        union () { 
            color("white")  cylinder(d=20, h=3, $fn = 100);
            color("white") translate([0,0,-8]) cylinder(d=2, h=8, $fn = 4);
            
            // *******************************************************
            // ** ADVERTENCIA: Se han comentado las líneas de importación de SVG **
            // ** para que el código se compile sin archivos externos. **
            // ** Descomentar si se incluyen los SVG. **
            // *******************************************************
            
            // color("RoyalBlue") translate([25,-8,2.3]) rotate([0,0,90]) linear_extrude(1) scale([.09,.09,.09]) import("svg/element_op.svg", $fn = 100);
            // color("Orange") translate([25,5.5,2.3]) rotate([0,0,90]) linear_extrude(1) scale([.09,.09,.09]) import("svg/14_op.svg", $fn = 100);
            // color("Orange") translate([22,-9.3,2.3]) rotate([0,0,90]) linear_extrude(1) scale([.09,.09,.09]) import("svg/community_op.svg", $fn = 100);
        }
    }
    
    
    // ====================================================
    // ==================== REAR DISK =====================
    // ====================================================
    
    module rearDisk() {
        union () { 
            cylinder(d=10, h=3, $fn = 100);
            translate([0,0,-8]) cylinder(d=2, h=8, $fn = 4);
            
        }
    }
    
    
    // ====================================================
    // =================== LEG LEVER ======================
    // ====================================================
    
    module legLever() {
        hull() {
            cylinder(h=2.5,d=6, $fn = 100);
            translate([25,0,0]) cylinder(h=2.5,d=3, $fn = 100);
        }
        translate([0,0,3.3]) cylinder(h=1.6,d=5, center = true,  $fn = 100);
        translate([0,0,9.1]) cylinder(h=10.1,d=3, center = true,  $fn = 4);
    }
    
    
    // ====================================================
    // ================= FOREARMS/HANDS ===================
    // ====================================================
    
    module hand(){
        difference() {
            sphere(d=8.5);
            cylinder(d=3,h=9,center=true);
        }
    
        
        translate([7,0,1]) cube([9,4.5,2], center=true);
    }
    
    module forearm() {
        cube([8.5,4.5,1.5], center=true);
        translate([4.5,0,-.75])
        union() {
            cube([6,4.5,3], center=true);
            union() {
                translate([3.5,0,0]) difference (){cylinder(d=4.5,h=3,center=true);cylinder(d=1,h=4,center=true);}
    
                translate([7,-1,0])  difference(){ cylinder(d=4.5,h=3,center=true);cylinder(d=1,h=4,center=true);}
            }
        }
    }
    
    
    module leftHand() {
        union(){
            hand();
            translate([7,0,-.5]) forearm();
        }
    }
    
    module rightHand() {
        mirror([0,1,0])leftHand();
    }
    
    // ====================================================
    // ================== ARM LEVER =======================
    // ====================================================
    
    module forearmLever() {
        difference() {
            hull(){
                cylinder(d=4,h=1.5,center=true);
                translate([11,0,0]) cylinder(d=5,h=1.5,center=true);            
            }
            cylinder(d=1,h=2,center=true);
            translate([8,0,0]) hull() {
                cylinder(d=1.5,h=2,center=true);
                translate([2.5,0,0]) cylinder(d=1.5,h=2,center=true);
            }
        }
    }
    
    
    // ====================================================
    // ======================= ARM ========================
    // ====================================================
    
    module arm(){
        difference() {
            hull() {
                cylinder(h=2.1, d=5.5);
                translate([15,0,0]) cylinder(h=2.1, d=5);
            };
            translate([0,0,-.5]) cylinder(h=2, d=1.5);
            translate([15,0,-.5]) cylinder(h=2, d=1);
            translate([-2,-2,.5]) rotate([0,0,45]) cube([8,10,6]);
            translate([.5,0,-.1]) rotate([0,0,45])cube([10,1,1.3]);
        }
    
        translate([-7,-2.6,-1.1]) hull() { 
            cylinder(h=2.1, d=2); 
            translate([-.5,0.1,0]) cylinder(h=2.1, d=3);
        }
    
        translate([-7,0,-1.1])
        difference() {
            hull() {
                translate([0,-2,0]) cylinder(h=2.1, d=2);
                translate([19,0,0]) cylinder(h=2.1, d=5);
            };
    
        }
    }
    module leftArm() {
        mirror([0,1,0]) arm();
    }
    module rightArm() {
        arm();
    }
    
    // ====================================================
    // ====================== ROBOT =======================
    // ====================================================
    
    module bluebot(){
        color("RoyalBlue") {
            translate([10,10,70]) head();
            translate([13.8,20,32]) rotate ([0,0,180]) bodyFront();
            translate([4,0,32])  backBodyBox();
            legs();
            translate([-1,3,29]) rotate([0,-90,180])    legLever();
            
            translate([-1,17,29]) rotate([0,-90,180]) legLever();
            
            translate([36,-8,56.6])  rotate([0,0,180]) rightHand();
            translate([10,-2.8,54]) rotate([0,0,-40])  forearmLever(); 
            
            translate([40,29,56.6])  rotate([0,0,180]) leftHand();  
            translate([13.5,23.5,54]) rotate([0,0,40])  forearmLever();
            
            translate ([10,-3.5,58]) rotate([0,0,-23]) rightArm();
            translate ([10,23,58]) rotate([0,0,23]) leftArm();
            color("yellow") translate([0,10,43]) rotate([0,-90,0]) rearDisk();
        }
        
        translate([15,10,45]) rotate([0,90,0]) 
            frontDisk();
    }
    
    
    bluebot();

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • javagoza
    javagoza 9 days ago in reply to beacon_dave

    Here is my attempt to model the e14 blue dancing robot using OpenSCAD. My primary goal with this project was to learn and practice OpenSCAD, rather than to recreate the robot's functionality or exact design.

    image

    This is the OpenSCAD code used to generate the 3D model of the e14 blue dancing robot. The design is broken down into modular components like legs(), head(), and various brackets. Note that my main focus was on learning OpenSCAD syntax and modular design, rather than creating a perfectly functional replica. The final model is compiled via the bluebot() module.

    // Configuración global
    botColor = "blue";
    $fn = 100;
    
    // ====================================================
    // ======================= LEGS =======================
    // ====================================================
    
    // Parámetros del pie
    footLength = 30;
    footHeight = 5;
    footThikness = 1;
    footWidth = 10;
    
    // Puntos de la sección de la pierna
    legPoints = [[0,0],[9,0],[13, 12],[11.5,23],[6.5,23],[5.7,19],[6,12]];
    
    legWidth = 7;
    legThickness = 4 ;
    bottomLegAngle = 60;
    bottomLegLength = 20;
    
    module solidFoot(footLength = 30, footWidth = 10, footHeight = 5) {
        difference() {
            hull() {
                sphere(d = footWidth);
                translate([footLength - footWidth ,0,0]) sphere(d = footWidth);
            };
            translate([-footWidth/2, -footWidth/2 , -footHeight]) cube([footLength , footWidth, footHeight]);
        }
    }
    
    module foot(footLength = 30, footWidth = 10, footHeight = 5) {
        difference() {
            solidFoot(footLength = footLength, footWidth = footWidth, footHeight = footHeight);
            translate([0,0,-0.1]) solidFoot(
                footLength = footLength - 2 * footThikness ,
                footWidth = footWidth - 2 * footThikness,
                footHeight = 5 - 2 * footThikness
            );
        }
    }
    
    module leg() {    
        translate([9,23+2,0]) 
          rotate([0,-90,0]) 
          difference () {
              cylinder(h=6,d=6, center=true);
              union(){
                  translate ([0,0,-2]) cylinder(h=112,d=2, center=true);
                  translate ([0,0,4]) cube([2,2,7],center=true);
              }
          }
    
        union () {
            // face surface
            linear_extrude(2){
                polygon(points = legPoints);
            }
            // border
            linear_extrude(4,center=true){
                
                difference() {
                    
                    polygon(points = legPoints);
                    union() {
                        offset(delta = -2) polygon(points = legPoints);
                        translate([5,20]) square([5,1]);
                    }
                }
                
            }
        
        }
    
        // inner nerves
        translate([7.5,6,0]) rotate([0,0,-8])  cube([6,.5,4], center = true);
        translate([9,17,0]) rotate([0,0,8])  cube([6,.5,4], center = true);
        translate([9,12,0])    cube([6,.5,4], center = true);
    }
    
    module leftLeg() {
        
        translate([0,0,4]) rotate([90,0,0]) leg();
        foot();
    }
    
    module rightLeg() {
        mirror([0,1,0])
        translate([0,0,4]) rotate([90,0,0]) leg();
        foot();
    }
    
    module legs() {
          translate([0,-2.5,1]) rotate([-10,0,0]) leftLeg();
          translate ([0,22,1]) rotate([10,0,0]) rightLeg();
    }
    
    
    // ====================================================
    // ================== FRONT BODY BOX ==================
    // ====================================================
    
    module frontBodyBox(){
        difference() {
            cube([5,20,30]);
            union() {
                translate([2,1,1]) cube([6,18,28]);
                translate([2.5,-5,3]) cube([10,30,15]);
                translate([0,10,13]) rotate([90,90,90]) cylinder(h=10 ,d=2, center=true);
                translate([0.5,10,-1]) rotate([0,90,0]) cylinder(h=5 ,d=3.9, center=true);
                
            }
            
        }
        translate([5,10,32]) rotate([0,0,0]) cylinder(h=6 ,d=3, center=true);
        translate([5,10,35]) sphere(d=5);
        
        rotate([90,90,90]) translate([2.5,3,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        
        rotate([90,90,90]) translate([2.5,17,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        difference() {
            translate([4,10,-1]) rotate([0,90,0]) cylinder(h=2 ,d=4, center=true);
            translate([3,10,-1]) rotate([0,90,0]) cylinder(h=6 ,d=1, center=true);
        }
        
    }
    
    
    module upperShoulderBracket() {
        difference() {
            union(){
                hull(){
                    cube([7,1,1]);
                    translate([4.5, 4.5, 0]) cylinder(h=1,d=4.5);
                }
                translate([4.5,4.5,0]) cylinder(h=3,d=4.5);
            }
            union(){
                translate([5.1,-0.5,-1]) cube([2,2.1,4.5]);
                translate([4.5,4.5,-2]) cylinder(h=6,d=1);
            }
        }
    
    }
    
    module lowerShoulderBracket() {
        difference() {
                hull(){
                    cube([7,1,1]);
                    translate([4.5, 4.5, 0]) cylinder(h=1,d=4.5);
                }
            union(){
                translate([5.1,-0.5,-1]) cube([2,2.1,4.5]);
                translate([4.5,4.5,-2]) cylinder(h=6,d=1);
            }
        }
    }
    
    module elbowBracket() {
        difference() {
                hull(){
                    cube([5,1,1]);
                    translate([0, 4.5, 0]) cylinder(h=1,d=3.5);
                }
            union(){
                translate([0, 4.5, -1]) cylinder(h=6,d=1);
            }
        }
    }
    
    module leftElbowBracket(){
        translate([0,19,20]) elbowBracket();
    }
    module rightElbowBracket(){
        translate([0,1,20]) mirror([0,1,0]) elbowBracket();
    }
    
    module upperLeftShoulderBracket() {
        translate([0,19,29]) upperShoulderBracket();
        translate([0,19,23]) lowerShoulderBracket();
    }
    
    module upperRightShoulderBracket() {
        translate([0,1,29]) mirror([0,1,0])  upperShoulderBracket();
        translate([0,1,23]) mirror([0,1,0]) lowerShoulderBracket();
    }
    
    module bodyFront() {
        union() {
            frontBodyBox();
            upperLeftShoulderBracket();
            upperRightShoulderBracket();
            leftElbowBracket();
            rightElbowBracket();
        }
    }
    
    
    // ====================================================
    // =================== BACK BODY BOX ==================
    // ====================================================
    
    
    module backBodyBox(){
        difference() {
            cube([5,20,30]);
            union() {
                translate([2,1,1]) cube([6,18,28]);
                translate([0.5,10,22]) rotate([0,90,0]) cylinder(h=5 ,d=6, center=true);
                translate([0,10,13]) rotate([90,90,90]) cylinder(h=10 ,d=16, center=true);
                translate([5,10,30]) rotate([0,0,0]) cylinder(h=10 ,d=4, center=true);        
            }
            
        }
        rotate([90,90,90]) translate([2.5,3,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        
        rotate([90,90,90]) translate([2.5,17,0])
        difference(){
            cylinder(h=1.5,d=8, center=false);
            translate([0,0,-1]) cylinder(h=3,d=1, center=false);
        }
        difference() {
            translate([2.5,10,-1]) rotate([0,90,0]) cylinder(h=5 ,d=4, center=true);
            translate([2.5,10,-1]) rotate([0,90,0]) cylinder(h=6 ,d=1, center=true);
        }
        
    }
    
    
    // ====================================================
    // ======================= HEAD =======================
    // ====================================================
    
    module head() {
        difference(){
            sphere(d=15);
            union() {
                sphere(d=12);
                translate([0,0,-10]) cylinder(h=10, d=8);
            }
        }
        translate([-7.5,0,0]) sphere(d=3);
        hull(){
            translate([-9,-.50,-1]) cube([1,1,1]);
            translate([-8,-.50,-6]) cube([1,1,1]);
            translate([-8,-.5,-10]) rotate ([0,90,0]) cylinder(h=1,d=2);
        }
    }
    
    // ====================================================
    // =================== FRONT DISK =====================
    // ====================================================
    
    module frontDisk() {
        union () { 
            color("white")  cylinder(d=20, h=3, $fn = 100);
            color("white") translate([0,0,-8]) cylinder(d=2, h=8, $fn = 4);
            
            // *******************************************************
            // ** ADVERTENCIA: Se han comentado las líneas de importación de SVG **
            // ** para que el código se compile sin archivos externos. **
            // ** Descomentar si se incluyen los SVG. **
            // *******************************************************
            
            // color("RoyalBlue") translate([25,-8,2.3]) rotate([0,0,90]) linear_extrude(1) scale([.09,.09,.09]) import("svg/element_op.svg", $fn = 100);
            // color("Orange") translate([25,5.5,2.3]) rotate([0,0,90]) linear_extrude(1) scale([.09,.09,.09]) import("svg/14_op.svg", $fn = 100);
            // color("Orange") translate([22,-9.3,2.3]) rotate([0,0,90]) linear_extrude(1) scale([.09,.09,.09]) import("svg/community_op.svg", $fn = 100);
        }
    }
    
    
    // ====================================================
    // ==================== REAR DISK =====================
    // ====================================================
    
    module rearDisk() {
        union () { 
            cylinder(d=10, h=3, $fn = 100);
            translate([0,0,-8]) cylinder(d=2, h=8, $fn = 4);
            
        }
    }
    
    
    // ====================================================
    // =================== LEG LEVER ======================
    // ====================================================
    
    module legLever() {
        hull() {
            cylinder(h=2.5,d=6, $fn = 100);
            translate([25,0,0]) cylinder(h=2.5,d=3, $fn = 100);
        }
        translate([0,0,3.3]) cylinder(h=1.6,d=5, center = true,  $fn = 100);
        translate([0,0,9.1]) cylinder(h=10.1,d=3, center = true,  $fn = 4);
    }
    
    
    // ====================================================
    // ================= FOREARMS/HANDS ===================
    // ====================================================
    
    module hand(){
        difference() {
            sphere(d=8.5);
            cylinder(d=3,h=9,center=true);
        }
    
        
        translate([7,0,1]) cube([9,4.5,2], center=true);
    }
    
    module forearm() {
        cube([8.5,4.5,1.5], center=true);
        translate([4.5,0,-.75])
        union() {
            cube([6,4.5,3], center=true);
            union() {
                translate([3.5,0,0]) difference (){cylinder(d=4.5,h=3,center=true);cylinder(d=1,h=4,center=true);}
    
                translate([7,-1,0])  difference(){ cylinder(d=4.5,h=3,center=true);cylinder(d=1,h=4,center=true);}
            }
        }
    }
    
    
    module leftHand() {
        union(){
            hand();
            translate([7,0,-.5]) forearm();
        }
    }
    
    module rightHand() {
        mirror([0,1,0])leftHand();
    }
    
    // ====================================================
    // ================== ARM LEVER =======================
    // ====================================================
    
    module forearmLever() {
        difference() {
            hull(){
                cylinder(d=4,h=1.5,center=true);
                translate([11,0,0]) cylinder(d=5,h=1.5,center=true);            
            }
            cylinder(d=1,h=2,center=true);
            translate([8,0,0]) hull() {
                cylinder(d=1.5,h=2,center=true);
                translate([2.5,0,0]) cylinder(d=1.5,h=2,center=true);
            }
        }
    }
    
    
    // ====================================================
    // ======================= ARM ========================
    // ====================================================
    
    module arm(){
        difference() {
            hull() {
                cylinder(h=2.1, d=5.5);
                translate([15,0,0]) cylinder(h=2.1, d=5);
            };
            translate([0,0,-.5]) cylinder(h=2, d=1.5);
            translate([15,0,-.5]) cylinder(h=2, d=1);
            translate([-2,-2,.5]) rotate([0,0,45]) cube([8,10,6]);
            translate([.5,0,-.1]) rotate([0,0,45])cube([10,1,1.3]);
        }
    
        translate([-7,-2.6,-1.1]) hull() { 
            cylinder(h=2.1, d=2); 
            translate([-.5,0.1,0]) cylinder(h=2.1, d=3);
        }
    
        translate([-7,0,-1.1])
        difference() {
            hull() {
                translate([0,-2,0]) cylinder(h=2.1, d=2);
                translate([19,0,0]) cylinder(h=2.1, d=5);
            };
    
        }
    }
    module leftArm() {
        mirror([0,1,0]) arm();
    }
    module rightArm() {
        arm();
    }
    
    // ====================================================
    // ====================== ROBOT =======================
    // ====================================================
    
    module bluebot(){
        color("RoyalBlue") {
            translate([10,10,70]) head();
            translate([13.8,20,32]) rotate ([0,0,180]) bodyFront();
            translate([4,0,32])  backBodyBox();
            legs();
            translate([-1,3,29]) rotate([0,-90,180])    legLever();
            
            translate([-1,17,29]) rotate([0,-90,180]) legLever();
            
            translate([36,-8,56.6])  rotate([0,0,180]) rightHand();
            translate([10,-2.8,54]) rotate([0,0,-40])  forearmLever(); 
            
            translate([40,29,56.6])  rotate([0,0,180]) leftHand();  
            translate([13.5,23.5,54]) rotate([0,0,40])  forearmLever();
            
            translate ([10,-3.5,58]) rotate([0,0,-23]) rightArm();
            translate ([10,23,58]) rotate([0,0,23]) leftArm();
            color("yellow") translate([0,10,43]) rotate([0,-90,0]) rearDisk();
        }
        
        translate([15,10,45]) rotate([0,90,0]) 
            frontDisk();
    }
    
    
    bluebot();

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
Children
  • cstanton
    cstanton 9 days ago in reply to javagoza

    Woah, I haven't looked at this in detail, does this include the mechanism inside to move it too?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • javagoza
    javagoza 9 days ago in reply to cstanton

    Not just a solid shell. But I started to give it some movement, even though I didn't finish the script. I'll leave that for the next Spring Clean!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • beacon_dave
    beacon_dave 8 days ago in reply to javagoza

    Looks pretty close to the real figure.

    Did you do a 'dubbie' and perform an autopsy ?

    https://community.element14.com/members-area/personalblogs/b/blog/posts/blue-robot-man-electricfied-part-1

    or were you able to get enough measurements with it still intact ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube