Sisukord:

Automaatne ruloo avaja, kasutades EV3: 6 sammu
Automaatne ruloo avaja, kasutades EV3: 6 sammu

Video: Automaatne ruloo avaja, kasutades EV3: 6 sammu

Video: Automaatne ruloo avaja, kasutades EV3: 6 sammu
Video: Kuidas töötab Bayliss XL kasvuhoone luugiavaja 2024, November
Anonim
Automaatne ruloo avaja, kasutades EV3
Automaatne ruloo avaja, kasutades EV3
Automaatne ruloo avaja, kasutades EV3
Automaatne ruloo avaja, kasutades EV3

Mul on magamistoas rulookardinate komplekt, mida ma sageli unustan hommikul või õhtul avada või sulgeda. Ma tahan avamist ja sulgemist automatiseerida, kuid eirata, millal ma muutun.

Samm: võimalikud ideed või lahendused

Pärast erinevate saitide, näiteks YouTube'i, Instructables'i ja Thingiverse'i vaatamist leidsin, et kõige tavalisem lahendus oli ruloode kerinud ja lahti kerinud pooli motoriseerimine samm -mootori või servo abil. Leidsin 2 peamist võimalust erinevate eeliste ja puudustega.

Idee 1: poolimismeetod, kus mootor ja hammasratas on pooli sees. Selle eelised on see, et see on kena ja elegantne meetod, kuid puudused on, et see nõuab pimedate olulist muutmist, juhe ei ole enam kasutatav ja selle koostamisel oleks hooldamiseks väga raske juurde pääseda.

Idee 2: nöörimeetod, kus mootor ja hammasratas on juhtmel. Selle eeliseks on see, et see on lihtsam ja koost võib olla hõlpsasti juurdepääsetav. Selle puuduseks on aga see, et see võib olla kole ja mahukas, samuti asjaolu, et see tuleb rakendamisel aknalaua külge kinnitada.

Eelistan nöörimeetodit, kuna see on palju lihtsam lahendus, mis ei takista juhtme käsitsi kasutamist ja pime ei vaja suuri muudatusi. Kavatsen teha selle võimalikult varjatud ja kompaktseks, kui teen lõppversiooni ESP8266 -ga.

2. samm: kokkupanek

Assamblee tegemine
Assamblee tegemine
Assamblee tegemine
Assamblee tegemine

Tegin seda projekti, kasutades oma Lego mindstorms EV3, millel on funktsionaalsus, mida pean näitama, et projekt võiks töötada, ja olen tuttav tarkvaraga, mis kindlasti palju aitas. Kuna ruloo kasutab pooli juhtimiseks kuulketti, millega Lego hammasrattad ei ühildu, otsustasin, et parim lahendus on kujundada käik, millel on õige kuulide vahekaugus- standardse ristikujulise avaga keskusesse, kus ma siis 3D -kujunduse prindiksin. Siinkohal tegin ka kalibreerimisnupu ja kinnitasin oma aknale valgusanduri ning nupu, mis toimiks alistusena.

3. samm: pimeratta kujundamine

Pimedate käikude projekteerimine
Pimedate käikude projekteerimine
Pimedate käikude projekteerimine
Pimedate käikude projekteerimine
Pimedate käikude projekteerimine
Pimedate käikude projekteerimine
Pimedate käikude projekteerimine
Pimedate käikude projekteerimine

Panin ruloo lahti, et näha, kuidas vänt täpsemalt välja näeb. Lahtivõtmise ajal leidsin väikese 16-hambalise hammasratta, mida hoidis pingutatud mähis, see oli osa, mida otsisin. Pärast hammasratta koopia kujundamist lisasin vajalikud Legoga ühilduvad augud, printisin 3 eraldi osa ja lõpuks liimisin need kokku liimiga. Mul oli esialgu probleeme Lego ühilduvaks muutmisega selles mõttes, et minu 3D -printeril ei olnud eraldusvõimet, et teha x -auk piisavalt, kuid sellel polnud probleeme kummalgi pool olevate ümmarguste aukudega. Nii et asendasin “x” ümmarguse avaga ja see trükiti hästi. Siis, pärast väikest katsetamist, nägin, et see talub pimedate pöördemomenti ja kaalu. Lingin oma käigukasti kujundused allpool või leiate selle Thingiversest saidilt:

4. samm: pimedate kodeerimine

Pimedate kodeerimine
Pimedate kodeerimine

Ma tahtsin koodi, mis avab ja sulgeb ruloo automaatselt, kui see jõuab kindlale valgustasemele, kuid sellel oli ka tühistamisnupp, nii et ruloo saaks ikka soovi korral avada või sulgeda. Olen oma GitHubi linkinud koodi lõpliku versiooniga siin:

Projekti koodi täitmiseks kulus mul mitu päeva, programmi põhiloogika töötas valgussensoriga õigesti, kuid hetkeline alistusnupp ei töötanud õigesti. See muutis pimedate olekut vajutamisel, kuid sellel puudus lukustusfunktsioon, mis tähendaks, et pime jääb sellesse asendisse- see tähendab, et pime rullib selle kohe tagasi endisele kohale. Parandasin selle, kasutades plokki "oota kuni", mis on seotud loogilise VÕI väravaga, mis loeb valgussensori ja puuteanduri väärtusi, mida selgitan allpool.

Kood algab mootorite ja ruloode kalibreerimisega, alustades ruloodest täielikult avatud ja langetades seda, kuni see tabab altpoolt puutetundlikku andurit, lugedes mitu veerandpööret põhjani jõudmiseks, mis salvestatakse kui „RotationsNeeded” muutuja. Seejärel kirjutab see "vale" muutujale "BlindOpen", mida kasutatakse pimedate positsiooni jälgimiseks. Sel hetkel jaguneb kood 4 silmuseks.

Üks nendest tsüklitest on „Buttonstate” silmus, mis avaldab nupu oleku pidevalt muutujale nimega „ButtonPressed”. See välistab vajaduse skripti paigutada mitu nupplokki.

Teine silmus on “hele või tume”, mis võrdleb pidevalt minu akna välisvalgust, koodis varem määratletud konstantsega. Kui tulemus on sellest konstantist madalam, kirjutab tsükkel muutujale „ItIsLight” väärtuse „false”, samas kui väärtus ületab väärtust „true”.

Kolmas silmus sisaldab numbrilist kolme valiku loendit, mis põhimõtteliselt ütleb pimedatele, mida teha, 0 = pimedaks, 1 = pimedaks, 2 = mitte midagi, sest pime on õiges kohas. Tsükkel algab muutuja “BlindShould” lugemisega, mis määrab õige ülesande, mida pime peaks tegema, seejärel täidab selle ülesande, muudab muutuja “BlindOpen” õigeks ja jääb seejärel jõudeolekusse, kuni muutuja “BlindShould” on muudetud. see kordub. See kasutab „RotationsNeeded” väärtust ja +/- 100% võimsust, et rulood täielikult avatud või suletud liigutada.

Neljas ja viimane tsükkel on kõige keerulisem, see on otsustaja tsükkel, mis käsitleb kõiki andmeid ja otsustab, mida iga permutatsiooniga teha. Selleks kasutatakse loogikal põhinevaid „teehargi“, kus „nuppu vajutatakse“, „Valgustase“, „Pime avatud“on õiged või valed küsimused. Kõigil permutatsioonidel on raske kodeeritud vastus, mis on kas 0 = pime, 1 = pime või 2 = ei tee midagi - see väärtus kirjutatakse muutujale “BlindShould”, mida seejärel haldab eelmine tsükkel. Mõni vastus ootab enne skripti lõpuleviimist muutuja „ItIsLight” ja/või „ButtonPressed” muutmist, see kehtib ainult nupuga aktiveeritud permutatsioonide puhul, sest vastasel juhul prooviks see kohe oma positsiooni parandada, mis tähendab, et pime tuleb tagasi oma algsesse olekusse. Seejärel tehakse see protsess korduvaks, et luua tugev ja suhteliselt lihtne automaatne süsteem, mida saab hõlpsasti lisada ja siluda. Oeh.

5. samm: viimistlus

Viimistlus
Viimistlus

Pärast seda otsustasin ma ühendada oma EV3 -ga 9 V toiteallika, kasutades puidust tüüblit ja kruvisid "patareidena", mis muutis toote patareide suhtes ebausaldusväärseks ja takistas mul iga paari päeva tagant patareisid vahetamast.

6. samm: projekti hindamine

Arvan, et projekt läks kokkuvõttes hästi, lõpuks sain automaatse ruloode kokkupanekuks töötava prototüübi, mille abil saan kogu projekti käigus leitud asjakohase teabe ja lõpliku versiooni rakendada. Kodeerisin seadme edukalt ja hiljem pole siiani koodiga suuri probleeme leidnud. Ma oleksin tahtnud seadet visuaalselt atraktiivsemaks muuta, kuid see on taaskord kontseptsiooni tõestus ja ma pingutan selle nimel, et see näeks hea välja, kui teen lõppversiooni ESP8266 -ga. Kui ma projekti uuesti teen, kujundan mootori ruloo sisse, nii et seda oleks lihtsam varjata. Suurim õppetund, mille olen õppinud, on loogiline silumine ja enne koodi juurutamist koodi läbi mõtlemine, dokumenteerimine ja testimine.

Soovitan: