Kei's mecha factory

RC、ロボット、動く模型で遊ぶ!

3万円のロボットで動くガンダムを作る!? RX-78 NT-1 アレックス Arduinoで全武装完全LED電飾

 

3万円のロボットで動くガンダムを作る。

今回はArduinoを使ったLED電飾です。

youtu.be

発光させるのは4種類の武装ビームサーベル、腕部90mmガトリング砲、頭部60mmバルカン砲、ビームライフル)とメインカメラ(目)。

腕部ガトリング砲、頭部バルカン砲は点滅。

モーション連動で発光させるため、ロボット制御基板からのサーボ駆動信号をArduinoへ入力します。

サーベルとライフルは差し替えるので、LED出力は全部で4CH。

サーボ信号入力2chでLED出力4chを制御します。

(サーボ信号入力各chの+動作側と-動作側を別に使用)

作成したプログラムは下記になります。

f:id:cyeager:20201230215829j:plain

unsigned long durationA;
unsigned long durationB;

void setup() {
Serial.begin(9600);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);

}

void loop() {
durationA = pulseIn(7, HIGH);
durationB = pulseIn(8, HIGH);

Serial.println(durationA);

if (durationA < 1300 || 1700 < durationA) digitalWrite(2, HIGH);
else digitalWrite(2, LOW);
if (durationA < 1100)
digitalWrite(3, HIGH);
delay(20);
digitalWrite(3, LOW);
delay(40);
if (1100 <= durationA) digitalWrite(3, LOW);
if (durationB < 1300)
digitalWrite(4, HIGH);
delay(30);
digitalWrite(4, LOW);
delay(60);
if (1300 < durationB) (4, LOW);
if (1700 < durationB) digitalWrite(5, HIGH);
else digitalWrite(5, LOW);
}

「pulseIn」がサーボのPWM値を読む関数です。

(パルスのHigh側の時間を検出)

ピン7、8のPWM値を変数「durationA、durationB」とします。

この変数を使ってピン2、3、4、5をHIGH(=LEDオン)にする条件を定義します。

 

プログラムコードをYoutubeの概要欄に張ろうとしたら「角カッコはダメ」と出たので、プログラムの説明と併せてこっちに書きました。

部品製作などについては動画の方をどうぞ。

Arduinoは初めてですが、ネットで調べながら何度か試行錯誤して無事動きました。

Arduinoには興味があったので良い練習になりました。

 

光るビームサーベルが付属する「PG UNLEASHED」もリリースされましたが、モーション連動で発光させればまた違った雰囲気になると思います。

f:id:cyeager:20201230214745j:plain

ビームサーベル発光1