2021年7月30日金曜日

OpenSCADとUltimaker Curaを使用して、サーボモーターSG90-HVのギヤとLEGOのシャフトを接続するジョイントを作る

OpenSCADとUltimaker Curaを使用して、サーボモーターSG90-HVのギヤとLEGOのシャフトを接続するジョイントを作るには以下の手順を実行します。

〇作成したジョイントの写真

作成手順

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

・サーボモーターSG90-HVのギヤとLEGOのシャフトを接続するジョイントのOpenSCADコード
// LEGOのシャフトのサイズ
SHAFT_MARGIN=0.2;
LEGO_SHAFT_THICK=1.8+SHAFT_MARGIN;
LEGO_SHAFT_SIZE=4.7+SHAFT_MARGIN;
LEGO_SHAFT_HEIGHT=5;

// SG90のギアのサイズ
SMALL_RADIUS=4.90/2;
LARGE_RADIUS=5.05/2;
NUM_POINTS=21;
GEAR_HEIGHT=3;
ANGLE = 360/NUM_POINTS/2;

// ジョイントの直径
JOINT_DIAMETER=8;

difference(){
    translate([0, 0, 0])
    linear_extrude(height=LEGO_SHAFT_HEIGHT+GEAR_HEIGHT){
        circle(JOINT_DIAMETER/2, $fn=50);
    }
    union()
    {
        translate([-LEGO_SHAFT_SIZE/2, -LEGO_SHAFT_THICK/2, 0])
        linear_extrude(height=LEGO_SHAFT_HEIGHT){
                square([LEGO_SHAFT_SIZE, LEGO_SHAFT_THICK]);
        }
        translate([-LEGO_SHAFT_THICK/2, -LEGO_SHAFT_SIZE/2, 0])
        linear_extrude(height=LEGO_SHAFT_HEIGHT){
                square([LEGO_SHAFT_THICK, LEGO_SHAFT_SIZE]);
        }

        translate([0, 0, LEGO_SHAFT_HEIGHT])
        linear_extrude(height=GEAR_HEIGHT){
            for( pt = [0 : NUM_POINTS-1]) {
                l_px = cos(pt*ANGLE*2)*LARGE_RADIUS;
                l_py = sin(pt*ANGLE*2)*LARGE_RADIUS;
                s_px = cos(pt*ANGLE*2+ANGLE)*SMALL_RADIUS;
                s_py = sin(pt*ANGLE*2+ANGLE)*SMALL_RADIUS;
                l_px2 = cos(pt*ANGLE*2+ANGLE*2)*LARGE_RADIUS;
                l_py2 = sin(pt*ANGLE*2+ANGLE*2)*LARGE_RADIUS;
                polygon(points=[[0, 0], [l_px, l_py], [s_px, s_py], [l_px2,  l_py2]], paths  = [[0, 1, 2, 3]]);
            }
        }
    }
}

・OpenSCADの画面

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

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

関連情報

OpenSCADまとめ

・LEGOに関する他の記事は、こちらを参照してください。

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

OpenSCADとUltimaker Curaを使用して、LEGO互換の凹みがついたサーボモーター固定台を作る

0 件のコメント:

コメントを投稿