Sisällysluettelo:

Automaattinen sokeanavaaja EV3: lla: 6 vaihetta
Automaattinen sokeanavaaja EV3: lla: 6 vaihetta

Video: Automaattinen sokeanavaaja EV3: lla: 6 vaihetta

Video: Automaattinen sokeanavaaja EV3: lla: 6 vaihetta
Video: Автомобильный генератор 12 В для бесщеточного генератора 2024, Marraskuu
Anonim
Automaattinen sokeanavaaja EV3: n avulla
Automaattinen sokeanavaaja EV3: n avulla
Automaattinen sokeanavaaja EV3: n avulla
Automaattinen sokeanavaaja EV3: n avulla

Makuuhuoneessani on pimennysverhot, jotka unohdan usein avata tai sulkea aamulla tai illalla. Haluan automatisoida avaamisen ja sulkemisen, mutta ohittaa, milloin muutos tapahtuu.

Vaihe 1: Mahdollisia ideoita tai ratkaisuja

Tutkittuani eri sivustoja, kuten YouTubea, Instructablesia ja Thingiverseä, huomasin, että yleisin ratkaisu oli moottoroida puola, joka kääri ja avasi kaihtimet käyttämällä askelmoottoria tai servoa. Löysin 2 päävaihtoehtoa, joilla on erilaisia etuja ja haittoja.

Idea 1: Kelausmenetelmä, jossa moottori ja vaihteisto on kelan sisällä. Tällä on se etu, että se on siisti ja tyylikäs menetelmä, mutta sen huonot puolet, että se vaatii suuria muutoksia sokeaseen, johto ei ole enää käyttökelpoinen ja kokoonpano olisi erittäin vaikea päästä huoltoon, kun se toteutetaan.

Idea 2: nippumenetelmä, jossa moottori ja hammaspyörä on sijoitettu johtoon. Tällä on se etu, että se on yksinkertaisempi ja kokoonpano voi olla helposti saatavilla. Sen haittana on kuitenkin se, että se voi olla ruma ja tilaa vievä, sekä se, että se on kiinnitettävä kynnykseen toteutettaessa.

Pidän parempana johtomenetelmää, koska se on paljon yksinkertaisempi ratkaisu, joka ei estä johdon manuaalista käyttöä, eikä kaihtimet vaadi suuria muutoksia. Aion tehdä siitä mahdollisimman peittävän ja kompaktin, kun teen lopullisen version ESP8266: lla.

Vaihe 2: Kokoonpanon tekeminen

Kokoonpanon tekeminen
Kokoonpanon tekeminen
Kokoonpanon tekeminen
Kokoonpanon tekeminen

Tein tämän projektin käyttämällä Lego mindstorms EV3: ta, jolla on toiminnot, jotka minun on osoitettava, että projekti voi toimia, ja tunnen ohjelmiston, joka auttoi varmasti paljon. Koska kaihtimet käyttävät pallon ketjua kelan ajamiseen, minkä kanssa Lego-hammaspyörät eivät ole yhteensopivia, päätin, että paras ratkaisu oli suunnitella vaihteisto, jonka ulkopuoliset pallovälit olivat oikein- ristinmuotoinen vakio reikä keskustaan, missä sitten tulostaisin 3D: n. Tässä vaiheessa tein myös kalibrointipainikkeen ja kiinnitin ikkunaan valoanturin sekä painikkeen toimimaan ohituksena.

Vaihe 3: sokean vaihteen suunnittelu

Suunnittele sokea vaihde
Suunnittele sokea vaihde
Suunnittele sokea vaihde
Suunnittele sokea vaihde
Suunnittele sokea vaihde
Suunnittele sokea vaihde
Suunnittele sokea vaihde
Suunnittele sokea vaihde

Irrotin kaihtimen nähdäkseni, kuinka kampi näytti yksityiskohtaisemmin. Purkamisen aikana löysin pienen 16-hampaisen hammaspyörän, joka pidettiin paikallaan kiristetyllä kelalla, tämä oli osa, jota etsin. Suunniteltuani vaihtoehdon kopion lisäsin tarvittavat Lego-yhteensopivat reiät, tulostin 3 erillistä osaa ja lopuksi liimasin ne yhteen liimalla. Minulla oli aluksi ongelmia Lego -osan tekemisessä yhteensopivaksi siinä mielessä, että 3D -tulostimellani ei ollut resoluutiota tehdä "x" -reikää riittävästi, mutta sen kummallakin puolella ei ollut ongelmia pyöreiden reikien kanssa. Joten korvasin "x" pyöreällä reiällä ja se tulostui hienosti. Sitten, pienen testin jälkeen, huomasin, että se pystyy käsittelemään sokeiden vääntömomentin ja painon. Linkitän vaihtoehtoni alla oleviin vaihteisiin tai löydät sen Thingiversestä osoitteessa:

Vaihe 4: Sokeiden koodaus

Sokeiden koodaus
Sokeiden koodaus

Halusin koodin, joka automaattisesti avaa ja sulkee kaihtimen, kun se saavuttaa tietyn valotason, mutta siinä oli myös ohituspainike, jotta kaihdin voidaan silti avata tai sulkea halutessaan. Olen linkittänyt GitHubini koodin lopulliseen versioon täällä:

