![Arduino ราชวงศ์เป็ด Lilypad Hoodie ด้วยเสียงและไฟ LED: 10 ขั้นตอน Arduino ราชวงศ์เป็ด Lilypad Hoodie ด้วยเสียงและไฟ LED: 10 ขั้นตอน](https://img.gwsigeps.com/img/img/blank.jpg)
สารบัญ:
- วัสดุ:
- ขั้นตอนที่ 1: รายการวัสดุ
- ขั้นตอนที่ 2: แผนภาพ: แสง RGB
- ขั้นตอนที่ 3: เย็บวงจรไฟ RGB
- ขั้นตอนที่ 4: ไดอะแกรม: LilyPad Buzzer (ขาลำโพง)
- ขั้นตอนที่ 5: ซิว LilyPad Buzzer (ขาลำโพง) วงจร
- ขั้นตอนที่ 6: แผนภาพ: ไฟ LED
- ขั้นตอนที่ 7: เย็บวงจรไฟ LED
- ขั้นตอนที่ 8: การเขียนโปรแกรม
- ขั้นตอนที่ 9: อัปโหลดรหัส
- ขั้นตอนที่ 10: คุณทำเสร็จแล้ว!
ฉันสร้าง 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 กระพริบ