Cuprins:
- Pasul 1: Imprimați aceste părți
- Pasul 2: încărcați codul
- Pasul 3: Asamblare
- Pasul 4: Asamblați piesele în cască
- Pasul 5: Conectați alimentarea
Video: Lampă tactilă pentru cască de scufundare: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest instructabil
Vei avea nevoie
- Casca de scufundare sau echivalent
- Inel cu LED compatibil Neopixel (am folosit un inel cu 38 de LED-uri)
- Placa Wemos ESP32 (sau echivalent)
- imprimantă 3d
Pasul 1: Imprimați aceste părți
Este posibil ca aceste părți să fie nevoie să se adapteze dacă utilizați o cască de scufundare diferită, am aflat că cea pe care o am este destul de comună
Pasul 2: încărcați codul
Plasați ssid-ul și parola în cod, apoi încărcați-le pe tablă. Acest lucru este acolo pentru a permite OTA să încarce cod nou după asamblarea proiectului. Va trebui să instalați NeoPixelBus de Makuna disponibil aici https://github.com/Makuna/NeoPixelBus Va trebui, de asemenea, să instalați definițiile plăcii ESP32 în mediul arduino pentru a utiliza această placă.
// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * password = "Parola"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Luminozitate = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // Jumătate din timpul dintre pulsații RgbColor negru (0); // Buton Jazz float Buton1_total = 0; netezire int = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; Inel NeoPixelBus (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println („Pornire”); WiFi.mode (WIFI_STA); WiFi.begin (ssid, parolă); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Conexiunea nu a reușit!"); întârziere (5000); //ESP.restart (); } OTA_init (); touch_pad_init (); touchSetCycles (0x6000, 0x6000); // touch_pad_set_cnt_mode (0, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_HIGH); ring. Begin (); ring. Show (); } void loop () {if (millis () <600000) {ArduinoOTA.handle ();} else if (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } if (button1_capture () == 1) {ring. ClearTo (black); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} delay (10); } void OTA_init () {ArduinoOTA.onStart ( () {Tip șir; if (ArduinoOTA.getCommand () == U_FLASH) type = "schiță"; else // U_SPIFFS type = "sistem de fișiere"; // NOTĂ: if actualizarea SPIFFS acesta ar fi locul de demontare a SPIFFS folosind SPIFFS.end () Serial.println ("Începeți actualizarea" + tip);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (progres int nesemnat, total nesemnat) {Serial.printf ("Progres:% u %% / r", (progres / (total / 100)));)).onError ( (ota_error_t error) {Serial.printf ("Error [% u]:", error); if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Begin Failed "); else if (error == OTA_CONNECT_ERROR) Serial.println (" Connect Failed "); else if (error == OTA_RECEIVE_ERROR) Serial.println (" Receive Failed "); else if (error == OTA_END_ERROR) Serial. println ("Finalul a eșuat");}); ArduinoOTA.begin (); Serial.println („Gata”); Serial.print („Adresă IP:”); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i + 1]; } Buton1 [debounce-1] = (touchRead (T0)); float current = MaxArray (Buton1); float Button1_smooth = Buton1_total / netezire; // curent plutitor = AveArray (Buton1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (curent); Serial.print (""); Serial.println (Button1 [debounce-1]); if (current <(0.85 * Button1_smooth)) {Button1_total = 0; // funcționează ca un return de debounce 1; } else {Button1_total = current + Button1_total -Button1_smooth; } returnează 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; for (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; pentru (int i = 0; i
Pasul 3: Asamblare
Conectați-vă placa așa cum se arată și verificați dacă funcționează.
Plasa conectată la „mâner” va acționa ca un buton tactil. Pe placa mea ESP32 T0 este atașat la D4. Va trebui să verificați acest lucru dacă utilizați o altă placă.
Atașarea unui fir gol la acest știft se va comporta la fel. Dacă îl apăsați de două ori, îl veți aprinde ca o lumină de noapte. De 3 ori puțin mai strălucitor și de 4 ori alb.
Pasul 4: Asamblați piesele în cască
Pentru a aprinde lampa vom folosi mânerul căștii ca senzor tactil. Aceasta înseamnă că trebuie izolat de restul căștii. Scoateți mânerul și acoperiți fața de contact cu bandă izolatoare. Am folosit bandă maro pentru a se amesteca, este evidențiată în albastru în imagine. Găuriți găurile astfel încât șuruburile să fie libere și reașezabile cu niște șaibe de plastic pe cealaltă parte.
Conectați știftul la unul dintre șuruburile mânerelor folosind un conector de sertizare.
Dacă intenționați să utilizați o sursă de alimentare plutitoare (cam toate), va trebui să conectați un pin GND la corpul căștii în același mod. Acum, pentru a aprinde lampa, puneți o mână pe cască și atingeți mânerul cu cealaltă.
Pasul 5: Conectați alimentarea
Înșurubați placa de rupere micro USB la conectorul de perete imprimat 3D, apoi fixați-l cu piulița.
Orice sursă de alimentare de 5V DC poate fi utilizată în schimb, dar încărcătoarele USB sunt abundente în casa mea. Am folosit un cablu USB împletit pentru a mima un flex vechi și a completa aspectul.
Asta ai terminat.
Dacă doriți să modificați codul pentru a încerca culori, efecte sau temporizatoare suplimentare, acesta va fi disponibil ca dispozitiv arduino OTA în primele 10 minute de fiecare dată când este conectat. Acest lucru se va opri pentru a economisi energie.
Recomandat:
CASCĂ VR VR PENTRU 80 USD: 10 pași (cu imagini)
CASCĂ VR VR PENTRU 80 USD: Scopul meu inițial era să fac acest lucru cu mai puțin de 150 USD (USD), cu toate acestea, după ce am făcut cumpărături și am schimbat unele piese pentru alternative, am reușit să reduc acest lucru la aproximativ 80 USD. Deci, haideți să începem. Piesele necesare sunt: Comutator Flick 2x LED1x resisto
Cască LED pentru biciclete: 6 pași (cu imagini)
Cască pentru biciclete cu LED: Iată cum puteți adăuga LED-uri de siguranță la casca pentru biciclete folosind vopsea conductivă. Pierdeam mereu acele lumini pe care le fixezi pe bicicletă și nu sunt ieftine sau de bună calitate. Materiale: vopsea conductivă epoxidică epoxidică de 5 minute (lipici fierbinte pentru
QeMotion - Urmărirea mișcării pentru fiecare cască !: 5 pași (cu imagini)
QeMotion - Urmărirea mișcării pentru fiecare cască !: Prezentare generală: Acest dispozitiv vă permite să utilizați mișcarea capului pentru a declanșa evenimente în practic orice joc video. Funcționează urmărind mișcarea capului (sau căștile în acest sens) și declanșând apăsarea tastaturii pentru anumite mișcări. Așa că comp
Intrare tactilă capacitivă ESP32 utilizând „dopuri metalice” pentru butoane: 5 pași (cu imagini)
Intrare tactilă capacitivă ESP32 utilizând „dopuri metalice” pentru butoane: În timp ce finalizam deciziile de proiectare pentru un viitor proiect ESP32 bazat pe kitul WiFi care necesită intrare cu trei butoane, o problemă vizibilă a fost că kitul WiFi 32 nu are un singur buton mecanic, totuși, doar trei butoane mecanice, f
TECHNO VIKING! Coarne LED pe o cască spațială Viking: Indicator de volum + Cască Viking Transucent: 6 pași
TECHNO VIKING! Claxoane LED pe o cască spațială Viking: Indicator de volum + Cască Viking Transucent: Da! Aceasta este o cască pentru Space Vikings. *** Actualizare, aceasta ar trebui redenumită Casca Techno Viking *** Dar este octombrie 2010 și tocmai am aflat despre Techno Viking doar astăzi. Bine în spatele curbei meme. Whateva 'Iată-l cu o producție mai mare