2021年8月12日木曜日

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

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

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

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

作成手順

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

// Raspberry Pi Zeroのベースサイズ
PIZERO_W=65;
PIZERO_D=30;
PIZERO_H=9;

// オフセット
OFFSET_W=3.2;
OFFSET_D=1;

// 四隅のスペーサーの高さ
SPACER_H=5;

// スペーサーのサイズの半分
HOLE_OFFSET = 3.5;

// 四隅の穴の半径: ネジの大きさやプリンタの設定により適宜変更してください。
//HOLE_RADIUS = 1.4;
HOLE_RADIUS = 1.38;

// プレートの厚さ
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=1.8+1;
// LEGOの底面の円の直径
LEGO_BOTTOM_CIRCLE=6.4;

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


module pi0_mounter_lego()
{
    difference(){
        union(){
            // スペーサー
            translate([OFFSET_W, OFFSET_D, PLATE_THICK])
            linear_extrude(height=SPACER_H){
                square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
            }
            translate([OFFSET_W+PIZERO_W-HOLE_OFFSET*2, OFFSET_D, PLATE_THICK])
            linear_extrude(height=SPACER_H){
                square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
            }
            translate([OFFSET_W, OFFSET_D+PIZERO_D-HOLE_OFFSET*2, PLATE_THICK])
            linear_extrude(height=SPACER_H){
                square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
            }
            translate([OFFSET_W+PIZERO_W-HOLE_OFFSET*2, OFFSET_D+PIZERO_D-HOLE_OFFSET*2, PLATE_THICK])
            linear_extrude(height=SPACER_H){
                square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
            }

            // 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);
                    }
                }
            }

        }
        // スペーサーの穴
        translate([OFFSET_W+HOLE_OFFSET, OFFSET_D+HOLE_OFFSET, 0])
        linear_extrude(height=SPACER_H+PLATE_THICK){
            circle(HOLE_RADIUS, $fn=50);
        }
        translate([OFFSET_W+PIZERO_W-HOLE_OFFSET, OFFSET_D+HOLE_OFFSET, 0])
        linear_extrude(height=SPACER_H+PLATE_THICK){
            circle(HOLE_RADIUS, $fn=50);
        }
        translate([OFFSET_W+HOLE_OFFSET, OFFSET_D+PIZERO_D-HOLE_OFFSET, 0])
        linear_extrude(height=SPACER_H+PLATE_THICK){
            circle(HOLE_RADIUS, $fn=50);
        }
        translate([OFFSET_W+PIZERO_W-HOLE_OFFSET, OFFSET_D+PIZERO_D-HOLE_OFFSET, 0])
        linear_extrude(height=SPACER_H+PLATE_THICK){
            circle(HOLE_RADIUS, $fn=50);
        }

    }
}

pi0_mounter_lego();

・OpenSCADの画面

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

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

関連情報

OpenSCADまとめ

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

OpenSCADとUltimaker Curaを使用して、LEGOブロック上に固定できるLEDキューブを作成する

0 件のコメント:

コメントを投稿