スクラッチ&スクラップ

簡単なプログラミングや電子工作など。しょうもない工作の記録。

ガーバーのファイル名をまとめて変える

KiCadから出力したガーバーを

Elecrow とか FusionPCB に送るためにファイル名を変えるとき、1個ずつファイル名を変えてませんか?

f:id:macrochelys99:20190603215353g:plain

batで自動化している人もいるようですが

Windows標準の機能でまとめて変えることができます。

一番上のファイルを選択し、

f:id:macrochelys99:20190603215601p:plain

Shift を押しながら一番下のファイルを選択。

このとき Ctrl + A でまとめて選択するとうまくいきません。 f:id:macrochelys99:20190603215739p:plain

F2キーを押し

f:id:macrochelys99:20190603215849p:plain

揃えたいファイル名を入力

f:id:macrochelys99:20190603215927p:plain

そのまま Enter すると、

拡張子より前は全部同じファイル名になりました。
f:id:macrochelys99:20190603220012p:plain

ファイルを選択するときに Ctrl + A で選択すると

F2キーでファイル名を変更しようとしたとき、一番上のファイルを変更する状態になります。すると、そこは既に変更後に設定したいファイル名なので、あらためて同じファイル名を入力しても何も変更されません。もとのファイル名と違う名前にすればまとめて変更されます。

まとめ

ドリルと基板外形の拡張子変更は、2個だけなので手動で変更しましょう......

ミニマルな自作キーボード

自作キーボードが流行って2年ぐらい経つでしょうか。私もちょっとだけ、かじってみようと思います。

f:id:macrochelys99:20190529034811j:plain

きっかけ

ある知人のノートPCがカンマとピリオドがキー入力を受け付けなくなり、ショップに修理を頼んだら見積もりが2万越えだったようです。

安いデスクトップ用のキーボードつないでしのぐことにしたようですが、実際に使っているところを見るとかなり邪魔そうです。

そうだ、効かなくなったカンマとピリオドだけのキーボードなら邪魔にならないかも。

回路図

f:id:macrochelys99:20190528234723p:plain

ProMicroにスイッチをキー入力用2個リセット用1個つけただけです。キーボード用ではなく手元にあった汎用のタクトスイッチを使いました。

スイッチマトリックスではないのでダイオードは要らないし、プルアップ抵抗もINPUT_PULLUPで内部プルアップさせ部品点数は思ったより少ない。

12セグメント基板で余ったフルカラーLED の WS2812B も4個付けてあります。

基板アートワーク

A面
f:id:macrochelys99:20190529001316p:plain

B面
f:id:macrochelys99:20190529001350p:plain

今回使うスイッチは裏側にガイドボスの出っ張りがあるのですが、KiCad に初期導入されている12mmのタクトスイッチのフットプリントはガイドボスが入る孔がありません。

f:id:macrochelys99:20190529002328p:plain
https://www.alps.com/prod/info/J/HTML/Tact/SnapIn/SKHC/SKHCBJA010.html


そのまま使うと残念なことに。というか、KiCad でフットプリントの3D 表示させたらまさにそういう状態に配置されてて笑う。
f:id:macrochelys99:20190529002853p:plain

海外メーカーの安いスイッチはガイドボスが無い物もあるのでそれを使うのも有りですが、パネルを取り付けるので位置をしっかり出したかったのと、試しに買ってみたらパッチンパッチン安っぽいクリック音がうるさかったのでやめました。


ガイドボタン用の孔を追加したフットプリントを作ります。

f:id:macrochelys99:20190529003230p:plain
https://www.alps.com/prod/info/J/HTML/Tact/SnapIn/SKHC/SKHCBJA010.html


基板サイズが基板屋さんの指定する最小サイズより小さいので面付けして発注します。
f:id:macrochelys99:20190529013352p:plain

パネル

基板むき出しだと使いにくいので上面と下面だけアクリル板のパネルを取り付けます。基板CADが吐き出したDXF に重ねるようにパネル外形と孔を描いていきます。
f:id:macrochelys99:20190529012630p:plain

細かい寸法を入れていったら、微妙にズレているではないですか。
f:id:macrochelys99:20190529013911p:plain

上パネルは上下が非対称、下パネルは左右が非対称。しかもぱっと見ただけではわからない微妙なズレ。組み立てるときに逆向きに取り付けて「なんか精度悪くね?」となるやつです。

