Kazalo:

Samodejni odpirač za slepe z EV3: 6 korakov
Samodejni odpirač za slepe z EV3: 6 korakov

Video: Samodejni odpirač za slepe z EV3: 6 korakov

Video: Samodejni odpirač za slepe z EV3: 6 korakov
Video: Пёс отчаянно выл на весь двор, не давая жизни жителям дома, но узнав причину, люди остолбенели 2024, November
Anonim
Samodejni odpirač za slepe z EV3
Samodejni odpirač za slepe z EV3
Samodejni odpirač za slepe z EV3
Samodejni odpirač za slepe z EV3

V spalnici imam komplet žaluzij, ki jih pogosto pozabim odpreti ali zapreti zjutraj ali zvečer. Želim avtomatizirati odpiranje in zapiranje, vendar s preglasitvijo, kdaj, ko se preoblečem.

1. korak: Potencialne ideje ali rešitve

Po ogledu različnih spletnih mest, kot so YouTube, Instructables in Thingiverse, sem ugotovil, da je najpogostejša rešitev motoriziranje tuljave, ki rani in odvije žaluzije s koračnim motorjem ali servo. Našel sem dve glavni možnosti z različnimi prednostmi in slabostmi.

Ideja 1: Metoda tuljav, kjer sta motor in zobnik nameščena znotraj tuljave. To ima prednosti, ker je čedna in elegantna metoda, ima pa tudi pomanjkljivosti, ker zahteva velike spremembe slepih, kabel ni več uporaben, montaža pa bi bila ob izvajanju zelo težko dostopna za vzdrževanje.

Ideja 2: metoda vrvice, kjer sta motor in gonilo nameščena na vrvici. Prednost tega je, da je enostavnejši in je do sestave lahko dostopen. Vendar ima pomanjkljivost, da je lahko grda in obsežna, pa tudi dejstvo, da jo je treba pri izvedbi pritrditi na prag.

Raje imam metodo vrvice, saj je veliko enostavnejša rešitev, ki ne zavira ročne uporabe vrvice, žaluzija pa ne bo zahtevala večjih sprememb. Načrtujem, da bo čim bolj prikrit in kompakten, ko bom naredil končno različico z ESP8266.

2. korak: Izdelava sklopa

Izdelava skupščine
Izdelava skupščine
Izdelava skupščine
Izdelava skupščine

Ta projekt sem naredil s svojim Lego mindstorms EV3, ki ima funkcionalnost, ki jo potrebujem, da pokažem, da bi projekt lahko deloval, in poznam programsko opremo, ki je zagotovo veliko pomagala. Ker žaluzije za pogon tuljave uporabljajo kroglično verigo, s katero Lego zobniki niso združljivi, sem se odločil, da je najboljša rešitev oblikovanje orodja s pravilnim razmikom kroglic na zunanji strani- s standardno luknjo v obliki križa center, kjer bi nato 3D natisnil dizajn. Na tej točki sem naredil tudi gumb za umerjanje in na okno pritrdil senzor svetlobe ter gumb, ki deluje kot preglasitev.

3. korak: Oblikovanje slepega orodja

Oblikovanje slepega orodja
Oblikovanje slepega orodja
Oblikovanje slepega orodja
Oblikovanje slepega orodja
Oblikovanje slepega orodja
Oblikovanje slepega orodja
Oblikovanje slepega orodja
Oblikovanje slepega orodja

Slepo sem razstavil, da sem podrobneje pogledal, kako je videti ročica. Med razstavljanjem sem našel majhno 16-zobniško orodje, ki ga je držala napeta tuljava, to je bil del, ki sem ga iskal. Ko sem oblikoval repliko orodja, sem dodal potrebne Lego kompatibilne luknje, natisnil 3 ločene dele in jih na koncu povezal s superlepilom. Sprva sem imel težave z združljivostjo dela Lego v smislu, da moj 3D tiskalnik ni imel ločljivosti, da bi dovolj naredil luknjo »x«, vendar s krožnimi luknjami na obeh straneh ni imel težav. Zato sem "x" zamenjal s krožno luknjo in se je lepo natisnilo. Potem sem po majhnem številu testiranj videl, da lahko prenese navor in težo slepih. Spodaj bom povezal svoje modele opreme ali pa jih najdete na Thingiverse na:

4. korak: Kodiranje slepih

Kodiranje slepih
Kodiranje slepih

Želel sem kodo, ki bi samodejno odprla in zaprla žaluzije, ko bi dosegla določeno stopnjo svetlobe, imela pa je tudi gumb za preglasitev, tako da bi lahko še vedno odprli ali zaprli žaluzije, kadar bi to želeli. Moj GitHub sem povezal s končno različico kode tukaj:

Koda za projekt mi je vzela nekaj dni za dokončanje, osnovna logika programa je delovala pravilno s svetlobnim senzorjem, vendar gumb za trenutni preglas ni deloval pravilno. Spremenil je stanje slepih ob pritisku, vendar ni imel funkcije "zapaha", ki bi pomenila, da bi slepec ostal v položaju- kar pomeni, da bi jih slepi nemudoma odvrnil nazaj na tisto, kar je bil prej. To sem popravil z blokom »počakaj do«, ki je povezan z logičnim ALI vhodom, ki je prebral vrednosti svetlobnega senzorja in senzorja na dotik, kar bom razložil spodaj.

Koda se začne z umerjanjem motorjev in žaluzij, začenši s popolnoma odprtim rolojem in ga spuščajte, dokler ne zadene senzorja na dotik na dnu, pri čemer se šteje, koliko četrt obratov je potrebno, da pridete do dna, kar je shranjeno kot "Rotacije so potrebne" spremenljivka. Nato zapiše "false" v spremenljivko "BlindOpen", ki se uporablja za sledenje položaja slepega. Na tej točki se koda razdeli na 4 zanke.

Ena od teh zank je zanka »Buttonstate«, ki nenehno objavlja stanje gumba spremenljivki, imenovani »ButtonPressed«. To odpravlja potrebo po namestitvi več blokov gumbov na skript.

Druga zanka je "Svetla ali temna", ki nenehno primerja stopnjo svetlobe zunaj mojega okna s konstanto, opredeljeno prej v kodi. Če je rezultat pod to konstanto, bo zanka v spremenljivko "ItIsLight" zapisala "false", če pa je nad vrednostjo, bo zapisala "true".

Tretja zanka vsebuje številčni seznam treh možnosti, ki slepim v bistvu pove, kaj naj storijo, 0 = slepi, 1 = slepi, 2 = ne stori nič, ker je slepo na pravem mestu. Zanka se začne z branjem spremenljivke "BlindShould", ki določa pravilno nalogo, ki bi jo moral slepi izvajati, nato pa izvede to nalogo, spremenljivko "BlindOpen" spremeni v pravilno možnost in nato postane nedejavna, dokler se spremenljivka "BlindShould" ne spremeni, kjer se ponavlja. Uporablja vrednost "RotationsNeeded" in +/- 100% moč za premikanje žaluzij popolnoma odprtih ali zaprtih.

Četrta in zadnja zanka je najbolj zapletena, zanka "Decider", ki obravnava vse podatke in se odloči, kaj bo naredila z vsako permutacijo. To počne z uporabo logičnih vilic na cesti, kjer so "pritisnjena tipka", "raven svetlobe", "slepo odprto" prava ali napačna vprašanja. Vse permutacije imajo trdo kodiran odziv, ki je bodisi 0 = slepi, 1 = slepi ali 2 = ne naredi nič - ta vrednost se zapiše v spremenljivko »BlindShould«, ki jo nato obdeluje prejšnja zanka. Nekateri odzivi bodo nato počakali, da se spremenljivka »ItIsLight« in/ali »ButtonPressed« spremeni, preden se dokonča skript, to velja le za tipke, ki aktivirajo permutacije, saj bi sicer poskušale takoj popraviti svoj položaj, kar pomeni, da bi se slepi vrnili v prvotno stanje. Ta postopek se nato pretvori v trden in razmeroma preprost avtomatski sistem, ki ga je mogoče enostavno dodati in odpraviti napake. Uf.

5. korak: Zaključni dotiki

Zaključni dotiki
Zaključni dotiki

Nato sem se odločil, da priključim 9V napajalnik na svoj EV3 z uporabo nekaj lesenih moznikov in vijakov kot "baterij", zaradi česar je bil izdelek nezanesljiv na baterije in mi preprečil, da bi vsakih nekaj dni zamenjal baterije.

6. korak: Vrednotenje projekta

Mislim, da je bil projekt na splošno uspešen, končal sem z delovnim prototipom za montažo samodejnih žaluzij, ki lahko vzamem vse pomembne informacije, ki sem jih našel med projektom, in jih uvedem v končno različico. Napravo sem uspešno kodiral, kasneje pa s kodo doslej nisem ugotovil večjih težav. Rad bi naredil napravo bolj vizualno privlačno, a spet je dokaz koncepta in se bom potrudil, da bo videti dobro, ko bom naredil končno različico z ESP8266. Ko bom znova naredil projekt, bom motor zasnoval tako, da bo v notranjosti žaluzij, saj bi ga bilo to lažje prikriti. Največja lekcija, ki sem se je naučil, je, da logično odpravim napake in premislim, dokumentiram in preizkusim svojo kodo, preden jo implementiram.

Priporočena: