自作ダンボールコスチューム 機動製紙ダンボル
子どもたちのハロウィンの仮装どないしようかと相談したところ、長女ちゃんはお年頃になりつつあり、手作りは嫌だとのことで(泣きたい。。。)、9月終わり頃にみんなでドンキホーテに衣装を買いに出かけました。
長女ちゃん
ダンボールコスチュームを選択。。。これ大人用なんだよなぁ。。。どうしてもこれがいいときかないので。。。
よし!お父ちゃん
ってことで長男くん
目次
機動製紙ダンボル
早速完成品を御覧ください。
できた−!
機動製紙ダンボル#ハロウィン pic.twitter.com/uAJy8j9DHW— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月27日
バカバカしいけど、かわいいでしょ 😆
以下が事前に描いた設計図。若干作りながら変更したけど大体は想定通りにできました♪
以下に制作過程を記載します。
足
ダンボールを切って組立てて
マイコンと電池、スイッチを内部にグルーガンで固定
LEDテープを貼り付けてマイコンに配線します。足の底面を赤、側面を白く光らせました。
強度を増すために表面に木工用ボンドを塗って乾かします。乾いたら透明になってニスを塗ったようになります。
構成
部品
- マイコン Arduino Pro Mini 5V/16MHz
- LEDテープ NeoPixel
- 電源スイッチ
- 9V電池
ソケットは以下を使用しました。
Arduinoコード
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 45 46 47 48 49 50 |
30#include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define PIN1 A3 #define PIN2 A2 Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(30, PIN1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip2 = Adafruit_NeoPixel( 7, PIN2, NEO_GRB + NEO_KHZ800); //LEDを乱数でチラチラさせる int lumMin = 30; float lum[30] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; unsigned long interval = 0; void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code strip1.begin(); strip2.begin(); strip1.setBrightness(45); strip2.setBrightness(45); strip1.show(); // Initialize all pixels to 'off' strip2.show(); } void loop() { if (millis() - interval > 100) { interval = millis(); for(int i=0; i<strip1.numPixels(); i++){ lum[i] = (float)(random(lumMin, 101)/100.0); } } //LED表示 for(int i=0; i<strip1.numPixels(); i++){ strip1.setPixelColor(i, strip1.Color(255 * lum[i], 0, 0)); strip2.setPixelColor(i, strip1.Color(255 * lum[i], 255 * lum[i], 255 * lum[i])); } strip1.show(); strip2.show(); } |
手
ダンボールで手を通す穴を開けた箱を作って、内部に部品を固定し、LEDテープ貼って完成。
LEDテープは白く光らせます。
足と同様に表面に木工用ボンドを塗って乾かします。
構成
部品
- マイコン Digispark
Digisparkの詳細は以下参照ください
その他の部品は足と同様です。
Arduinoコード
足と同様に乱数で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 |
#include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define PIN1 0 Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(9, PIN1, NEO_GRB + NEO_KHZ800); //LEDを乱数でチラチラさせる int lumMin = 30; float lum[9] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; unsigned long interval = 0; void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code strip1.begin(); strip1.setBrightness(45); strip1.show(); // Initialize all pixels to 'off' } void loop() { if (millis() - interval > 100) { interval = millis(); for(int i=0; i<strip1.numPixels(); i++){ lum[i] = (float)(random(lumMin, 101)/100.0); } } //LED表示 for(int i=0; i<strip1.numPixels(); i++){ strip1.setPixelColor(i, strip1.Color(255 * lum[i], 255 * lum[i], 255 * lum[i])); } strip1.show(); } |
頭
例のごとく、ダンボールで作成
内側に部品を固定して
組み立てて、LEDテープを貼り付けてマイコンに配線します。
頭に固定するためにゴム紐と透明塩ビ半球をグルーガンで固定します。帽子のようにかぶれるようにしました。
こちらも木工用ボンドを塗って乾燥。
構成
部品
- マイコン Adafruit Trinket 3.3V
-
透明塩ビ半球 径150mm
頭固定用に使用
あとは足、手と同じ部品です。
Arduinoコード
14セルのLEDテープの最初と最後の5個づつを白く、真ん中の4つを赤く光らせてます。
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 45 |
#include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define PIN1 0 Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(14, PIN1, NEO_GRB + NEO_KHZ800); //LEDを乱数でチラチラさせる int lumMin = 30; float lum[14] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; unsigned long interval = 0; void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code strip1.begin(); strip1.setBrightness(45); strip1.show(); // Initialize all pixels to 'off' } void loop() { if (millis() - interval > 100) { interval = millis(); for(int i=0; i<strip1.numPixels(); i++){ lum[i] = (float)(random(lumMin, 101)/100.0); } } //LED表示 for(int i=0; i<strip1.numPixels(); i++){ strip1.setPixelColor(i, strip1.Color(255 * lum[i], 255 * lum[i], 255 * lum[i])); } for(int i=5; i<9; i++){ strip1.setPixelColor(i, strip1.Color(255 * lum[i], 0, 0)); } strip1.show(); } |
体
もう説明の必要はありませんね。。。↓こうしました!
上がパカッと開いて、肩でマジックテープ固定できるようにしました。
構成
部品
- マイコン Adafruit Pro Trinket 3V/12MHz
あとはおなじみの部品です。
Arduinoコード
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
#include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif #define PIN1 A5 #define PIN2 A4 #define PIN3 A3 #define PIN4 A2 Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(36, PIN1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip2 = Adafruit_NeoPixel( 10, PIN2, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip3 = Adafruit_NeoPixel( 15, PIN3, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip4 = Adafruit_NeoPixel( 18, PIN4, NEO_GRB + NEO_KHZ800); //LEDを乱数でチラチラさせる int lumMin = 30; float lum[36] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; unsigned long interval = 0; void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code strip1.begin(); strip2.begin(); strip3.begin(); strip4.begin(); strip1.setBrightness(45); strip2.setBrightness(45); strip3.setBrightness(45); strip4.setBrightness(45); strip1.show(); strip2.show(); // Initialize all pixels to 'off' strip3.show(); strip4.show(); } void loop() { if (millis() - interval > 100) { interval = millis(); for(int i=0; i<strip1.numPixels(); i++){ lum[i] = (float)(random(lumMin, 101)/100.0); } } //LED表示 for(int i=0; i<strip1.numPixels(); i++){ strip1.setPixelColor(i, strip1.Color(255 * lum[i], 0, 0)); } for(int i=14; i<22; i++){ strip1.setPixelColor(i, strip1.Color(255 * lum[i], 255 * lum[i], 0)); } for(int i=0; i<strip2.numPixels(); i++){ strip2.setPixelColor(i, strip1.Color(255 * lum[i], 255 * lum[i], 0)); } for(int i=0; i<strip3.numPixels(); i++){ strip3.setPixelColor(i, strip1.Color(0, 0, 255 * lum[i])); } for(int i=0; i<strip4.numPixels(); i++){ strip4.setPixelColor(i, strip1.Color(0, 0, 255 * lum[i])); } for(int i=7; i<11; i++){ strip4.setPixelColor(i, strip1.Color(255 * lum[i], 255 * lum[i], 0)); } strip1.show(); strip2.show(); strip3.show(); strip4.show(); } |
おわりに
10/27土曜日の札幌大通りのパレードに参加するべく2日前から早朝と夜中に必死に作りました。当日ギリギリで完成して一安心。 家にあるもので作ったので各部マイコン機種バラバラですww
色んな人にカワイイ可愛いの声を頂きご満悦の長男くん
翌日も近所のパレードに参加して足はボロボロになりましたとさ。。。
2日連続のパレード参加でボロボロ
来年の課題が出来ました。#ハロウィン pic.twitter.com/S6LP4NbRPF— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月29日