2021年6月8日火曜日

OpenSCADとUltimaker Curaを使用してRaspberry Pi Picoのケースを作成する

OpenSCADとUltimaker Curaを使用して、Raspberry Pi Picoのケースを作成するには以下の手順を実行します。

〇Raspberry Pi Picoのケース/フタ

作成手順

1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。
・ケース部分のOpenSCADコード
// Raspberry Pi Picoのベースサイズ
PICO_W=52;
PICO_D=22;

PICO_PIN_D=4;
PICO_PIN_H=9;

HOLE_SPACE_W = 2;
HOLE_SPACE_D = 4;

WALL_THICK=2;

WALL_H=16;

MICROUSB_D=9;

BOARD_THICK=1;

LEG_HEIGHT=1;
LEG_DISTANCE=8;
LEG_SIZE=3;
LEG_HOLE_DIAMETER=1.5+0.5;
LEG_OFFSET_W=1;

module pico_base()
{
    difference(){
        union(){
            // 底面
            translate([0, HOLE_SPACE_D, 0])
            linear_extrude(height=PICO_PIN_H){
                square([PICO_W, PICO_D-HOLE_SPACE_D*2]);
            }

            translate([LEG_OFFSET_W, PICO_D/2-LEG_DISTANCE/2-LEG_SIZE, PICO_PIN_H])
            linear_extrude(height=LEG_HEIGHT){
                square([LEG_SIZE, LEG_SIZE]);
            }
            translate([LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2, PICO_PIN_H])
            linear_extrude(height=LEG_HEIGHT){
                square([LEG_SIZE, LEG_SIZE]);
            }    
            translate([PICO_W-LEG_SIZE-LEG_OFFSET_W, PICO_D/2-LEG_DISTANCE/2-LEG_SIZE, PICO_PIN_H])
            linear_extrude(height=LEG_HEIGHT){
                square([LEG_SIZE, LEG_SIZE]);
            }
            translate([PICO_W-LEG_SIZE-LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2, PICO_PIN_H])
            linear_extrude(height=LEG_HEIGHT){
                square([LEG_SIZE, LEG_SIZE]);
            }
        }
        union(){
            translate([LEG_SIZE/2+LEG_OFFSET_W, PICO_D/2-LEG_DISTANCE/2-LEG_SIZE/2, LEG_HEIGHT])
            linear_extrude(height=PICO_PIN_H){
                circle(LEG_HOLE_DIAMETER/2, $fn=50);
            }
            translate([LEG_SIZE/2+LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2+LEG_SIZE/2, LEG_HEIGHT])
            linear_extrude(height=PICO_PIN_H){
                circle(LEG_HOLE_DIAMETER/2, $fn=50);
            }
            translate([PICO_W-LEG_SIZE/2-LEG_OFFSET_W, PICO_D/2-LEG_DISTANCE/2-LEG_SIZE/2, LEG_HEIGHT])
            linear_extrude(height=PICO_PIN_H){
                circle(LEG_HOLE_DIAMETER/2, $fn=50);
            }
            translate([PICO_W-LEG_SIZE/2-LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2+LEG_SIZE/2, LEG_HEIGHT])
            linear_extrude(height=PICO_PIN_H){
                circle(LEG_HOLE_DIAMETER/2, $fn=50);
            }
        }
    }
}

module pico_wall()
{
    // microusb
    translate([-WALL_THICK, -WALL_THICK, 0])
    linear_extrude(height=WALL_H){
        square([WALL_THICK, (PICO_D-MICROUSB_D)/2+WALL_THICK]);
    }
    translate([-WALL_THICK, (PICO_D-MICROUSB_D)/2, 0])
    linear_extrude(height=PICO_PIN_H+BOARD_THICK){
        square([WALL_THICK, MICROUSB_D]);
    }
    translate([-WALL_THICK, (PICO_D-MICROUSB_D)/2+MICROUSB_D, 0])
    linear_extrude(height=WALL_H){
        square([WALL_THICK, (PICO_D-MICROUSB_D)/2+WALL_THICK]);
    }

    translate([0, -WALL_THICK, 0])
    linear_extrude(height=WALL_H){
        square([PICO_W, WALL_THICK]);
    }

    translate([0, PICO_D, 0])
    linear_extrude(height=WALL_H){
        square([PICO_W, WALL_THICK]);
    }

    translate([PICO_W, -WALL_THICK, 0])
    linear_extrude(height=WALL_H){
        square([WALL_THICK, PICO_D+WALL_THICK*2]);
    }

}

pico_base();
pico_wall();

・フタ部分のOpenSCADコード
// Raspberry Pi Picoのベースサイズ
PICO_W=52;
PICO_D=22;

WALL_THICK=2;
WALL_H=2;

module nano_lid()
{
    translate([-WALL_THICK, -WALL_THICK, 0])
    linear_extrude(height=WALL_H){
        square([PICO_W+WALL_THICK*2, PICO_D+WALL_THICK*2]);
    }

    translate([0, 0, WALL_H])
    linear_extrude(height=WALL_H){
        square([PICO_W, PICO_D]);
    }

}

nano_lid();

〇OpenSCADの画面(ケース)

〇OpenSCADの画面(フタ)

2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。

3. 3Dプリンターで印刷します

関連情報

・そのほかの3Dプリンターを活用した記事は以下を参照してください。
OpenSCADまとめ

0 件のコメント:

コメントを投稿