車に興味ない私が、唯一知っている車
ナイト2000
男だったら多分、知らない人がいないと思うけど
「ナイトライダー」というドラマで
主人公のマイケルの相棒K.I.T.Tの本体であるドリームカーです。
なんか面白いプラモデルないかな〜と思っていたところで
ふと、思い出して調べてみたところ
青島文化教材社というところで
このナイト2000のブラモデルがありました。
商品名に「フロントスキャナー付」と
フロントスキャナーってなんだか知らないけど
きっと、あれだよね
ちなみに、色分けもされているようで、
そのまま成形色だけでも、
ある程度あのかっこよさが再現できると言いたいところですが
ハンドルなど、全然違う色になっているので
部分塗装は必要です。
ただ塗る色が黒ばかりなので、ハードルは低いかと思います。
内装もこだわっているようです。
ちなみにシーズンごとの微妙な違いも再現されているようです。
ここまででも、十分満足したものができたのですが
ちょっと面倒なことに、電池交換がボディを外さないと
交換できないのです。
電池ってことは、ARDUINOを使ってUSBからの給電で
使えるんじゃないかな?
また、せっかくだからサウンド機能も付けらんないかな
フロントスキャナーの電源は、電池からたどって
ARDUINOには3.3Vの電源があるので
そこに繋げれば、問題なさそうです。
ちなみにDIGITALポート使って開始するタイミングの制御もしようと試みましたが
普通に繋いだだけだとOn,Offを繰り返してしまうので
多分、トランジスタなどを使ってあげるなど面倒そうなのでやめました。
あとはサウンドですが、小さいmp3プレーヤーを分解して
埋め込もうかと思いましたが、
ARDUINOで制御できるDFPlayer miniというものがあり
シリアル通信でコマンド制御して、使えるデバイスがあったので
それを使用しました。
単体で、音出すだけであれば簡単に出来たのですが、
シリアル通信がなかなかうまく出来なくて
苦労したのですが。。。
・TX,RXポートの1kΩの抵抗が違う抵抗になっていた。
・mp3データをMacでコピーしたため、変なファイルが生成されていた。
・DFPlayer miniの起動中にコマンド送っていた?
・mp3のファイル名かファイルの指定が間違っていた?
このどれかが原因かと思うけど
結局、何が悪かったのかわからないけど
うまく動くようになりました。
※うまく動作するとLEDが点灯します。。。
だいたいこんな配線に
これをなんとか押し込んで。。。
本体も色々削っています。
ARDUINO nanoだけ配線の関係上
入るスペースがなくなってしまった。。。
一応、USB外せば
本体だけで、飾ることも可能です。
完成したもの
<<プログラムソース>>
バックライトとかフロントライトも制御しようとしたので
余計なソースも入っていますが。。。
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#define SW_RX_PIN 10
#define SW_TX_PIN 11
#define LED1_PIN 4
#define LED2_PIN 5
#define LED3_PIN 6
#define LED1_TIME 500
SoftwareSerial mySoftwareSerial(SW_RX_PIN, SW_TX_PIN); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void setup() {
digitalWrite(LED_BUILTIN, LOW);
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
Serial.begin(115200);
delay(2000);
mySoftwareSerial.begin(9600);
if (!myDFPlayer.begin(mySoftwareSerial)) {
while(true);
}
myDFPlayer.volume(15);
myDFPlayer.play(1);
}
void loop() {
delay(LED1_TIME * 10);
//フロントライト
digitalWrite(LED3_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME *3); //← バックライト
digitalWrite(LED3_PIN, LOW); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME *3); //← バックライト
digitalWrite(LED3_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME * 2); //← バックライトバックライト
digitalWrite(LED3_PIN, LOW); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME *3); //← バックライト
delay(LED1_TIME * 30);
//バックライト
digitalWrite(LED1_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(LED2_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME *3); //← バックライト
digitalWrite(LED1_PIN, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(LED2_PIN, LOW); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME *3); //← バックライト
digitalWrite(LED1_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(LED2_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME * 2); //← バックライトバックライト
digitalWrite(LED1_PIN, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(LED2_PIN, LOW); // turn the LED on (HIGH is the voltage level)
delay(LED1_TIME *30);
}