〇Grove Sound Sensorのケース/フタ
フタの部分にはGroveコネクタ用の穴と音センサー用の穴があります。ケースは温度センサーとサイズが同じなので流用します。

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

作成手順
1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。・ケース部分のOpenSCADコード
ケースは温度センサーのコードを使用します。
// 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コード
音センサー用の穴の直径はSOUND_SENSOR_DIAMETERで調整できます。
// grove sound sensor lid
GROVE_SOUND_SENSOR_W=20;
GROVE_SOUND_SENSOR_D=20;
GROVE_SOUND_SENSOR_SPACE_RADIUS=2;
GROVE_SOUND_SENSOR_HOLE_RADIUS=1.5;
GROVE_SOUND_SENSOR_H=10;
SHELL_THICK=2;
CONNECTOR_OFFEST_D=1;
CONNECTOR_OFFSET_W=4;
CONNECTOR_W=12+0.8;
CONNECTOR_D=5+1; // 0.8
SOUND_SENSOR_OFFSET_W=4;
SOUND_SENSOR_OFFSET_D=1;
SOUND_SENSOR_DIAMETER=11;
module grove_sound_sensor_case()
{
difference()
{
union()
{
translate([-GROVE_SOUND_SENSOR_SPACE_RADIUS-SHELL_THICK, -SHELL_THICK, 0])
linear_extrude(height=SHELL_THICK){
square([GROVE_SOUND_SENSOR_W+GROVE_SOUND_SENSOR_SPACE_RADIUS*2+SHELL_THICK*2, GROVE_SOUND_SENSOR_D+SHELL_THICK*2]);
}
translate([-GROVE_SOUND_SENSOR_SPACE_RADIUS, 0, SHELL_THICK])
linear_extrude(height=SHELL_THICK){
square([GROVE_SOUND_SENSOR_W+GROVE_SOUND_SENSOR_SPACE_RADIUS*2, GROVE_SOUND_SENSOR_D]);
}
}
translate([CONNECTOR_OFFSET_W, CONNECTOR_OFFEST_D, 0])
linear_extrude(height=SHELL_THICK*2){
square([CONNECTOR_W, CONNECTOR_D]);
}
translate([GROVE_SOUND_SENSOR_W-SOUND_SENSOR_OFFSET_W, GROVE_SOUND_SENSOR_D-SOUND_SENSOR_OFFSET_D-SOUND_SENSOR_DIAMETER/2, 0])
linear_extrude(height=SHELL_THICK*2){
circle(SOUND_SENSOR_DIAMETER/2, $fn=100);
}
}
}
grove_sound_sensor_case();
〇OpenSCADの画面(フタ)

2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。
3. 3Dプリンターで印刷します
関連情報
・Groveデバイスまとめ・そのほかの3Dプリンターを活用した記事は以下を参照してください。
OpenSCADまとめ
0 件のコメント:
コメントを投稿