基板の外形はミリのグリッドに乗せ、部品の配置はミル(インチ系)のグリッドに乗せたので、スイッチを中央に置いたつもりが微妙にズレたようです。

コネクタやICなどの部品はインチ系が多いので、部品を配置するときはグリッドをミルにすることが多いのですが、パネルに関係する部品はミリ系で配置しないといけなかったですね。

ズレていても良いのですが、その場合は組立て時に上下左右裏表が判りやすいよう目印をつけておきたかったです。この場合だと、1か所だけカドのRをC面にするとかでしょうか。
f:id:macrochelys99:20190529015000p:plain

気付いたのが発注後だったので、このまま作ります。

10cm×10cmの正方形から2セット取れます。発注単位が5枚なので10台分。思ったよりたくさん取れました。基板も面付けして40台分あるのですが..... 配っても邪魔になるだけですね。
f:id:macrochelys99:20190529015153p:plain

入荷

f:id:macrochelys99:20190529034437p:plain

組立て

ProMicro の泣き所、「表面実装の Micro USB がもげる」の対策として、コネクタを上から押さえるだけの基板を作り、ピンヘッダに重ねてハンダ付けしています。どの程度強度アップしてるか試してないけど、無いよりマシかな?
f:id:macrochelys99:20190529032745j:plain

スイッチとキートップ
f:id:macrochelys99:20190529033545p:plain

Arduinoスケッチ

#include "Keyboard.h"
#include <Adafruit_NeoPixel.h>

#define   NUM_KEY     2   // 使用するキーの数
#define   PIN_PIXELS  A0  // WS2812B を接続するピン
#define   NUM_PIXELS  4   // WS2812B の数

Adafruit_NeoPixel pixels(NUM_PIXELS, PIN_PIXELS, NEO_GRB + NEO_KHZ800);

const uint8_t       PIN_KEY[NUM_KEY] = {2, 3};        // キーを接続したピン番号
const char          FUNC_KEY[NUM_KEY] = {',', '.'};   // キーに割り当てる文字
const unsigned int  INSENS = 5;                       // チャタリング対策の不感時間[ms]

/* キーを押すごとに変化するLEDの色 */
const uint32_t      rgb[] = {0x7F0000, 0x007F00, 0x00007F, 0x3F3F00, 0x3F003F, 0x003F3F, 0x3F3F3F};

void setup() {
  for (uint8_t pos = 0; pos < NUM_KEY; pos++) {
    pinMode(PIN_KEY[pos], INPUT_PULLUP);
  }
  Keyboard.begin();
  pixels.begin();
  pixels.clear();
  write_pixels_switch();
  pixels.show();
}

void loop() {
  key_scan();
}

void key_scan() {
  static boolean prev_key[NUM_KEY];
  static unsigned long prev_press_time[NUM_KEY];    // 前回キーを押した時間(チャタリング対策用)
  static unsigned long prev_release_time[NUM_KEY];  // 前回キーを離した時間(チャタリング対策用)

  /* キーの状態を順番にスキャン */
  for (uint8_t pos = 0; pos < NUM_KEY; pos++) {
    boolean key = digitalRead(PIN_KEY[pos]);
    unsigned long time = millis();

    /* キーを押したとき */
    if (prev_key[pos] == HIGH && key == LOW) {
      if (time - prev_press_time[pos] > INSENS && time - prev_release_time[pos] > INSENS) {
        Keyboard.press(FUNC_KEY[pos]);
        prev_press_time[pos] = time;
        write_pixels_switch();
        pixels.show();
      }
    }

    /* キーを離したとき */
    if (prev_key[pos] == LOW && key == HIGH && time - prev_press_time[pos] >  INSENS) {
      Keyboard.release(FUNC_KEY[pos]);
      prev_release_time[pos] = time;
      pixels.show();
    }

    prev_key[pos] = key;
  }
}

/* LED の色を切り替える */
void write_pixels_switch() {
  static uint8_t rgb_pos = 0;
  for (int i = 0; i < NUM_PIXELS; i++) {
    pixels.setPixelColor(i, rgb[rgb_pos]);
  }
  rgb_pos = (rgb_pos + 1) % (sizeof(rgb) / sizeof(rgb[0]));
}

今回キーは2個しかありませんが、マトリックスにしない限りキーが増えても最小限の修正で済むように作りました。

