2021年8月12日木曜日

OpenSCADとUltimaker Curaを使用して、0.96インチ有機ELディスプレイのケースを作成する

OpenSCADとUltimaker Curaを使用して、秋月電子さんの0.96インチ128x64ドット有機ELディスプレイのケースを作成するには以下の手順を実行します。

0.96インチ 128×64ドット有機ELディスプレイ(OLED) 青
https://akizukidenshi.com/catalog/g/gP-15870/

〇OLEDディスプレイにケース・フタをはめた状態(前面)の写真

〇OLEDディスプレイにケース・フタをはめた状態(背面)の写真

〇ケース・OLEDディスプレイ・フタの写真

作成手順

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

・OLEDディスプレイのケースのSCADソースコード
// ケースのサイズ
OLED_CASE_W=30;
OLED_CASE_D=30.6;
OLED_CASE_H=8;
CASE_MARGIN=0.6;
// 壁の厚さ
WALL_THICK=2;
// OLEDの厚さ
OLED_THICK=1.5;
// OLEDの高さ
OLED_W=25.4;
// OLEDの奥行き
OLED_D=13.4;
// スペーサーのサイズ
SPACER_SIZE=4;
// スペーサーの突起
SPACER_PEG_RADIUS=0.8;
SPACER_PEG_H=2;

difference()
{
    union(){
        translate([0, 0, 0])
        linear_extrude(height=WALL_THICK){
            square([OLED_CASE_W, OLED_CASE_D]);
        }
        // スペーサ1
        translate([WALL_THICK+CASE_MARGIN/2, WALL_THICK+CASE_MARGIN/2, WALL_THICK])
        linear_extrude(height=OLED_THICK){
            square([SPACER_SIZE, SPACER_SIZE]);
        }
        translate([WALL_THICK+CASE_MARGIN/2+SPACER_SIZE/2, WALL_THICK+CASE_MARGIN/2+SPACER_SIZE/2, WALL_THICK+OLED_THICK])
        linear_extrude(height=SPACER_PEG_H){
            circle(SPACER_PEG_RADIUS, $fn=50);
        }

        // スペーサ2
        translate([OLED_CASE_W-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2, WALL_THICK+CASE_MARGIN/2, WALL_THICK])
        linear_extrude(height=OLED_THICK){
            square([SPACER_SIZE, SPACER_SIZE]);
        }
        translate([OLED_CASE_W-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2+SPACER_SIZE/2, WALL_THICK+CASE_MARGIN/2+SPACER_SIZE/2, WALL_THICK+OLED_THICK])
        linear_extrude(height=SPACER_PEG_H){
            circle(SPACER_PEG_RADIUS, $fn=50);
        }

        // スペーサ3
        translate([WALL_THICK+CASE_MARGIN/2, OLED_CASE_D-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2, WALL_THICK])
        linear_extrude(height=OLED_THICK){
            square([SPACER_SIZE, SPACER_SIZE]);
        }
        translate([WALL_THICK+CASE_MARGIN/2+SPACER_SIZE/2, OLED_CASE_D-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2+SPACER_SIZE/2, WALL_THICK+OLED_THICK])
        linear_extrude(height=SPACER_PEG_H){
            circle(SPACER_PEG_RADIUS, $fn=50);
        }

        // スペーサ4
        translate([OLED_CASE_W-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2, OLED_CASE_D-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2, WALL_THICK])
        linear_extrude(height=OLED_THICK){
            square([SPACER_SIZE, SPACER_SIZE]);
        }
        translate([OLED_CASE_W-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2+SPACER_SIZE/2, OLED_CASE_D-WALL_THICK-SPACER_SIZE-CASE_MARGIN/2+SPACER_SIZE/2, WALL_THICK+OLED_THICK])
        linear_extrude(height=SPACER_PEG_H){
            circle(SPACER_PEG_RADIUS, $fn=50);
        }

        // 壁
        translate([0, 0, 0])
        linear_extrude(height=OLED_CASE_H){
            square([OLED_CASE_W, WALL_THICK]);
        }
        translate([0, OLED_CASE_D-WALL_THICK, 0])
        linear_extrude(height=OLED_CASE_H){
            square([OLED_CASE_W, WALL_THICK]);
        }
        translate([0, 0, 0])
        linear_extrude(height=OLED_CASE_H){
            square([WALL_THICK, OLED_CASE_D]);
        }
        translate([OLED_CASE_W-WALL_THICK, 0, 0])
        linear_extrude(height=OLED_CASE_H){
            square([WALL_THICK, OLED_CASE_D]);
        }

    }
    union(){
        // 液晶部分の穴
        translate([WALL_THICK+CASE_MARGIN/2, WALL_THICK+SPACER_SIZE+CASE_MARGIN/2, 0])
        linear_extrude(height=WALL_THICK){
            square([OLED_W, OLED_D]);
        }
    }
}

・OpenSCADの画面(ケース)

・OLEDディスプレイのフタのSCADソースコード
// ケースのサイズ
OLED_CASE_W=30;
OLED_CASE_D=30.6;
CASE_MARGIN=0.6;
// 壁の厚さ
WALL_THICK=2;

// 端子の幅と高さ
TERMINAL_W=11;
TERMINAL_D=3;


difference()
{
    union(){
        translate([0, 0, 0])
        linear_extrude(height=WALL_THICK){
            square([OLED_CASE_W, OLED_CASE_D]);
        }
        translate([WALL_THICK, WALL_THICK, WALL_THICK])
        linear_extrude(height=WALL_THICK){
            square([OLED_CASE_W-WALL_THICK*2, OLED_CASE_D-WALL_THICK*2]);
        }

    }
    union(){
        // 端子部分の穴
        translate([OLED_CASE_W/2-TERMINAL_W/2, WALL_THICK, 0])
        linear_extrude(height=WALL_THICK*2){
            square([TERMINAL_W, TERMINAL_D]);
        }
    }
}

・OpenSCADの画面(フタ)

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

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

4. 各部品をはめ込みます。

関連情報

OpenSCADまとめ

0 件のコメント:

コメントを投稿