Cuprins:
- Pasul 1: Idei sau soluții potențiale
- Pasul 2: Realizarea Asamblării
- Pasul 3: Proiectarea Blind Gear
- Pasul 4: Codificarea orbului
- Pasul 5: Atingeri de finisare
- Pasul 6: Evaluarea proiectului
Video: Deschizător automat pentru blinduri folosind EV3: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Am un set de rulouri opace în dormitorul meu pe care de multe ori uit să le deschid sau să le închid dimineața sau seara. Vreau să automatizez deschiderea și închiderea, dar cu o suprascriere când, când mă schimb.
Pasul 1: Idei sau soluții potențiale
După ce am căutat pe diverse site-uri, cum ar fi YouTube, Instructables și Thingiverse, am constatat că cea mai comună soluție a fost motorizarea bobinei care înfășura și desfășura jaluzelele folosind un motor pas cu pas sau un servo. Am găsit 2 opțiuni principale cu diferite avantaje și dezavantaje.
Ideea 1: Metoda bobinei în care motorul și angrenajul sunt adăpostite în bobină. Aceasta are avantajele că este o metodă elegantă și elegantă, dar are dezavantajele că necesită modificări majore pentru jaluzele, cablul nu mai este utilizabil, iar ansamblul ar fi foarte dificil de accesat pentru întreținere atunci când este implementat.
Ideea 2: metoda cablului în care motorul și angrenajul sunt adăpostite pe cablu. Acest lucru are avantajul că este mai simplu și că ansamblul ar putea fi ușor accesibil. Cu toate acestea, are dezavantajul că ar putea fi urât și voluminos, precum și faptul că trebuie atașat la prag atunci când este implementat.
Prefer metoda cablului, deoarece este o soluție mult mai simplă, care nu inhibă utilizarea manuală a cablului, iar jaluzelele nu vor necesita modificări majore. Am de gând să-l fac cât mai ascuns și compact posibil când fac versiunea finală cu un ESP8266.
Pasul 2: Realizarea Asamblării
Am făcut acest proiect folosind Lego mindstorms EV3, care are funcționalități de care am nevoie pentru a arăta că proiectul ar putea funcționa și sunt familiarizat cu software-ul care cu siguranță a ajutat foarte mult. Deoarece jaluzelul folosește un lanț cu bile pentru a acționa bobina, cu care angrenajele Lego sunt incompatibile, am decis că cea mai bună soluție a fost de a proiecta un angrenaj cu distanța corectă a mingii la exterior - cu gaura standard „în formă de cruce” în centru, unde aș printa 3D proiectarea. În acest moment, am făcut și un buton de calibrare și am atașat un senzor de lumină la fereastră, precum și un buton pentru a acționa ca suprascriere.
Pasul 3: Proiectarea Blind Gear
Am dezasamblat blindul pentru a vedea cum arăta manivela mai detaliat. În timpul demontării am găsit un angrenaj mic cu 16 dinți, care a fost ținut în poziție de o bobină tensionată, aceasta a fost partea pe care o căutam. După proiectarea unei replici a uneltelor, am adăugat găurile compatibile Lego necesare, am imprimat cele 3 părți separate și le-am lipit în cele din urmă cu superglue. Am avut inițial probleme în ceea ce privește compatibilitatea piesei Lego, în sensul că imprimanta 3D nu avea rezoluția de a face gaura „x” suficientă, totuși nu avea probleme cu găurile circulare de ambele părți ale acesteia. Așa că am înlocuit „x” cu o gaură circulară și a imprimat bine. Apoi, după o mică cantitate de teste, am putut vedea că se poate descurca cuplul și greutatea de la blind. Îmi voi lega desenele pentru echipamentul de mai jos sau îl puteți găsi pe Thingiverse la:
Pasul 4: Codificarea orbului
Am vrut un cod care să se deschidă și să închidă automat jaluzeaua când ajunge la un anumit nivel de lumină, dar care avea și un buton de suprascriere, astfel încât să poată deschide sau închide jaluzeaua atunci când doresc. Am conectat GitHub la versiunea finală a codului aici:
Codul proiectului mi-a luat câteva zile până la finalizare, aveam logica de bază a programului care funcționa corect cu senzorul de lumină, totuși butonul de suprascriere momentan nu funcționa corect. A modificat starea orbului după ce a fost apăsat, dar nu avea funcția de „blocare” care ar însemna că orbul va rămâne în poziție - adică orbul îl va întoarce imediat la ceea ce era înainte. Am remediat acest lucru folosind un bloc „așteptați până”, legat de o poartă logică SAU care citea valorile senzorului de lumină și al senzorului tactil, pe care le voi explica mai jos.
Codul începe prin calibrarea motoarelor și a jaluzelei, începând cu jaluzeaua complet deschisă și coborând-o până când atinge senzorul tactil din partea de jos, numărând câte sferturi de rotație este nevoie pentru a ajunge în partea de jos, care este salvată ca „RotationsNeeded” variabil. Apoi scrie „fals” în variabila „BlindOpen” care este utilizată pentru a urmări poziția blind-ului. În acest moment, codul se împarte în 4 bucle.
Una dintre aceste bucle este bucla „Buttonstate” care publică continuu starea butonului la o variabilă numită „ButtonPressed”. Acest lucru elimină necesitatea ca mai multe blocuri de butoane să fie plasate pe script.
A doua buclă este „Lumina sau întunericul” care compară continuu nivelul de lumină din afara ferestrei mele, cu o constantă definită mai devreme în cod. Dacă rezultatul este sub această constantă, bucla va scrie „fals” în variabila „ItIsLight”, în timp ce dacă este peste valoare, va scrie „adevărat”.
Cea de-a treia buclă conține o listă numerică de 3 opțiuni care spune practic orbilor ce trebuie să facă, 0 = orb în jos, 1 = orb în sus, 2 = nu face nimic, pentru că orb este în locul corect. Bucla începe prin citirea variabilei „BlindShould” care specifică sarcina corectă pe care ar trebui să o facă blindul, apoi efectuează acea sarcină, modifică variabila „BlindOpen” la opțiunea corectă și apoi devine inactivă până când variabila „BlindShould” este schimbată unde se repetă. Folosește valoarea „RotationsNeeded”, precum și o putere de +/- 100% pentru a muta jaluzeaua complet deschisă sau închisă.
A patra și ultima buclă este cea mai complexă, este bucla „Decider” care gestionează toate datele și decide ce să facă cu fiecare permutare. Face acest lucru folosind „furci în drum” bazate pe logică unde „butonul este apăsat”, „Nivelul luminii”, „Blind deschis” sunt întrebările adevărate sau false. Toate permutările au un răspuns codat greu, care este fie 0 = orb în jos, 1 = orb în sus sau 2 = nu face nimic - această valoare este scrisă în variabila „BlindShould” care este apoi tratată de o buclă anterioară. Unele răspunsuri vor aștepta apoi modificarea variabilei „ItIsLight” și / sau „ButtonPressed” înainte de a termina scriptul, acesta este doar cazul permutărilor activate de buton, deoarece altfel ar încerca imediat să-și corecteze poziția, ceea ce înseamnă că orbul ar reveni la starea sa inițială. Acest proces este apoi în buclă pentru a crea un sistem automat robust și relativ simplu, care poate fi ușor adăugat și depanat. Phew.
Pasul 5: Atingeri de finisare
Am decis ulterior să conectez o sursă de alimentare de 9V la EV3 folosind niște dibluri și șuruburi de lemn ca „baterii”, ceea ce a făcut ca produsul să nu se bazeze pe baterii și să mă împiedice să schimb bateriile la fiecare două zile.
Pasul 6: Evaluarea proiectului
Cred că proiectul a decurs bine în ansamblu, am ajuns la un prototip funcțional pentru ansamblul jaluzelelor automate, pe care îl pot lua pe toate informațiile relevante pe care le-am găsit în timpul proiectului și le pot implementa în versiunea finală. Am codificat cu succes dispozitivul și mai târziu nu am găsit probleme majore cu codul până acum. Mi-aș fi dorit să fac dispozitivul mai atrăgător din punct de vedere vizual, dar încă o dată este o dovadă a conceptului și voi depune un efort pentru a face să arate bine atunci când fac versiunea finală cu un ESP8266. Când voi face din nou proiectul, voi proiecta motorul să stea în interiorul jaluzelului, deoarece ar fi mai ușor de ascuns. Cea mai mare lecție pe care am învățat-o este să depan logic și să mă gândesc, să documentez și să testez codul meu înainte să îl implementez.
Recomandat:
Deschizător ușă garaj cu feedback folosind Esp8266 ca server web .: 6 pași
Deschizător de uși de garaj cu feedback folosind Esp8266 ca server web. feedback, veți ști că ușa este deschisă sau închisă în timp real - Simplu, doar o singură comandă rapidă pentru a face
Arduino Home Automation, deschizător automat de uși: 6 pași
Arduino Home Automation, Automatic Door Opener: Înscrieți-vă la cursul meu „Electronică pe scurt” aici: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARK De asemenea, verificați canalul meu YouTube aici pentru mai multe detalii proiecte și tutoriale electronice: https://www.youtube.com/channel/UCelOOR
Deschizator automat de vopsea: 6 pași
Deschizător automat pentru cutii de vopsea: Acest instructable a fost creat pentru a îndeplini cerințele proiectului Makecourse de la Universitatea din Florida de Sud (www.makecourse.com). În Instructable de astăzi, vă voi arăta cum să creați un deschizător automat de cutii de vopsea
Cum se face un circuit automat automat de lumină de noapte folosind LDR: 4 pași
Cum să faci un circuit automat automat de lumină nocturnă folosind LDR: Bună ziua, diavoli astăzi, îți voi arăta cum să faci un circuit automat automat de lumină nocturnă folosind un LDR (rezistență în funcție de lumină) și un mosfet, așa că urmează și în pașii următori, vei găsiți schema automată a circuitului de lumină de noapte, precum și t
Deschizător automat pentru orb: 11 pași
Deschizător automat pentru orb: http: //contraptionmaker.info Locuim într-o casă fermă veche de 150 de ani, cu ferestrele originale. În ciuda izolației și a pardoselilor noi, este ca și cum ai trăi într-o sită, iarna. Pentru a combate această problemă, instalăm plastic pe ferestre pentru a încerca și