Përmbajtje:

Hapës automatik i verbërve duke përdorur EV3: 6 hapa
Hapës automatik i verbërve duke përdorur EV3: 6 hapa

Video: Hapës automatik i verbërve duke përdorur EV3: 6 hapa

Video: Hapës automatik i verbërve duke përdorur EV3: 6 hapa
Video: ЗГТ МтФ трансгендерный переход✨Моя история подготовки к смене пола и началу гормональной терапии 2024, Korrik
Anonim
Hapës automatik i verbërve duke përdorur EV3
Hapës automatik i verbërve duke përdorur EV3
Hapës automatik i verbërve duke përdorur EV3
Hapës automatik i verbërve duke përdorur EV3

Unë kam një sërë perde të fikjes në dhomën e gjumit, të cilat shpesh harroj t'i hap ose mbyll në mëngjes ose në mbrëmje. Unë dua të automatizoj hapjen dhe mbylljen, por me një anulim kur për kur do të ndryshoj.

Hapi 1: Ide ose zgjidhje të mundshme

Pasi shikova në faqe të ndryshme si YouTube, Instructables dhe Thingiverse zbulova se zgjidhja më e zakonshme ishte motorizimi i bobinës që mbështillte dhe çlironte perdet duke përdorur një motor stepper ose një servo. Kam gjetur 2 opsione kryesore me avantazhe dhe disavantazhe të ndryshme.

Ideja 1: Metoda e mbështjelljes ku motori dhe ingranazhi vendosen brenda bobinës. Kjo ka avantazhet se është një metodë e pastër dhe elegante, por ka disavantazhe që kërkon modifikim të madh për të verbërit, kordoni nuk është më i përdorshëm dhe montimi do të ishte shumë i vështirë për t'u arritur për mirëmbajtje kur zbatohet.

Ideja 2: metoda e kordonit ku motori dhe ingranazhi janë vendosur në kordon. Kjo ka avantazhin se është më e thjeshtë dhe asambleja mund të jetë lehtësisht e arritshme. Sidoqoftë, ajo ka disavantazhin se mund të jetë e shëmtuar dhe e rëndë, si dhe fakti që duhet të ngjitet në prag kur zbatohet.

Unë preferoj metodën e kordonit pasi është një zgjidhje shumë më e thjeshtë që nuk pengon përdorimin manual të kordonit dhe i verbri nuk do të kërkojë ndonjë modifikim të madh. Kam në plan ta bëj atë sa më të fshehtë dhe kompakt të jetë e mundur kur të bëj versionin përfundimtar me një ESP8266.

Hapi 2: Bërja e Kuvendit

Bërja e Kuvendit
Bërja e Kuvendit
Bërja e Kuvendit
Bërja e Kuvendit

Unë e bëra këtë projekt duke përdorur Lego mindstorms EV3, e cila ka funksionalitet që më duhet të tregoj se projekti mund të funksionojë, dhe jam i njohur me softuerin i cili patjetër ndihmoi shumë. Meqenëse i verbri përdor një zinxhir topi për të drejtuar bobinën, me të cilën ingranazhet Lego janë të papajtueshme, unë vendosa që zgjidhja më e mirë ishte të krijoja një ingranazh me hapësirën e duhur të topit nga jashtë- me vrimën standarde "në formë kryqi" në qendër, ku më pas do të printoja modelin. Në këtë pikë unë gjithashtu bëra një buton kalibrimi dhe bashkova një sensor dritë në dritaren time, si dhe butonin për të vepruar si anashkalim.

Hapi 3: Dizajnimi i ingranazhit të verbër

Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër
Dizajnimi i ingranazhit të verbër

Unë i çmontova të verbërit për të parë se si shikonte vinçi në më shumë detaje. Gjatë çmontimit gjeta një ingranazh të vogël me 16 dhëmbë i cili mbahej në vend nga një spirale e tensionuar, kjo ishte pjesa që po kërkoja. Pasi krijova një kopje të ingranazhit, shtova vrimat e kërkuara në përputhje me Lego, printova 3 pjesët e veçanta dhe në fund i bashkova ato me superglues. Fillimisht kisha probleme me bërjen e pjesës Lego të pajtueshme, në kuptimin që printeri im 3D nuk kishte rezolucion për të bërë vrimën "x" në mënyrë të mjaftueshme, megjithatë nuk kishte probleme me vrimat rrethore në të dyja anët e saj. Kështu që zëvendësova "x" me një vrimë rrethore dhe ajo u shtyp mirë. Pastaj, pas një sasie të vogël testimi, pashë se mund të përballonte çift rrotullues dhe peshën nga të verbërit. Unë do t'i lidh modelet e mia për pajisjet më poshtë ose mund t'i gjeni në Thingiverse në:

Hapi 4: Kodimi i të verbërve

Kodimi i të verbërve
Kodimi i të verbërve

Doja kod që automatikisht të hapte dhe mbyllte të verbërin kur të arrinte në një nivel të caktuar të dritës, por që kishte edhe një buton të anashkalimit në mënyrë që dikush të mund të hapte ose mbyllte të verbërit kur të donin. Unë e kam lidhur GitHub tim me versionin përfundimtar të kodit këtu:

Kodi për projektin më mori disa ditë për të përfunduar, kisha logjikën themelore të programit që punonte saktë me sensorin e dritës, megjithatë butoni i kalimit të momentit nuk funksiononte si duhet. Ai ndryshoi gjendjen e të verbërve kur u shtyp, por i mungonte funksioni i "fiksimit" që do të thoshte se i verbri do të qëndronte në pozicionin- do të thotë që i verbri do ta kthejë atë menjëherë në atë që ishte më parë. Unë e rregullova këtë duke përdorur një bllok "prisni deri", i lidhur me një portë logjike OSE që lexonte vlerat e sensorit të dritës dhe sensorit të prekjes, të cilat do t'i shpjegoj më poshtë.

Kodi fillon duke kalibruar motorët dhe të verbërit, duke filluar me të verbrin plotësisht të hapur dhe duke e ulur atë derisa të godasë sensorin e prekjes në pjesën e poshtme, duke llogaritur sa çerek kthesa nevojiten për të arritur në fund, i cili ruhet si "RotationsNeededed" e ndryshueshme. Pastaj i shkruan "false" ndryshores "BlindOpen", e cila përdoret për të gjetur pozicionin e të verbërve. Në këtë pikë kodi ndahet në 4 sythe.

Një nga këto sythe është laku "Buttonstate" i cili vazhdimisht publikon gjendjen e butonit në një ndryshore të quajtur "ButtonPressed". Kjo eliminon nevojën që blloqe të shumta butonash të vendosen në skenar.

Lakja e dytë është "Dritë ose errësirë" e cila krahason vazhdimisht nivelin e dritës jashtë dritares sime, me një konstante të përcaktuar më herët në kod. Nëse rezultati është nën atë konstante, laku do të shkruajë "false" në ndryshoren "ItIsLight", ndërsa nëse është mbi vlerën do të shkruajë "e vërtetë".

Laki i tretë përmban një listë numerike prej 3 opsionesh e cila në thelb i thotë të verbërve çfarë të bëjnë, 0 = verboj poshtë, 1 = verboj lart, 2 = mos bëj asgjë sepse i verbri është në vendin e duhur. Cikli fillon duke lexuar variablin "BlindShould" i cili specifikon detyrën e saktë që duhet të bëjë i verbri, pastaj e kryen atë detyrë, ndryshon ndryshoren "BlindOpen" në opsionin e duhur dhe pastaj bëhet boshe derisa ndryshorja "BlindShould" të ndryshohet ku ajo përsëritet. Ai përdor vlerën "RotationsNeededed" si dhe një fuqi +/- 100% për të lëvizur të verbërit plotësisht të hapur ose të mbyllur.

Laki i katërt dhe i fundit është më kompleksi, është laku “Decider” i cili trajton të gjitha të dhënat dhe vendos se çfarë të bëjë me secilën ndërrim. E bën këtë duke përdorur "pirunët në rrugë" të bazuar në logjikë, ku "butoni është shtypur", "Niveli i dritës", "Hapur verbërisht" janë pyetjet e vërteta ose të rreme. Të gjitha permutacionet kanë një përgjigje të koduar, e cila është ose 0 = verbër poshtë, 1 = verbër lart ose 2 = mos bëni asgjë - kjo vlerë i shkruhet ndryshores “BlindShould” e cila më pas trajtohet nga një lak i mëparshëm. Disa përgjigje do të presin që ndryshorja "ItIsLight" dhe/ose "ButtonPressed" të ndryshojnë para përfundimit të skenarit, ky është vetëm rasti i ndërrimeve të aktivizuara nga butoni pasi përndryshe do të përpiqej menjëherë të korrigjonte pozicionin e tij që do të thotë që i verbri do të kthehej në gjendjen e tij origjinale. Ky proces pastaj lakohet për të bërë një sistem automatik të fuqishëm dhe relativisht të thjeshtë, i cili lehtë mund të shtohet dhe të korrigjohet. Phew.

Hapi 5: Përfundimi i Prekjeve

Prekjet përfundimtare
Prekjet përfundimtare

Vendosa më pas të lidhja një furnizim me energji elektrike 9V në EV3 tim duke përdorur disa shufra druri dhe vida si "bateri", kjo e bëri produktin të varur nga bateritë dhe më pengoi të ndryshoja bateritë çdo dy ditë.

Hapi 6: Vlerësimi i Projektit

Unë mendoj se projekti shkoi mirë në përgjithësi, përfundova me një prototip pune për montimin e perdeve automatike, të cilin mund të marr të gjithë informacionin përkatës që gjeta gjatë projektit dhe ta zbatoj në versionin përfundimtar. Kam koduar me sukses pajisjen, dhe më vonë nuk kam gjetur ndonjë problem të madh me kodin deri më tani. Do të më pëlqente ta bëja pajisjen më tërheqëse vizualisht, por edhe një herë është një dëshmi e konceptit dhe do të bëj disa përpjekje për ta bërë atë të duket mirë kur të bëj versionin përfundimtar me një ESP8266. Kur të bëj përsëri projektin, do të krijoj motorin që të ulet brenda të verbërit, pasi kjo do të ishte më e lehtë për t'u fshehur. Mësimi më i madh që kam mësuar është të korrigjoj logjikisht dhe të mendoj, dokumentoj dhe testoj kodin tim para se ta zbatoj atë.

Recommended: