〇ケースにRapberry Pi Zeroとゼロワン リレー回路 拡張基板を収納した状態
作成手順
1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。・ケース部分のOpenSCADコード
// Raspberry Pi Zeroのベースサイズ
PADDING=0.5;
PIZERO_W=65;
PIZERO_D=30+PADDING;
HOLE_OFFSET = 3.5;
// 四隅の穴の半径: ネジの大きさやプリンタの設定により適宜変更してください。
// HOLE_RADIUS = 1.4;
HOLE_RADIUS = 1.45;
// 底の厚さ
BOTTOM_THICK=2;
// 四隅のスペーサーの高さ
SPACER_H=3;
CAMERA_MARGIN=2;
WALL_THICK=2;
WALL_CONNECTOR_H=14;
WALL_CONNECTOR_HL=6;
MINI_HDMI_W=12;
WALL_BETWEEN_MINI_HDMI_AND_USB=10.5;
// USB2つ+Relay
MICRO_USB_X2_W=29.5;
SDCARD_D=12;
module pizero_base()
{
difference(){
union(){
// 底版
translate([0, 0, 0])
linear_extrude(height=BOTTOM_THICK){
square([PIZERO_W+CAMERA_MARGIN, PIZERO_D]);
}
translate([0, 0, BOTTOM_THICK])
linear_extrude(height=SPACER_H){
square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
}
translate([PIZERO_W-HOLE_OFFSET*2, 0, BOTTOM_THICK])
linear_extrude(height=SPACER_H){
square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
}
translate([0, PIZERO_D-HOLE_OFFSET*2, BOTTOM_THICK])
linear_extrude(height=SPACER_H){
square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
}
translate([PIZERO_W-HOLE_OFFSET*2, PIZERO_D-HOLE_OFFSET*2, BOTTOM_THICK])
linear_extrude(height=SPACER_H){
square([HOLE_OFFSET*2, HOLE_OFFSET*2]);
}
}
translate([HOLE_OFFSET, HOLE_OFFSET, 0])
linear_extrude(height=SPACER_H+BOTTOM_THICK){
circle(HOLE_RADIUS, $fn=50);
}
translate([PIZERO_W-HOLE_OFFSET, HOLE_OFFSET, 0])
linear_extrude(height=SPACER_H+BOTTOM_THICK){
circle(HOLE_RADIUS, $fn=50);
}
translate([HOLE_OFFSET, PIZERO_D-HOLE_OFFSET, 0])
linear_extrude(height=SPACER_H+BOTTOM_THICK){
circle(HOLE_RADIUS, $fn=50);
}
translate([PIZERO_W-HOLE_OFFSET, PIZERO_D-HOLE_OFFSET, 0])
linear_extrude(height=SPACER_H+BOTTOM_THICK){
circle(HOLE_RADIUS, $fn=50);
}
}
}
module wall_connector()
{
translate([-WALL_THICK, -WALL_THICK, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([HOLE_OFFSET*2+WALL_THICK, WALL_THICK]);
}
translate([HOLE_OFFSET*2, -WALL_THICK, 0])
linear_extrude(height=WALL_CONNECTOR_HL){
square([MINI_HDMI_W, WALL_THICK]);
}
translate([HOLE_OFFSET*2+MINI_HDMI_W, -WALL_THICK, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_BETWEEN_MINI_HDMI_AND_USB, WALL_THICK]);
}
translate([HOLE_OFFSET*2+MINI_HDMI_W+WALL_BETWEEN_MINI_HDMI_AND_USB, -WALL_THICK, 0])
linear_extrude(height=WALL_CONNECTOR_HL){
square([MICRO_USB_X2_W, WALL_THICK]);
}
// USBコネクタ右の側面
translate([HOLE_OFFSET*2+MINI_HDMI_W+WALL_BETWEEN_MINI_HDMI_AND_USB+MICRO_USB_X2_W, -WALL_THICK, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([HOLE_OFFSET*2+WALL_THICK+CAMERA_MARGIN-PADDING*2, WALL_THICK]);
}
}
module wall_pins()
{
translate([-WALL_THICK, PIZERO_D, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK*2+CAMERA_MARGIN+PIZERO_W, WALL_THICK]);
}
}
module wall_sdcard()
{
translate([-WALL_THICK, 0, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK, PIZERO_D-HOLE_OFFSET*2-SDCARD_D]);
}
translate([-WALL_THICK, PIZERO_D-HOLE_OFFSET*2-SDCARD_D, 0])
linear_extrude(height=WALL_CONNECTOR_HL){
square([WALL_THICK, SDCARD_D]);
}
translate([-WALL_THICK, PIZERO_D-HOLE_OFFSET*2, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK, HOLE_OFFSET*2]);
}
}
module wall_camera()
{
translate([PIZERO_W+CAMERA_MARGIN, 0, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK, PIZERO_D]);
}
}
pizero_base();
wall_connector();
wall_pins();
wall_sdcard();
wall_camera();
〇OpenSCADの画面(ケース)
・フタ部分のOpenSCADコード
// Raspberry Pi Zeroのベースサイズ
PADDING=0.5;
PIZERO_W=65;
PIZERO_D=30+PADDING;
HOLE_OFFSET = 3.5;
// 四隅の穴の半径: ネジの大きさやプリンタの設定により適宜変更してください。
// HOLE_RADIUS = 1.4;
HOLE_RADIUS = 1.45;
// 底の厚さ
BOTTOM_THICK=2;
// 四隅のスペーサーの高さ
SPACER_H=3;
CAMERA_MARGIN=2;
WALL_THICK=2;
//WALL_CONNECTOR_H=14+20;
WALL_CONNECTOR_H=27;
WALL_CONNECTOR_HL=10;
WALL_CONNECTOR_HH=30;
MINI_HDMI_W=12;
WALL_BETWEEN_MINI_HDMI_AND_USB=10.5;
// USB2つ+Relay
MICRO_USB_X2_W=29.5;
SDCARD_D=12;
module pizero_base()
{
// 天版
translate([0, 0, 0])
linear_extrude(height=BOTTOM_THICK){
square([PIZERO_W+CAMERA_MARGIN, PIZERO_D]);
}
}
module wall_connector()
{
translate([-WALL_THICK, PIZERO_D, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([HOLE_OFFSET*2+WALL_THICK, WALL_THICK]);
}
translate([HOLE_OFFSET*2, PIZERO_D, 0])
linear_extrude(height=WALL_CONNECTOR_HH){
square([MINI_HDMI_W, WALL_THICK]);
}
translate([HOLE_OFFSET*2+MINI_HDMI_W, PIZERO_D, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_BETWEEN_MINI_HDMI_AND_USB, WALL_THICK]);
}
translate([HOLE_OFFSET*2+MINI_HDMI_W+WALL_BETWEEN_MINI_HDMI_AND_USB, PIZERO_D, 0])
linear_extrude(height=WALL_CONNECTOR_HL){
square([MICRO_USB_X2_W, WALL_THICK]);
}
// USBコネクタ右の側面
translate([HOLE_OFFSET*2+MINI_HDMI_W+WALL_BETWEEN_MINI_HDMI_AND_USB+MICRO_USB_X2_W-PADDING, PIZERO_D, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([HOLE_OFFSET*2+WALL_THICK+CAMERA_MARGIN-PADDING, WALL_THICK]);
}
}
module wall_pins()
{
translate([-WALL_THICK, -WALL_THICK, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK*2+CAMERA_MARGIN+PIZERO_W, WALL_THICK]);
}
}
module wall_sdcard()
{
translate([-WALL_THICK, 0, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK, HOLE_OFFSET*2]);
}
translate([-WALL_THICK, HOLE_OFFSET*2, 0])
linear_extrude(height=WALL_CONNECTOR_HH){
square([WALL_THICK, SDCARD_D]);
}
translate([-WALL_THICK, HOLE_OFFSET*2+SDCARD_D, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK, PIZERO_D-HOLE_OFFSET*2-SDCARD_D]);
}
}
module wall_camera()
{
translate([PIZERO_W+CAMERA_MARGIN, 0, 0])
linear_extrude(height=WALL_CONNECTOR_H){
square([WALL_THICK, PIZERO_D]);
}
}
pizero_base();
wall_connector();
wall_pins();
wall_sdcard();
wall_camera();
〇OpenSCADの画面(フタ)
2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。
3. 3Dプリンターで印刷します
関連情報
・OpenSCADに関する記事はこちらを参照してください。・ゼロワン リレー回路 拡張基板については、以下のページを参照してください。
https://bit-trade-one.co.jp/product/module/adrszru/
・Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する
0 件のコメント:
コメントを投稿