Sadržaj:

Automatski otvarač za rolete pomoću EV3: 6 koraka
Automatski otvarač za rolete pomoću EV3: 6 koraka
Anonim
Automatski otvarač za rolete pomoću EV3
Automatski otvarač za rolete pomoću EV3
Automatski otvarač za rolete pomoću EV3
Automatski otvarač za rolete pomoću EV3

U spavaćoj sobi imam set roleta za zamračivanje koje često zaboravim otvoriti ili zatvoriti ujutro ili navečer. Želim automatizirati otvaranje i zatvaranje, ali s poništavanjem kada, kada se presvlačim.

Korak 1: Potencijalne ideje ili rješenja

Nakon što sam pregledao različite web stranice kao što su YouTube, Instructables i Thingiverse, otkrio sam da je najčešće rješenje bilo motoriziranje kalema koji je namotavao i odmotao rolete pomoću koračnog motora ili servo -a. Pronašao sam 2 glavne opcije s raznim prednostima i nedostacima.

Ideja 1: Metoda kalema u kojoj su motor i zupčanik smješteni unutar kalema. To ima prednosti što je to uredna i elegantna metoda, ali ima i nedostatke što zahtijeva velike izmjene slijepih, kabel više nije upotrebljiv, a montaži bi bilo vrlo teško pristupiti radi održavanja kada se implementira.

Ideja 2: metoda kabela u kojoj su motor i zupčanik smješteni na kabelu. Prednost je u tome što je jednostavnija i montaža bi joj mogla biti lako dostupna. Međutim, ima nedostatak što bi mogao biti ružan i glomazan, kao i činjenicu da se mora pričvrstiti na prag kada se implementira.

Više volim metodu kabela jer je mnogo jednostavnije rješenje koje ne ometa ručnu upotrebu kabela, a zavjese neće zahtijevati veće izmjene. Planiram da bude što skriveniji i kompaktniji kada napravim konačnu verziju sa ESP8266.

Korak 2: Izrada sklopa

Izrada Skupštine
Izrada Skupštine
Izrada Skupštine
Izrada Skupštine

Ovaj projekt sam napravio koristeći svoj Lego mindstorms EV3 koji ima funkcionalnost koja mi je potrebna da pokažem da bi projekt mogao funkcionirati, a upoznat sam sa softverom koji je definitivno puno pomogao. Budući da rolete koriste kuglasti lanac za pogon kalema, s čime Lego zupčanici nisu kompatibilni, odlučio sam da je najbolje rješenje dizajnirati zupčanik s ispravnim razmakom kugli s vanjske strane- sa standardnom rupom u obliku križa centar, gdje bih zatim 3D ispisao dizajn. U ovom trenutku sam također napravio dugme za kalibraciju i pričvrstio senzor svjetla na prozor, kao i dugme koje će djelovati kao poništavanje.

Korak 3: Dizajniranje slijepe opreme

Dizajniranje slijepe opreme
Dizajniranje slijepe opreme
Dizajniranje slijepe opreme
Dizajniranje slijepe opreme
Dizajniranje slijepe opreme
Dizajniranje slijepe opreme
Dizajniranje slijepe opreme
Dizajniranje slijepe opreme

Rastavio sam rolete da vidim kako detaljnije izgleda ručica. Tokom rastavljanja pronašao sam mali zupčanik sa 16 zubaca koji je bio pričvršćen zategnutom zavojnicom, to je bio dio koji sam tražio. Nakon što sam dizajnirao repliku zupčanika, dodao sam potrebne Lego kompatibilne rupe, odštampao 3 odvojena dijela i na kraju ih spojio superljepilom. U početku sam imao problema s tim da dio Lego bude kompatibilan, u smislu da moj 3D pisač nije imao rezoluciju da dovoljno napravi rupu "x", međutim nije imao problema s kružnim rupama s obje njegove strane. Pa sam zamijenio “x” kružnom rupom i dobro se odštampao. Zatim sam, nakon male količine testiranja, mogao vidjeti da može izdržati okretni moment i težinu slijepih. U nastavku ću povezati svoje dizajne opreme ili ih možete pronaći na Thingiverse -u na:

Korak 4: Kodiranje slijepih

Kodiranje slijepih
Kodiranje slijepih

Htio sam kôd koji bi automatski otvarao i zatvarao rolete kada dođe do određene razine svjetlosti, ali koji je imao i dugme za poništavanje tako da se i dalje može otvarati ili zatvarati rolete kad su htjeli. Povezao sam svoj GitHub sa konačnom verzijom koda ovdje:

Kôd za projekt mi je trebao nekoliko dana za dovršetak, imao sam osnovnu logiku programa koji je ispravno radio sa svjetlosnim senzorom, međutim tipka za trenutno premošćivanje nije radila ispravno. To je promijenilo stanje rolete nakon pritiska, ali nedostajala je funkcija "zaključavanja" koja bi značila da će roleta ostati u položaju- što znači da će je roleta odmah otkotrljati na ono što je bila prije. Popravio sam to pomoću bloka „pričekajte dok“, povezanog s logičkim ILI gejtom koji očitava vrijednosti senzora svjetla i senzora dodira, što ću objasniti u nastavku.

Kôd započinje kalibriranjem motora i sjenila, počevši s potpuno otvorenim zastorom i spuštajući ga dok ne dodirne senzor dodira pri dnu, računajući koliko četvrtine okretaja je potrebno da se dođe do dna, što se sprema kao "Rotacije su potrebne" varijabilna. Zatim piše "false" u "BlindOpen" varijablu koja se koristi za praćenje pozicije blinda. U ovom trenutku se kôd razdvaja na 4 petlje.

Jedna od ovih petlji je petlja “Buttonstate” koja neprestano objavljuje stanje dugmeta varijabli pod nazivom “ButtonPressed”. Ovo eliminira potrebu za postavljanjem više blokova dugmadi na skriptu.

Druga petlja je "Svijetlo ili tamno" koja stalno uspoređuje razinu svjetlosti izvan mog prozora s konstantom definiranom ranije u kodu. Ako je rezultat ispod te konstante, petlja će napisati “false” u varijablu “ItIsLight”, dok će ako je iznad vrijednosti napisati “true”.

Treća petlja sadrži numeričku listu od 3 opcije koje u osnovi slijepima govore šta da rade, 0 = slijepi, 1 = slijepi, 2 = ne rade ništa jer je slijepi na pravom mjestu. Petlja počinje čitanjem varijable „BlindShould“koja navodi tačan zadatak koji slijepi trebaju raditi, zatim izvršava taj zadatak, mijenja varijablu „BlindOpen“na ispravnu opciju, a zatim postaje neaktivna sve dok se ne promijeni varijabla „BlindShould“gdje ponavlja se. Koristi vrijednost "RotationsNeeded", kao i +/- 100% snage za potpuno ili otvoreno otvaranje roleta.

Četvrta i posljednja petlja je najsloženija, to je petlja “Decider” koja obrađuje sve podatke i odlučuje što će učiniti sa svakom permutacijom. To čini korištenjem logičke „vilice na cesti“gdje su „pritisnuto dugme“, „Nivo svjetlosti“, „Otvoreno na slijepo“prava ili lažna pitanja. Sve permutacije imaju teško kodiran odgovor, koji je ili 0 = slijep, 1 = slijep ili 2 = ne radi ništa - ova vrijednost se upisuje u varijablu "BlindShould" kojom se zatim rukuje prethodna petlja. Neki odgovori će tada čekati da se promijeni varijabla “ItIsLight” i/ili “ButtonPressed” prije nego što dovrše skriptu, to je slučaj samo s aktiviranjem permutacije s gumbom jer bi u protivnom odmah pokušali ispraviti svoju poziciju što znači da će se slijepi vratiti u prvobitno stanje. Ovaj proces se zatim ponavlja kako bi se napravio robustan i relativno jednostavan automatski sistem, koji se lako može dodati i otkloniti pogreške. Fuj.

Korak 5: Završni dodiri

Završni dodiri
Završni dodiri

Poslije sam odlučio priključiti napajanje od 9V na svoj EV3 koristeći neke drvene tiple i vijke kao "baterije", što je učinilo proizvod nepouzdanim na baterije i spriječilo me da moram mijenjati baterije svakih nekoliko dana.

Korak 6: Evaluacija projekta

Mislim da je projekt u cjelini dobro prošao, završio sam s radnim prototipom za sklop automatskih roleta, koji mogu uzeti sve relevantne informacije koje sam pronašao tijekom projekta i implementirati ih u konačnu verziju. Uspješno sam kodirao uređaj, a kasnije do sada nisam našao veće probleme sa kodom. Volio bih učiniti uređaj vizualno privlačnijim, ali opet je to dokaz koncepta i uložit ću neke napore kako bi izgledao dobro kada napravim konačnu verziju s ESP8266. Kad ponovno napravim projekt, dizajnirat ću motor da sjedne unutar sjenila jer bi to bilo lakše sakriti. Najveća lekcija koju sam naučio je logičko otklanjanje grešaka i razmišljanje, dokumentiranje i testiranje mog koda prije nego što ga implementiram.

Preporučuje se: