ニット配線 と BNO055 で“キング・オブ・ダークネス” EVIL の闇の光を放つ手袋を自作
ハロウィンに向けていろいろ製作中なわけですが、お父ちゃん人生初の仮装は新日本プロレス LOS INGOBERNABLES de JAPON の “キング・オブ・ダークネス” EVIL を予定しております。
先日はEVILの大鎌を作成しまして
今回はEVILが手から放つ闇の閃光をLEDを付けた手袋で再現したいと思います。
闇が真夏を支配する。全てはEVILだ!@151012EVIL #NJPWWorld “新日本プロレスワールド”では全19大会をLIVE配信!All 19 events, LIVE with ENGLISH COMMENTARY!!▷https://t.co/Tj7UBJ4PjP
チケット情報、大会日程などは #G128 特設サイトをチェック!▶︎https://t.co/hJkacj96MX pic.twitter.com/BRJzOcQkeN
— njpwworld (@njpwworld) 2018年7月11日
目次
ニット配線の採用
実は以前にEVILの閃光を出すべく手袋を作ったのですが。。。
配線だらけになってしまいました。。。ちょっと。。これをつけて街を闊歩というわけにいきませんよね 🙄
そこで素晴らしい材料に出会ったのです。
それはニット配線です。
最高かよ。 pic.twitter.com/1UtmrcUr6y
— HomeMadeGarbage (@H0meMadeGarbage) 2018年9月1日
ゴムのようなフレキシブルな配線です。金属繊維と普通の絶縁繊維がニット状に編み込まれているのです。あのグンゼ製ですのでハンパない伸縮率です!
アイロン接着もできるということで、このニット配線を使用すればゴチャゴチャした配線のEVIL手袋に別れを告げられると確信したのです。
構成
回路構成は前回とほぼ同様です。小型化のためにマイコンをArduino Pro Miniに変更しました。
部品
- ニット配線
NeoPixel接続のため3線タイプを購入しました。
愛三電機株式会社 の営業さんに、ほしい製品と数量をメール(sales1@aisan.co.jp)すると直ぐに在庫と支払い方法連絡くれます。
- マイコン Arduino Pro Mini 5V 16MHz
- テープLED NeoPixel
指先に1つずつ使用
-
NeoPixel Ring – 12連フルカラーシリアルLED
手のひらに配置
-
リチウムイオンポリマー電池110mAh
- 9軸モーションセンサ BNO055
センサ詳細は以下のとおりです。
Arduinoコード
コードも前回とほぼ同じです。
モーションセンサ BNO055のZ軸方向の(重力)加速度でNeoPixelの発光を制御します。
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
#include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BNO055.h> #include <utility/imumaths.h> #include <Adafruit_NeoPixel.h> /* Set the delay between fresh samples */ #define BNO055_SAMPLERATE_DELAY_MS (10) Adafruit_BNO055 bno = Adafruit_BNO055(); Adafruit_NeoPixel ring = Adafruit_NeoPixel(12, A2, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, A0, NEO_GRB + NEO_KHZ800); int z; int bright = 255; unsigned long time; void setup(void) { Serial.begin(9600); Serial.println("Orientation Sensor Raw Data Test"); Serial.println(""); /* Initialise the sensor */ if(!bno.begin()) { /* There was a problem detecting the BNO055 ... check your connections */ Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!"); while(1); } delay(1000); bno.setExtCrystalUse(true); Serial.println("Calibration status values: 0=uncalibrated, 3=fully calibrated"); ring.begin(); strip.begin(); ring.show(); // Initialize all pixels to 'off' strip.show(); // Initialize all pixels to 'off' ring.setBrightness(bright); strip.setBrightness(bright); } /**************************************************************************/ /* Arduino loop function, called once 'setup' is complete (your own code should go here) */ /**************************************************************************/ void loop(void) { /* Get a new sensor event */ sensors_event_t event; bno.getEvent(&event); z = event.orientation.z; /* Display the floating point data Z*/ Serial.print("\tZ: "); Serial.println(z); if(abs(z) > 130){ time = millis(); strip.clear(); strip.show(); for(uint16_t i=0; i<ring.numPixels(); i++) { ring.setPixelColor(i, ring.Color(255, 0, 0)); } ring.show(); //手のひら赤く点灯 while(millis() - time < 4000){ Serial.println("RED Light"); bno.getEvent(&event); z = event.orientation.z; if(abs(z) < 130){ break; } } //手のひら赤く点滅 while(abs(z) > 130){ Serial.println("RED Flash"); for(uint16_t i=0; i<ring.numPixels(); i++) { ring.setPixelColor(i, ring.Color(255, 0, 0)); } ring.show(); delay(50); ring.clear(); ring.show(); delay(50); bno.getEvent(&event); z = event.orientation.z; } }else{ ring.clear(); ring.show(); //指先 緑点灯 for(uint16_t i=0; i<strip.numPixels(); i++) { strip.setPixelColor(i, strip.Color(0, 255, 0)); } strip.show(); } delay(BNO055_SAMPLERATE_DELAY_MS); } |
基本動作
モーションセンサ BNO055をひっくり返すして上に向けるとNeoPixelが緑に光り、下に向けるとNeoPixel Ringが赤く光ります。一定時間 (4秒間) 下に向けるとRingは点滅します。
#neopixel #LED #モーションセンサ #BNO055 pic.twitter.com/wAnHab08tW
— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月7日
怪しい闇の光が再現できてるのではないでしょうか 👿 。
手袋制作
黒手袋にLED、マイコン、モーションセンサを載せます。
ニット配線加工
手袋の指先にLEDを付けて緑の光を発するようにします。
ニット配線の先端にNeoPixels 1つをはんだ付けします。
NeoPixelsを付けた裏面の信号線(真ん中の線)は断線しておきます。入出力ショートしないようにね。
はんだ付け部は保護のために接着剤を塗って覆いました。
公式のはんだ付け方法は以下のとおりです。
http://www.gunze.co.jp/technology/about/pdf/gunze_knit_howto.pdf
NeoPixelsを接続したニット配線を5本作って手袋に配置します。親指の配線は長めに切って他の指と信号線を配線して、5個のNeoPixelsがパラレルに接続されるようにします。
ニット配線と手袋の接着にはダイソーで買ったアイロン接着両面テープを使用しました。ちなみに黒手袋もダイソーで購入しました。
NeoPixelsリング加工
手のひらにリング状のNeoPixelsを付けて赤い閃光を発するようにします。
黒く塗るためにNeoPixelsの発光部にマスキングテープを張ります。マスキングテープはダイソーの穴あけポンチ (4mm径)で切り取って一つ一つ貼りました。
マット黒アクリルスプレーしてマスキングテープをとって、手袋の手のひらに接着します。配線は手袋内部を通して手の甲側に引き回します。
マイコン類配置
Arduino Pro MiniとセンサBNO055を配線して強力両面テープで手袋に接着します。
人差し指にスライドスイッチを付けた黒いプラ板のリングを接着します。スイッチの配線は手袋内を通して手の甲のマイコンとLiPoバッテリーの間にはんだ付けしました。このスイッチで手袋の電源ON/OFFをします。
EVILハンド制作中#LOSINGOBERNABLESdeJAPON #njpwworld #neopixel #LED #ニット配線 pic.twitter.com/sxV9KUIIRx
— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月8日
手の甲を上にむけている時は指先から緑の閃光を発し、下向きの時は赤く光ります。
ニット配線と指先のNeoPixels(発光部はマスキング)を黒アクリル絵の具で黒く塗り、黒布でマイコン類を隠します。隠し布はマジックテープで取り外し可能です。
動作
闇を切り裂く光を放つ手袋ができました!わーい!!
動画のBGMはDiamond Headの『Am I Evil?』(METALLICAのカバーの方が有名だと思う)です。久々に演奏してみました。
トリック及びオアを制し、トリートを支配するのはこの俺だ!よく覚えておけ!
ちなみに北海道では手袋を装着することを「手袋を履く」と言います。