Sisällysluettelo:
- Vaihe 1: Mahdollisia ideoita tai ratkaisuja
- Vaihe 2: Kokoonpanon tekeminen
- Vaihe 3: sokean vaihteen suunnittelu
- Vaihe 4: Sokeiden koodaus
- Vaihe 5: Viimeistely
- Vaihe 6: Hankkeen arviointi
Video: Automaattinen sokeanavaaja EV3: lla: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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
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
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
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:
Bluetooth RC -auto STM32F103C: llä ja L293D: llä - Edullinen: 5 vaihetta
Bluetooth RC -auto STM32F103C: llä ja L293D: llä - Edullista: Tein Bluetooth Arduino -auton, kuten tässä kuvattu, Ardumotive_com. Ongelmani olivat akut ja niiden paino sekä kustannukset. Sittemmin matkapuhelimien halvoista virtapankkeista on tullut erittäin edullisia. Kaikki mitä tarvitsen
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: 6 vaihetta (kuvilla)
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: Hei! Nimeni on Armaan. Olen 13-vuotias Massachusettsin poika. Tämä opetusohjelma näyttää, kuten voit päätellä otsikosta, kuinka rakentaa Raspberry Pi Drone. Tämä prototyyppi osoittaa, kuinka dronit kehittyvät ja kuinka suuri rooli niillä voi olla
Sisäkasvien kastelu NodeMCU: lla, paikallisella Blynk -palvelimella ja Blynk Apk: lla, säädettävä asetuspiste: 3 vaihetta
Sisäkasvien kastelu NodeMCU: lla, paikallisella Blynk -palvelimella ja Blynk Apk: llä, säädettävä asetuspiste: Olen rakentanut tämän projektin, koska sisäkasvieni on oltava terveitä, vaikka olen lomalla pitkään ja pidän ajatuksesta hallita tai ainakin seurata kaikkia mahdollisia asioita, joita kotona tapahtuu Internetin kautta
Älypuhelintelakka USB: llä ja HDMI: llä: 6 vaihetta
Älypuhelintelakka USB: llä ja HDMI: llä: Tämä on opas rakentaa älypuhelintelakka, jossa on neljä USB -tuloa, HDMI -lähtö ja USB C -läpivienti lataamista varten. monenlaisiin USB -laitteisiin, kuten näppäimistöihin, hiiriin
Levynvaihto PS1: llä (tai PSX: llä): 8 vaihetta
Levynvaihdon vaihtaminen PS1: llä (tai PSX: llä): Tämä näyttää sinulle vaihe vaiheelta kuinka vaihtaa levyt Ps1: lle (tai PSX: lle). Tämä on melko vaikeaa. jos sinulla on ongelmia, käy tällä sivustolla http://www.angelfire.com/ca/PlaystationHouse/SwapTrick.html