活動.log

いろいろ書く

ワイ「研究室の鍵管理めんどいなあ...せや!」

これは奈良高専 Advent Calendar 2022の16日目の記事です.

はじめに

こんにちは,こんばんは,おはようございます,初めまして.

奈良高専5Iの さりえり です.

唐突ですが,実は2ヶ月くらい前に初めて髪を染めたんですよ.

でも,あんまり髪色が変わらなかったんですよね.

なぜだと思いますか?








正解は,白髪用のカラーリング剤を使ったからです.

染めた後に色がそこまで変わってないことに気づいて,パッケージを確認しました.白髪用でした.そんなん知らんて...

皆さんも自分でカラーリング剤を買うときは注意しましょう.

スマートロックを作った

本題です.スマートロックを作りました.

完成形はこちら.

導入した理由として,物理的な鍵の運用が少し面倒だったことが挙げられます.

具体的には

  • 研究室の鍵はある部屋に保管されており,その部屋が施錠されているときは教員を呼び出す必要がある
  • 研究室を無人にするとき,鍵をかける必要がある
  • でも,その度に鍵を返却するのはめんどくさい

という問題?点がありました. これらの問題点はスマートロックを導入することで解決します.











というのはほぼ建前で,本音はスマートロックを作って自分で運用してみたかったからです.

某研究室で運用されているのを見て影響を受けました.

使ったもの

ハードウェア

スマートロックを構成している主な機材を記しておきます.

機器 個数 単価 備考
Raspberry Pi 4B
(メモリ8GB)
1 約20,000円 小型コンピューター.
サーボモーターの制御,サーバーの運用
RC-S380 2 約5,000円 カードリーダー.
今回は研究室に落ちていたので0円.
SG92R 1 約600円 サーボモーター.
内側の鍵のツマミを回す.
サーボアダプター(自作) 1 0円 サーボモーターを内側の鍵に噛ませるための装置.
某研究室の3Dプリンターで作成.

総額2万3千円くらいしました. ラズパイの供給が追いついてくれたら,総費用は1万円程度で済みます.

ソフトウェア

ソフトウェアは全部自分で作るので0円です.やったぜ.

フロントエンドはTypeScript,バックエンドはPythonで書きました.TypeScriptはJavaScriptの上位互換的な存在で,型安全に開発することができます.

気になる人のために,もう少し詳細を書いておきます.

フロントエンドのフレームワークにはNext.js(React)を採用しています.

採用した理由ですが,巷でよく使われているからです.

他のフレームワーク(NuxtJs(Vue))も候補にありましたが,最終的には好みで決定しました.

Vueは補完が効かないときがあるからあんまり好きじゃない.

カードの読み取りにはnfc.pyを使っています.

nfc.pyを使うことで,カードの固有IDを取り出すことができます.

そのIDがシステムに登録されているか確認して,登録されていれば施錠/解錠する...という感じにしてます.

需要があるかは分かりませんが,GitHubソースコードを公開しているので気になる人はどうぞ.

スマートロックを作ったことで,鍵の運用が楽になりました.

また,スマートロックを作る過程で多くのことを学ぶことができました.(DB設計やAPI設計など.)

とりあえず動くことを目標にしているので,現状は多分よくない設計になってると思います.

まあその辺はここから改善()していけばいいかと...

皆さんも,自分の作りたいものを見つけてみてください.

教科書や学習サイトで学ぶよりも何倍もの知識が付きますし,モチベーションも高く保てます.

それではまたの機会に...

モバイルバッテリーでデジタル回路を動かした話

初めまして、さりえりです。そこらにいる高専生です。いつもは音ゲーとか音ゲーとか音ゲーとか...。ブログを書くのは初めてなので、ちょっと緊張してたりします。

 

0. はじめに

さて、今回は題名にある通り、モバイルバッテリーでデジタル回路を動かしてみたというお話です。実験で使う電源装置が学校にしかなく、家で回路動かせるようにしてえ~ってなったわけですよ。動かすのに何が必要だったかというと、ざっくりですが

  • 5Vの直流電源
  • 回路
だったわけですよ。
で、回路はすでに作成していたので、残る必要なものは5Vの直流電源。さて、
 

