Tartalomjegyzék:
- 1. lépés: Szükséges anyagok és alkatrészek:
- 2. lépés: Neopixel gyűrűk
- 3. lépés: Kapcsolatok
- 4. lépés: A kód:
- 5. lépés: Mindent össze kell rakni:
Videó: Relaxációs szemüveg - ITTT: 5 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
HKU projekt - ITTT (ha ez akkor ez) - Julia Berkouwer, 1B
Érezte már magát stresszesnek, és egyszerűen nem tudja, hogyan nyugtassa meg magát, akkor próbálja ki ezeket a relaxációs szemüvegeket! Felteszed őket és lehunyod a szemed, ekkor egy légzési minta fog játszani. Ha ezt a légzési mintát követi, a légzési rítus percenként 6 -szor le- és kilélegzik. Ezzel megszabadul a napi stressztől.
A légzés intenzitását nyomon követheti egy kapcsoló segítségével, egy fsr-érzékelő segítségével.
Ezzel a túrával lépésről lépésre végigvezetem Önt saját relaxációs szemüvegének elkészítésén.
1. lépés: Szükséges anyagok és alkatrészek:
Anyagok:
1x arduino uno;
1xbreadboard vagy PCV;
3x 10k ellenállás
Vezetékek (lehetőleg különböző színűek, így könnyebb megmondani, hogy mi kerül a földre, és melyik különböző csapokhoz stb.);
Néhány hőre zsugorodó cső;
2x NeoPixel gyűrű - 16 x 5050 RGB LED beépített illesztőprogramokkal;
1x kapcsoló;
1x FSR érzékelő;
1x SteamPunk szemüveg (ezeket buliboltban vásárolhatja meg, könnyen használhatóak, mert a neopixel gyűrű tökéletesen illeszkedik a szemüvegre. Mindig próbáljon más szemüveget használni, vagy hozzon létre saját szemüveget.);
1x valamilyen (elasztikus) szalagot a mellkasod köré.
Eszközök: -Laptop
-Forrasztópáka
-Arduino IDE szoftver
Látni fog két gombot és egy kapcsolót a pvc -n, én csak a bal gombot használom a kapcsolóhoz való csatlakoztatáshoz, a kép jobb oldalán lévő második gombot nem használom. Feltettem a gombokat a pvc -re, mielőtt rájöttem, hogy nincs rájuk szükségem, és inkább kapcsolót kell használnom.
Az alábbiakban képeket láthatsz mindenről, amit használtam:
2. lépés: Neopixel gyűrűk
A fehér huzal a neopixelgyűrű hátoldalán lévő földhöz van csatlakoztatva.
A narancssárga vezeték az 5V -hoz van csatlakoztatva.
És a barna vezeték csatlakozik az adatbevitelhez
3. lépés: Kapcsolatok
Így nézett ki a kenyértáblám prototípus készítés közben, ezt referenciaként használhatja.
Egy gombnyomással elkészítettem a kábelezés elrendezését is.
4. lépés: A kód:
Valószínűleg nem a leghatékonyabb kód, de nekem működik. Kihívja magát, és próbálja hatékonyabbá tenni; P
#befoglalni
// Melyik
pin az Arduino -n csatlakozik a NeoPixels -hez?
#definálja
PIN -kód 6
// Melyik
pin az Arduino -n csatlakozik a gombhoz
#definálja
GOMB_PIN 9
// Hogyan
sok NeoPixel kapcsolódik az Arduino -hoz?
#definálja
SZÁMPIXELEK 16
// Amikor
beállítjuk a NeoPixel könyvtárat, megmondjuk, hogy hány képpont és melyik tűt használjuk jelek küldésére.
// Jegyzet
hogy a régebbi NeoPixel csíkok esetében szükség lehet a harmadik paraméter megváltoztatására-lásd a szálkísérletet
//
példa a lehetséges értékekről.
Adafruit_NeoPixel
képpont = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
szünetben
= 1; // késleltetés2
int
szünet2 = 80; // lemegy az fsr használatakor
int
szünet3 = 150; // befejezés az fsr használatakor
int
delayval = 4; // késés1
int
fsrPin = 0; // az FSR és a 10K legördülő menü a0 -hoz van csatlakoztatva
int
fsrReading;
üres
beállít() {
pinMode (BUTTON_PIN, INPUT);
Sorozat.kezdet (9600);
pixels.begin (); // Ezzel inicializálja a
NeoPixel könyvtár.
pixels.show ();
}
bool
gombnyomás (int pin) {
return digitalRead (pin);
}
üres
loop () {// beolvassa, hogy a PIN bemenet igaz vagy hamis
fsrReading = analógRead (fsrPin);
Serial.print ("Analóg olvasás =");
Serial.print (fsrReading);
if (gombnyomás (BUTTON_PIN) == igaz) {
// fényhatás fsr érzékelő használatakor
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 ();
késleltetés (szünet3);
}
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 ();
késleltetés (szünet2);
}
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 ();
késleltetés (szünet3);
}
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 ();
késleltetés (szünet2);
}
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 ();
késleltetés (szünet3);
}
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 ();
késleltetés (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 ();
késleltetés (szünet3);
}
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 ();
késleltetés (20);
}
}
más{
légzés_kék (20, 100, 0, 1, 1); // Normál
hatás
}
}
// Szünet
= késés az átmenetek között
// Lépések
= lépések száma
R, G, B = Teljes RGB értékek
// 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 szünet, int lépések, R bájt, G bájt, B bájt {)
int
tmpR, tmpG, tmpB; // Hőmérsékleti értékek
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
énpixels.setPixelColor (0, tmpR, tmpG+1, tmpB);
pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
pixels.show ();
késleltetés (4);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
énpixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
pixels.show ();
késleltetés (4);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
énpixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
pixels.show ();
késleltetés (3,5);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
énpixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
pixels.show ();
késleltetés (3);
}
for (int i = 0;
énpixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
én
pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
pixels.show ();
késleltetés (3);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
énpixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
pixels.show ();
késleltetés (2);
}
for (int i = 0;
énpixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
énpixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
pixels.show ();
késleltetés (késleltetés);
}
for (int i = 0;
énpixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);
}
// Kivilágosítást
for (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
lépések; // Először szorozzon, hogy elkerülje a csonka hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
for (int i = 0;
én
pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
pixels.show ();
késleltetés (késleltetés);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (7, tmpR, tmpG, tmpB);
pixels.setPixelColor (8, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (1);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (6, tmpR, tmpG, tmpB);
pixels.setPixelColor (9, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (1);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (5, tmpR, tmpG, tmpB);
pixels.setPixelColor (10, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (2);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (4, tmpR, tmpG, tmpB);
pixels.setPixelColor (11, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (2);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (3, tmpR, tmpG, tmpB);
pixels.setPixelColor (12, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (3);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; //
Először szorozzon, hogy elkerülje a csonkítási hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (2, tmpR, tmpG, tmpB);
pixels.setPixelColor (13, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (3);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (1, tmpR, tmpG, tmpB);
pixels.setPixelColor (14, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (4);
}
// Elhalványul
for (int s = lépések; s> 0; s--) {
tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást
hibákat
tmpG = (G * s) / lépések;
tmpB = (B * s) / lépések;
mert (int i = 0; i
pixels.setPixelColor (0, tmpR, tmpG, tmpB);
pixels.setPixelColor (15, tmpR, tmpG, tmpB);
}
pixels.show ();
késleltetés (4);
}
}
5. lépés: Mindent össze kell rakni:
Hagyja az összes vezetéket a kenyérsütő táblához vagy egy PVC -hez csatlakoztatva, ez rajtad múlik (én úgy döntöttem, hogy PVC -t teszek az arduino tetejére, így szép és ügyes).
A következő lépés az, hogy hőzsugorító csöveket helyezünk az összes vezeték köré, így kevesebb lesz a rendetlenség.
Ha úgy döntött, hogy PVC -t használ, akkor már mindent össze kell forrasztania.
Ezt követően tegye a neopixelgyűrűket a szemüveg külső oldalára (győződjön meg arról, hogy a LED -ek egy vonalban vannak a fenékkel), és rögzítse őket a helyükön valamilyen szalaggal vagy ragasztóval (én ragasztószalagot használtam).
Dönthet úgy, hogy ragasztja az fsr-érzékelőt a rugalmas szalagra valamilyen szalaggal, vagy egyszerűen kihagyja.
Élvezze a szemüvegét:)
Ajánlott:
Intelligens szemüveg (10 dollár alatt !!!): 8 lépés (képekkel)
Intelligens szemüveg (10 dollár alatt !!!): Sziasztok! Mindannyian ismerjük az olyan okos szemüveget, mint az E.D.I.T.H. szeretett karakterünk, Tony Stark készítette, amelyet később Peter Parkernek adtak át. Ma egy ilyen okos üveget fogok építeni, amely szintén 10 dollár alatt van! Nem egészen egy
Éjjellátó szemüveg a Google Cardboard számára: 10 lépés (képekkel)
Éjjellátó szemüveg a Google Cardboard számára: Jogi nyilatkozat: Ennek az eszköznek a használata kizárólag szórakoztató, oktatási és tudományos használatra készült; nem kémkedésre és/vagy megfigyelésre. A " kémmodul " A funkciókat csak szórakozásból adták hozzá az alkalmazáshoz, és gyakorlati célokat nem szolgálnak
DIY - RGB szemüveg: 3 lépés (képekkel)
DIY | RGB szemüveg: Hé! Készítettem egy RGB védőszemüveget a WS2812B LED -ek és az Arduino Nano segítségével. A Goggles sok animációt tartalmaz, amelyeket mobilalkalmazással vezérelhet. Az alkalmazás képes kommunikálni az arduino -val Bluetooth modulon keresztül
LED szemüveg és jelmez: 4 lépés (képekkel)
LED szemüveg és jelmez: Szereted, ha messziről látszanak a sötétben? Eltonhoz hasonló díszes szemüveget szeretne? Akkor ez az Instructable az Ön számára !!! Megtanulod, hogyan készíts LED jelmezt és animált fényszemüveget
Folyadékkristályos szemüveg amblyópiához (váltakozó elzáródást tanító szemüveg) [ATtiny13]: 10 lépés (képekkel)
Folyadékkristályos szemüveg ambliópiához (váltakozó elzáródási edzőszemüveg) [ATtiny13]: Amblyopia (lusta szem), a látás zavara, amely a lakosság körülbelül 3% -át érinti, általában egyszerű szemfedőkkel vagy atropin cseppekkel kezelve. Sajnos ezek a kezelési módszerek hosszú, zavartalan ideig elzárják az erősebb szemet, nem