Სარჩევი:

განწყობის პროექტორი (გატეხილი Philips Hue Light With GSR) TfCD: 7 ნაბიჯი (სურათებით)
განწყობის პროექტორი (გატეხილი Philips Hue Light With GSR) TfCD: 7 ნაბიჯი (სურათებით)

ვიდეო: განწყობის პროექტორი (გატეხილი Philips Hue Light With GSR) TfCD: 7 ნაბიჯი (სურათებით)

ვიდეო: განწყობის პროექტორი (გატეხილი Philips Hue Light With GSR) TfCD: 7 ნაბიჯი (სურათებით)
ვიდეო: პრაქტიკული რჩევები ტელევიზორის შესარჩევად 2024, ივნისი
Anonim
Image
Image
მიიღეთ გარდა Hue Light
მიიღეთ გარდა Hue Light

ლორა ახსმანი და მააიკე ვებერი

მიზანი: დაბალი განწყობა და სტრესი არის თანამედროვე სწრაფი ცხოვრების დიდი ნაწილი. ეს არის ის, რაც გარედან უხილავია. რა მოხდება, თუ ჩვენ შევძელით ვიზუალურად და აკუსტიკურად განვსაზღვროთ ჩვენი სტრესის დონე პროდუქტით, რომ შეგვეძლოს იმის ჩვენება, თუ როგორ გრძნობთ თავს. ეს გაგიადვილებთ ამ პრობლემებთან ურთიერთობას. თქვენი რეაქცია ასევე შეიძლება იყოს უფრო ადეკვატური იმ მომენტისთვის, როდესაც მიიღებთ გამოხმაურებას თქვენს სტრესულ დონეზე.

GSR, ან კანის გალვანური წინააღმდეგობა, მომხმარებლის ხელთაა მიღებული გაზომვა დადასტურებულია, რომ სტრესის მართლაც კარგი პროგნოზირებაა. ვინაიდან ოფლის ჯირკვლები უმეტესად რეაგირებენ სტრესზე (არა მხოლოდ ფიზიკურ ვარჯიშზე), გაზრდილი სტრესის დონე წარმოშობს უფრო მაღალ გამტარობას. ეს ცვლადი გამოიყენება ამ პროექტში.

იდეა: რა მოხდება, თუ ჩვენ შეგვიძლია სწრაფად გამოვავლინოთ სტრესი ან განწყობა და წარმოვადგინოთ იგი ფერადი შუქით და მუსიკით? GSR სისტემას შეუძლია ამის გაკეთება. ამ ინსტრუქციაში, ჩვენ გავაკეთებთ Arduino– ზე დაფუძნებულ სისტემას ამის გასაკეთებლად! როგორც Arduino პროგრამული უზრუნველყოფის, ასევე დამუშავების პროგრამული უზრუნველყოფის საშუალებით, იგი კანის გამტარობის მნიშვნელობებს გადააქცევს გარკვეულ ფერში და გარკვეულ მუსიკად.

Რა გჭირდება?

  • არდუინო უნო
  • მავთულები
  • Philips Hue განათება (ცოცხალი ფერები)
  • სამი 100 Ohm რეზისტორი (RGB LED– ისთვის)
  • ერთი 100 KOhm რეზისტორი (GSR სენსორისთვის)
  • რაღაც უნდა იმოქმედოს როგორც გამტარობის სენსორები, როგორიცაა ალუმინის კილიტა
  • Arduino პროგრამული უზრუნველყოფა
  • დამუშავების პროგრამული უზრუნველყოფა (ჩვენ გამოვიყენეთ v2.2.1, უფრო ახლები ახასიათებს კრახს)
  • SolidWorks, საცხოვრებლის დიზაინის შესაქმნელად (სურვილისამებრ)
  • წვდომა CNC წისქვილზე (სურვილისამებრ)
  • მწვანე მოდელირების ქაფი (EPS)
  • პურის დაფა (სურვილისამებრ, ასევე შესაძლებელია შედუღება)

ნაბიჯი 1: გამოყავით ფერადი შუქი

ეს ნაბიჯი ადვილია, უბრალოდ გამოიყენეთ ძალა (ან ხრახნიანი მანქანა) დაუშვით და გახსენით შუქი. ზოგიერთი ვადამდელი კავშირი აერთიანებს პროდუქტს, ამიტომ მისი დაშლა ადვილია.

ახლა, ზედა შუქის ჩაქრობა და გათიშვა შესაძლებელია დანარჩენი ელექტრონიკისგან. ჩვენ დაგვჭირდება მხოლოდ შუქი და საცხოვრებლის ზედა ნაწილი. შეინახეთ ან გადაყარეთ დანარჩენი, თქვენზეა დამოკიდებული!

ნაბიჯი 2: აპარატურის მომზადება

აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება

ამ პროექტისთვის ჩვენ გამოვიყენეთ Philips Hue შუქი, რათა განსახიერება უფრო ლამაზი და სწრაფი გავხადოთ. თქვენ ასევე შეგიძლიათ გამოიყენოთ ჩვეულებრივი RGB LED, როგორც ნაჩვენებია სურათზე პურის დაფაზე.

RGB LED- ის მუშაობისთვის დააკავშირეთ ქინძისთავები Arduino– ს სამ სხვადასხვა PWM პორტთან (მითითებულია ba a). გამოიყენეთ 100 Ohm რეზისტორები ამ კავშირისთვის. შეაერთეთ ყველაზე გრძელი პინი Arduino– ს 5 ვ გამომავალთან. იმისათვის, რომ ნახოთ რომელი პინი შეესაბამება რომელ ფერს, იხილეთ ამ ნაბიჯის ბოლო სურათი.

Hue Light– ისთვის იგივე ნაბიჯები მიდის. LED ადვილად უკავშირდება Arduino– ს მავთულის შედუღებით დანიშნულ სლოტებზე, იხილეთ მესამე სურათი ამ ნაბიჯში. სლოტებს აქვთ R, G და B, რაც მიუთითებს რომელი მავთული სად უნდა წავიდეს. მას ასევე აქვს + და a - სლოტი, რომელიც დაკავშირებულია არდუინოს 5V და არდუინოს მიწასთან, შესაბამისად. LED- ის ჩართვისთანავე შეგიძლიათ შეაბრუნოთ იგი საცხოვრებელში.

ალუმინის ფოლგისგან დამზადებული GSR სენსორების დასაკავშირებლად (ან გამოიყენეთ ალუმინის კონტეინერები ჩალისფერებით, რომლებიც ცოტა უფრო ლამაზად გამოიყურება), შეაერთეთ ან დააკელით ისინი მავთულზე და დააკავშირეთ ერთი 5V- თან. შეაერთეთ მეორე 100KOhm რეზისტორთან და 0, 1mF კონდენსატორთან (პარალელურად), რომელიც შემდეგ უნდა დაუკავშიროთ მიწას და არდუინოს A1 სლოტს. ეს მისცემს სტრესის დონის გამომუშავებას, რომელიც შემდეგ გამოყენებული იქნება როგორც შეყვანის სინათლისა და მუსიკისთვის. ჩვენ სენსორები მივაჩერეთ ნათურაზე, ასე რომ, ეს გახდება სასიამოვნო პროდუქტი თქვენი სტრესის გაზომვისას. ფრთხილად იყავით, რომ სენსორები არ შეეხოთ!

ბოლო სურათი გვიჩვენებს, თუ როგორ შეიძლება ამის გაკეთება პურის დაფის გარეშე.

ნაბიჯი 3: სტრესის დონის გაზომვა

სტრესის დონის გაზომვა
სტრესის დონის გაზომვა

სტრესის დონის გაზომვა მხოლოდ ამ ხელნაკეთი სენსორებით ნამდვილად არ მოგცემთ ზუსტ გაზომვებს იმაზე, თუ რამდენად სტრესული ხართ. თუმცა, როდესაც სწორად არის დაკალიბრებული, მას შეუძლია მიაწოდოს მიახლოება.

GSR დონის გასაზომად, ჩვენ გამოვიყენებთ კოდის შემდეგ ნაწილს, არდუინოს გარემოში. ნაკლებად ცვალებადი გაზომვისთვის, ყოველ 10 კითხვას ადგენენ საშუალო მნიშვნელობას.

const int numReadings = 10; int საკითხები [numReadings]; // შეყვანა A1 int ინდექსიდან = 0; // მიმდინარე კითხვის ინდექსი int total = 0; // გაშვებული მთლიანი ხელმოუწერელი საშუალო საშუალო = 0; // საშუალო

int inputPin = A1;

void setupGSR ()

{// დააყენეთ ყველა კითხვა 0 -ზე:

(int i = 0; i <numReadings; i ++) საკითხავებისთვის = 0; }

ხელმოუწერელი გრძელვადიანი GSR () {

სულ = სულ - კითხვები [ინდექსი]; // GSR სენსორის წაკითხვა [ინდექსი] = analogRead (inputPin); // დაამატეთ ახალი კითხვა მთლიანი ჯამში = სულ + კითხვა [ინდექსი]; // მასივის ინდექსის შემდეგი პოზიცია = ინდექსი + 1;

// მასივის დასასრულის გამოცდა

if (ინდექსი> = numReadings) // და დავიწყოთ ინდექსიდან = 0;

// რა არის საშუალო

საშუალო = სულ / რიცხვი; // გაუგზავნეთ კომპიუტერს, როგორც ASCII ციფრების დაბრუნების საშუალო;

}

სხვა ჩანართში (იმისათვის, რომ ყველაფერი მოწესრიგებული იყოს), ჩვენ შევქმნით კოდს გაზომვებზე რეაგირების მიზნით, იხილეთ შემდეგი ნაბიჯი!

ნაბიჯი 4: სინათლის მართვა

მნათობების მართვა
მნათობების მართვა
მნათობების მართვა
მნათობების მართვა
მნათობების მართვა
მნათობების მართვა

განათების მართვისთვის, ჩვენ ჯერ უნდა გავზომოთ გაზომვები. შეამოწმეთ რა არის თქვენი გაზომვის ზედა ზღვარი სერიული მონიტორის გახსნით. ჩვენთვის გაზომვები იყო 150 – ს შორის (როდესაც ჩვენ ნამდვილად ვცდილობდით მოდუნებას) და 300 – ს შორის (როდესაც ჩვენ ძალიან ვცდილობდით დაძაბულობისკენ).

შემდეგ, გადაწყვიტეთ რა ფერი უნდა წარმოადგენდეს რა სტრესის დონეს. ჩვენ გავაკეთეთ ისე, რომ:

1. დაბალი სტრესის დონე: თეთრი შუქი, მწვანე შუქად გადაქცევა სტრესის გაზრდით

2. საშუალო სტრესის დონე: მწვანე შუქი, ცვალებადი ლურჯი სინათლის გაზრდით სტრესის გაზრდით

3. მაღალი სტრესის დონე: ლურჯი შუქი, რომელიც იცვლება წითლად, სტრესის მატებასთან ერთად

შემდეგი კოდი გამოიყენებოდა გაზომვების დასამუშავებლად და მათი მნიშვნელობებად გადასაყვანად LED- ზე გასაგზავნად:

// MASTER #განსაზღვრეთ DEBUG 0

// GSR = A1

int gsrVal = 0; // ცვლადი სენსორებიდან შეყვანის შესანახად

// როგორც აღვნიშნეთ, გამოიყენეთ Pulse-width Modulation (PWM) ქინძისთავები

int redPin = 9; // წითელი LED, ციფრულ პინთან დაკავშირებული 9 int grnPin = 9; // მწვანე LED, ციფრულ პინთან დაკავშირებული 10 int bluPin = 5; // ლურჯი LED, ციფრულ პინთან დაკავშირებული 11

// პროგრამის ცვლადები

int redVal = 0; // ცვლადები მნიშვნელობების შესანახად ქინძისთავებში გასაგზავნად int grnVal = 0; int bluVal = 0;

ხელმოუწერელი გრძელი gsr = 0;

ბათილად დაყენება ()

{pinMode (bluPin, OUTPUT); pinMode (grnPin, OUTPUT); pinMode (redPin, OUTPUT); pinMode (A1, INPUT);

სერიული.დაწყება (9600);

setupGSR (); }

ბათილი მარყუჟი ()

{gsrVal = gsr; if (gsrVal <150) // gsr დიაპაზონის ყველაზე დაბალი მესამედი (0-149) {gsr = (gsrVal /10) * 17; // ნორმალიზება 0-255-მდე redVal = gsrVal; // სრული grnVal = gsrVal; // მწვანე გამორთვიდან სრულ bluVal = gsrVal; // ლურჯი სრულადსიმებიანი ბგერა A = "A"; Serial.println (SoundA); // მოგვიანებით მუსიკალურ ოპერაციებში} სხვა შემთხვევაში თუ (gsrVal <250) // gsr დიაპაზონის შუა მესამედი (150-249) {gsrVal = ((gsrVal-250) /10) * 17; // ნორმალიზება 0-255-მდე redVal = 1; // წითელი off grnVal = gsrVal; // მწვანე სრულიდან გამორთული bluVal = 256 - gsrVal; // ლურჯი გამორთვიდან სრული სიმებიანი ბგერა B = "B"; Serial.println (SoundB); } else // gsr დიაპაზონის ზედა მესამედი (250-300) {gsrVal = ((gsrVal-301) /10) * 17; // ნორმალიზება 0-255-მდე redVal = gsrVal; // წითელი გამორთვიდან სრულ grnVal = 1; // მწვანე სრული bluVal = 256 - gsrVal; // ლურჯი სრულიდან გამორთული სიმებიანი SoundC = "C"; Serial.println (SoundC); }

analogWrite (redPin, redVal); // ჩაწერეთ მნიშვნელობები LED ქინძისთავებზე analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); დაგვიანება (100); }

ასე რომ, ახლა LED რეაგირებს თქვენს სტრესულ დონეზე, მოდით დავამატოთ მუსიკა, რომ წარმოვაჩინოთ თქვენი განწყობა, შემდეგ ეტაპზე.

ნაბიჯი 5: მუსიკის მართვა

მუსიკის მართვა
მუსიკის მართვა

ჩვენ ავირჩიეთ წარმოვაჩინოთ სამი სტრესის დონე შემდეგი მუსიკით:

1. დაბალი დონე (A): მომღერალი თასები და ჩიტების ჭიკჭიკი, ძალიან მსუბუქი ხმა

2. საშუალო დონე (B): მელანქოლიური ფორტეპიანო, ცოტა უფრო მძიმე ჟღერადობა

3. მაღალი სტრესის დონე (C): ჭექა -ქუხილი, მუქი ხმა (თუმცა საკმაოდ დამამშვიდებელი)

კოდი დაწერილია Processing, პროგრამული უზრუნველყოფა, რომელიც უზრუნველყოფს Arduino– ს პროგრამული უზრუნველყოფის უკუკავშირის ნაწილს:

იმპორტის დამუშავება. სერიალი.*; იმპორტი ddf.minim.*;

მინიმალური მინიმალური;

AudioPlayer მოთამაშეები;

int lf = 10; // Linefeed ASCII- ში

სიმებიანი myString = null; სერიული myPort; // სერიული პორტი int sensorValue = 0;

void setup () {

// ჩამოთვალეთ ყველა არსებული სერიული პორტი printArray (Serial.list ()); // გახსენით პორტი, რომელსაც იყენებთ იმავე სიჩქარით, როგორც Arduino myPort = new Serial (ეს, Serial.list () [2], 9600); myPort.clear (); // გასუფთავებული გაზომვები myString = myPort.readStringUntil (lf); myString = null; // ჩვენ ამას გადავცემთ მინიმს ისე, რომ მას შეუძლია ფაილების დატვირთვა მინიმალური = ახალი მინიმი (ეს); მოთამაშეები = ახალი AudioPlayer [3]; // აქ შეცვალეთ აუდიო ფაილის სახელი და დაამატეთ ბიბლიოთეკების მოთამაშეებს [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); მოთამაშეები [1] = minim.loadFile ("მელანქოლიური-ფორტეპიანო-მუსიკა. mp3"); მოთამაშეები [2] = minim.loadFile ("Storm-sound.mp3"); }

ბათილად გათამაშება () {

// შეამოწმეთ არის თუ არა ახალი მნიშვნელობა while (myPort.available ()> 0) {// მონაცემების შესანახად myString myString = myPort.readString (); // შეამოწმეთ ნამდვილად გვაქვს თუ არა რაღაც (myString! = null) {myString = myString.trim (); // შეამოწმეთ არის თუ არა რაღაც (myString.length ()> 0) {println (myString); სცადეთ {sensorValue = Integer.parseInt (myString); } დაჭერა (გამონაკლისი e) {} if (myString.equals ("A")) // ნახეთ რა სტრესის დონეა გაზომილი {მოთამაშეები [0]. თამაში (); // მუსიკის დაკვრა} სხვა {მოთამაშეები [0].პაუზა (); // თუ არ იზომება სტრესის დაბალი დონე, არ დაუკრა სიმღერა} if (myString.equals ("B")) {players [1].play (); } else {მოთამაშეები [1].პაუზა (); } if (myString.equals ("C")) {players [2].play (); } else {მოთამაშეები [2].პაუზა (); }}}}}

ამ კოდმა უნდა შეასრულოს მუსიკა ჩვენი ლეპტოპის დინამიკებზე დაძაბულობის დონის შესაბამისად.

ნაბიჯი 6: შეიმუშავეთ განსახიერება

Image
Image
განსახიერების დიზაინი
განსახიერების დიზაინი

ჩვენ გამოვიყენეთ Philips Hue Light- ის ზედა ნაწილი, მაგრამ შეავსეთ მწვანე ქაფის ქვედა ნაწილი. SolidWorksfile აქ არის, მაგრამ ასევე შეიძლება იყოს სახალისო, რომ თავად შეაფასო ნათურა და შექმნა შენი გემოვნების მიხედვით!

ჩვენ გამოვიყენეთ ლამპის ზედა ნაწილი, როგორც ქვედა ფენა დასავლეთ ნაწილში, რათა დავრწმუნდეთ, რომ ფსკერის ფორმა მიჰყვება ზედა მრუდს (იხ. პირველი ფოტო).

იმისათვის, რომ მოდელი იყოს cnc'd, შეინახეთ იგი როგორც STL ფაილი და იპოვეთ თქვენი ადგილობრივი ფქვილი (მაგალითად, უნიში).

ნაბიჯი 7: წყაროები

თუ გსურთ მეტი ინფორმაცია ამ თემაზე, ან სტრესის გაზომვის უფრო ვრცელი კოდები, იხილეთ შემდეგი ვებსაიტები და პროექტები:

  • მეტი ახსნა დამუშავების პროცესში აუდიო ფაილების გააქტიურების შესახებ (რომელიც ჩვენ გამოვიყენეთ)
  • კარგი სახელმძღვანელო GSR– ს შესახებ
  • განწყობის პროექციის მაგარი განსხვავებული მიდგომა
  • მართლაც მაგარი სტრესის დეტექტორი მრავალი სენსორით (ამ პროექტის დიდი შთაგონება)
  • ხმის (სტრესის ნაცვლად) პროექტორი RGB LED- ით
  • კარგი სტატია GSR– ს შესახებ

გირჩევთ: