かっぱの覚え書き

とりあえずなんかメモ書きとか

ルパパトサウンドロップ改造


ルパパトサウンドロップ改造

ルパパトのサウンドロップをボタンでキャラ切り替えができるように改造しました。

f:id:une-lettre-arrive:20200807090348j:plain

使った部品です。

・AVRマイコン ATTINY85-20PU
http://akizukidenshi.com/catalog/g/gI-09573/

・タクトスイッチ(黒)
http://akizukidenshi.com/catalog/g/gP-08073/

・·基板取付用小型ダイナミックスピーカー UGCM0903EPD(5.0)
http://akizukidenshi.com/catalog/g/gP-10129/


こんなもんですね。電源はサウンドロップボタン電池から供給しているので別電源はありません。ちなみに電源スイッチもないので基本的使わないに時は絶縁シートをつけています。

まずは開けます。

f:id:une-lettre-arrive:20200807090426j:plain

いじくりまわした後なので汚いですが
右にR3R4R5があります。これを繋げることで音声が変化します。

パトレン1号  なし
パトレン2号  R3
パトレン3号  R4
ルパンレッド  R3R4
ルパンブルー  R5
ルパンイエロー R3R5

1音声だけ鳴らしたいなら上記の番号を横に繋げれば変更できます。

今回は全ての音声を鳴らしたいのでPICで制御しています。

f:id:une-lettre-arrive:20200808042036j:plain

配線箇所ですが
青はVCC
緑はGND
赤はR端子になります。
VCCは縦に繋がっているので一か所配線すれば大丈夫です。

それを踏まえた上でこのように繋げます。

f:id:une-lettre-arrive:20200808042715p:plain

実際繋げた写真です。

f:id:une-lettre-arrive:20200808045811j:plain

スペース確保の為に備え付けのスピーカーを外し小型に変えています。

収めた写真です。

f:id:une-lettre-arrive:20200808050023j:plain

切り替えスイッチは端に穴を開けてグルーガンで固定しました。
ピンバイスやデザインナイフで加工しています。怪我に注意してください。

f:id:une-lettre-arrive:20200808050215j:plain

あとは 蓋をしてシールを張り替えて完成です。シールはネットで良さそうなのを丸く切って使いました。配線の関係で片方のネジが止められなかったのはナイショです(笑)

f:id:une-lettre-arrive:20200808050559j:plain



以下スケッチです。
前回作った仮面ライダーサウンドロップのスケッチを流用してるので使わない行が何個かあります。
一応//はかけておきましたが動作に支障はないはずです。


次はプリキュアのでも改造しようかと思っています。
ちなみにキラメイジャーはできません。
検証したら2種類の基盤に分かれて音声が収録されていたので一つのサウンドロップでというのは無理でした。
プリキュアは一つの基板に全部入っています。


■スケッチ

  1. #define r3_pin 3//R3
  2. #define r4_pin 4//R4
  3. #define r5_pin 1//R5
  4. //#define vcc_pin 2//VCC
  5. #define select_pin 0//セレクトピン
  6. int select;
  7. void setup() {
  8.   //Serial.begin(9600);
  9.   pinMode(r3_pin , OUTPUT); //R3
  10.   pinMode(r4_pin , OUTPUT); //R4
  11.   pinMode(r5_pin , OUTPUT); //R5
  12.   //pinMode(vcc_pin , OUTPUT); //基板VCC
  13.   pinMode(select_pin, INPUT_PULLUP); //キャラクター選択
  14. }
  15. void loop() {
  16.  
  17.   //digitalWrite(vcc_pin, HIGH); //基板電源ON
  18.  
  19.  
  20.   if(digitalRead(select_pin) == LOW){delay(200);select++;if(select > 6){select=1;} //キャラクター選択
  21.   digitalWrite(r3_pin, LOW);digitalWrite(r4_pin, LOW);digitalWrite(r5_pin, LOW);//リセット
  22.   switch(select){
  23.   case 1:{digitalWrite(r3_pin, LOW);digitalWrite(r4_pin , LOW);digitalWrite(r5_pin, LOW);} break;//パトレン1号
  24.   case 2:{digitalWrite(r3_pin, HIGH);} break;//パトレン2号
  25.   case 3:{digitalWrite(r4_pin , HIGH);} break;//パトレン3号
  26.   case 4:{digitalWrite(r3_pin, HIGH);digitalWrite(r4_pin , HIGH);} break;//ルパンレッド
  27.   case 5:{digitalWrite(r5_pin, HIGH);} break;//ルパンブルー
  28.   case 6:{digitalWrite(r3_pin, HIGH);digitalWrite(r5_pin, HIGH);} break;//ルパンイエロー
  29.   }
  30.   }
  31.   
  32.   //Serial.println(digitalRead(6));
  33.   //Serial.println(select);
  34. }