Arduino ราชวงศ์เป็ด Lilypad Hoodie ด้วยเสียงและไฟ LED: 10 ขั้นตอน

Arduino ราชวงศ์เป็ด Lilypad Hoodie ด้วยเสียงและไฟ LED: 10 ขั้นตอน

สารบัญ:

Anonim

ฉันสร้าง hoodie ชุดรูปแบบ Duck Dynasty กับ LilyPad Arduino ซึ่งมีเซ็นเซอร์ซิป 3 ตัวเพื่อเปิดใช้งานการกระทำ / โปรแกรม 3 แบบที่ด้านหลังของ hoodie ซิปเป็นกุญแจสำคัญในการเปิดใช้งานสวิทช์เหล่านี้ดังนั้นเมื่อซิปสัมผัสกับสวิทช์มันจะกระตุ้นการทำงาน / โปรแกรมเฉพาะนั้น สวิตช์แรกเปิดใช้งานไฟ RGB ที่อยู่ใต้ "D" บน Duck Dynasty สวิตช์ที่สองเรียกใช้ไฟ LED แบบกระพริบภายใต้อักขระ 4 ตัวและสวิตช์ที่สามเปิดใช้งานลำโพง LilyPad ที่เล่น Chorus ของเป็ดราชวงศ์ บทเพลง (Sharp Dressed Man)

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเย็บสวิทช์ซิปให้คลิกที่นี่

ฉันได้แนบวิดีโอสั้น ๆ 3 รายการด้านล่างเพื่อให้คุณรับชมเพื่อให้ได้ผลเต็มรูปแบบของสวิตช์ซิปแต่ละอัน

วัสดุ:

ขั้นตอนที่ 1: รายการวัสดุ

วัสดุหัตถกรรม:

• Hoodie พร้อมซิปเหรียญ (หมายเหตุ: ให้แน่ใจว่าซิปของคุณนำไฟฟ้าอย่างแท้จริง)

•เสื้อยืด Duck Dynasty ขนาดใหญ่หรือใหญ่ (ฉันได้เสื้อยืดของฉันที่ Walmart และตัด“ Duck Duck” และภาพของ Roberson ชายสี่คน (ใบหน้า) คุณจะต้องการเสื้อที่มีขนาดใหญ่กว่าเมื่อคุณ ตัดภาพและวางไว้บน hoodie ของคุณมันจะพอดีกับปริมาณพื้นที่ที่คุณจะมีที่ด้านหลังของ hoodie ของคุณ)

เข็มเย็บผ้า

•ดินสอสีขาว

•กรรไกร

•จักรเย็บผ้า (หรือเย็บเสื้อยืดตัดเย็บด้วยมือหากคุณไม่สามารถเข้าถึงได้)

•ด้าย (สีใด ๆ)

วัสดุอิเล็กทรอนิกส์:

• LilyPad Arduino Simple Board

•ไฟ LED สีขาว LilyPad 20 ดวง

•แบตเตอรี่ Li-Po

• LilyPad Buzzer

•ด้ายนำไฟฟ้า (ฉันไม่สามารถบอกคุณได้ว่าคุณจะต้องใช้มากแค่ไหนขึ้นอยู่กับขนาดของ hoodie และตำแหน่งที่คุณจะวางสวิตช์ซิปและ Arduino Lilypad ของฉันฉันใช้ประมาณ 30 บวกฟุตขึ้นไป)

• LilyPad FTDI Basic

• LilyPad LED สามสี

•สาย USB Mini-B

•ควรติดตั้งไดรเวอร์ FTDI และ Arduino IDE บนคอมพิวเตอร์ของคุณ

ขั้นตอนที่ 2: แผนภาพ: แสง RGB

ฉันตัดชิ้นส่วนบนเสื้อยืดที่ฉันจะใช้และวางมันไว้ที่ด้านหลังของเสื้อกันหนาวที่ฉันต้องการ ฉันเริ่มด้วยการทำแผนแสง RGB ของฉัน ฉันวาดแผนผังของสถานที่ที่ฉันจะเย็บชิ้นส่วนของ LilyPad ของฉันและแนบมันผ่านทางด้ายนำไฟฟ้าสำหรับแสง RGB ของฉัน จุดของร่างคือเพื่อให้แน่ใจว่าไม่มี "สาย" (เย็บแผล) ข้ามเพราะผลิตภัณฑ์สุดท้ายจะไม่ทำงานดังนั้นจึงเป็นคำแนะนำที่ดีที่จะปฏิบัติตาม

แผนภาพแรกนี้ใช้สำหรับวงจรสำหรับแสง RGB และสวิตช์ซิปตัวแรกสำหรับมัน ด้านซ้ายของแผนที่แสดงแผนวงจรสำหรับสวิตช์ซิป (วงกลมที่มี "+", "-" และ "A2" คือ Arduino LilyPad ที่ซึ่งฉันได้ทำเครื่องหมายการลงทะเบียนต่อไปนี้เป็นทางเลือกที่จะเพิ่มเท่านั้น ใช้เพื่อจุดประสงค์ในการเชื่อมต่อที่แข็งแกร่งเท่านั้น แต่คุณสามารถเย็บด้ายนำไฟฟ้าได้โดยไม่ต้องใช้มันและมันก็ใช้ได้ดี) ด้านขวาของไดอะแกรมคือแผนผังวงจรจากแสง RGB ไปยัง LilyPad

ขั้นตอนที่ 3: เย็บวงจรไฟ RGB

การใช้แผนภาพจากขั้นตอนที่ 2 เลย์เอาต์แสง RGB และ LilyPad ของคุณและต่อวงจรของคุณจากบอร์ด Lilypad ของคุณบนหมุดขวาไปยังไฟ RGB ของคุณ

(แสง RGB) R11 เชื่อมต่อกับ 9 บน LilyPad

(แสง RGB) B10 เชื่อมต่อกับ 6 บน LilyPad

(แสง RGB) G9 เชื่อมต่อกับ 5 บน LilyPad

เมื่อสิ่งนี้ถูกเย็บจากนั้นเย็บสวิตช์ซิปของคุณ:

ด้านลบของสวิตช์เชื่อมต่อกับลบบน LilyPad

ด้านบวกของสวิตช์เชื่อมต่อกับ A5 บน LilyPad

นี่จะเป็นสวิตช์ซิป # 1 เมื่อคุณเย็บสวิตช์ด้วยซิปให้แน่ใจว่าคุณเย็บใกล้กับซิปของคุณมากที่สุดเท่าที่จะทำได้เพื่อให้ซิปโลหะของคุณสัมผัสกับด้ายบนสวิตช์ของคุณเพื่อให้มันทำงานได้ เย็บกลับไปกลับมาหลายครั้งสำหรับสวิตช์ของคุณสำหรับการเชื่อมต่อที่แข็งแกร่ง

จากนั้นฉันก็เย็บชื่อเป็ดราชวงศ์ด้วยจักรเย็บผ้าและด้ายปกติตามขอบ

ขั้นตอนที่ 4: ไดอะแกรม: LilyPad Buzzer (ขาลำโพง)

แผนผังวงจรของคุณสำหรับ LilyPad Buzzer ฉันเพิ่งเพิ่มไปยังแผนภาพ RGB ของฉันและร่างวงจรบวกและลบของฉันจากออดของฉันไปยัง LilyPad ของฉัน:

ด้านลบของออดจะเชื่อมต่อกับลบของคุณบน LilyPad

ด้านบวกของออดจะเชื่อมต่อกับ A2

สลับแผนที่ซิป # 2:

ด้านลบของสวิตช์จะเชื่อมต่อกับขั้วลบของสวิตช์ซิปตัวแรก

ด้านบวกของสวิตช์จะเชื่อมต่อกับ A3 บน LilyPad

ขั้นตอนที่ 5: ซิว LilyPad Buzzer (ขาลำโพง) วงจร

ทำตามแผนภาพของคุณจากขั้นตอนที่ 4 เพื่อเย็บวงจรของคุณไปยังจาก Lilypad Lilypad:

ด้านลบของออดจะเชื่อมต่อกับลบของคุณบน LilyPad

ด้านบวกของออดจะเชื่อมต่อกับ A2

จากนั้นเย็บสวิตช์ซิปของคุณ # 2:

ด้านลบของสวิตช์จะเชื่อมต่อกับขั้วลบของสวิตช์ซิปตัวแรก

ด้านบวกของสวิตช์จะเชื่อมต่อกับ A3 บน LilyPad

ขั้นตอนที่ 6: แผนภาพ: ไฟ LED

ฉันร่างที่ฉันต้องการไฟ LED ทั้งหมดของฉัน รูปแบบการจัดตำแหน่งส่วนของร่างของหมวกของตัวละครแต่ละตัวที่สองตัดออกมาจากชายราชวงศ์เป็ด ฉันวางแผนว่าส่วนด้านบวกและด้านลบจะเป็นอย่างไร หมายเหตุ: ไฟ LED ด้านลบของไฟทั้งหมดหันขึ้นด้านบนในไดอะแกรมของฉันทำให้สิ่งที่เป็นบวกหันไปทางด้านล่าง

ด้านบวกทั้งหมดของไฟ LED เชื่อมต่อกับ 10 บน LilyPad

ด้านลบของไฟ LED เชื่อมต่อกับลบบน LilyPad

Map out zipper switch # 3:

ด้านลบของสวิตช์จะเชื่อมต่อกับขั้วลบของสวิตช์ซิปตัวแรก

ด้านบวกของสวิตช์จะเชื่อมต่อกับ A4 บน LilyPad

ขั้นตอนที่ 7: เย็บวงจรไฟ LED

ครั้งแรกที่ฉันนำตัวละครราชวงศ์เป็ดของฉันถูกตัดออกและวางไว้ที่ด้านหลังของ hoodie และมีดินสอสีขาววาดโครงร่างบน hoodie ที่ฉันต้องเย็บไฟ LED ฉันใช้สิ่งนี้เป็นแนวทางในการเย็บวงจรบวกทั้งหมดของไฟ LED แรกที่เชื่อมต่อกับ 10 บน LilyPad จากนั้นฉันก็ทำการตัดวงจรลบทั้งหมดบนไฟ LED ให้เป็นลบบน LilyPad

หมายเหตุ: เพราะนี่เป็นการเชื่อมต่อที่ยาวผ่านไฟ LED ทั้ง 20 ดวงที่เพิ่มขึ้นสองเท่าของคุณด้วยด้ายตัวนำ คุณอาจต้องใช้ทั้งวงจรบวกและลบอีกสองสามครั้งเพื่อทำให้การเชื่อมต่อแข็งแกร่งขึ้นเพื่อให้ไฟของคุณสว่างขึ้นชัดเจนแทนที่จะมัว

สวิตช์ซิปเย็บ # 3:

ด้านลบของสวิตช์จะเชื่อมต่อกับขั้วลบของสวิตช์ซิปตัวแรก

ด้านบวกของสวิตช์จะเชื่อมต่อกับ A4 บน LilyPad

จากนั้นฉันก็เย็บด้วยจักรเย็บผ้าที่มีด้ายปกติบนส่วนที่ถูกตัดออกจากตัวละครซับมันด้วยไฟ LED

ขั้นตอนที่ 8: การเขียนโปรแกรม

นี่คือที่ที่การเขียนโค้ดทั้งหมดของคุณจะต้องเขียนขึ้นสำหรับแสง RGB, LilyPad Buzzer เพื่อเล่นเพลงธีม Duck Dynasty (ชายแต่งตัวดี) และไฟ LED ให้มีรูปแบบกะพริบ สิ่งเหล่านี้จะถูกเปิดใช้งานเฉพาะเมื่อสวิตช์ซิปของพวกเขาถูกสัมผัสด้วยซิปเพื่อที่จะต้องเขียนด้วยรหัสของฉัน

ในการเขียนโปรแกรมชุดรูปแบบ Duck Dynasty ฉันต้องหาเพลงคอรัสเปียโนออนไลน์เพื่อรับโน้ต จากนั้นฉันก็จดบันทึกเหล่านั้นและแปลเป็นรหัสฉันทำสิ่งนี้ที่ Arduino.cc/ed/tutorial/tone จากนั้นฉันต้องเขียนระยะเวลาบันทึกย่อของ (การเล่นโน้ตแต่ละครั้งเร็วแค่ไหน)

นี่คือรหัสที่ฉันเขียนทั้งหมด:

int whiteLeds = 10;

int redLed = 9;

int greenLed = 5;

int blueLed = 6;

int zipperswitch = A5;

int zipperswitch2 = A3;

int zipperswitch3 = A4;

int speakerPin = A2;

int r;

int g;

int b;

int fadeSpeed ​​= 1;

#include "pitches.h"

// หมายเหตุในทำนอง:

int melody = {

NOTE_DS4, NOTE_DS4, 0, NOTE_DS4, NOTE_DS4, 0, NOTE_DS4, NOTE_DS4, NOTE_DS4, NOTE_C4, NOTE_C4, NOTE_F4, NOTE_FS4, NOTE_FS4, NOTE_FS4, 0, NOTE_B4, NOTE_B4, NOTE_B4, NOTE_B4, NOTE_B4, NOTE_B4, NOTE_B4, NOTE_B4, NOTE_G3, NOTE_C4, 0, NOTE_C4, NOTE_FS4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_C4, NOTE_C4, NOTE_G3, NOTE_AS3, NOTE_C4, NOTE_C4, 0, };

int noteDurations = {

4, 4, 2, 4, 4, 2, 8, 2.7, 8, 8, 8, 8, 4, 4, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 8, 8, 4, 8, 8, 8, 8, 4, 4, 2, 1 };

มันจะไปเร็วขึ้นหรือช้าลง

การตั้งค่าเป็นโมฆะ () {

pinMode (whiteLeds, OUTPUT);

pinMode (redLed, OUTPUT);

pinMode (greenLed, OUTPUT);

pinMode (blueLed, OUTPUT);

pinMode (speakerPin, OUTPUT);

pinMode (zipperswitch, INPUT_PULLUP);

pinMode (zipperswitch2, INPUT_PULLUP);

pinMode (zipperswitch3, INPUT_PULLUP);

}

void loop () {

ถ้า ((digitalRead (zipperswitch) == 0)) {

colorFade ();

rLEDFade ();

gLEDFade ();

bLEDFade ();

} อื่น {

digitalWrite (redLed, 1);

digitalWrite (greenLed, 1);

digitalWrite (blueLed, 1);

}

ถ้า ((digitalRead (zipperswitch2) == 0)) {

DuckDynasty ();

} อื่น {

digitalWrite (speakerPin, LOW);

}

ถ้า ((digitalRead (zipperswitch3) == 0)) {

digitalWrite (whiteLeds, HIGH);

ล่าช้า (500);

digitalWrite (whiteLeds, LOW);

ล่าช้า (500);

}อื่น{

digitalWrite (whiteLeds, LOW);

}

โมฆะ digitalColor ()

{

digitalWrite (redLed, LOW);

digitalWrite (blueLed, HIGH);

digitalWrite (เขียวนำ, สูง);

ล่าช้า (500);

digitalWrite (redLed, HIGH);

digitalWrite (blueLed, HIGH);

digitalWrite (greenLed, LOW);

ล่าช้า (500);

digitalWrite (redLed, HIGH);

digitalWrite (blueLed, LOW);

digitalWrite (เขียวนำ, สูง);

ล่าช้า (500);

digitalWrite (redLed, HIGH);

digitalWrite (blueLed, HIGH);

digitalWrite (เขียวนำ, สูง);

ล่าช้า (1000)

}


โมฆะ analogColor ()

{

analogWrite (redLed, 0);

analogWrite (blueLed, 255); // สีแดง

analogWrite (greenLed, 255);

ล่าช้า (1000)

analogWrite (redLed, 255);

analogWrite (blueLed, 255); //สีเขียว

analogWrite (greenLed, 0);

ล่าช้า (1000)

analogWrite (redLed, 255);

analogWrite (blueLed, 0); //สีน้ำเงิน

analogWrite (greenLed, 255);

ล่าช้า (1000)

analogWrite (redLed, 0);

analogWrite (blueLed, 0); // สีม่วง

analogWrite (greenLed, 255);

ล่าช้า (1000)

analogWrite (redLed, 0);

analogWrite (blueLed, 255); //ส้ม

analogWrite (greenLed, 0);

ล่าช้า (1000)

analogWrite (redLed, 255);

analogWrite (blueLed, 0); // นกเป็ดน้ำ

analogWrite (greenLed, 0);

ล่าช้า (1000)

analogWrite (redLed, 255);

analogWrite (blueLed, 255); // ปิด

analogWrite (greenLed, 255);

ล่าช้า (1000)

}


โมฆะ rLEDFade ()

{

analogWrite (blueLed, 255);

analogWrite (greenLed, 255);

analogWrite (redLed, 255);

สำหรับ (r = 255; r> 0; r--) {

analogWrite (redLed, r);

ล่าช้า (fadeSpeed);

}

สำหรับ (r = 0; r <256; r ++) {

analogWrite (redLed, r);

ล่าช้า (fadeSpeed);

}

}

โมฆะ gLEDFade ()

{

analogWrite (blueLed, 255);

analogWrite (greenLed, 255);

analogWrite (redLed, 255);

สำหรับ (g = 255; g> 0; g--) {

analogWrite (greenLed, g);

ล่าช้า (fadeSpeed);

}

สำหรับ (g = 0; g <256; g ++) {

analogWrite (greenLed, g);

ล่าช้า (fadeSpeed);

}

}

โมฆะ bLEDFade ()

{

analogWrite (blueLed, 255);

analogWrite (greenLed, 255);

analogWrite (redLed, 255);

สำหรับ (b = 255; b> 0; b--) {

analogWrite (blueLed, b);

ล่าช้า (fadeSpeed);

}

สำหรับ (b = 0; b <256; b ++) {

analogWrite (blueLed, b);

ล่าช้า (fadeSpeed);

}

}

โมฆะ colorFade ()

{

analogWrite (blueLed, 0);

สำหรับ (r = 255; r> 0; r--) {

analogWrite (redLed, r);

ล่าช้า (fadeSpeed);

}

สำหรับ (b = 0; b <256; b ++) {

analogWrite (blueLed, b);

ล่าช้า (fadeSpeed);

}

สำหรับ (g = 255; g> 0; g--) {

analogWrite (greenLed, g);

ล่าช้า (fadeSpeed);

}

สำหรับ (r = 0; r <256; r ++) {

analogWrite (redLed, r);

ล่าช้า (fadeSpeed);

}

สำหรับ (b = 255; b> 0; b--) {

analogWrite (blueLed, b);

ล่าช้า (fadeSpeed);

}

สำหรับ (g = 0; g <256; g ++) {

analogWrite (greenLed, g);

ล่าช้า (fadeSpeed);

}

analogWrite (blueLed, 255);

ล่าช้า (500);

}

โมฆะ DuckDynasty ()

{

สำหรับ (int thisNote = 0; thisNote <40; thisNote ++) {

int noteDuration = 1500 / noteDurations thisNote;

โทน (speakerPin, melody thisNote, noteDuration);

int pauseB BetweenNotes = noteDuration * 1.30;

ล่าช้า (pauseBetweenNotes);

noTone (speakerPin);

}

}

ขั้นตอนที่ 9: อัปโหลดรหัส

ตอนนี้คุณได้เขียนรหัสของคุณแล้วให้ต่อแบตเตอรีเข้ากับบอร์ด LilyPad เพื่อให้สามารถชาร์จเมื่อคุณต่อเข้ากับคอมพิวเตอร์ของคุณ ใช้บอร์ดฝ่าวงล้อม FTDI เชื่อมต่อบอร์ด LilyPad ของคุณเข้ากับคอมพิวเตอร์ผ่านสาย mini USB จะมีแสงสีส้มเมื่อแบตเตอรี่กำลังชาร์จดังนั้นคุณจะรู้ว่าการเชื่อมต่อใช้งานได้

นำเข้า (หรือคัดลอกและวาง) โค้ดของคุณลงใน Arduino IDE และอัปโหลดรหัสไปยังบอร์ดของคุณ มันควรจะทำงาน!

ขั้นตอนที่ 10: คุณทำเสร็จแล้ว!

Voila! เสร็จแล้วตอนนี้ด้วยเสื้อกันหนาวหมวกเป็ดราชวงศ์พร้อมสวิตช์ซิป 3 ตัวที่เปิดใช้งานการกระทำ / โปรแกรม 3 แบบ! สนุกหรือคุณสามารถให้สิ่งนี้เป็นของขวัญให้กับคนที่คุณรู้ว่าเป็นแฟนตัวยง นี่อาจเป็นกระบวนการที่ยาวนานของการตัดเย็บการร่างไดอะแกรมและการเข้ารหัส แต่ฉันคิดว่านี่เป็นโครงการที่สนุกและท้าทาย

ด้านล่างนี้เป็นวิดีโอของแต่ละซิปสลับการกระทำของแสงและเสียง

Switch # 1: แสง RGB

Switch # 2: LilyPad Buzzer- เพลงธีมเป็ดราชวงศ์

Switch # 3: ไฟ LED กระพริบ