Projektin koodin valmistuminen kesti useita päiviä, ohjelman peruslogiikka toimi oikein valoanturin kanssa, mutta hetkellinen ohituspainike ei toiminut oikein. Se muutti kaihtimien tilaa painettaessa, mutta siitä puuttui "lukitus" -toiminto, joka tarkoittaisi, että sokea pysyisi asennossa- eli sokea kääntäisi sen heti takaisin entiseen asentoonsa. Korjasin tämän käyttämällä "odota" -lohkoa, joka on liitetty loogiseen TAI -porttiin, joka lukee valoanturin ja kosketusanturin arvot, jotka selitän alla.

Koodi alkaa kalibroimalla moottorit ja kaihtimet, aloittaen kaihtimen kokonaan auki ja laskemalla sitä, kunnes se osuu pohjassa olevaan kosketusanturiin, ja laskemalla kuinka monta neljänneskierrosta kestää päästä pohjaan, joka tallennetaan "RotationsNeeded" muuttuja. Sitten se kirjoittaa "false" "BlindOpen" -muuttujalle, jota käytetään sokean sijainnin seuraamiseen. Tässä vaiheessa koodi jakautuu 4 silmukkaan.

Yksi näistä silmukoista on "Buttonstate" -silmukka, joka julkaisee jatkuvasti painikkeen tilan muuttujalle nimeltä "ButtonPressed". Tämä poistaa tarpeen, että komentosarjassa on useita painikkeita.

Toinen silmukka on”Vaalea tai pimeä”, joka vertaa jatkuvasti ikkunan ulkopuolella olevaa valotasoa vakioon, joka on aiemmin määritelty koodissa. Jos tulos on tämän vakion alapuolella, silmukka kirjoittaa "false" "ItIsLight" -muuttujalle, kun taas jos se on arvon yläpuolella, se kirjoittaa "true".

Kolmas silmukka sisältää numeerisen luettelon kolmesta vaihtoehdosta, jotka kertovat sokealle mitä tehdä, 0 = sokea, 1 = sokea, 2 = älä tee mitään, koska sokea on oikeassa paikassa. Silmukka alkaa lukemalla "BlindShould" -muuttujan, joka määrittää oikean tehtävän, jonka sokean pitäisi tehdä, ja suorittaa sitten tämän tehtävän, muuttaa "BlindOpen" -muuttujan oikeaan vaihtoehtoon ja jää sitten käyttämättömäksi, kunnes "BlindShould" -muuttuja muutetaan se toistaa. Se käyttää "RotationsNeeded" -arvoa ja +/- 100% voimaa siirtää kaihtimen kokonaan auki tai kiinni.

Neljäs ja viimeinen silmukka on monimutkaisin, se on "Päätös" -silmukka, joka käsittelee kaikki tiedot ja päättää, mitä tehdä jokaisella permutaatiolla. Se tekee tämän käyttämällä logiikkaan perustuvia "haarukoita tiellä", jossa "painiketta painetaan", "valotaso", "sokea auki" ovat oikeita tai vääriä kysymyksiä. Kaikilla permutaatioilla on kovakoodattu vastaus, joka on joko 0 = sokea, 1 = sokea tai 2 = älä tee mitään - tämä arvo kirjoitetaan "BlindShould" -muuttujalle, jota edellinen silmukka käsittelee. Jotkut vastaukset odottavat joko ItIsLight- ja/tai ButtonPressed -muuttujan muuttuvan ennen skriptin viimeistelyä, tämä koskee vain painikkeella aktivoituja permutaatioita, koska muuten se yrittäisi heti korjata sijaintinsa eli sokea palaisi alkuperäiseen tilaansa. Tämä prosessi silmukoidaan sitten luomaan vankka ja suhteellisen yksinkertainen automaattinen järjestelmä, joka voidaan helposti lisätä ja korjata. Huh huh.

Vaihe 5: Viimeistely

Viimeistelyt
Viimeistelyt

Päätin myöhemmin kytkeä 9 V: n virtalähteen EV3 -laitteeseen käyttämällä puisia tappeja ja ruuveja "paristoina", mikä teki tuotteesta epäluotettavan paristoille ja esti minun vaihtamasta paristoja parin päivän välein.

Vaihe 6: Hankkeen arviointi

Mielestäni hanke onnistui kaiken kaikkiaan hyvin, päädyin toimivaan prototyyppiin automaattiseen kaihtimeen, jonka avulla voin hyödyntää kaikki projektin aikana löytämäni tiedot ja toteuttaa ne lopulliseen versioon. Koodasin laitteen onnistuneesti, eikä myöhemmin ole löydetty suuria ongelmia koodissa. Olisin halunnut tehdä laitteesta visuaalisesti houkuttelevamman, mutta jälleen kerran se on todiste konseptista, ja aion panostaa jonkin verran sen näyttämiseen hyvältä, kun teen lopullisen version ESP8266: lla. Kun teen projektin uudelleen, suunnittelen moottorin istumaan kaihtimen sisälle, koska se olisi helpompi piilottaa. Suurin oppi, jonka olen oppinut, on virheenkorjaus loogisesti ja ajatella, dokumentoida ja testata koodini ennen kuin otan sen käyttöön.

Suositeltava: