Სარჩევი:
- ნაბიჯი 1: საჭირო მასალები და ნაწილები:
- ნაბიჯი 2: ნეოპიქსელის ბეჭდები
- ნაბიჯი 3: კავშირები
- ნაბიჯი 4: კოდი:
- ნაბიჯი 5: ყველაფერი ერთად შეაერთეთ:
ვიდეო: დასვენების სათვალე - ITTT: 5 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
HKU პროექტი - ITTT (თუ ეს მაშინ ისაა) - ჯულია ბერკუუერი, 1B
ოდესმე გიგრძვნიათ სტრესი და უბრალოდ არ იცით როგორ დაამშვიდოთ თავი, მაშინ უნდა გამოსცადოთ ეს დამამშვიდებელი სათვალე! ჩაიცვი და დახუჭე თვალები, შემდეგ სუნთქვის ნიმუში ითამაშებს. ამ სუნთქვის ნიმუშის დაცვით, თქვენი სუნთქვის რიტმი წუთში 6 -ჯერ ჩაისუნთქავს და ამოისუნთქავს. ამის გაკეთება ათავისუფლებს ყოველდღიურ სტრესს.
თქვენ ასევე შეგიძლიათ თვალყური ადევნოთ თქვენს სუნთქვის ინტენსივობას გადამრთველის გადატრიალებით, fsr- სენსორის გამოყენებით.
ამ ტოტურიალით მე გაგიწევთ ნაბიჯებს საკუთარი დამამშვიდებელი სათვალეების მშენებლობაში.
ნაბიჯი 1: საჭირო მასალები და ნაწილები:
მასალები:
1x arduino uno;
1xbreadboard ან PCV;
3x 10k რეზისტორები
მავთულები (სასურველია განსხვავებული ფერები, ასე რომ უფრო ადვილია იმის თქმა, თუ რა ნივთები მიდის მიწაზე და რომელი მიდის სხვადასხვა ქინძისთავზე და ა.შ.);
ზოგიერთი სითბოს შემცირება მილები;
2x NeoPixel Ring - 16 x 5050 RGB LED ინტეგრირებული დრაივერებით;
1x გადამრთველი;
1x FSR სენსორი;
1x SteamPunk სათვალე (შეგიძლიათ შეიძინოთ წვეულების მაღაზიაში, მათი გამოყენება ადვილია, რადგან ნეოპიქსელის ბეჭედი შესანიშნავად ჯდება სათვალეებზე. თქვენ ყოველთვის ცდილობთ გამოიყენოთ სხვა სათვალე ან შექმნათ თქვენი საკუთარი.);
1x რაიმე სახის (ელასტიური) ბენდი მკერდზე.
ინსტრუმენტები:-ლეპტოპი
-გამათბობელი რკინა
-Arduino IDE პროგრამული უზრუნველყოფა
თქვენ ნახავთ ორ ღილაკს და გადამრთველს ჩემს pvc– ზე, მე მხოლოდ მარცხენა ღილაკს ვიყენებ მის გადამრთველთან დასაკავშირებლად, მე არ ვიყენებ მეორე ღილაკს სურათის მარჯვნივ. პვკ -ზე დავაყენე ღილაკები სანამ მივხვდებოდი რომ არ მჭირდება და ამის ნაცვლად გადამრთველი უნდა გამოვიყენო.
ქვემოთ ნახავთ სურათებს ყველაფრისგან, რაც მე გამოვიყენე:
ნაბიჯი 2: ნეოპიქსელის ბეჭდები
თეთრი მავთული უკავშირდება მიწას ნეოპიქსელის რგოლის უკანა მხარეს.
ნარინჯისფერი მავთული უკავშირდება 5 ვ.
და ყავისფერი მავთული უკავშირდება მონაცემთა შეყვანას
ნაბიჯი 3: კავშირები
ასე გამოიყურებოდა ჩემი პურის დაფა პროტოტიპის დროს, შეგიძლიათ გამოიყენოთ ეს როგორც მინიშნება.
მე ასევე გავაკეთე გაყვანილობის განლაგება, თუ როგორ უნდა გამოიყურებოდეს იგი მხოლოდ ერთი ღილაკით.
ნაბიჯი 4: კოდი:
ეს ალბათ არ არის ყველაზე ეფექტური კოდი, მაგრამ ის მუშაობს ჩემთვის. გაიმეორეთ საკუთარი თავი და შეეცადეთ გახადოთ ის უფრო ეფექტური; პ
#ჩართეთ
// რომელი
Arduino– ს პინი დაკავშირებულია NeoPixels– თან?
#განსაზღვრეთ
PIN 6
// რომელი
Arduino– ს პინი უკავშირდება ღილაკს
#განსაზღვრეთ
BUTTON_PIN 9
// Როგორ
ბევრი NeoPixel ერთვის Arduino– ს?
#განსაზღვრეთ
NUMPIXELS 16
// Როდესაც
ჩვენ ვაყენებთ NeoPixel ბიბლიოთეკას, ჩვენ ვეუბნებით მას რამდენი პიქსელი და რომელი პინი უნდა გამოვიყენოთ სიგნალების გასაგზავნად.
// Შენიშვნა
რომ ძველი NeoPixel ზოლებისთვის შეიძლება დაგჭირდეთ მესამე პარამეტრის შეცვლა-იხილეთ strandtest
//
მაგალითი დამატებითი ინფორმაციისათვის შესაძლო მნიშვნელობებზე.
ადაფრუტ_ნეოპიქსელი
პიქსელი = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
ინტერ პაუზა
= 1; // დაგვიანებით 2
int
პაუზა 2 = 80; // ქვევით როდესაც fsr გამოიყენება
int
პაუზა 3 = 150; // აკეთებს, როდესაც fsr გამოიყენება
int
დაგვიანება = 4; // დაგვიანებით 1
int
fsrPin = 0; // FSR და 10K pulldown დაკავშირებულია a0
int
fsrReading;
სიცარიელე
აწყობა() {
pinMode (BUTTON_PIN, INPUT);
სერიული.დაწყება (9600);
pixels.begin (); // ეს ინიციალიზაციას ახდენს
NeoPixel ბიბლიოთეკა.
pixels.show ();
}
ბოლი
ღილაკზე დაჭერილი (int pin) {
digitalRead (pin) დაბრუნება;
}
სიცარიელე
loop () {// კითხულობს თუ არა pin შეყვანის ჭეშმარიტი ან მცდარი
fsrReading = analogRead (fsrPin);
Serial.print ("ანალოგური კითხვა =");
Serial.print (fsrReading);
თუ (ღილაკზე დაჭერილი (BUTTON_PIN) == ჭეშმარიტი) {
// სინათლის ეფექტი fsr სენსორის გამოყენებისას
if (fsrReading> 50) {
pixels.setPixelColor (0, 1, 0, 1);
pixels.setPixelColor (15, 1, 0, 1);
pixels.setPixelColor (1, 1, 0, 1);
pixels.setPixelColor (14, 1, 0, 1);
pixels.show ();
შეფერხება (პაუზა 3);
}
თუ (fsrReading <52) {
pixels.setPixelColor (0, 0, 0, 0);
pixels.setPixelColor (15, 0, 0, 0);
pixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
pixels.show ();
შეფერხება (პაუზა 2);
}
if (fsrReading> 57) {
pixels.setPixelColor (2, 1, 0, 1);
pixels.setPixelColor (13, 1, 0, 1);
pixels.setPixelColor (3, 1, 0, 1);
pixels.setPixelColor (12, 1, 0, 1);
pixels.show ();
შეფერხება (პაუზა 3);
}
თუ (fsrReading <59) {
pixels.setPixelColor (2, 0, 0, 0);
pixels.setPixelColor (13, 0, 0, 0);
pixels.setPixelColor (3, 0, 0, 0);
pixels.setPixelColor (12, 0, 0, 0);
pixels.show ();
შეფერხება (პაუზა 2);
}
if (fsrReading> 65) {
pixels.setPixelColor (4, 1, 0, 1);
pixels.setPixelColor (11, 1, 0, 1);
pixels.setPixelColor (5, 1, 0, 1);
pixels.setPixelColor (10, 1, 0, 1);
pixels.show ();
შეფერხება (პაუზა 3);
}
თუ (fsrReading <67) {
pixels.setPixelColor (4, 0, 0, 0);
pixels.setPixelColor (11, 0, 0, 0);
pixels.setPixelColor (5, 0, 0, 0);
pixels.setPixelColor (10, 0, 0, 0);
pixels.show ();
დაგვიანება (40);
}
if (fsrReading> 79) {
pixels.setPixelColor (6, 1, 0, 1);
pixels.setPixelColor (9, 1, 0, 1);
pixels.setPixelColor (7, 1, 0, 1);
pixels.setPixelColor (8, 1, 0, 1);
pixels.show ();
შეფერხება (პაუზა 3);
}
თუ (fsrReading <85) {
pixels.setPixelColor (6, 0, 0, 0);
pixels.setPixelColor (9, 0, 0, 0);
pixels.setPixelColor (7, 0, 0, 0);
pixels.setPixelColor (8, 0, 0, 0);
pixels.show ();
დაგვიანება (20);
}
}
სხვა {
სუნთქვის_ ლურჯი (20, 100, 0, 1, 1); // ნორმალური
ეფექტი
}
}
// პაუზა
= გადადებათა შორის შეფერხება
// ნაბიჯები
= ნაბიჯების რაოდენობა
// რ, გ, B = სრული RGB მნიშვნელობები
// De void სუნთქვა არის voor het licht effect als de
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
ბათილი სუნთქვა_ ლურჯი (int პაუზა, int ნაბიჯები, ბაიტი R, ბაიტი G, ბაიტი ბ) {
int
tmpR, tmpG, tmpB; // ტემპის მნიშვნელობები
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გამრავლდით, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მეpixels.setPixelColor (0, tmpR, tmpG+1, tmpB);
pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
pixels.show ();
დაგვიანება (4);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მეpixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
pixels.show ();
დაგვიანება (4);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მეpixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
pixels.show ();
დაგვიანება (3.5);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მეpixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
pixels.show ();
დაგვიანება (3);
}
for (int i = 0;
მეpixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მე
pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
pixels.show ();
დაგვიანება (3);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მეpixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
pixels.show ();
დაგვიანება (2);
}
for (int i = 0;
მეpixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მეpixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
pixels.show ();
დაგვიანება (დაგვიანება);
}
for (int i = 0;
მეpixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);
}
// ქრებოდა
for (int s = 1; s <= ნაბიჯები; s ++) {
tmpR = (R * s) /
ნაბიჯები; // ჯერ გამრავლდით, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0;
მე
pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
pixels.show ();
დაგვიანება (დაგვიანება);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (7, tmpR, tmpG, tmpB);
pixels.setPixelColor (8, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (1);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (6, tmpR, tmpG, tmpB);
pixels.setPixelColor (9, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (1);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (5, tmpR, tmpG, tmpB);
pixels.setPixelColor (10, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (2);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (4, tmpR, tmpG, tmpB);
pixels.setPixelColor (11, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (2);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (3, tmpR, tmpG, tmpB);
pixels.setPixelColor (12, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (3);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; //
ჯერ გაამრავლეთ, რათა თავიდან აიცილოთ შემცირების შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (2, tmpR, tmpG, tmpB);
pixels.setPixelColor (13, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (3);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (1, tmpR, tmpG, tmpB);
pixels.setPixelColor (14, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (4);
}
// ჩაქრება
for (int s = ნაბიჯები; s> 0; s--) {
tmpR = (R * s) / ნაბიჯები; // გაამრავლე ჯერ თავიდან აცილების მიზნით
შეცდომები
tmpG = (G * s) / ნაბიჯები;
tmpB = (B * s) / ნაბიჯები;
for (int i = 0; i
pixels.setPixelColor (0, tmpR, tmpG, tmpB);
pixels.setPixelColor (15, tmpR, tmpG, tmpB);
}
pixels.show ();
დაგვიანება (4);
}
}
ნაბიჯი 5: ყველაფერი ერთად შეაერთეთ:
თქვენ უბრალოდ შეგიძლიათ დატოვოთ ყველა თქვენი მავთული, რომელიც დაკავშირებულია თქვენს დაფაზე ან PVC– ზე, თქვენზეა დამოკიდებული (მე ავირჩიე PVC არდუინოს თავზე დაყენება, ეს ლამაზი და სისუფთავეა).
შემდეგი ნაბიჯი არის სითბოს შემამცირებელი მილების დადება ყველა მავთულის გარშემო, ასე რომ ის არეულობას გამოიწვევს.
თუ თქვენ გადაწყვიტეთ PVC– ის გამოყენება, თქვენ უკვე უნდა გაერთოთ აქამდე.
ამის შემდეგ თქვენ აყენებთ ნეოპიქსელის რგოლებს სათვალის გარედან (დარწმუნდით, რომ ლიდერები გასწორებულია ქვედა ნაწილში) და მიამაგრეთ ისინი ლენტით ან წებოთი (მე ფირზე ვიყენებ).
თქვენ შეგიძლიათ აირჩიოთ fsr- სენსორი ელასტიური ჯგუფზე მიამაგროთ ლენტით, ან უბრალოდ დატოვოთ იგი დამოუკიდებლად.
ისიამოვნეთ თქვენი სათვალეებით:)
გირჩევთ:
ჭკვიანი სათვალე (10 დოლარამდე !!!): 8 ნაბიჯი (სურათებით)
ჭკვიანი სათვალე (10 დოლარამდე !!!): გამარჯობა! ჩვენ ყველანი ვიცნობთ სმარტ სათვალეებს, როგორიცაა E.D.I.T.H. დამზადებულია ჩვენი საყვარელი პერსონაჟის ტონი სტარკის მიერ, რომელიც მოგვიანებით გადაეცა პიტერ პარკერს. დღეს ვაპირებ ავაშენო ერთი ასეთი ჭკვიანი მინა, რომელიც ასევე 10 დოლარამდეა! ისინი მთლად არ არიან
Arduino– ს დათვლა W/ დასვენების ღილაკი: 4 ნაბიჯი
Arduino Count Down W/ Rest Button: ეს ინსტრუქცია გასწავლით თუ როგორ უნდა შექმნათ ათვლის ტაიმერი 4 ციფრიანი 7-სეგმენტიანი ეკრანის გამოყენებით, რომლის გადატვირთვაც შესაძლებელია ღილაკით. მე მივიღე იდეა ამის გაკეთება, რადგან კლასში 1 ციფრიანი 7-სეგმენტიანი ჩვენების შექმნისას მინდოდა რაღაცის შექმნა
წვრილმანი - RGB სათვალე: 3 ნაბიჯი (სურათებით)
წვრილმანი | RGB სათვალე: ჰეი! მე გავაკეთე RGB სათვალეები WS2812B LED- ების და არდუინო ნანოს გამოყენებით. სათვალეებს აქვთ მრავალი ანიმაცია, რომელთა კონტროლი შესაძლებელია მობილური აპლიკაციის გამოყენებით. აპს შეუძლია არდუინოსთან კომუნიკაცია Bluetooth მოდულის საშუალებით
LED სათვალე და კოსტუმი: 4 ნაბიჯი (სურათებით)
LED სათვალე და კოსტუმი: მოგწონთ თუ არა შორიდან სიბნელეში დანახვა? გსურთ ელტონის მსგავსი ლამაზი სათვალე? მაშინ ეს ინსტრუქცია თქვენთვისაა !!! თქვენ შეისწავლით თუ როგორ უნდა გააკეთოთ LED კოსტუმი და ანიმაციური მსუბუქი სათვალე
რადარის სათვალე: 14 ნაბიჯი (სურათებით)
რადარის სათვალე: გასულ ზაფხულს მეინში შვებულების დროს შევხვდით კიდევ ერთ წყვილს: მაიკს და ლინდას. ლინდა ბრმა იყო და ბრმა იყო (ვფიქრობ) მათი პირველი შვილის დაბადებიდან. ისინი მართლაც ლამაზები იყვნენ და ჩვენ ბევრი ვიცინეთ ერთად. სახლში მისვლის შემდეგ მე არ შემეძლო