akasaka が 2025年12月25日22時31分12秒 に編集
コメント無し
本文の変更
# はじめに 最近は昔々の[TapTapRevenge](https://en.wikipedia.org/wiki/Tap_Tap_Revenge)っていうモバイル音ゲーのアーケード筐体を作ってみたくなりました。 このゲームのターゲットは、ノーツを押すタイミングにより色が変わる仕様です。 なお、ターゲットとしてよく他の音ゲーに使われている[100φドームボタン](https://item.rakuten.co.jp/sanwadenshi/ilumb_136/)を使用したくて、電球はウェッジタイプなのでRGBLEDを対応できません。手元にあるもので済ませたいし[OBSA-LHS7F](https://item.rakuten.co.jp/sanwadenshi/ilumb_450/?s-id=sd_browsehist_search)にアップグレードするのもちょっとバジェット超過です… # 自作RGB電球 WS2812をベースにすれば、実はワンワイヤーで制御が可能です!(実際の1Wireではないけど・・) 回路図はこちらです:(CADは直接基板データを作りましたので手書きで失礼致します)  +線はデータ入力と電源入力して使用しています。 ロジック1になってる間はLEDがデータ入力から給電されていてコンデンサーが充電されます。 ロジック0になってる間はLEDがコンデンサーから給電します。 そしてコンデンサーに貯まった電気がデータ通信にならないようにダイオードで分けています。 ということで、データバスの電流キャパが十分であれば、+に普通のWS2812制御信号を通信させたら動作しますね。 データ通信しない間はデータバスを1にすべきだけが注意しないといけません。 なお容量はリフレッシュレート次第にコンデンサーの容量を変える必要になるかもしれません。 今回の動作確認に使用したソースコード:(あんまりよくはない) ```cpp #include <Arduino.h> #include <Adafruit_NeoPixel.h> #define LED_PIN 10 #define BTN_PIN 7 Adafruit_NeoPixel pix = Adafruit_NeoPixel(1, LED_PIN, NEO_GRB | NEO_KHZ800); void doShow() { digitalWrite(LED_PIN, LOW); pix.show(); digitalWrite(LED_PIN, HIGH); } void setup() { pix.begin(); pix.setBrightness(255); pinMode(BTN_PIN, INPUT_PULLUP); } void loop() { pix.setPixelColor(0, 255, 255, 255); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); pix.setPixelColor(0, 255, 0, 0); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); pix.setPixelColor(0, 0, 255, 0); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); pix.setPixelColor(0, 0, 0, 255); doShow(); while (!digitalRead(BTN_PIN)) delay(10); while (digitalRead(BTN_PIN)) delay(10); } ``` ※ [Adafruit_NeoPixel](https://github.com/adafruit/Adafruit_NeoPixel/)ライブラリーは必須
次は適当なサイズで基板データを作成しました:(CADデータは後ほど公開予定)
次は適当なサイズで基板データを作成しました:[Github](https://github.com/vladkorotnev/T10RGB/tree/master)
   そして二つの基板を合わせて先ほどの回路を電球(っぽい)形に実装しました:   # 動かしてみます ついにArduinoを以下のように接続します | Arduino | OBSA-LHSXF | |---:|:---| | | *スイッチ部* | | 5V | 5V | | GND | GND | | 7 | OUT | | | *電球部* | | 10 | + | | GND | - | 先ほどのソースをアップロードして・・・  ちゃんと色を変えて光ります! じゃあこれから本番のIO基板の開発に進むしかないですね…