どうやって5Vの電源を用意しよう...?

 

まず考えてみたのが、乾電池を使う方法。確か乾電池は1つで1.5Vだから、それを3つ直列でつないだら4.5Vかー。うーん。

 

[イメージ図]

イメージ図

 

「多分動くには動くんだけど、どうせなら5Vぴったりで簡単に用意できるものでやりたいなあ。乾電池を使おうとしたら電池ボックスとか、テープとかで固定しないといけなさそうだし...」

というわけで保留にしました。

 

じゃあどうしようかなあって考えながら、調べたりTwitterで聞いたりしていたら、あるツイートが目に。

 

[tweet]

きっかけとなったツイート

 

USB...?

なんでUSBなんだろう、と思って調べたら、

USBは、基本的には信号ケーブルとして設計されている。その一方で実際的な利便性にも配慮し、小電力のデバイスについては、接続される周辺機器の駆動用の電源をUSBケーブルで供給するバスパワード(「バスパワー」と省略されることが多い)による駆動にも対応している。供給電圧は5 V (±10%)、電流ローパワーデバイスは100 mA(USB 3.xは150 mA)、ハイパワーデバイス最大は500 mA (USB 2.0)・900 mA (USB 3.0) まで[25]とされている。 

(Wikipediaより引用)

へえ、知らなかった。USBで電源供給できるのはわかるけど、5Vだったとは...

ということで、この方法で電源をとることに。

 

1. 本当に5Vなの?

とりあえずUSBで供給される電源の電圧が本当に5Vなのか、という確認から。

これで5Vじゃなかったら困るし...

で、USBの端子に直接テスターの棒をぶっこんで電圧を確かめようとしたんですよ。

テスターの棒が入らねぇ...

(写真は撮ってなかったのでありません)

マジか...

これはUSBケーブル切って銅線むき出しにして計測するしかないか?

というわけで買ってきました。

 

f:id:salieri256:20191022152742j:image

 

 100均にあったUSB A-Micro B。多分よく置いているやつ。ついでに、家にニッパーもなかったので買ってきました。

これをニッパーで剥きます。

 

「...あれ?剥けないぞ...?」

ケーブルの被膜にはただ傷が入るだけ。しばらくやっていたら、中の銅線が少しづつ見えてきた。ここまできたら引っ張ったら剥けるだろ!と思って引っ張るも、剥ける気配がない。

結局、ある程度力を込めてニッパーを押し込んでいたら剥けました。入れる力の問題なのかなあ...

 

f:id:salieri256:20191022155225j:image

 

 剥いてみるとそこには4本の線が。調べると赤が5V、黒がGND、残る白と緑が通信用の線とのこと。

というわけで、赤と黒の線も剥きます。残りの白と緑は使わないから切ろうかなーって思ったけど一旦放置。

(実はここで5Vと通信用の線を間違えて後でグダった。)

 

ここで、今回使うモバイルバッテリーの登場。

 

f:id:salieri256:20191022161631j:image

 

出力が5Vであるとの表示が裏面に記載されていました。

で、さっきぶった切ったUSBケーブルとモバイルバッテリーをつないで、テスターで計測します。

 

f:id:salieri256:20191022162416j:image

 

5.12V!!

これはいけるぞいけるぞいけるぞいけるぞいけるぞ

 

2. 実際にやってみた

ここまできたらもう回路につなぐだけ!...だと思っていたけど、モバイルバッテリーからひいてきた線をどう回路につなごうか迷う。結局、とりあえず何も噛まさず直接つなぐことに。

で、モバイルバッテリーと回路の結線ができました。

スイッチON!!!

 

f:id:salieri256:20191022163933j:image

 

 つきました!!!!!

 回路の動作も確認しましたが、不具合なく動きました。

これで家でも回路が動かせる!!!!!!

 

3. 最後に

 市販のものを分解したりするのは初めてで、ちゃんと動作するか不安でしたが無事動いてほっとしてます。(まあやったのは線をむいて回路につないだだけ だけど)

USBの電源が5Vなのは初耳だったし、調べるときに知らないUSBの端子とかも知れてよかったなーって感じです。ほかにもこういう知識を身につけていきたいなあ。

 

てなわけで、おわり。