2020年9月26日土曜日

OpenSCADとUltimaker Curaを使用してGrove温度センサー(Grove Temperature Sensor)のケースを作成する

OpenSCADとUltimaker Curaを使用して、Grove温度センサー(Grove Temperature Sensor)のケースを作成するには以下の手順を実行します。

〇Grove Temperature Sensorのケース/フタ
フタの部分にはGroveコネクタ用の穴とスリットがあります。

〇ケースにGrove Temperature Sensorを収納した状態

作成手順

1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。
・ケース部分のOpenSCADコード
ケース部分のネジ穴のサイズはGROVE_TEMP_SENSOR_HOLE_RADIUSで調整します。
// Grove Temperature Sensor
WALL_MARGIN=0.4;
GROVE_TEMP_SENSOR_W=20;
GROVE_TEMP_SENSOR_D=20+WALL_MARGIN;
GROVE_TEMP_SENSOR_SPACE_RADIUS=2;
GROVE_TEMP_SENSOR_HOLE_RADIUS=1.2; // 1.5
GROVE_TEMP_SENSOR_H=10;

SHELL_THICK=2;

module grove_temp_sensor()
{
    difference()
    {
        union()
        {
            translate([-GROVE_TEMP_SENSOR_SPACE_RADIUS, 0, 0])
            linear_extrude(height=SHELL_THICK){
                square([GROVE_TEMP_SENSOR_W+GROVE_TEMP_SENSOR_SPACE_RADIUS*2, GROVE_TEMP_SENSOR_D]);
            }

            // left wall
            translate([-GROVE_TEMP_SENSOR_SPACE_RADIUS-SHELL_THICK, -SHELL_THICK, 0])
            linear_extrude(height=GROVE_TEMP_SENSOR_H-SHELL_THICK){
                square([SHELL_THICK, GROVE_TEMP_SENSOR_D+SHELL_THICK*2]);
            }

            // right wall
            translate([GROVE_TEMP_SENSOR_W+GROVE_TEMP_SENSOR_SPACE_RADIUS, -SHELL_THICK, 0])
            linear_extrude(height=GROVE_TEMP_SENSOR_H-SHELL_THICK){
                square([SHELL_THICK, GROVE_TEMP_SENSOR_D+SHELL_THICK*2]);
            }

            // top wall
            translate([-GROVE_TEMP_SENSOR_SPACE_RADIUS, GROVE_TEMP_SENSOR_D, 0])
            linear_extrude(height=GROVE_TEMP_SENSOR_H-SHELL_THICK){
                square([GROVE_TEMP_SENSOR_D+GROVE_TEMP_SENSOR_SPACE_RADIUS*2, SHELL_THICK]);
            }

            // bottom wall
            translate([-GROVE_TEMP_SENSOR_SPACE_RADIUS, -SHELL_THICK, 0])
            linear_extrude(height=GROVE_TEMP_SENSOR_H-SHELL_THICK){
                square([GROVE_TEMP_SENSOR_D+GROVE_TEMP_SENSOR_SPACE_RADIUS*2, SHELL_THICK]);
            }

        }
        union(){
            translate([0, GROVE_TEMP_SENSOR_D/2, 0])
            linear_extrude(height=SHELL_THICK){
                circle(GROVE_TEMP_SENSOR_HOLE_RADIUS, $fn=100);
            }
            translate([GROVE_TEMP_SENSOR_W, GROVE_TEMP_SENSOR_D/2, 0])
            linear_extrude(height=SHELL_THICK){
                circle(GROVE_TEMP_SENSOR_HOLE_RADIUS, $fn=100);
            }
        }

    }   


}
grove_temp_sensor();

・フタ部分のOpenSCADコード
スリットの奥行はSLIT_Dで調整できます。
// grove temperature sensor lid

GROVE_TEMP_SENSOR_W=20;
GROVE_TEMP_SENSOR_D=20;
GROVE_TEMP_SENSOR_SPACE_RADIUS=2;
GROVE_TEMP_SENSOR_HOLE_RADIUS=1.5;
GROVE_TEMP_SENSOR_H=10;

SHELL_THICK=2;

CONNECTOR_OFFEST_D=1;
CONNECTOR_OFFSET_W=4;
CONNECTOR_W=12+0.8;
CONNECTOR_D=5+0.8;

SLIT_D=2;


module grove_temp_sensor()
{
    difference()
    {
        union()
        {
            translate([-GROVE_TEMP_SENSOR_SPACE_RADIUS-SHELL_THICK, -SHELL_THICK, 0])
            linear_extrude(height=SHELL_THICK){
                square([GROVE_TEMP_SENSOR_W+GROVE_TEMP_SENSOR_SPACE_RADIUS*2+SHELL_THICK*2, GROVE_TEMP_SENSOR_D+SHELL_THICK*2]);
            }

            translate([-GROVE_TEMP_SENSOR_SPACE_RADIUS, 0, SHELL_THICK])
            linear_extrude(height=SHELL_THICK){
                square([GROVE_TEMP_SENSOR_W+GROVE_TEMP_SENSOR_SPACE_RADIUS*2, GROVE_TEMP_SENSOR_D]);
            }
        }

       translate([CONNECTOR_OFFSET_W, CONNECTOR_OFFEST_D, 0])
       linear_extrude(height=SHELL_THICK*2){
            square([CONNECTOR_W, CONNECTOR_D]);
       }

       translate([0, CONNECTOR_OFFEST_D+CONNECTOR_D+SLIT_D, 0])
       linear_extrude(height=SHELL_THICK*2){
            square([GROVE_TEMP_SENSOR_W, SLIT_D]);
       }
       translate([0, CONNECTOR_OFFEST_D+CONNECTOR_D+SLIT_D*3, 0])
       linear_extrude(height=SHELL_THICK*2){
            square([GROVE_TEMP_SENSOR_W, SLIT_D]);
       }
       translate([0, CONNECTOR_OFFEST_D+CONNECTOR_D+SLIT_D*5, 0])
       linear_extrude(height=SHELL_THICK*2){
            square([GROVE_TEMP_SENSOR_W, SLIT_D]);
       }
    }
}
grove_temp_sensor();

〇OpenSCADの画面(ケース)

〇OpenSCADの画面(フタ)

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

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

関連情報

Groveデバイスまとめ

0 件のコメント:

コメントを投稿