見出し画像

作ったもの: シグナルタワー&USB制御装置

つくったもの

Q. なぜ作ったの?
A. 面白そうだから & もったいなかったから

動画はページ末尾

経緯

昔、Amazonで勢い余ってシグナルタワーを買いました。

サーバーの稼働状態とかで光らせると面白い、というのを見ていたため。
参考: 動く!改造アホ一台 (akibabara.com)

で、買って一度光らせて放置していたのですが、先日荷物整理していた時に出てきたので、流石にもったいないなあという想いから、きちんと作ることにしました。

ケース

パトライト社の付属説明書の図面から、本体下部のネジがハマるように3Dプリントして作成。きっちりハマりましたが、ネジ止めなどしていないので引っ張るとスポっと抜けます。

それだけだと回路が収まるスペースが無いので、家にあった小物入れ(確かニトリ製)にピッタリハマる蓋を印刷して、そこにネジ止め。

もっとこだわって作りたかった気もするんですが、3Dプリント時間との兼ね合いでちょっと断念

シグナルタワーをはめる台。これ単体で自立する
台と小物入れをつなぐための蓋
うちの3Dプリンタ(Ender-3Pro)
引っこ抜くとこんな感じ
蓋は載せているだけなので、引っ付き虫で固定(もうちょっと良い固定ができたはず…)

制御回路

制御回路は以下の組み合わせです。
・シグナルタワー
・リレー基板
・マイコンボード(Arduino Micro相当)
・ACアダプタ

回路は回路図を引くのもめんどくさいほどシンプルです

回路

制御プログラム

こちらも非常にシンプルです。
gpsnmeajp/signal_usb_arduino (github.com)

9600bps UARTで来たものの下位3bitを、シグナルタワーに割り当てているだけです。

ただし、デモ用に、一定時間経過後に適当に点滅する機能もつけているため、null byteを受信するとタイマーをリセットする機能がついています。

const int RED = 8;
const int YELLOW = 7;
const int GREEN = 6;

const int LIGHT_ON = LOW;
const int LIGHT_OFF = HIGH;

unsigned long t = 0;

void setup() {
  Serial.begin(9600);

  pinMode(RED, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(GREEN, OUTPUT);
  digitalWrite(RED, LIGHT_ON);
  digitalWrite(YELLOW, LIGHT_ON);
  digitalWrite(GREEN, LIGHT_ON);
  delay(500);
}

void light(int n) {
  digitalWrite(RED, !(n & 1));
  digitalWrite(YELLOW, !(n & 2));
  digitalWrite(GREEN, !(n & 4));
}

void loop() {
  int n = Serial.read();
  //受信データの下位3bit
  if (n > 0) {
    light(n);
    //無信号時間を更新
    t = millis();
  }else if (n == 0) {
    //無信号時間を更新
    t = millis();
  }
  //30秒間無信号だったらデモモードに入る
  if (millis() - t > 30 * 1000) {
    light(millis() >> 14);
  }
}

Android側リモコンプログラム

ソースコードは以下
gpsnmeajp/signal_usb_android_usb_host (github.com)

usb-serial-for-androidを使用し、1バイト送っているだけのプログラムです。
mik3y/usb-serial-for-android: Android USB host serial driver library for CDC, FTDI, Arduino and other devices. (github.com)

Wi-FiやBluetoothなど、リモコン操作可能なものに発展できます。
ネット上の情報をもとに動作させても楽しそうです。

自分も作りたいという人向け

・amazonとかでパチモノのシグナルタワーはたくさんあるので、 本物へのこだわりがなければそれでいいと思います。(たしか3000円くらい)
・電子工作したことない人は、USBシグナルタワーが3万円くらいで売ってるのでそっちでいいと思います(制御方法は知りません)
・たまたま売ってたのが24Vだったのでそれを使いましたが、12V品を使えば5Vとかでも光ったかもしれません