Turinys:
- 1 žingsnis: Reikalingos medžiagos ir dalys:
- 2 žingsnis: Neopikselio žiedai
- 3 žingsnis: jungtys
- 4 žingsnis: kodas:
- 5 žingsnis: viską sudėkite:
Video: Atsipalaidavimo akiniai - ITTT: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
HKU projektas - ITTT (jei tai tada tai) - Julia Berkouwer, 1B
Ar kada nors jautėte stresą ir tiesiog nežinote, kaip nusiraminti, tuomet turėtumėte išbandyti šiuos atsipalaidavimo akinius! Uždėję juos ir užmerkę akis, tada kvėpuosite. Laikydamiesi šio kvėpavimo modelio, jūsų kvėpavimo ritmas kvėpuos ir iškvėps 6 kartus per minutę. Tai darydami jis pašalina kasdienį stresą.
Kvėpavimo intensyvumą taip pat galite stebėti perjungę jungiklį, naudodami fsr jutiklį.
Naudodamasis šia programa, žingsnis po žingsnio padėsiu jums sukurti savo atsipalaidavimo akinius.
1 žingsnis: Reikalingos medžiagos ir dalys:
Medžiagos:
1x arduino uno;
1xbreadboard arba PCV;
3x 10k rezistoriai
Laidai (pageidautina skirtingų spalvų, kad būtų lengviau pasakyti, kurie daiktai eina į žemę, o kurie - skirtingus kaiščius ir pan.);
Kai kurie termiškai susitraukiantys vamzdžiai;
2x „NeoPixel“žiedas - 16 x 5050 RGB šviesos diodas su integruotomis tvarkyklėmis;
1x jungiklis;
1x FSR jutiklis;
1x „SteamPunk“akiniai (juos galite nusipirkti vakarėlių parduotuvėje, juos lengva naudoti, nes neopikselinis žiedas puikiai tinka ant akinių. Visada bandote naudoti kitus akinius arba susikurkite savo.);
1x kažkokią (elastinę) juostą, skirtą aplink krūtinę.
Priemonės: -Laptop
-Lituoklis
-„Arduino IDE“programinė įranga
Ant mano PVC pamatysite du mygtukus ir jungiklį, aš naudoju tik kairįjį mygtuką, norėdamas jį prijungti prie jungiklio, aš nenaudoju antrojo mygtuko paveikslėlio dešinėje. Aš uždėjau mygtukus ant PVC, kol supratau, kad man jų nereikia, o vietoj to turėjau naudoti jungiklį.
Žemiau rasite nuotraukas, kuriose aš naudoju viską:
2 žingsnis: Neopikselio žiedai
Balta viela yra prijungta prie žemės neopikselio žiedo gale.
Oranžinė viela prijungta prie 5 V.
Ir rudas laidas yra prijungtas prie duomenų įvesties
3 žingsnis: jungtys
Štai kaip atrodė mano duonos lentelė prototipų kūrimo metu, galite tai naudoti kaip nuorodą.
Taip pat tik vienu mygtuku sukūriau laidų išdėstymą, kaip jis turėtų atrodyti.
4 žingsnis: kodas:
Tai tikriausiai nėra pats efektyviausias kodas, bet man tinka. Išbandykite save ir pabandykite tai padaryti efektyviau; P.
#įtraukti
// Kuris
„Arduino“kaištis prijungtas prie „NeoPixels“?
#apibrėžti
PIN kodas 6
// Kuris
„Arduino“kaištis yra prijungtas prie mygtuko
#apibrėžti
9 BUTTON_PIN
// Kaip
prie „Arduino“prijungta daug „NeoPixels“?
#apibrėžti
SKAIČIŲ 16
// Kada
mes nustatome „NeoPixel“biblioteką, nurodome, kiek pikselių ir kokį smeigtuką naudoti signalams siųsti.
// Pastaba
kad senesnėms „NeoPixel“juostelėms gali tekti pakeisti trečiąjį parametrą-žr
//
pavyzdys, jei norite gauti daugiau informacijos apie galimas vertes.
„Adafruit_NeoPixel“
pikseliai = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
per pauzę
= 1; // uždelsimas2
tarpt
pauzė2 = 80; // nusileidžia, kai naudojamas fsr
tarpt
pauzė3 = 150; // padarymas, kai naudojamas fsr
tarpt
delayval = 4; // uždelsimas1
tarpt
fsrPin = 0; // FSR ir 10K išskleidžiamasis meniu yra prijungti prie a0
tarpt
fsrReading;
tuštuma
sąranka () {
pinMode (BUTTON_PIN, INPUT);
Serial.begin (9600);
pixels.begin (); // Tai inicijuoja
„NeoPixel“biblioteka.
pixels.show ();
}
bool
nuspaustas mygtukas (int pin) {
return digitalRead (pin);
}
tuštuma
loop () {// nuskaito, ar PIN įvestis teisinga, ar klaidinga
fsrReading = analogRead (fsrPin);
Serial.print ("Analoginis skaitymas =");
Serial.print (fsrReading);
if (paspaudus mygtuką (BUTTON_PIN) == tiesa) {
// šviesos efektas naudojant fsr jutiklį
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 ();
vėlavimas (pauzė3);
}
if (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 ();
uždelsimas (pauzė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 ();
vėlavimas (pauzė3);
}
if (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 ();
uždelsimas (pauzė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 ();
vėlavimas (pauzė3);
}
if (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 ();
vėlavimas (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 ();
vėlavimas (pauzė3);
}
if (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 ();
vėlavimas (20);
}
}
Kitas{
kvėpuoti mėlyna spalva (20, 100, 0, 1, 1); // normalus
poveikis
}
}
// Pauzė
= vėlavimas tarp perėjimų
// Žingsniai
= žingsnių skaičius
R, G, B = visos RGB vertės
// De void breathe is voor het licht effect als de
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
void breathe_blue (int pauzė, int žingsniai, baitas R, baitas G, baitas B) {
tarpt
tmpR, tmpG, tmpB; // Temp vertės
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
ipixels.setPixelColor (0, tmpR, tmpG+1, tmpB);
pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
pixels.show ();
uždelsimas (4);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
ipixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
pixels.show ();
uždelsimas (4);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
ipixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
pixels.show ();
vėlavimas (3,5);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
ipixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
pixels.show ();
vėlavimas (3);
}
už (int i = 0;
ipixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
i
pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
pixels.show ();
vėlavimas (3);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
ipixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
pixels.show ();
uždelsimas (2);
}
už (int i = 0;
ipixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
ipixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
pixels.show ();
vėlavimas (uždelsimas);
}
už (int i = 0;
ipixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);
}
// Išnyks
už (int s = 1; s <= žingsniai; s ++) {
tmpR = (R * s) /
žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0;
i
pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
pixels.show ();
vėlavimas (uždelsimas);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (7, tmpR, tmpG, tmpB);
pixels.setPixelColor (8, tmpR, tmpG, tmpB);
}
pixels.show ();
uždelsimas (1);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (6, tmpR, tmpG, tmpB);
pixels.setPixelColor (9, tmpR, tmpG, tmpB);
}
pixels.show ();
uždelsimas (1);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (5, tmpR, tmpG, tmpB);
pixels.setPixelColor (10, tmpR, tmpG, tmpB);
}
pixels.show ();
uždelsimas (2);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (4, tmpR, tmpG, tmpB);
pixels.setPixelColor (11, tmpR, tmpG, tmpB);
}
pixels.show ();
uždelsimas (2);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (3, tmpR, tmpG, tmpB);
pixels.setPixelColor (12, tmpR, tmpG, tmpB);
}
pixels.show ();
vėlavimas (3);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; //
Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (2, tmpR, tmpG, tmpB);
pixels.setPixelColor (13, tmpR, tmpG, tmpB);
}
pixels.show ();
vėlavimas (3);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (1, tmpR, tmpG, tmpB);
pixels.setPixelColor (14, tmpR, tmpG, tmpB);
}
pixels.show ();
uždelsimas (4);
}
// Išnyks
už (int s = žingsniai; s> 0; s--) {
tmpR = (R * s) / žingsniai; // Pirmiausia padauginkite, kad išvengtumėte sutrumpinimo
klaidų
tmpG = (G * s) / žingsniai;
tmpB = (B * s) / žingsniai;
už (int i = 0; i
pixels.setPixelColor (0, tmpR, tmpG, tmpB);
pixels.setPixelColor (15, tmpR, tmpG, tmpB);
}
pixels.show ();
uždelsimas (4);
}
}
5 žingsnis: viską sudėkite:
Galite tiesiog palikti visus laidus prijungtus prie savo duonos lentos arba PVC, tai priklauso nuo jūsų (aš nusprendžiau uždėti PVC ant arduino, tai gražu ir tvarkinga).
Kitas žingsnis - aplink visus laidus uždėti termiškai susitraukiančius vamzdelius, kad būtų mažiau netvarkos.
Jei pasirinkote naudoti PVC, jau turėjote viską sulituoti.
Po to neopikselių žiedus uždėkite ant akinių išorės (įsitikinkite, kad šviesos diodai yra sulygiuoti užpakalinėje dalyje) ir pritvirtinkite juos tam tikra juostele ar klijais (aš naudojau juostelę).
Galite pasirinkti priklijuoti fsr jutiklį prie elastinės juostos tam tikra juostele arba tiesiog palikti ją atskirai.
Mėgaukitės akiniais:)
Rekomenduojamas:
Išmanieji akiniai (iki 10 USD !!!): 8 žingsniai (su nuotraukomis)
Išmanieji akiniai (iki 10 USD !!!): Sveiki! Mes visi žinome tokius išmaniuosius akinius kaip E.D.I.T.H. sukūrė mūsų mylimas personažas Tony Starkas, kuris vėliau buvo perduotas Peteriui Parkeriui. Šiandien aš pastatysiu vieną tokį išmanųjį stiklą, kurio kaina taip pat yra mažesnė nei 10 USD! Jie ne visai
Pasidaryk pats - RGB akiniai: 3 žingsniai (su nuotraukomis)
Pasidaryk pats | RGB akiniai: Ei! Aš sukūriau RGB akinius naudodami WS2812B šviesos diodus ir „Arduino Nano“. „Akiniai“turi daug animacijų, kuriuos galima valdyti naudojant programą mobiliesiems. Programa gali bendrauti su „arduino“per „Bluetooth“modulį
LED akiniai ir kostiumas: 4 žingsniai (su nuotraukomis)
LED akiniai ir kostiumas: ar jums patinka būti matomam iš toli tamsoje? Ar norite išgalvotų akinių, tokių kaip Eltonas? Tada ši instrukcija skirta jums !!! Išmoksite pasigaminti LED kostiumą ir animacinius šviesos akinius
Aukštos įtampos kintamos okliuzijos mokymo akiniai [ATtiny13]: 5 žingsniai (su nuotraukomis)
Aukštos įtampos kintamos okliuzijos treniruočių akiniai [ATtiny13]: Savo pirmoje pamokoje aprašiau, kaip sukurti prietaisą, kuris turėtų būti labai naudingas tiems, kurie nori gydyti ambliopiją (tingus akis). Dizainas buvo labai supaprastintas ir turėjo tam tikrų trūkumų (reikėjo naudoti dvi baterijas ir skystį
Skystųjų kristalų akiniai ambliopijai (kintamos okliuzijos treniruočių akiniai) [ATtiny13]: 10 žingsnių (su paveikslėliais)
Skystųjų kristalų akiniai nuo ambliopijos (kintamos okliuzijos treniruočių akiniai) [ATtiny13]: Ambliopija (tinginė akis), regėjimo sutrikimas, pasireiškiantis maždaug 3% gyventojų, paprastai gydomas paprastais akiniais arba atropino lašais. Deja, šie gydymo metodai užkemša stipresnę akį ilgą laiką, nepertraukiamai, ne