3万円のロボットで動くガンダムを作る!? RX-78 NT-1 アレックス Arduinoで全武装完全LED電飾
3万円のロボットで動くガンダムを作る。
今回はArduinoを使ったLED電飾です。
発光させるのは4種類の武装(ビームサーベル、腕部90mmガトリング砲、頭部60mmバルカン砲、ビームライフル)とメインカメラ(目)。
腕部ガトリング砲、頭部バルカン砲は点滅。
モーション連動で発光させるため、ロボット制御基板からのサーボ駆動信号をArduinoへ入力します。
サーベルとライフルは差し替えるので、LED出力は全部で4CH。
サーボ信号入力2chでLED出力4chを制御します。
(サーボ信号入力各chの+動作側と-動作側を別に使用)
作成したプログラムは下記になります。
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」もリリースされましたが、モーション連動で発光させればまた違った雰囲気になると思います。
3万円のロボットで動くガンダムを作る!? 機種変更、RX-78 NT-1アレックスへ
機体をRX-78-2(ナナハチ)からRX-78 NT-1(アレックス)に変更。
アレックスは「機動戦士ガンダム0080 ポケットの中の戦争」に登場する機体。
ナナハチの細い足首ではメカむきだしが避けられませんが、アレックスなら工夫すれば綺麗に収まりそうです。
今回は腕部ガトリング砲可動機構と一部外装パーツを作りました。