編集履歴一覧に戻る
akasakaのアイコン画像

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は直接基板データを作りましたので手書きで失礼致します) ![キャプションを入力できます](https://camo.elchika.com/c752ee77ef6487654ec0d1bce1d66c3cf662bea4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f32326365336266382d646539652d343663322d626366652d643961356166666536623731/) +線はデータ入力と電源入力して使用しています。 ロジック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)

![キャプションを入力できます](https://camo.elchika.com/c3de2375c21c4cf55790017ce80a05a5247b88ae/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f34633465353835382d373535652d343563322d383739352d656662386636643161656261/) ![キャプションを入力できます](https://camo.elchika.com/d6f1f38cbd3086d16c52e13a13ef3c45c141eba5/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f39323330646666622d333063312d343934372d613636322d373265663139346630653162/) ![キャプションを入力できます](https://camo.elchika.com/9139986992d8eedea4018c18b0e29eb9d929850b/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f65666538363232372d366130302d343566392d613731332d333033353230333538353830/) そして二つの基板を合わせて先ほどの回路を電球(っぽい)形に実装しました: ![キャプションを入力できます](https://camo.elchika.com/3b08e10dc2e2291eedf2c09b23ead3602c26c5c0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f36316563376661612d393962342d343934622d383965302d306135323065396239313339/) ![キャプションを入力できます](https://camo.elchika.com/d2a108d5fe50486e5ff6861729d018a0ecc18c23/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f62366562386463352d393634372d346531302d623361622d636165393834643062333932/) # 動かしてみます ついにArduinoを以下のように接続します | Arduino | OBSA-LHSXF | |---:|:---| | | *スイッチ部* | | 5V | 5V | | GND | GND | | 7 | OUT | | | *電球部* | | 10 | + | | GND | - | 先ほどのソースをアップロードして・・・ ![クリックして再生](https://camo.elchika.com/1a086c752201fbb732688543e9f981fd03e1884a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32613133303739382d616230632d343266652d383562632d3565623962353566363661312f34393066303563612d626366642d343733372d623139322d343337623032383162376230/) ちゃんと色を変えて光ります! じゃあこれから本番のIO基板の開発に進むしかないですね…