入退室管理システム Monban を支える技術

この記事は、SYSKEN Advent Calendar 2021 3日目の記事です。

あらたです。 後期中間試験が終わり、最近は寒い日が続くようになってきました。

今回はシステム研究部で開発・運用を行っている入退室管理システムについて書いていきます。

目次

  • 背景
  • 作ったもの
  • 使用した技術
  • 感想

背景

昨年度から本校では感染症対策のため、課外活動に参加した学生を記録するようになりました。これを受けてシステム研究部では、Google Formsを使用して課外活動に参加した部員を記録していました。しかしこの方法は、正直に言ってかなり面倒です。記録を取るためだけに以下の行程が必要になります。

  1. QRコードをスマホで読み取る
  2. 必要な情報を記入する
  3. 送信する

1回の記録に1分かかると考えれば、5年間ある高専生活のうち30時間を無駄にすることになります。貴重な青春時代をそんなことで失うわけにはいきません。そこで、学生証だけで記録を取ることができる本システムのアイデアを思いつきました。

作ったもの

部室の入室時と退出時に学生証をかざすと、氏名と時刻が自動で記録されます。同時にSlackのチャンネルにも投稿され、誰が部室にいるのかを観測できます。

初期バージョンの開発期間は1日で、部費で購入してもらった機器が届いたその日のうちに動くものをつくりました。高専プロコンで忙しい時期に他のことをしたくなるのはよくあることだと思います。

使用した技術

構成図は以下のようになっています。

クライアントサイド

ハードウェアとして、鯖室にあったRaspberry Pi Model B+ v1.2と購入したSony PaSoRi RC-S380を使用しています。ここらへんの機材を発掘できるのは鯖室のよいところだと思います。

こちら側でしている処理は非常に単純で、学生証から読み取った学籍番号をサーバーに投げるだけです。インターネットへの接続や重複を防ぐ処理など面倒な部分がいくつかありましたが、それだけでした。

サーバーサイド

GolangとEchoでAPIサーバーを実装して、それをHerokuにデプロイしています。クライアントから受け取った情報は適切な加工を施したあとにGoogle Sheetsへ保存します。

最初はDBに保存しようと考えていましたが、データの取り出しやすさや安定性を考え最終的にGoogle Sheetsを選択しました。スマホからもデータを確認することができるため、よい選択だったのではと考えています。

「記録されたデータの可視化を行うサイトを構築する」というアイデアもありましたが、氏名や学籍番号、活動時間といった個人情報がインターネットに公開されるのはまずいと考え断念しました。ただ、かなりの量のデータが収集されるため、部内ハッカソンでなにかに活かせればと思っています。

感想

今のところは元気に動いてくれていてとても楽しいです。アイデア段階ではまったく想定していなかった活用方法もあり、なかなか便利なシステムになりました。特に、誰が部室にいるのかを把握できるようになったのは一つの革命だと思っています。

一方で、以前までシス研で使用されていた鍵管理ツールのように製作者依存の運用になっていることは大きな課題です。部として運用するための仕組みを整えつつ、今後もシステムを改善していきたいです。

明後日はTomookiの投稿です。お楽しみに!

線を引くだけ

この記事は、SYSKEN Advent Calendar 2021の2日目1日目の記事です。

 

こんばんは、部長です。ポケモン厳選にいそしんでいたためAdvent Calenderに取り掛かるのが遅くなってしまったことをお詫びします。

さて、今回の記事はIllustratorで線を引くだけのものです。

Illustrator(以下Aiと表記)は皆さんご存じAdobeが開発・提供しているデザインソフトです。AiはPhotoshopなどの色のついた点の集合を扱うものとは違い、ベクターデータを扱うソフトです。ベクターデータ、つまり線のデータを扱うため後から拡大縮小しても崩れにくいというのが特徴です。

Aiはベクターデータを扱うと言いました。つまり、線のデータが無いところに突然物を生やす、といった行為はできません。なにを表現するにもかならず線を引く必要があります。そのことを踏まえてデザインを構築していきましょう。

 

1.線を引く

線を引くにもいきなりフリーハンドで作っていくことはハードルが高いですし、整ったものを作るのは困難だと思います。そこで、Aiの「ペンツール」を使って線を引いていきます。このペンツールはクリックした場所を経由して折れ線を引いてくれます。始まりと終わりの2点だけを指定すれば1本の直線を引けますね。

ペンツールでひたすら線を引いていくことでもデザインはできていきますが、それでは昨今流行の正円や正方形をベースとしたデザインはかなりめんどくさいものになりますね。そこで、「長方形ツール」や「楕円ツール」を使用していきます。

これらのツールを使えばすべての角が直角な長方形や綺麗な円を使って様々なデザインを作れますね。Shiftキーを押しながら使えば正方形や正円だって綺麗に作れます。

2.色を付ける

