昔作ったもの紹介

スマホで遠隔家電操作(Arduino)

大学生のときに作った。

写真はこちら。

中身は以下のようになっている。

主な使い方

Ethernetを通じ、Webサーバーとして機能する。所定のURLにアクセスされると、予め記憶させておいたエアコンのリモコン信号や照明のリモコン信号を送信することができる。また、部屋の温度も確認でき、電気の消し忘れやエアコンの消し忘れにも対応できる。

ハードウェア構成

  • Arduino Ethernetがベース。
  • もともとEthernetケーブルがついている。
  • 電源アダプタ接続部はハンダをとり、取り外した。
  • アナログ読み込みピンには、OPアンプを通じて温度センサを接続。
  • デジタル読み込みピンには、赤外線センサーを取り付けてある。
  • 出力ピンは、MOS-FETを通じてパワーLED(2種類の波長あり)に接続。(USBのパワーではパワーLEDの電流が稼げないため、大容量電気二重層コンデンサで蓄電させてMOS-FETで流すことでパワーを稼いでいる。)

回路図は思いつきで作っていったので、特にない。

ソフトウェア構成

自分で書こうとしていたが、調べてみるとIRRemote用のライブラリが公開されていたので、こちらを使用。ただし、容量が大きく、Webサーバーも読み込むとSRAMの使用がフルに近くなり、動作が安定しない。そのため、リモコン信号を生で書かずにプログラムで工夫したり、Flashを積極的に利用した。

おまけ

最近はAppleが家電操作のためのHomeKitというものを公開している。自分も使ってみたかったので、現在はRaspberry Pi3とUSBで接続し、Raspberry Pi3をWebサーバー&HomeKitサーバー(HomeBrew)としてそこから制御することで、iPhoneのデフォルト機能から家電を操作できるようにしてある。

こうすることで、開発環境もRaspberry Pi3に入れていつでも変更できて大変便利である。

(が、あまり使っていない)

色温度調整機能付きストロボ

これも大学生のときに作った。しかし、大型で使い物にならなかったため、箱に入れたりせず、既にばらした。

機能

ホットシュー付きカメラのホットシューよりストロボ信号を受けると、周囲の色温度に対応した白色光を発光する外部ストロボ。

構成

  • Arduinoベース。
  • 周囲の色温度はCdSセンサー&百均のRGBセロファンで読み取り、ヴィーンの放射式でフィッティングして色温度を測定する。(失敗した)
  • ハイパワーRGBLEDにそれぞれ、Vcc―電流制御用トランジスタ―LED―スイッチング用MOS-FET―GNDとつながっている(順番は違うかも)。
  • 電流制御によりLEDの発光強度はリニアに制御される。
  • Arduinoの信号の遅れの影響が出ないよう、常に、周囲の色温度または指定した色温度の電流制御用の電圧出力がなされており、ストロボ信号を受けた瞬間だけMOS-FETがONになる様になっている。
  • 好きな色を発光させることももちろんできる。

感想・コメント

今となってはそれ系の会社にいるので知ったことだが、カラーフィルターなるものが売られているらしい。当時は探したけどなかったので、百均のセロファンを使った。しかし、百均のセロファンは非常にフィルターとしての性能は悪く、広い透過波長幅を持っていた。そのため、色温度の測定は散々な結果になった。

サイズも大きく、面白くもないのですぐに分解した。

機械学習用計算サーバーの構築

問題発生時に再構築できるよう、備忘録。

ハードウェア構成

自分に必要なスペックは、

  • 並列処理速度
  • 静音性(ベッドの近くに置くため)
  • 安さ(ランニングコストも含む)
  • ほどほどの性能

以上。

調べた結果、GPU性能だけ異常に高い偏った構成のため、BTOは高い。格安のタワーPCにグラボを増設するのが最も安く、また同額程度で自作ができることがわかった。久々に作るのも面白そうだし、構成をこだわれるので、自作にした。

並列処理速度に関しては、GTX 1070・GTX 1080・GTX 1080Tiで迷ったが、なんとなく1080を選択した。SLIはするつもりがないため、安い非対応マザボを選択した。

電源ユニットは600W程度あれば十分なようである。ただ、深層学習は、回し続ける必要があるため電気代が非常にかかるとのことである。計算を回し続けると、月に7000~8000もかかってしまうそうなので、少し高めだったが電力変換効率の高い電源ユニットを選択した。10%の変換効率の違いで700~800円の違いが月に出てくる。結果的に安くなると判断した。

以上、合計13~14万程度。基本的にサーバーとして利用するため、インストール時のディスプレイはテレビを使用。キーボード、マウスは使い回し。

驚いたこと

  • 最近のPCケースは、安いのにしっかりしていて驚いた。付属品もしっかりしている。
  • BIOSでマウスが使える。
  • HDDは遅すぎる。Optane MemoryがUbuntuで活かせそうであれば使いたい。

ソフトウェア構成

  • Ubuntu Server 16.04 LTS
    • Ubuntu MATE Desktop (minimal installation)
      • 通常のUbuntu Desktop環境はGeForceのCUDAドライバとの相性が悪く、VNC接続時に正常に起動してくれないことがわかった。その為、代替として、taskselコマンドでUbuntu MATE Desktopを入れた。やっぱり昔のGNOMEは良い。
    • OpenSSH
      • これは必須
    • vnc4server
      • これも必須
    • CUDA 8.0
      • GPUでの並列演算用ドライバ。GeForceのサイトより。
    • cuDNN
      • 深層学習用ライブラリ。GeForceのサイトより。
    • Anaconda
      • Python環境構築のため。
  • Windows 10 Pro OEM版(グラボ・マザボのファームウェアアップ用)
    • ASUSマザボ用ソフト
    • GTX 1080用ソフト

Windows 10は、なんと1400円程度で手に入った。PlayAsia.comという、ある程度有名で信用できるサイトよりOEM版を購入した。OEM版のため、別のパソコンに移行はできないがマザボを変えない限りは使える。しかし、訳あり商品なのか、既にアクティベーションキーが使用されているとのことでアクティベーションに失敗。そこでマイクロソフトのサポートに電話したところ、諸々の操作の後、アクティベートしてもらえた。これは非正規品だったのか?電話で聞けばよかったが、何とも言っておらず、申し訳ございませんと言っていた。謎である。

インストール手順は次の記事に書くことにする。