ガチャの「電車の発車ベルスイッチ」の音が良かったので,スイッチ回路を引き出してマイコン制御でドアの開閉動作と連動してみました。

ガチャの「電車の発車ベルスイッチ」をマイコン制御しようと回路を調べてみた



プロトタイプなので,ドアの開閉もサーボで一番簡単なものにしました(^^;;。

MPU:ATtiny404 (Arduino)
音源:TOYS CABIN 「電車の発車ベルスイッチコレクション3 (see you again)」
サーボ:SG-9g






概略の回路図です。

・発車ベルは裏の電池を抜き,ATtiny404と電源(5V)を共有しています
・サーボは別電源にしないと動作が安定しませんでした






動作させてみた動画です。
・録画は音が小さめですが,実際は結構鳴っています(^^)。





テストプログラムです。
・音源のトリガーはチャタリング防止のためか反応が鈍くなっています。
 このため今回は20msぐらいの長めのパルスを送信しています。
・サーボ動作はdelayをはさんで少しゆっくりにしてみました。


#define LED_Pin 0
#define Trigger_music_Pin 2
#define Trigger_announce_Pin 3

#include <Servo.h>
Servo myservo1;

void setup() {
 // initialize digital pin LED_Pin as an output.
 pinMode(LED_Pin, OUTPUT);
 pinMode(Trigger_music_Pin, OUTPUT);
 pinMode(Trigger_announce_Pin, OUTPUT);
 digitalWrite(LED_Pin, HIGH);
 digitalWrite(Trigger_music_Pin, LOW);
 digitalWrite(Trigger_announce_Pin, LOW);
 myservo1.attach(1);   // servo for door, Pin 1
 myservo1.write(45);
}


void loop() {
 delay(5000);

 digitalWrite(LED_Pin, LOW);     // turn the LED on, open the door
 for (byte svpos=45; svpos<136; svpos++){
     myservo1.write(svpos);    
     delay(20);
 }

 delay(2000);
 digitalWrite(Trigger_music_Pin, HIGH);  // music start     
 delay(20);
 digitalWrite(Trigger_music_Pin, LOW);
 delay(9000);

 digitalWrite(Trigger_announce_Pin, HIGH);  // door closing announcement
 delay(20);
 digitalWrite(Trigger_announce_Pin, LOW);
 delay(5000);

 digitalWrite(LED_Pin, HIGH);    // turn the LED off, close the door
 for (byte svpos=135; svpos>44; svpos--){
     myservo1.write(svpos);    
     delay(33);
 }

} // loop end





以上,お試しでも音源の音が良いので楽しいですね(^^)。

今回ぐらいの動作なら8pinのMPUでも十分ですが,センサーなんかを追加したいと思っているので14pinのATtiny404にしています。

ちゃんと作るドアは列車のドア型,家のドア型,宝箱のふた型,,,何でも良いですけど音に合うかどうかですよね(^^)。