今年のハロウィンは長男くん
が恐竜になりたいというので、せっかくなら背びれや胸がオドロオドロしく光るゴジラがいいのではということでダンボール ゴジラ コスプレ衣装を製作しました。
☟まずは動画をご覧ください!
ダンボールのベースは去年のロボットを流用しました。リサイクルで環境にも優しいです。
Hey!バス・ストップ
以下に製法を記します。

目
ゴジラの目としてAdafruitの目玉アニメーションコードを利用しました。
2つのディスプレイに目を表示させて、I2Cで目の動きを同期させます。
構成
マイコンにAdafruit ItsyBitsy M0 Expressを使用してSPIでディスプレイを接続して、I2Cでマイコン間の通信をして表示を同期します。I2CのSDA, SCLピンのプルアップ抵抗(4.7kohm)は忘れないように注意しましょう。


部品
- マイコン Adafruit Itsy Bitsy M0 Express

- 1.8インチ TFTディスプレイ 128*160ピクセル

- スライドスイッチ

Arduinoコード
目ん玉アニメのライブラリは以下にアップされています。
https://github.com/adafruit/Uncanny_Eyes
また以下のライブラリの追加も必要です
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit-ST7735-Library
https://github.com/adafruit/Adafruit_ZeroDMA
コード修正
使用するマイコンとTFTディスプレイ用にコード修正加えます。I2Cで同期するための設定も追加しました。
- 18, 19行目
|
//#include "graphics/defaultEye.h" // Standard human-ish hazel eye -OR- #include "graphics/dragonEye.h" |
表示する目としてdragonEye.hを選択
- 31行目
|
//#include "graphics/logo.h" // Otherwise your choice, if it fits |
コメントアウトして起動時のロゴ表示をなくす。
- 48, 49行目
|
{ 9, -1, 3 }, // LEFT EYE display-select and wink pins, no rotation { 10, -1, 1 }, // RIGHT EYE display-select and wink pins, no rotation |
左右のディスプレイCSピン指定、瞬き外部ボタン不使用(-1)、ディスプレイ描画回転
- 80-83行目
|
//#include <Adafruit_SSD1351.h> // OLED display library -OR- #include <Adafruit_ST7735.h> // TFT display library (enable one only) #define DISPLAY_DC 7 // Data/command pin for ALL displays #define DISPLAY_RESET 4 // Reset pin for ALL displays #define SYNCPIN A2 // I2C sync if set, GND this pin on receiver #define SYNCADDR 0x08 // I2C address of receiver |
SSD1351.hをコメントアウトして、ST7735.hのコメントアウトを解除。
TFTリセットピンを デジタル4ピンに変更しました。
表示映像同期用I2C設定として受信側はA2ピンをGNDで判断しアドレスを0x08とした。
- 127, 128行目
|
//#define BLINK_PIN 1 // Pin for manual blink button (BOTH eyes) #define LIGHT_PIN A1 // Photocell or potentiometer (else auto iris) |
瞬きボタンを無効にして、瞳孔の大きさを決めるピンをA2からA1に変更。
参考
頭部
去年のロボットの頭部を加工して目のディスプレイを埋め込んでゴジラの頭を作製しました。
歯を発砲スチロールで削り出します。
歯を付けて黒く塗って完成!
下あごはダイソーで購入したマグネットボタンでサイドを固定して上下に可動し取り外しも可能にしています。

電池は頭部後ろに仕込みました。

しっぽ
ゴジラのしっぽには無数のヒレがあるのでプラダンで作りました。

4つのダンボール箱をヒモでつないでしっぽを繋いでヒレの下にテープLEDを仕込みました。
プラダンのヒレの両サイドは黒のカラーボードで挟んでグルーガンで接着固定しております。

胴体
胴体も去年のロボットのものを再利用しました。
全面はLEDを赤くぼんやり点滅するようにして綿を貼り付けて上から黒い布を乗せました。いい感じで光が拡散します。
背中にはしっぽ同様にヒレを付けてLEDで光るようにしました。
手足
手は古い手袋を加工、足はダイソーのスリッパを加工しました。爪はプラダンで作って縫い付けました。

放射火炎
ゴジラの放射火炎を霧吹きにLED光を当てて再現いたしました。
構成
霧吹きのトリガを曲げセンサで検出してLEDを光らせます。

部品
Arduinoコード
曲げセンサの曲げによる抵抗変化をアナログ1ピン(GPIO2)で検出してLEDリングを発光させています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> // Required for 16 MHz Adafruit Trinket #endif #define PIN 3 #define NUMPIXELS 16 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int sensorPin = 1; int sensorValue = 0; // variable to store the value coming from the sensor int state = 0; void setup() { #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif pixels.begin(); pixels.setBrightness(50); pixels.clear(); } void loop() { sensorValue = analogRead(sensorPin); if(sensorValue > 600 && state == 0){ for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(255, 0, 0)); } pixels.show(); state = 1; delay(30); }else if(sensorValue > 600 && state == 1){ for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(0, 0, 255)); } pixels.show(); }else if(sensorValue < 600 && state == 1){ pixels.clear(); pixels.show(); state = 0; } } |

動作
水噴射の冒頭に赤を一瞬挿入することで爆発力とエネルギーの移ろいを表現しました。