West Gate Laboratory

人生を少しでも,面白く便利にするモノづくり

はんだ付けのときgootのマルチクランプを使うと捗るぞ

はじめに

だいぶ前ですが、町田のサトー電気でgootのマルチクランプST-85を見かけたので買ってみました。

goot.digiban.info

しばらく使ってみて、はんだ付けの際にとても便利だったので紹介したいと思います。

マルチクランプ ST-85

これが我が家のST-85です。

f:id:kaname_m:20210505101250j:plain

その名の通りマルチに色んなものをいい感じに挟んでくれます。プリント基板、コネクタ、ケーブル・・・

f:id:kaname_m:20210505101935j:plain
プリント基板

f:id:kaname_m:20210505101956j:plain
パイピコ

f:id:kaname_m:20210505102017j:plain
コンデンサのリード

f:id:kaname_m:20210505102035j:plain
大きめのスイッチ

f:id:kaname_m:20210505102052j:plain
丸形のブザー

この「いい感じに挟んでくれる」というのが大変に絶妙な力なのです。
両側にあるバネとグリップ部のゴムによって硬いものから柔らかいものまで「いい感じに」ホールドしてくれます。

f:id:kaname_m:20210505101214j:plain

グリップする力が強すぎると挟んだものを壊してしまったり、柔らかすぎるとハンダゴテで触ったときに外れてしまう可能性があります。
このマルチクランプはそういった心配を一切感じさせない、「絶妙な」ホールドを実現していました。

きっとこのマルチクランプの担当者はホールドに使うばね定数の選定に並々ならぬ情熱を注いだのだろうと思います。

はんだ付けを進めていくとだんだん挟める場所がなくなってきますが、端の方をちょっとクランプしただけでもそれなりにホールドしてくれてはんだ付けができます。(表面実装品くらいだったら挟んでも問題なさそうです)

f:id:kaname_m:20210505101242j:plain

また、使い終わった後は畳んでしまうことができます。場所を取らないので便利です。

f:id:kaname_m:20210505101200j:plain

おわりに

gootのマルチクランプST-85を買って使ってみました。はんだ付けの際、何でも「いい感じに」ホールドしてくれてとても便利です。
語彙力がなさすぎて「いい感じに」としか言えないのが悲しいところですが、いい感じにホールドしてくれます。

秋月電子その他電子部品店でも取り扱いがあるので、使ってみてはいかがでしょうか。

akizukidenshi.com

それではごめんなすって。

低酸素トレーニング用の酸素濃度自動制御システムを作りました

はじめに

昨年の冬から、高地トレーニング用の低酸素室に使う酸素濃度自動制御システムを作っていました。
ようやく安定稼働できるようになったので、紹介したいと思います。

f:id:kaname_m:20210429151844j:plain
酸素濃度自動制御装置

ことの始まり

昨年冬、平塚にあるアスリートネット湘南の石井さん(@hiraspo)から声をかけていただきました。
石井さんはスポーツジムを運営されている方で、平塚にあるそのジムには日本でも珍しい「低酸素トレーニングルーム」があります。

低酸素トレーニングとは、高地トレーニングの環境を地上で再現して行うトレーニング方法です。(低酸素トレーニングという言葉はお話を聞くまで知りませんでした。 )
高地トレーニングや低酸素環境によるトレーニングの詳細は以下のアスリートネット湘南さんのウェブサイトをご参照ください。

ht-systems.tech

ht-systems.tech

レーニングルームには低酸素環境を作るための低酸素生成装置とコンプレッサがあるのですが、比較的最近できたばかりで、昨年冬の段階ではバルブを手動で操作して所望の酸素濃度を作っていたそうです。
この酸素濃度に基づいたバルブ操作を自動化したいということでした。
とても面白そうだったので二つ返事で引き受けて、この酸素濃度自動制御システムの開発を開始しました。

システム概要

システム全体像はこんな感じです。

f:id:kaname_m:20210429154327j:plain
低酸素トレーニングシステム概要

低酸素生成装置(図中のAltitudeMax)、タンク・コンプレッサは既存のものがありましたので、制御システムの役割は低酸素ラインと通常空気ラインの入っているバルブを自動で開閉することです。

主たるデバイスは図中の「メインコントローラ」「バルブコントローラ」になります。
メインコントローラは、酸素濃度の監視・モニタの表示・ユーザとのやりとり(酸素濃度設定など)を行います。また、バルブコントローラはメインコントローラから指令を受け取り、2つのバルブの開閉を行います。

f:id:kaname_m:20210429151844j:plain
バルブコントローラ(左)とメインコントローラ(右)

f:id:kaname_m:20210429155505j:plain
メインコントローラにディスプレイがつながり、酸素濃度等を表示する

f:id:kaname_m:20210429155549j:plain
バルブコントローラが2つのバルブに接続される

レーニングルーム内は低酸素を保つため個室になっており、外部とは無線でやり取りする必要がありました。そのため、メインコントローラとバルブコントローラ間はBluetooth(BLE)、メインコントローラとユーザ端末間はWifi(ルータを介したLAN)で接続しています。

今回、CPUはRaspberryPi Zero(メインコントローラ)とESP32(バルブコントローラ)を使用しました。
ラズパイゼロは小さいながらもBluetoothWifiHDMIがついていて、今回はさほど高度な処理は行わないため選びました。ESP32はBluetoothがついていてかつ安価なため選びました。

メインコントローラ上ではFlaskでHTTPサーバが走っており、同一LAN内にいるユーザ端末からブラウザでアクセスすることで現在の酸素濃度を見たり、設定したりすることができます。

f:id:kaname_m:20210429162939j:plain
スマホからメインコントローラにアクセス

Flaskは以前インターホン遠隔解除装置で使ったことがあるものの、CSSに至っては全く触ったことがなかったので書籍を読んで勉強しながら実装しました。

westgate-lab.hatenablog.com

システムは使いながら改良していくことが予想されたため、メインコントローラはWifi経由でシステムアップデートができるようにしています。逆にバルブコントローラ側はアップデート機能はないため、メインコントローラの指令に従い単純にバルブをON/OFFするだけの機能としました。
現在はディスプレイの画面もこんな感じになっています。

f:id:kaname_m:20210429160431j:plain
ディスプレイ画面

初期バージョンをトレーニングルームに導入してから2~3ヶ月程度立ちましたが、順調に稼働しているようです。

おわりに

今回、低酸素トレーニング用の酸素濃度自動制御装置を開発しました。
複数のデバイススマホやディスプレイや外部のバルブとつながるシステムとあり、新しくいろんなことを勉強する必要がありましたがなんとか完成にこぎつけられてよかったです。

もしご覧の方で低酸素トレーニングシステムにご興味がある方は、アスリートネット湘南さんのウェブサイトから問い合わせいただけます。

ht-systems.tech

また、今回の低酸素トレーニングシステムの開発のように、West Gate Laboratoryではこうしたシステムの受託開発もやっています。
ご興味のある方はTwitter@kmizta)または問い合わせページからご連絡ください。

それではごめんなすって。

家の二酸化炭素濃度を1年間測り続けてわかったこと

はじめに

およそ1年前、テレワークが勤務先にも本格導入された頃、家に余っていたM5Stackを使ってCO2モニタを作りました。

これがその時のツイート、去年の3月30日です。

CO2モニタを作ることに特に大きなモチベーションがあったわけではありません。以前秋葉原で買ったCO2センサがあることを休日に思い出して作ったものでした。

2020年4月5日には機能をアップデートし、Ambientにログデータを上げられるようにしました。

ambidata.io

このあたりからモニタを冷蔵庫に貼り付けて定常運用していたと思います。

f:id:kaname_m:20210211140325j:plain
定常運用@冷蔵庫

それ以来およそ1年間、CO2濃度と合わせて温湿度を1分ごとにログしています。(時々機能テストなどで運用停止しています)

この記事では、1年間CO2モニタを使って二酸化炭素濃度を測り続けてわかったことについて書いています。そのほとんどは言われてみれば当たり前のことで、CO2モニタを作る前から定性的な知識としては知っていることでした。

ですが、実際にCO2濃度を可視化して、実生活とリアルタイムな値を見比べていくことでよりリアルな感覚として理解できた気がします。

なお、我が家は結構古い賃貸マンションで、24時間換気などのシステムは一切ついていません。以下に示す傾向は家の密閉度合いなどに影響されますので、ご注意ください。

データ全貌

全貌というほど大したデータではないですが、ここ1年間のデータがこちらです。

まずはCO2。

外気がおよそ400ppmと言われているので、そこが下限になります。それ以上の値は家の中での人間の活動によるものです。

f:id:kaname_m:20210405173246p:plain
二酸化炭素濃度(2020年4月~2021年3月)

続いて温度。

2021年1月ごろになってようやく温度校正をしたので、それ以前は少し高めに出てしまっています。一年を通した気温の上下が見て取れて、あぁあの夏は暑かったな、などと思い出します。

f:id:kaname_m:20210405173243p:plain
温度(2020年4月~2021年3月)

最後に湿度。

温度と同様、季節に応じた増減が見て取れます。やはり夏は圧倒的に湿度が高いことがわかります。2020年8月頃に凹が見られますが、多分湿度が限界で24時間窓を締め切ってエアコンをかけていたのだと思います。
また、冬でも平均40%程度の湿度を保っていますが、これは加湿器による効果が大きいです。

f:id:kaname_m:20210405173239p:plain
湿度(2020年4月~2021年3月)

とまぁ1年のデータを並べるだけでもいろいろなことを思い出して面白いのですが、もう少し細かい、日常の気づきを書いていきます。

狭い部屋を締め切るとすぐにCO2濃度は上がる

テレワーク開始当時、まだ寒かったことや換気に対する意識が低いこともあって私はほとんど換気はしていませんでした。自室は6畳程度の和室なのですが、ふすまを締め切って仕事をしていました。

そんな密閉された狭い部屋に人間一人いると、ものの1時間程度でCO2濃度は1000ppmを超えてしまいます。さらにその状況が続くと、1500ppmにも達します。

デスクワークであれば呼吸は静かなものですが、それでもじわじわと溜まっていきます。いくらエアコンをかけようと空気清浄機を回そうとCO2濃度は下がりません。

CO2濃度が高くなると頭痛、眠気、倦怠感、注意力散漫などの症状が起きますが、私の場合1500ppm程度になると明らかに仕事に対する集中力が下がるのを感じました。

締め切った部屋で人が呼吸していればこうなるのは当たり前といえば当たり前なのですが、定量的に理解できたのはとても良かったと思います。

換気すればものの数分でCO2濃度は外気と同じ程度になる

まさに冒頭のツイートの画像がそれなのですが、窓を大きく開けて換気すれば、ものの数分で外気と同程度のCO2濃度に下がります。

f:id:kaname_m:20210405181129j:plain
換気は大事(横軸は全体で10分程度)

ただし、換気の仕方は大事で、窓を開けるだけではなくて対面のふすまも開け、できればその先の部屋にある窓も開けて空気が通るようにした方が圧倒的に換気効率が良いです。1方向のみだとなかなか下がらなかったりします。

ドアを開けておけばそれほどCO2濃度は上がらない

狭い部屋を締め切っているとCO2濃度はあっという間に上がっていきます。逆に言うと、ドアを開け放っておけば、窓を開けなくともある程度CO2濃度上昇は抑えられます。

例えば、以下の図は実験的に6畳の部屋を締め切って仕事したときと、ふすまやドアをを開け放って仕事したときのCO2濃度です。空間を大きく取ると明らかに上昇が抑えられています。大々的な換気をしなくてもこれならなんとかなりますね。

f:id:kaname_m:20210405182155j:plain
換気せずとも空間を大きく取ればCO2濃度上昇は抑えられる

季節によってはあまり頻繁に換気したくないこともあります。そういうときはできるだけ家の中のドアを開け放って、空間の体積を大きく取ることが大事なんですね。

ガス調理をするとあっという間にCO2濃度が上がる

うちのマンションはIHなどではなくガスコンロなのですが、窓を締め切ってガス調理をすると本当にあっという間にCO2濃度が1500~2000ppm程度に上昇しました。換気扇をつけていても窓が閉まっているとあまり換気されません。

例えば、こちらは確かテレワーク中の昼ごはんにパスタを作っていたときのCO2濃度。ガスコンロで10分弱加熱し続けている間にCO2濃度は急上昇します。調理後は換気必須です。

f:id:kaname_m:20210405182151j:plain
(12時~)パスタを作るとCO2濃度が上がる

続いて、こちらは奮発してステーキを焼いていたとき。フライパンで焼いていたためCO2濃度は急上昇しています。

ひょっとしたら、ガスコンロではなくIHの鉄板とかで焼いていたらこうはならないのかもしれません。誰か検証してみませんか?

f:id:kaname_m:20210405182148j:plain
(18:30~)ステーキを焼いてもCO2濃度は上がる

最後に

以上、CO2モニタを1年間使ってきた私の気づきでした。

読んでみるとごくごく当たり前のことばかりですね。でもその当たり前のことも頭で理解しているだけでは習慣にすることは難しいです。私も実際CO2モニタを使う前まで定期的な換気などは全くして来ませんでした。

実際に可視化して体感して効果を実感することで、自身の習慣にもなります。今では家族もモニタの数値を見て自発的に換気してくれるようになりました。

テレワークが普及して住環境を良くしたいニーズが増えてきたからか、この1年いろいろなところからCO2モニタが販売されているようです。

我が家で使っているM5Stackを使ったCO2モニタは現在スイッチサイエンスにてキットとして販売中です。githubでM5Stackに書き込むソースも公開しています。

www.switch-science.com

github.com

我が家が狭いこともあり、私の電子工作はできるだけ生活の役に立って長く使えるものを目指していますが、このCO2モニタはまだまだ使う気がします。

自作キーボードを手動CNCコントローラにしてみた

はじめに

先日、Deign Solution Forumというイベントで講演をしたのですが、同時開催された抽選でなんと自作キーボードキットのSHIROが当たりました。

f:id:kaname_m:20210328095050j:plain

素 - Shiroyushakobo.jp

せっかくの初自作キーボードなので有効活用しようと思い、昨年末購入したCNCフライス、Kitmill CL100の手動コントローラにしてみました。

自作キーボードに不慣れなこともあって、実際に使えるようになるまで色々手間取ったので備忘録がてら工程を記しておきます。

ファームウェアの作成

SHIROにはAVRマイコン(ProMicro)が搭載されており、ファームウェアを書き込んでPCに接続するとキーボードとして認識されます。
自分の好きなキーマップで動作させるには、AVRマイコン用のファームウェアを作成する必要があります。

方法には大きく2種類があります。私は後述の理由により②を使いました。

1.QMK Configuratorを使う

2.QMK Firmwareをダウンロードし、自分でビルドする

QMK Configurator

QMK Configuratorでは、様々な自作キーボードのファームウェアGUIで自動的に作成することができます。

config.qmk.fm

上記のページでKEYBOARDにSHIROを選択し、好きなキーの位置に好きな機能を割り当てることができます。
割当が完了したら、右上のCOMPILEを押すとファームウェアコンパイルされ、終わり次第ダウンロードが可能になります。

f:id:kaname_m:20210327140031p:plain
コンパイル中はイモが回転するナイスなページ

ただ、今回CNCの操作をするために、Ctrl+Shift+Dというキーマップを使いたかったのですが、CtrlとShiftとキーを組み合わせる方法が見当たらなかったので、後述の自分でビルドする方法を使いました。
(QuantumにあるMod key combinationsというのがいわゆるShiftとかCtrlとかAltとかとキーを組み合わせる機能なのですが、その中にShift+Ctrlが見当たりませんでした)

QMK Firmware

上記の通りQMK Configuratorでは所望の機能が使えなさそうだったので、QMK Firmwareを使って自分でファームウェアをビルドすることにしました。

ファームウェアをビルドするにはまずは開発環境を作る必要があります。makeが使える環境で以下のリポジトリをクローンします。

github.com

私は普段Windows機のため、WSL上にクローンしました。

クローンできたら、qmk_firmware/keyboards/shiro/keymaps/に移動します。ここに自分用のキーマップを作成します。 デフォルトではdefaultとcheckというキーマップが入っています。defaultのキーマップは以下のようになっています。
layer_numberでレイヤごとに別機能が割り当てられていて、レイヤ自体はキーボード上部の3つのキーで切り替えられるようになっているようです。
KC_*というのがたくさんありますが、これがキー割り当てです。KC_ESCはエスケープを表します。

enum layer_number {
  _NUMBER = 0,
  _CURSOL,
  _MOUSE
};

#define NUMBER TO(_NUMBER)
#define CURSOL TO(_CURSOL)
#define MOUSE  TO(_MOUSE)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_NUMBER] = LAYOUT(
    NUMBER,   CURSOL,   MOUSE,
    KC_P7,    KC_P8,    KC_P9,
    KC_P4,    KC_P5,    KC_P6,
    KC_P1,    KC_P2,    KC_P3,
    KC_P0,    KC_BSPC,  KC_ENT
  ),
  [_CURSOL] = LAYOUT(
    NUMBER,   CURSOL,   MOUSE,
    KC_HOME,  KC_UP,    KC_PGUP,
    KC_LEFT,  KC_ESC,   KC_RIGHT,
    KC_END,   KC_DOWN,  KC_PGDN,
    KC_DEL,   KC_BSPC,  KC_ENT
  ),
  [_MOUSE] = LAYOUT(
    NUMBER,   CURSOL,   MOUSE,
    KC_CUT,   KC_COPY,  KC_PSTE,
    KC_UNDO,  KC_FIND,  KC_AGIN,
    XXXXXXX,  XXXXXXX,  XXXXXXX,
    KC_DEL,   KC_BSPC,  KC_ENT
  ),
};