先ほどAiは線のデータを扱うと言いました。ですが線だけでデザインを作るのはいささかハードルが高すぎます。そこで、先ほど引いた線の中の色を決めればどうでしょうか。だいぶ印象が変わりましたね。

ざっくり言うとAiは線がどこにあるか、そして線が何色か、線の内側は何色か、の3つがカギになります。というかすべてこれでできているといっても過言ではないでしょう。この3つをいじっていくだけでほとんどの形が作れます。

さて、結局はこの2つだけわかっていれば基本的には問題ないのですが、さすがにこれだけではいささか不便です。ここからはこれらを念頭に置いていろんな形を作るうえであると便利なことを並べていきます。

 

組み合わせる

基本的には1に描いた「ペンツール」と「長方形ツール」、「楕円ツール」をメインに作っていきます。では例えばNintendo SwitchのイラストをAiで作ろうと思うとどうすればいいでしょうか。

Switchを単純な図形に置き換えて考えてみましょう。画面がある本体の形は長方形です。その横についているJoy-conも長方形ですね。正面から見てしまえばSwitchは大小3つの長方形が並んでいますね。ということでまずは大きな長方形を真ん中にその左右に小さい長方形を置いてみましょうか。

うん、だいぶSwitchぽいですね。そんなことないですか?

では左右の長方形の外側の角を丸めてみましょうか。Shiftキーを押しながら選択をすると複数選択ができます。その状態でCtrl(Macならcommand)キーを押すと四角形の角に丸い印が出ますね。そのCtrlを押した状態でSthitを押して、その状態で丸めたい角を選択します。丸めたい角にある丸い印が青くなっていればその状態で丸めたいだけ内側にその印をドラッグします。

こうすればほら、だいぶSwitchっぽいんじゃないですか? え、まだダメ? じゃあ今度はジョイスティックと各種ボタンを足していきましょうか。

今度はもっと簡単です。長方形ツールでそれぞれにちょうど合ったサイズの円を足していきます。この時に作るのはジョイスティック用の丸が1つとボタン用の丸が1つだけです。それがつくれたらAltキーを押しながらドラッグしてみてください。複製できましたね。複数の同じサイズのものを置く場合、1つを複製した方がきれいに作れるのでこれを使って他のパーツも作っていきます。

かなりSwitchに見えてきましたね。それぞれの中に色を付ければSwitchだとわかるのではないでしょうか。

 

Illustratorでデザインをするうえで重要になるのは組み合わせて形を作っていくことです。そのほかにも面白い機能はいろいろあるのでまずは触ってみてください!

 

余談ですが、今回Advent Calenderの参加者が少ないので1日おきに記事を出します。1日目を僕がしくじったので次は明日、3日です。

ステージ照明システムを作ってみた

この記事は、 SYSKEN Advent Calendar 2018 25日目の記事です

どうも、しるびあです。
クリスマス当日ですが、いかがお過ごしでしょうか。私は、進路が決まって嬉しさを噛み締めています。しかし、事前に組まれた予定を外すことはできず、本記事を書いているわけなのです。

ということで、今回は先日の弥生祭に合わせて製作したステージ照明(LEDだけですが)のコントールシステムについてまとめてみようと思います。

続きを読む »

GANで声質変換をしたら衝撃の結果に!?

この記事は、 SYSKEN Advent Calendar 2018 24日目の記事です。

お久しぶりです。てんぷらです。
皆さんはクリスマスイブいかがお過ごしでしょうか。
私は、WSLの設定をしていたらオールしてしまったので眠いです。

本日は、GANを使用して声質変換に挑戦してみた話をしようと思います。

続きを読む »

rand 関数や java.util.Random と結晶構造

この記事は,SYSKEN Advent Calendar 2018 の23日目の記事です(?).

代打のふぃらっはです.もうすぐクリスマスですね.自分宛てのプレゼントと思って何冊か本を注文しましたが,ひたすら虚しいだけでした.

今日は,線形合同法(Linear congruential generator)の結晶構造についてちょっと語ろうと思います. 続きを読む »

再帰関数と狂気のアッカーマン

おはようございます(22時)
現在就職活動や卒研でようやくひと段落し,なんとか落ち着きを取り戻したいしかずです.
今回もまたもや巨大数の記事です.
最近はシス研の巨大数の人になりつつありますが,実際そんなことはないです. 続きを読む »

OSが半分吹っ飛んだ話

この記事は、SYSKEN Advent Calendar 2018の19日目の記事です。

はじめに

こんにちは、るっちです。もう2年前とは違い、すっかり幽霊部員と化してしまいました。
今回は、卒研の環境構築でUbuntuを弄っている際に、何が何だかわからぬうちにOSが(私の中では)半分吹っ飛んでしまった話をしようと思います。昨日の記事より来られた方は把握されていると思いますが、残念ながらそこまでエキサイティンではないです。すみません。

続きを読む »