#define   NUM_KEY     2   // 使用するキーの数
const uint8_t       PIN_KEY[NUM_KEY] = {2, 3};        // キーを接続したピン番号
const char          FUNC_KEY[NUM_KEY] = {',', '.'};   // キーに割り当てる文字

試してないですが、ここの3行を書き換えるだけでキーを増やしたり割り当てを変えたりできるはずです。

無駄に光るよ

キーを押すごとに色が変わる。なんとも鬱陶しい
f:id:macrochelys99:20190529032148g:plain

使用感

  • 汎用スイッチはタッチ感が良くないので特殊キーには良いかもしれないが文字キーには向かない。
  • ノートPCのキー入力が効かなくなったせいで、句読点を「まる」「てん」から漢字変換して入力するのよりは使いやすくはなる。
  • シフトを押しながら押せば、ちゃんと 「<」や「>」が入力できた。
  • マクロ用として使うなら良いかもしれない。
  • キーにマウスクリックの機能をアサインしようとしたが、#include "Keyboard.h"#include "Mouse.h" は同時に使えないらしく動かなかった。

部品代

品目 金額 メモ
ProMicro 約1000円 1個 1台分
基板 約600円 4枚取り×10枚で40台
パネル 約700円 10台分
基板とパネルの送料 約2000円
LED (WS2812B) 約50円 4個 1台分
スイッチ 約200円 2個 1台分
キートップ,キーカバー 約60円 2組 1台分
六角スペーサー 約1000円 8本 1台分

反省点

  • もっと小さくしたかった。特に厚み。(現在 27mm)
  • 上下のパネルが 5mm厚なので、薄くしても良さそう。
  • パネルの向きがやはり組み立てる時に迷う。完全に対称にするか、目印を付けたかった。
  • しかし、試しに逆向きに取り付けてみたところ、特に違和感なかった。
  • 基板に ProMicro の取り付け向きをシルクで表示するのを忘れた。
  • 基板にM3のネジ孔がスペース的に入らなかったので M2.6 で設計したが、M2.6 は安価な六角スペーサーが見つからず高く付いた。M2でも良かったかもしれない。
  • キーボード用スイッチを使わず汎用スイッチを使ったので、キートップと透明のキーカバーの間に紙を挟むだけでキートップの印刷を自由に作れる

まとめ

製作のきっかけとなった知人の反応
「そういえばスラッシュのキーも壊れてたんだっけ。」

12セグメント カナフォントをハード化する

f:id:macrochelys99:20190326022939j:plain
写真で見ると文字が白とびしちゃうので露出補正で暗くしていますが、実際は明るい部屋でも綺麗に表示されます。

3ヶ月前ぐらいに見かけたとあるツイート



やってみよう


12セグメント カナフォントをハード化する

回路図

f:id:macrochelys99:20190326012048p:plain

当初、8ビットシフトレジスタ 74HC595 を2個使い、各セグメントを2個のLEDで点灯するよう回路図とアートワークを作ったのですが、どうせこれカラー表示したくなるよね、ということで WS2812B に変更。

基板1枚に WS2812B を24個(各セグメント2個×12セグメント)。数珠つなぎになった信号線の両端にコネクタを配置し、基板同士を連結できるようにします。

基板アートワーク

基板外形
f:id:macrochelys99:20190326022346p:plain
基板が安く作れる最大寸法 100mm×100mm に収めます。

A面
f:id:macrochelys99:20190326012639p:plain

B面
f:id:macrochelys99:20190326012801p:plain

部品が15°単位で傾いているのでグリッドをかなり細かくしないと思い通りのところに置けません。

基板入荷

A面
f:id:macrochelys99:20190326015106j:plain

B面
f:id:macrochelys99:20190326015357j:plain

この12セグメントの表示形式に名前は付いていないようなので、基板名は SnowCrystal としました。

部品実装
f:id:macrochelys99:20190326015651j:plain

スペーサー

各セグメントの形状を出すためのスリット兼LEDの光を均一にするスペーサーです。
f:id:macrochelys99:20190326020217p:plain

高さは 10mm, 15mm, 20mm の3種類を試したところ、15mmが良さそうでした。

3Dプリンタで出力。基板に重ねてネジどめ。
f:id:macrochelys99:20190326020419j:plain

Arduino で点灯させる

スケッチの一部

#define NUM_DIG   5     // 接続した文字数
#define NUM_SEG   12    // ディジットあたりのセグメント数
#define NUM_PPS   2     // 各セグメントに使用するWS2812Bの数 Pixels Per Segment
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel pix = Adafruit_NeoPixel(NUM_PPS * NUM_SEG * NUM_DIG, PIN_PIX, NEO_GRB + NEO_KHZ800);