今回、"cnc"というキーマップを作るため、上記ディレクトリにdefaultのディレクトリをコピーし、名前をcncに変更しました。それができたら、フォルダ内のkeymap.cを修正します。

Kitmill CL100のキー割り当ては以下の通りでしたので、それをキーボードに適当に割り付けました。

機能 割当
+X移動 Right arrow
-X移動 Left arrow
+Y移動 Up arrow
-Y移動 Down arrow
+Z移動 Page up
-Z移動 Page down
高速移動 Shift+何か
スピンドル回転 Ctrl+D
スピンドル停止 Shift+Ctrl+D
緊急停止 ESC
// cnc/keymap.c
enum layer_number {
  _NUMBER = 0,
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_NUMBER] = LAYOUT(
    KC_ESCAPE,  KC_ESCAPE,      KC_ESCAPE,
    RCTL(KC_D), KC_NO,          RCTL(RSFT(KC_D)),
    KC_LSHIFT,  KC_NO,          KC_PGUP,
    KC_NO,      KC_UP,          KC_PGDOWN,
    KC_LEFT,    KC_DOWN,        KC_RIGHT
  ),
};

レイヤは1つだけにしています。
キーボードの上部3キーに緊急停止、その下にスピンドル開始/停止、下3段にXYZの割当をしています。
RCTL()がRight Control+何かにあたります。Leftでも良いはず。
これは入れ子で書くこともできるので、Ctrl+Shift+Dをやりたければ、RCTL(RSFT(KC_D))と書けばOKです。

細かいキーコードの記法についてはこちらを参照ください。

docs.qmk.fm

keymap.cを編集し、キー割り当てを終えたらコンパイルします。qmk_firmwareディレクトリに戻ってmake shiro:cncします。全て問題なければ.buildディレクトリにshiro_cnc.hexができます。

ファームウェアができたらあとは書き込みなのですが、WSL上では書き込みができないのでhexファイルをWindows上に持ってきます。

ファームウェアの書き込み

ファームウェア(hexファイル)をWindows上に持ってきたらUSB経由で書き込みます。

簡単な方法としては、QMK Toolboxを使えばGUIで書き込める(はず)なのですが、どうにもリセットと書き込みのタイミングが合わず、断念。

仕方ないので、コマンドプロンプトから書き込みます。
コマンドプロンプトから書き込む場合はAVRDudeが必要なので、本家サイトからダウンロード、インストールしておきます。

USBケーブルでSHIROキーボードを接続し、リセットボタンを押すとCOMポートとして認識されますので、そのCOMポート番号をメモっておきます。

ちなみに、PortPopを入れると接続したり切断したときにバルーンが出るのでとても便利です。

github.com コマンドプロンプトで以下のコマンドを打つ「準備」をしておきます。

avrdude -p atmega32u4 -c avr109 -U flash:w:"D:\temp\shiro_cnc.hex":i -P COM2

※パス、COMポート番号は適宜書き換えます。

どうやらブートローダが認識される(書き込める)のはリセットを押してから短い間だけのようなので、一度キーボードを外し、再度接続してキーボードのリセットボタンを押します。
COMポートとして認識されたら、すかさずEnterを押して上記コマンドを打ちます。タイミングがうまく合えば、以下のようなメッセージが出てファームウェアが書き込めます。

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9587
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "D:\temp\shiro_cnc.hex"
avrdude: writing flash (22454 bytes):

Writing | ################################################## | 100% 2.87s



avrdude: 22454 bytes of flash written
avrdude: verifying flash memory against D:\temp\shiro_cnc.hex:
avrdude: load data flash data from input file D:\temp\shiro_cnc.hex:
avrdude: input file D:\temp\shiro_cnc.hex contains 22454 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.67s



avrdude: verifying ...
avrdude: 22454 bytes of flash verified

avrdude: safemode: Fuses OK


avrdude done.  Thank you.

ここまでくれば、晴れてキーボードとして使用することができます。やったね。

まとめ

抽選で自作キーボードが当たったので、それをCNCコントローラにするまでの記録でした。ファームウェアの作成、書き込みなどいろいろ便利ツールが出ているのですが、微妙に私の環境には合わず、結局泥臭いやり方になってしまいましたが、勉強になりました。

いろんな形のキーボードが出ているので、キーボード操作できる機器のオリジナルコントローラとして自作キーボードを使うのは面白いかもしれませんね。

M5Stack用CO2モニターキットの紹介

はじめに

昨年、二酸化炭素濃度モニタ(CO2モニタ)を作りましたが、この度スイッチサイエンスでキットの委託販売を開始することが決まりました!

f:id:kaname_m:20210211132457j:plain
M5Stack用CO2モニター化キット 使用例

(2021年2月12日追記)
商品ページができました!スイッチサイエンスさんありがとうございます!!
近日中に発売します!

www.switch-science.com

(2021年2月26日追記)

スイッチサイエンスより発売しました!

この記事では、M5Stack用CO2モニターキット(以下、本キット)の概要紹介、使い方、応用例などを紹介していきます。

キット概要

本キットは、M5Stackに接続し、GitHubで公開しているアプリケーションソフトウェアをM5Stackに書き込むことでCO2モニタが作れるキットです。

本キットの特徴

  • 非分散型赤外線吸収方式(NDIR)のセンサであるSensirion製SCD30を採用しており、高精度に二酸化炭素濃度が測定可能です。
  • 二酸化炭素濃度の履歴をM5Stackにグラフで表示することができます。
  • アプリケーションソフトウェアGitHubで公開しているので、M5Stackに書き込めばすぐに誰でも使い、改良することができます。
  • 計測データをAmbientで保存・表示することができます。(Wifi環境および別売りのmicroSDカードが必要)
  • 二酸化炭素濃度に応じてスマホやPCにPushbulletを使ってプッシュ通知を送ることができます。(Wifi環境および別売りのmicroSDカードが必要)

本キットで使用しているセンサSCD30の仕様は以下のとおりです。

  • CO2測定範囲:0~40000 ppm
  • 精度:±30ppm ± 3% (25℃, 400~10000ppm)
  • 繰り返し精度:10ppm
  • 温度安定性:2.5ppm/℃(0~50℃)
  • 応答時間:20秒

その他センサのスペック詳細はメーカーページから確認することができます。

キットの内容物

本キットには、プリント基板・センサ(SCD30)、コネクタ、取り付けネジ、筐体が含まれています。M5Stackは別売りです。
ご自身でコネクタのはんだ付けや筐体のネジ止めをする必要があります。

f:id:kaname_m:20210211141843j:plain
キットの内容物

室内環境の改善に

会議中、運転中、テレワーク中。寝不足でもないのに眠くなったり、集中力が出ないことはないでしょうか。

私は昔から「これ二酸化炭素のせいじゃね?」と思っており、それで昨年プロトタイプ版を作りました。

westgate-lab.hatenablog.com

で、テレワーク中に使い始めたのですが、狭い部屋を締め切って仕事しているとものの1時間程度で1000ppmを超え、さらに続けると1500ppm近くに達してしまうことがわかりました。そうなると集中力は一気になくなります。
そこで換気をすると、5分ほどでCO2濃度は一気に下がり、すると不思議と集中力が回復します。(個人の感想です)

CO2モニタがあれば、普段感じにくいCO2濃度を可視化することができます。
また、いつまで換気すればよいかの目安にもなります。ずっと窓開けっ放しだと寒かったり暑かったりしますからね。

換気の目安にいかがでしょうか。

CO2濃度の上昇をスマホに通知

本キットはPushbulletと連携して、スマホやPCにプッシュ通知を送ることができます。 (2021年2月11日現在、iPhoneには対応していないようです)

www.pushbullet.com

二酸化炭素濃度の注意レベルと警告レベルを任意に設定でき、それぞれのレベルを超えるとプッシュ通知を出すことができます。

f:id:kaname_m:20210211134600j:plain
二酸化炭素濃度上昇をプッシュ通知

「あー換気しなきゃなー」ってなります。

家の外から室内環境を確認

Ambientと連携することで、外部から室内の二酸化炭素濃度や温度湿度を確認することができます。

ambidata.io

f:id:kaname_m:20210211134834j:plain
家の外から室内環境を確認

エアコンを付けると一気に温度が上昇し、同時に湿度が下がるのがわかって面白いです。(我が家は加湿器を付けているので湿度の低下は小さいですが)
慣れてくると、家に家族が帰ってきたことや料理をしているとかがグラフを見てわかるようになります。

家での使い方

M5Stackは背面に磁石が付いているので、例えば冷蔵庫に貼り付けて使用することができます。
我が家では1年以上冷蔵庫に貼り付けて使っています。

f:id:kaname_m:20210211140325j:plain
M5Stackだから冷蔵庫に貼り付く

これで、意識的に換気するようになりました。

サポートページ

CO2モニタ用のアプリケーションソフトウェアや、キット組み立ての説明などはGitHubのREADMEにまとめています。

github.com

オープンソースなので、機能の追加なども可能です。

最後に

スイッチサイエンスで委託販売予定のM5Stack用CO2モニターキットの紹介でした。

皆さんのQOL向上の一助となれば幸いです。

FusionPCBにおける角丸基板・長穴・V-Cutの作り方

はじめに

先日、FusionPCBでプリント基板を注文しました。

westgate-lab.hatenablog.com

その際、角の丸い基板(以下、角丸基板)や長穴、V-Cutを使ってみました。以下、備忘録を兼ねて、FusionPCBでこれらを使う場合のデザインの方法を書いておきます。

なお、CADはEagleです。

角丸基板

こんな感じに角が丸い基板を作りました。

f:id:kaname_m:20210123181858j:plain
角丸基板

こうした基板をFusionPCBで注文する場合は、単にDimension(レイヤ20)にLineで角丸のラインを選択して基板外形を描けばOKです。Widthは0です。

f:id:kaname_m:20210207134642j:plain
角丸の設定項目
f:id:kaname_m:20210207134505j:plain
角丸のプロパティ

長穴

よく使うDCジャック用の長穴が入った基板を作りました。

f:id:kaname_m:20210207135301j:plain
長穴

長穴をEagleで作る場合、直接的な方法がなくて、ちょっと裏技的な感じに作る必要があります。
今回はPad+Dimensionで作りました。
以下の図が、長穴の入ったDCジャックのフットプリントです。プロパティは長穴形状を記した線で、Dimensionで描いています。

f:id:kaname_m:20210207135701j:plain
長穴付きDCジャックのフットプリント

端子の部分には、まず通常のPadでスルーホールのパッドを作ります。(パッド中央に空いている穴はスルーホールの穴です)
パッドのサイズは長穴のサイズより大きくしてください。また、ドリルの径は長穴のサイズを超えないようにします。 (ドリル径が長穴外形を超えている場合そのとおりにドリルが開けられてしまう可能性があるため)

パッドができたら、次に長穴を描きます。長穴は角丸と同じくwidth0のDimension(レイヤ20)で描きます。 先程の角丸と同じ要領で長穴の外形を描いていきます。
これは秋月電子で売っているDCジャック用に作りましたが、画像上側の端子が他の2本の端子と比較して少し横に長いため、1番ピンのみ長穴の幅を拡げています。Eagleではパッドの縦幅と横幅を独立に変えられないため、1番ピンは画像のようにパッドサイズに対して長穴外形が少しいびつになっていますが、問題ありません。

これでOKです。注文すれば上の写真のようにきれいな長穴ができます。

これ以外の方法として、表面実装のパッドを表裏の同じ位置に配置し、長穴をDimensionで書き込む、という方法もあります。これであればパッドサイズも任意に設定できますし、ドリル穴もなくなるのでデザイン上きれいになりますが、トップとボトムのパッドが別端子として認識されてしまい、回路図上面倒なことになります。ですので、上の方法がおすすめです。

V-Cut

V-Cutは面付け(複数の基板を1枚にまとめて製造すること)と一緒に使うことになるかと思います。
面付けして複数の基板をまとめて1枚として製造すれば、基板1枚あたりの製造コストを下げることができます。 今回FusionPCBで24×29mmの基板を作ったのですが、3×4=12個で面付けを行ったため、10枚注文して合計120個分プリント基板を製造し、約5ドルでした。1枚あたりおよそ5円ですね。安すぎる。

さらに、基板間をV-Cut指定しておけば、自分の手でパキパキ分割することができます。下の写真が今回作った基板です。いくつか手で割ってみました。

f:id:kaname_m:20210123180713j:plain

f:id:kaname_m:20210123180531j:plain
V-Cut部分拡大

FusionPCBにおけるV-Cutについては、公式サイトがあるので詳細は以下を参照ください。

www.fusionpcb.jp

ここではEagleで設計する際の具体例としてこの記事に記載します。

まずは、プリント基板のデザインを通常通り用意します。

f:id:kaname_m:20210207143153j:plain

次に、面付けしていきます。面付けするには、基板設計画面でTools->Panelizeを選択します。

f:id:kaname_m:20210207143149j:plain

Panelizeを選択すると以下のダイアログ画面が出てきます。要は、部品名称のシルクのレイヤ(tNames, bNames)は面付けでコピペすると連番になってしまうので、別レイヤに移動させてコピペしても連番にならないようにする処理です。Executeします。

f:id:kaname_m:20210207143146j:plain

問題なく処理が行われると、部品名称(この基板でいうとJP1, SV1)の色が変わります。レイヤ25のtNamesはレイヤ125の_tNamesへ、レイヤ26のbNamesはレイヤ126の_bNamesに移動するようです。

