2021年8月14日土曜日

OpenSCADとUltimaker Curaを使用して、Raspberry Pi PicoをLEGOブロック上に固定できるマウンタを作成する

OpenSCADとUltimaker Curaを使用して、Raspberry Pi PicoをLEGOブロック上に固定できるマウンタを作成するには以下の手順を実行します。

〇Raspberry Pi PicoをLEGOブロック上に固定できるマウンタの写真1
マウンタとRaspberry Pi PicoはM2のネジで固定しています。

〇Raspberry Pi PicoをLEGOブロック上に固定できるマウンタの写真2
Raspberry Pi Picoを固定していない状態です。

作成手順

1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。
3Dプリンタの種類や設定によって、LEG_HOLE_DIAMETERで穴の半径のパラメータを微調整してください。

// Raspberry Pi Picoのベースサイズ
PICO_W=51;
PICO_D=22;

// Raspberry Pi Picoを支える足の部分
LEG_HEIGHT=4;
LEG_DISTANCE=8.2;
LEG_SIZE=4;
LEG_HOLE_DIAMETER=1.5+0.5;

// Raspberry Pi Pico固定用足のオフセット
LEG_OFFSET_W=1;
LEG_OFFSET_D=0.8;

// プレートの厚さ
PLATE_THICK=2;

// LEGOの1ブロック
LEGO_SQUARE=7.95;
// LEGOの側面の厚さ
LEGO_WALL=1.5;
// 突起の直径
LEGO_PEG=4.8;
LEGO_PEG_R=LEGO_PEG/2;
LEGO_PEG_H=2.8;
// LEGOの底面の円の直径
LEGO_BOTTOM_CIRCLE=6.4;

// プレートのサイズ(ブロック単位)
NUM_HOLE_W=7;
NUM_HOLE_D=3;

module pico_mounter_lego()
{
    // ベースプレート
    translate([0, 0, 0])
    linear_extrude(height=PLATE_THICK){
        square([LEGO_SQUARE*NUM_HOLE_W, LEGO_SQUARE*NUM_HOLE_D]);
    }

    //壁
    translate([0, 0, -LEGO_PEG_H])
    linear_extrude(height=LEGO_PEG_H){
        square([LEGO_SQUARE*NUM_HOLE_W, LEGO_WALL]);
    }

    translate([0, LEGO_SQUARE*NUM_HOLE_D-LEGO_WALL, -LEGO_PEG_H])
    linear_extrude(height=LEGO_PEG_H){
        square([LEGO_SQUARE*NUM_HOLE_W, LEGO_WALL]);
    }

    translate([0, 0, -LEGO_PEG_H])
    linear_extrude(height=LEGO_PEG_H){
        square([LEGO_WALL, LEGO_SQUARE*NUM_HOLE_D]);
    }

    translate([LEGO_SQUARE*NUM_HOLE_W-LEGO_WALL, 0, -LEGO_PEG_H])
    linear_extrude(height=LEGO_PEG_H){
        square([LEGO_WALL, LEGO_SQUARE*NUM_HOLE_D]);
    }


    for( lw = [0 : NUM_HOLE_W-2] ){
        for( ld = [0 : NUM_HOLE_D-2] ){
            translate([LEGO_SQUARE*(lw+1), LEGO_SQUARE*(ld+1), -LEGO_PEG_H])
            linear_extrude(height=LEGO_PEG_H){
                circle(LEGO_BOTTOM_CIRCLE/2, $fn=50);
            }
        }
    }
}

module pico_mounter()
{
    difference(){
        union(){
            // 底面
            translate([0, 0, 0])
            linear_extrude(height=PLATE_THICK){
                square([PICO_W, PICO_D]);
            }

            translate([LEG_OFFSET_W, PICO_D/2-LEG_DISTANCE/2-LEG_SIZE, PLATE_THICK])
            linear_extrude(height=LEG_HEIGHT){
                square([LEG_SIZE, LEG_SIZE]);
            }
            translate([LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2, PLATE_THICK])
            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, PLATE_THICK])
            linear_extrude(height=LEG_HEIGHT){
                square([LEG_SIZE, LEG_SIZE]);
            }
            translate([PICO_W-LEG_SIZE+LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2, PLATE_THICK])
            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, 0])
            linear_extrude(height=LEG_HEIGHT+PLATE_THICK){
                circle(LEG_HOLE_DIAMETER/2, $fn=50);
            }
            translate([LEG_SIZE/2+LEG_OFFSET_W, PICO_D/2+LEG_DISTANCE/2+LEG_SIZE/2, 0])
            linear_extrude(height=LEG_HEIGHT+PLATE_THICK){
                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, 0])
            linear_extrude(height=LEG_HEIGHT+PLATE_THICK){
                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, 0])
            linear_extrude(height=LEG_HEIGHT+PLATE_THICK){
                circle(LEG_HOLE_DIAMETER/2, $fn=50);
            }
        }
    }
}

pico_mounter_lego();
translate([LEG_OFFSET_W, LEG_OFFSET_D, 0])
pico_mounter();

・OpenSCADの画面

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

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

関連情報

OpenSCADまとめ

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

0 件のコメント:

コメントを投稿