dig番の文字の seg番のセグメントを rgb色 にセット

void set_seg(uint8_t dig, uint8_t seg, uint32_t rgb) {
  for (uint8_t i = 0; i < NUM_PPS; i++) {
    pix.setPixelColor(NUM_PPS * NUM_SEG * dig + NUM_PPS * seg + i, rgb);
  }
}


dig番の文字に patternの文字を rgb色 にセット

void set_dig(uint8_t dig, uint16_t pattern, uint32_t rgb) {
  for (uint8_t seg = 0; seg < NUM_SEG / 2; seg++) {
    set_seg(dig, seg, pattern >> (13 - seg) & 1 ? rgb : 0);
  }

  for (uint8_t seg = NUM_SEG / 2; seg < NUM_SEG; seg++) {
    set_seg(dig, seg, pattern >> (11 - seg) & 1 ? rgb : 0);
  }
}


フォントを作る

const PROGMEM uint16_t font_map[256] = {
  0,    //  0
  0,    //  1
/* 中略 */
  0,    //  46
  0,    //  47
  B000111 << 8 | B100100,    //  48   0
  B000001 << 8 | B100100,    //  49   1
  B101101 << 8 | B010010,    //  50   2
  B101101 << 8 | B011000,    //  51   3
  B000010 << 8 | B100110,    //  52   4
  B101100 << 8 | B101000,    //  53   5
  B101111 << 8 | B001010,    //  54   6
  B000011 << 8 | B100100,    //  55   7
  B101101 << 8 | B011011,    //  56   8
  B111101 << 8 | B010001,    //  57   9
  /* 中略 */
  0,    //  175
  0,    //  176
  B100001 << 8 | B110100,    //  177  ア
  B000000 << 8 | B010110,    //  178  イ
  B011010 << 8 | B110001,    //  179  ウ
  B001100 << 8 | B010101,    //  180  エ
  B000000 << 8 | B110111,    //  181  オ
  B010000 << 8 | B110110,    //  182  カ
  B100001 << 8 | B101110,    //  183  キ
  B100001 << 8 | B010010,    //  184  ク
  B000011 << 8 | B001101,    //  185  ケ
  B000100 << 8 | B000101,    //  186  コ
  B000010 << 8 | B110110,    //  187  サ
  B101100 << 8 | B000001,    //  188  シ
  B000001 << 8 | B101100,    //  189  ス
  B001000 << 8 | B110110,    //  190  セ
  B011000 << 8 | B000001,    //  191  ソ
  0,    //  192
  0,    //  193
 /* 中略 */
  0,    //  254
  0,    //  255
};


1バイトカナ文字(半角カナ)を Serial.println() すると戻りは3バイトなので、下位1バイトを使って font_mapの配列からパターンを取り出す

uint16_t font(byte ascii) {
  return pgm_read_word(&font_map[ascii]);
}

byte code = 'ア' としたときに、「ア」の下位1バイトだけ取り出して変数 code に代入してくれれば良いのですが、narrowing conversion のエラーが出るPCとコンパイルが通るPCがあります。キャスト面倒だから通して欲しいんだけど何が違うんだろう?

紙を被せて完成

2mmの白いアクリルでは、滲んでピンボケみたいになってしまいました。
f:id:macrochelys99:20190326023920j:plain

アクリルをコピー用紙に変えたらシャキッと表示できました。
f:id:macrochelys99:20190326024057j:plain

まとめ

while 文の無限ループが含まれているのでスケッチの全文公開はやめとこ(笑)

フォントのパターンは、こちらのブログで紹介されているものを再現しています。
12セグメントカタカナフォント|ニートが頑張るブログ

リモコンホルダーを柱に穴をあけずに固定したい

f:id:macrochelys99:20190217213113j:plain:w300
こちらは純正のリモコンホルダーです。2×4材を天井まで突っ張って棚を作ってあるのですが、そこに室内照明のリモコンを取り付けています。しかし、位置的に赤外線が届きにくいらしく反応が悪いです。

操作しやすく反応も安定する場所に移動したいけど、柱とか壁紙に穴を開けたくない。というわけで、ネジで柱にクランプするホルダーを作ります。

モデリング

f:id:macrochelys99:20190217220429p:plain:w300

造形

f:id:macrochelys99:20190217221043j:plain:w300

ネジ孔の内側にあけた六角形の凹みに
f:id:macrochelys99:20190217221159j:plain:w300

ナットを入れて
f:id:macrochelys99:20190217221313j:plain:w300

コネジを通す
f:id:macrochelys99:20190217221409j:plain:w300

取り付け

柱に取り付け
f:id:macrochelys99:20190217221456j:plain:w300

リモコンも取り付け
f:id:macrochelys99:20190217213022j:plain:w300

反対側
f:id:macrochelys99:20190217221631j:plain:w300

ネジで挟んでいるので多少の凹みはついてしまいますが、木ネジ打ち込まずに済みました。軽く締めただけですがガッチリ固定されています。

ネジが飛び出しているので、見た目は悪いですね。ポリカの透明なネジを使うと良さそうでしょうか。

[追記 2019.03.02]

ネジをポリカのイモネジに交換しました。
f:id:macrochelys99:20190302211428j:plain:w300
https://www.amazon.co.jp/gp/product/B01DNC89BS/

ネジ頭の出っ張りもなくなり
f:id:macrochelys99:20190302211653j:plain:w300

これなら服とか引っかける心配もないし見た目も良いです。
f:id:macrochelys99:20190302211734j:plain:w300

ホルダーの色が白に変わっているのは、リモコンの着脱がキツかったので寸法を修正し、クリアのフィラメントで作り直しました。

Fusion360 でモデリングした3Dをブログに貼る

Makers Love に3Dを貼る方法が紹介されていたので早速試してみます。ちなみにこれはスクレーパーのホルダーです。

やりかたはこちらの記事に紹介されています。
【Fusion360小技】ホームページやブログに3Dモデルを表示する方法 | デジタルものづくりの情報サイト「メイカーズラブ」

上にこんな感じの絵が表示されていますか?

f:id:macrochelys99:20190123210437p:plain:w300
ドラッグしたりホイールを回すと3Dを拡大したり回転できます。右ドラッグで平行移動もできます。

f:id:macrochelys99:20190123214954p:plain:w300
ブラウザ上で断面をみたり距離を測ったりもできます。

f:id:macrochelys99:20190123211919p:plain:w300
初期設定だと全体的に暗くて見にくかったのですが、右下の歯車ボタン(設定)から「環境」タブで背景やライティングを変更したら見やすくなりました。

タブレットAmazonの 旧Fire7、ブラウザは Silk)でも表示できました。最初表示されるまでに時間がかかるのですが、表示されてしまえばぐりぐり回せます。断面もとれました。

Makers Love は参考になる情報が豊富でよく見に行くのですが、全体的にブクマが少ないので意外と知られていないのでしょうか。おススメです。

1入力4出力のヘッドホンアンプ

f:id:macrochelys99:20190106033444j:plain:w600

何人かで使えるヘッドホンアンプが欲しい

住宅事情で普段ヘッドホンを使っているけど同じ音を何人かで聴きたい時があります。そんな時はヘッドホンのコードを分岐したりするのが一般的でしょうか。

しかし個別に音量を設定したいときもありますし、音質も悪くなりそうだし。

というわけで、1入力4出力のヘッドホンアンプを作ります。


回路図

f:id:macrochelys99:20190106001928p:plain:w600

電源

f:id:macrochelys99:20190106002106p:plain:w600
DCアダプターから9Vで電源供給し、三端子レギュレータで5V に降圧します。

電源ランプは手元にある2色LEDを使い、好きな方の抵抗だけ接続して色を選べるようにしておきます。回路図では10kΩになっていますが暗かったので1kΩにしました。

ミュート

f:id:macrochelys99:20190106002501p:plain:w300
アンプICのミュート端子に接続します。

ミュートは電源ON/OFF時のポップ音を抑制するために使うので、電源ON/OFF時にだけLOW,それ以外はHIGHになっていれば良いということになります。

電源の立ち上がり/立下りの最中は三端子レギュレータの入出力の電圧差が1V程度ですが、完全に立ち上がってしまえば4V程度の電圧差が発生します。そのため、三端子レギュレータの両端の電圧差が2~3V以上の時だけトランジスタをONしてミュート端子をHIGHにします。

トランジスタはあまり深く考えず、定番の2SA1015 をチップ化した 2SA1162 を使いました。

ピンジャック

f:id:macrochelys99:20190106003631p:plain:w300
2個のピンジャックを並列に接続しています。分岐ケーブルを用意しなくて済むように、というだけの理由です。テレビとアンプの間に割り込ませる形で接続する用です。

コネクタはアマゾンの激安品です。実物を測ってフットプリント作りました。

ボリューム

f:id:macrochelys99:20190106004034p:plain:w300
定番のアルプス RK09Lです。2連Aカーブ10kΩ。

アンプ

f:id:macrochelys99:20190106004103p:plain:w300
遊ぶならオペアンプ使ったほうが楽しいんでしょうけれど、今のところは専用ICで。周辺回路の定数設定とか発振とかの心配が減ります。

簡単に扱えそうなロームの BH3544F を選びました。周辺回路は(ミュート以外は)データシート通り。

出力

f:id:macrochelys99:20190106004132p:plain:w300
カップリング用のケミコン、保護抵抗、ミニジャックです。

コンデンサも本来ならこだわる所なんでしょうが、電源用、出力のカップリング用、共通で適当に選んでいます。 ニチコンのチップケミコン、UCMシリーズなのですが、体系図によると低インピーダンスを追及した品番のように見えます。

基板アートワーク

f:id:macrochelys99:20190106012157p:plain:w300
f:id:macrochelys99:20190106012428p:plain:w300
無駄にGNDが広くてビア打ちまくってます。ボリュームのノブがちょっと大きめなので、回しやすさを考えるとこれぐらいのサイズになってしまいました。

アクリルプレート

f:id:macrochelys99:20190106013753p:plain:w300
基板データをもとにプレートの外形と孔位置を決めます。

f:id:macrochelys99:20190106013917p:plain:w300
こんな感じで基板と一緒に発注します。

組立て

基板とパネル入荷

f:id:macrochelys99:20190106014605j:plain:w300

基板組立てと動作確認

f:id:macrochelys99:20190106032656j:plain:w300

パネル取り付け

f:id:macrochelys99:20190106014651j:plain:w300
アルミノブがなかなかいい味だしてくれてます。

ついでにホルダー

f:id:macrochelys99:20190106014907p:plain:w300
f:id:macrochelys99:20190106015135j:plain:w300
f:id:macrochelys99:20190106023453j:plain:w300


問題点

ボリュームノブを触るとハムが乗る

f:id:macrochelys99:20190106015419j:plain:w300
ボリュームのノブを触ると、ブーンというノイズがヘッドホン出力から聞こえます。ボリュームのボディー(固定用の端子)をGNDに接続したら解消しました。

電源ON/OFF時のポップノイズ

オシロで信号をみると、ミュートは働いているのですがもっと長く効かせないとならないようです。アンプICのデータシート通りにしておけばよかったかも。

電源OFFでもヘッドホンにノイズが乗る

スライドスイッチで電源を断っているのに、ヘッドホンからズバババババというノイズが聞こえます。電源ONしてミュートが解除されるとノイズは消えます。原因が判りませんが、ACアダプタを抜けば止まります。

スライドスイッチは2回路入っているので並列に使用していましたが、1回で電源、もう1回路でGNDをスイッチ(GNDもDCアダプタから切り離す)したらだいぶ改善しました。

f:id:macrochelys99:20190106020528j:plain:w300
パターンカットして修正。

ボリュームの回転方向が逆

今回の一番の残念ポイント。フットプリントと部品実物では1番ピンと3番ピンの位置が逆でした。なので、ボリュームを右に回すと音量が下がり左に回すと音量が上がる残念仕様になってしまいました。

基板とボリュームを配線で接続していれば配線を入れ替えるだけだったのですが、基板に直接実装しているしGNDはベタなので修正はかなり手間かかりそう。

落としたらフォーンジャックがもげた

f:id:macrochelys99:20190106024358j:plain:w300
ヘッドホンを挿したまま落としてしまい、パターンごとジャックがもげてしまいました。ここは表面実装ではなくてスルーホールピンを使うべきでした。


良かった点

  • アンプICの最大出力62mWというのが貧弱ではないかと気になっていたのですが、十分な音量が出ます。

  • 音質の良し悪しを判定できるほどオーディオに詳しくないですが、音質にまったく不満はないです。

  • コネクタや端子類を全て基板に実装したので配線が無くスッキリしました。


部品代

  • 基板:$22.28(5枚分)
  • アクリルパネル:$16.55(5セット分)
  • 電気部品:約6000円(予備含む)
  • 機構部品:約2000円(ノブ、スペーサー、ネジ等)

合計 1万2千円ぐらい

まとめ

もう1回、再設計して作り直せば良いものができそうな気がしますが、市販品を買って済まそうと思います。

BEHRINGER  ヘッドフォンアンプ HA400

BEHRINGER ヘッドフォンアンプ HA400

アクリルのタップタイト用ネジ穴の形状とサイズの最適を探す

f:id:macrochelys99:20181212224257j:plain:w600
ネジ締め千本ノック......ではないです。

結論

標準の下穴で問題なかった。ネジはBタイプが良い。



アクリルは硬くて割れやすいのでネジ孔はシビアな気がします

f:id:macrochelys99:20181214102247p:plain:w600
レーザーカットでいろんな大きさの孔を空けたアクリルを作りました。
上の2列は円ですが、下の3列は星形になっています。

f:id:macrochelys99:20181212225858j:plain:w300
レーザーカットなので寸法の精度はそれほど高くありません。

f:id:macrochelys99:20181212230050j:plain:w300
よく使うネジを3種類用意しました。
全てバインドタップタイトの 3×8 ですが、左からPタイプ、Bタイプ、Sタイプです。

簡単に説明しますと....

「バインド」は、ネジ頭の形状。ナベ頭が径が小さく高さが高めなのに対して、バインドは径が大きく高さが低くなっています。

「タップタイト」は、木ネジのように下孔だけあけたところにネジでネジ山を切りながら(タッピングしながら)締めるネジです。

「Pタイプ」は、ネジ山のピッチが長く1回転させた時の進む量が長く、プラのような柔らかい材料でネジバカになりにくい特徴があります。

「Bタイプ」は、プラや板金(バーリング)等に汎用的に使えます。

「Sタイプ」は、主に板金用ですが、ネジ山のピッチがコネジと同じなのでナットのようにネジ切りされている場所にそのまま使えます。

www.tsurugacorp.co.jp

Pタイプ

f:id:macrochelys99:20181212234045j:plain:w300
ネジが付いて無い孔は、もともとスカスカだったり、孔が小さすぎて回しても入っていかない孔です。
締め切ったときにトルクの変化が少なくそのままネジバカになったところは、ネジを緩めて浮かせてあります。
ネジを締め切る前に、アクリルが割れそうだったり硬くて入っていかないところも、ネジを緩めて浮かせてあります。

f:id:macrochelys99:20181212234953j:plain:w300
裏から見たところ。無理に締めるとネジ孔まわりにクラックが入ります。

Bタイプ

f:id:macrochelys99:20181212235053j:plain:w300
Pタイプより幅広い孔径で安定している様子です。

f:id:macrochelys99:20181212235139j:plain:w300
裏側。思ったよりクラックが入りやすいようです。
ネジの進みの大きいPタイプよりもBのほうが回しやすいので、きつくてもネジが進んでしまうのかもしれません。

Sタイプ

f:id:macrochelys99:20181212235216j:plain:w300
入ったネジが一番少ないです。
ネジを回すとキューキュー音がします。無理してますね。

f:id:macrochelys99:20181212235240j:plain:w300
ネジのピッチが小さいので、粉状のアクリルの欠片がたくさん出ます。

ついでに Arduinoの座布団に使った 2.6×8 Pタイプ

macrochelys99.hatenablog.jp
f:id:macrochelys99:20181212235424j:plain:w300
締結感も安定していてちょうど良かったようです。

まとめ

星形のネジ孔は Amazonで買ったアクリルの基板ケースのネジ孔が星形になっており、いいアイデアだと思って真似したのがきっかけです。

アクリルは丸より星形のほうが良いと思って今回比較してみましたが、あまり違いがありませんでした。

今回使ったネジは断面がオニギリ型のタップタイトでしたので、断面が円のタッピンだとまた違ってくるかもしれません。

丸孔は無理に締めていくと突然パキンと割れますが、星形だとネジ孔まわりに小さなクラックがピキピキ入り始めるので完全に割れる前に気付きやすいというメリットはあります。

3mmネジの下穴の推奨は 2.4~2.6mm らしく結果もその通りになりましたので、推奨下穴にBタイプのタップタイトを使うのが良さそう。

ABSやPSならPタイプのほうが使いやすいですが、PとBは外観が似ており混じると(Pで一度締めた穴をBで締めなおすと)ネジバカになるのでどちらかに統一したいところです。