f:id:kaname_m:20210207143203j:plain

この状態で、全レイヤを表示させ、Ctrl+Aで全選択、カーソルを原点に置いた状態で(これ重要)、Ctrl+Cでコピーします。これで全レイヤがコピーされました。
ここで一旦デザインを「保存せずに」閉じ、新しくボード図を作成します。作成したらCtrl+Vで貼り付けます。この際、基板原点がボード図の原点と合うように、グリッド幅を元のデザインと合わせてください。基板左下が原点にピタリ合うように貼り付けます。

貼り付けたら、再度全レイヤを表示させ、同じようにコピペでどんどん増殖させます。このとき基板外形は隣の基板とぴったり重ねてください。Panelizeしたのでコピペしても部品名称の番号が変わっていないですね。

f:id:kaname_m:20210207143200j:plain

100×100mmを超えてしまうと値段が上がるので、それ以内になるようコピペ枚数を調整します。コピペが終わったら、基板外形(Dimension)が各基板ごとに途切れていたりして気持ち悪いので、ちゃんと引き直します。

f:id:kaname_m:20210207144632j:plain
外形線(Dimension)を引き直す

Dimensionを引き直したら、最後にV-Cut指示を入れます。FusionPCBでV-Cutを指示する場合は、単にDimensionレイヤにテキストでV-Cutと入れればOKです。

出来上がりがこちら。

f:id:kaname_m:20210207143157j:plain
V-Cut指示もDimensionレイヤに入れる

一番端部のDimensionはV-Cutではなく切り落としなのでV-Cut指示は入れません。

これで注文すれば上のようなV-Cut基板が出来上がります。

最後に

備忘録を兼ねてFusionPCBにおける角丸基板・長穴・V-Cutの作り方を書きました。

プリント基板をたくさん作るときはもっぱらFusionPCBで作っていますが、とてもクオリティが高いのに値段は安いのでおすすめです。

FusionPCBでプリント基板を作りました

はじめに

2年ぶりくらいにFusionPCBでプリント基板を作りました。

ちょうど3つ基板を設計していたので3つまとめて注文したのですが、短期間で非常に安く、かつ高品質な基板ができたので、紹介したいと思います。

3種のPCB、送料込みで27ドル(クーポン使用)

今回作ったのは、写真の3つの基板です。それぞれ10枚ずつ作りました。
注文は1/9、届いたのが1/22なので13日で注文から到着したことになります。
注文から製造完了まで、FusionPCBの注文履歴上で11日かかりましたが、その後出荷してから届くまでは2日でした。配送はDHLです。

f:id:kaname_m:20210123180641j:plain

気になるお値段ですが、手元にあった7ドルクーポンを使って送料込みで合計27ドルでした。3種類の基板をまとめて発注できたので、お得でした。
10枚ずつ作っているので、1枚あたり0.9ドル、約100円ですね。さらに左の基板はV-Cutで12枚まとめているので、1枚あたりは実質10円以下になります。めちゃめちゃ安いですね。

ちなみに、一種類ずつパックされて乾燥剤入りで届きます。

f:id:kaname_m:20210123183143j:plain

高品質なプリント基板

さて、これだけ安いと気になる品質ですが、これがとても良かったです。
2年くらい前に注文したときは、レジストのズレやシルクのかすれが結構気になったのですが、その後改善されたのか、レジストもシルクも非常にきれいでした。

f:id:kaname_m:20210123180605j:plain

気になっていた丸角基板やDCジャックの長穴も、きれーにできていました。

f:id:kaname_m:20210123181858j:plain
丸角基板

f:id:kaname_m:20210123181853j:plain
長穴

そして今回初めてやってみたV-Cutですが、これも完璧にできていました。
設計上パッドとの距離がギリギリで不安だったのですが、普通に手で割ることができました。
(ちなみに、V-Cut線とパッドの距離は最小0.4mmですが、これが0.45mmくらいで、デザインルール的にもギリギリです)

f:id:kaname_m:20210123180632j:plain
V-Cut

まとめ

FusionPCBで久々にプリント基板を注文し、とても高品質な基板を作ってもらうことができました。
近いうちに備忘録を兼ねてFusionPCBでのプリント基板の注文方法をはじめ、角丸基板の設計方法、長穴の入れ方、V-Cutの方法などをまとめておこうと思います。

なんだかFusionPCBの回し者みたいな感じに記事になってしまいましたが、純粋な1利用者です。

さて、これから届いた基板のはんだ付けをしていきます。これからが本番。楽しみ楽しみ。