Sadržaj:

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

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

Video: Automatski otvarač za rolete pomoću EV3: 6 koraka
Video: Gorenje Smartflex perilice posuđa - tehnički video 2024, Srpanj
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 razne web stranice kao što su YouTube, Instructables i Thingiverse, otkrio sam da je najčešće rješenje bilo motoriziranje kalema koji je ranjavao i odmotavao 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.

Ideja 2: metoda kabela gdje se motor i zupčanik nalaze na kabelu. Prednost je u tome što je jednostavnija i montaža bi joj mogla biti lako dostupna. Međutim, nedostatak ima to š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čno korištenje kabela, a zavjese neće zahtijevati veće izmjene. Planiram ga učiniti što skrivenijim i kompaktnijim kad napravim konačnu verziju s ESP8266.

Korak 2: Izrada sklopa

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

Napravio sam ovaj projekt 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 kugle s vanjske strane- sa standardnom rupom u obliku križa centar, gdje bih zatim 3D ispisao dizajn. U ovom trenutku sam također napravio gumb za kalibraciju i priključio svjetlosni senzor na prozor, kao i gumb koji ć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. Tijekom 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, otisnuo 3 odvojena dijela i na kraju ih spojio superljepilom. U početku sam imao problema s usklađivanjem dijela Lego, 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" s kružnom rupom i ispisao se dobro. Zatim sam, nakon male količine testiranja, mogao vidjeti da može podnijeti 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 također imao gumb za poništavanje kako bi se i dalje moglo otvarati ili zatvarati rolete kad to žele. Ja sam svoj GitHub povezao s konačnom verzijom koda ovdje:

Kôd za projekt trebao mi je 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 vratima koji očitavaju vrijednosti svjetlosnog senzora i osjetnika na dodir, što ću objasniti u nastavku.

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

Jedna od tih petlji je petlja "Buttonstate" koja neprestano objavljuje stanje gumba varijabli pod nazivom "ButtonPressed". Time se eliminira potreba za postavljanjem više blokova gumba 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čki popis od 3 opcije koje u osnovi slijepima govore što trebaju učiniti, 0 = zaslijepiti, 1 = zaslijepiti, 2 = ne učiniti ništa jer je slijepa na pravom mjestu. Petlja započinje čitanjem varijable "BlindShould" koja navodi ispravan zadatak koji slijepi treba 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 pomoću "vilica na cesti" zasnovanih na logici gdje su "pritisnuta tipka", "Razina svjetla", "Slijepo otvoreno" prava ili lažna pitanja. Sve permutacije imaju tvrdo kodiran odgovor, koji je ili 0 = slijepo, 1 = slijepo ili 2 = ne poduzimati ništa - ta se vrijednost zapisuje u varijablu "BlindShould" koja se zatim obrađuje prethodnom petljom. Neki će odgovori tada čekati da se promijeni varijabla “ItIsLight” i/ili “ButtonPressed” prije nego što dovrše skriptu, to je slučaj samo s aktiviranim permutacijama gumba jer bi u protivnom odmah pokušali ispraviti svoj položaj što znači da će se slijepi vratiti u prvobitno stanje. Taj se proces zatim ponavlja kako bi se napravio robustan i relativno jednostavan automatski sustav koji se lako može dodati i ukloniti pogreške. Fuj.

Korak 5: Završni dodiri

Završni dodiri
Završni dodiri

Poslije sam odlučio priključiti 9V napajanje 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 općenito prošao dobro, završio sam s radnim prototipom za sklop automatskih roleta, koji mogu uzeti sve relevantne informacije koje sam pronašao tijekom projekta i implementirati u konačnu verziju. Uspješno sam kodirao uređaj, a kasnije do sada nisam našao većih problema s 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 kad napravim konačnu verziju s ESP8266. Kad ponovno napravim projekt, dizajnirat ću motor da sjedi unutar sjenila jer bi to bilo lakše sakriti. Najveća lekcija koju sam naučio je logičko ispravljanje pogrešaka i razmišljanje, dokumentiranje i testiranje mog koda prije nego što ga implementiram.

Preporučeni: