Talaan ng mga Nilalaman:

Awtomatikong Pagbubukas ng Bulag Gamit ang EV3: 6 na Hakbang
Awtomatikong Pagbubukas ng Bulag Gamit ang EV3: 6 na Hakbang

Video: Awtomatikong Pagbubukas ng Bulag Gamit ang EV3: 6 na Hakbang

Video: Awtomatikong Pagbubukas ng Bulag Gamit ang EV3: 6 na Hakbang
Video: IBADAH PENDALAMAN ALKITAB, 06 MEI 2021 - Pdt. Daniel U. Sitohang 2024, Hulyo
Anonim
Awtomatikong Nagbubukas ng Bulag Gamit ang EV3
Awtomatikong Nagbubukas ng Bulag Gamit ang EV3
Awtomatikong Nagbubukas ng Bulag Gamit ang EV3
Awtomatikong Nagbubukas ng Bulag Gamit ang EV3

Mayroon akong isang hanay ng mga roller blackout blinds sa aking silid-tulugan na madalas kong nakakalimutang buksan o isara sa umaga o gabi. Gusto kong i-automate ang pagbubukas at pagsasara, ngunit sa isang override kung kailan para sa kung kailan ako nagbago.

Hakbang 1: Mga Potensyal na Ideya o Solusyon

Matapos ang pagtingin sa iba't ibang mga site tulad ng YouTube, Instructables at Thingiverse natagpuan ko na ang pinakakaraniwang solusyon ay ang pag-motor sa spool na sumugat at paghubad ng mga blinds gamit ang isang stepper motor o isang servo. Natagpuan ko ang 2 pangunahing mga pagpipilian na may iba't ibang mga pakinabang at kawalan.

Idea 1: Pamamaraan ng spool kung saan nakalagay ang motor at gearing sa loob ng spool. Ito ay may mga kalamangan na ito ay isang maayos at matikas na pamamaraan, ngunit may mga dehadong dulot na nangangailangan ng pangunahing pagbabago sa mga bulag, ang kurdon ay hindi na magagamit, at ang pagpupulong ay magiging napakahirap mag-access para sa pagpapanatili kapag ipinatupad.

Ideya 2: paraan ng kurdon kung saan nakalagay ang motor at paggalaw sa kurdon. Ito ay may kalamangan na ito ay mas simple at ang pagpupulong ay madaling ma-access. Gayunpaman mayroon itong kawalan na maaaring ito ay pangit at malaki, pati na rin ang katotohanan na ito ay dapat na nakakabit sa sill kapag ipinatupad.

Mas gusto ko ang paraan ng kurdon bilang isang mas simpleng solusyon na hindi pinipigilan ang manu-manong paggamit ng kurdon, at ang bulag ay hindi mangangailangan ng anumang pangunahing pagbabago. Plano kong gawin ito bilang tago at siksik hangga't maaari kapag ginawa ko ang pangwakas na bersyon sa isang ESP8266.

Hakbang 2: Paggawa ng Assembly

Paggawa ng Assembly
Paggawa ng Assembly
Paggawa ng Assembly
Paggawa ng Assembly

Ginawa ko ang proyektong ito gamit ang aking Lego mindstorms EV3 na may pag-andar na kailangan ko upang ipakita na maaaring gumana ang proyekto, at pamilyar ako sa software na tiyak na malaki ang naitulong. Dahil ang bulag ay gumagamit ng isang kadena ng bola upang himukin ang spool, kung saan hindi tumutugma ang mga gearing ng Lego, napagpasyahan kong ang pinakamahusay na solusyon ay ang pagdisenyo ng isang gear na may wastong spacing ng bola sa labas - na may karaniwang "hugis-krus" na butas sa sa gitna, kung saan gagawin kong 3D i-print ang disenyo. Sa puntong ito gumawa din ako ng isang pindutan ng pagkakalibrate at naglakip ng isang light sensor sa aking window pati na rin ang pindutan upang kumilos bilang override.

Hakbang 3: Pagdidisenyo ng Blind Gear

Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear
Pagdidisenyo ng Blind Gear

Inalis ko ang bulag upang makita kung paano tumingin ang crank nang mas detalyado. Sa panahon ng pag-disassemble ay nakakita ako ng isang maliit na gamit na 16 na ngipin na ginanap ng isang naka-igting na likid, ito ang bahagi na hinahanap ko. Matapos ang pagdidisenyo ng isang kopya ng gear, idinagdag ko ang kinakailangang mga butas na tumutugma sa Lego, na-print ang 3 magkakahiwalay na bahagi at sa wakas ay pinagbuklod ito kasama ng superglue. Nagkaroon muna ako ng mga problema sa paggawa ng bahagi ng Lego na katugma, sa diwa na ang aking 3D printer ay walang resolusyon na gawin nang sapat ang butas na "x", subalit wala itong mga problema sa mga pabilog na butas sa magkabilang panig nito. Kaya pinalitan ko ang "x" ng isang pabilog na butas at naka-print ito ng maayos. Pagkatapos, pagkatapos ng isang maliit na halaga ng pagsubok nakita ko na kaya nito ang metalikang kuwintas at ang bigat mula sa bulag. Ili-link ko ang aking mga disenyo para sa gamit sa ibaba o maaari mo itong makita sa Thingiverse sa: https://www.thingiverse.com/thing tampok101263

Hakbang 4: Pag-coding ng Bulag

Coding the Blind
Coding the Blind

Nais ko ang code na awtomatikong magbubukas at isasara ang bulag pagdating sa isang tukoy na antas ng ilaw, ngunit mayroon ding isang override na pindutan upang ang isa ay mabuksan pa rin o ma-shut ang bulag kung nais nila. Naiugnay ko ang aking GitHub sa huling bersyon ng code dito:

Ang code para sa proyekto ay tumagal sa akin ng ilang araw upang makumpleto, nagkaroon ako ng pangunahing lohika ng programa na gumagana nang tama sa light sensor, subalit ang panandaliang pindutan na override ay hindi gumagana nang tama. Binago nito ang estado ng bulag nang pinindot, ngunit wala ito pag-andar na "latching" na nangangahulugang mananatili ang bulag sa posisyon- nangangahulugang ibabalik ito agad ng bulag sa dati. Naayos ko ito gamit ang isang "maghintay hanggang" na bloke, na naka-link sa isang lohika O gate na basahin ang mga halaga ng light sensor at touch sensor, na ipaliwanag ko sa ibaba.

Nagsisimula ang code sa pamamagitan ng pag-calibrate ng mga motor at bulag, simula sa bulag na ganap na buksan at babaan ito hanggang sa maabot nito ang touch sensor sa ilalim, na binibilang kung gaano karaming quarter turn ang kinakailangan upang makapunta sa ilalim, na nai-save bilang "RotationsNeeded" variable. Pagkatapos ay nagsusulat ito ng "hindi totoo" sa variable na "BlindOpen" na ginagamit upang subaybayan ang posisyon ng bulag. Sa puntong ito ang code ay nahahati sa 4 na mga loop.

Ang isa sa mga loop na ito ay ang loop na "Buttonstate" na patuloy na nai-publish ang estado ng pindutan sa isang variable na tinatawag na "ButtonPressed". Tinatanggal nito ang pangangailangan para sa maraming mga bloke ng pindutan upang mailagay sa script.

Ang pangalawang loop ay ang "Liwanag o madilim" na patuloy na ihinahambing ang antas ng ilaw sa labas ng aking window, sa isang pare-pareho na tinukoy nang mas maaga sa code. Kung ang resulta ay nasa ibaba ng pare-pareho, ang loop ay magsusulat ng "hindi totoo" sa variable na "ItIsLight", samantalang kung ito ay nasa itaas ng halaga magsusulat ito ng "totoo".

Ang pangatlong loop ay naglalaman ng isang listahan ng bilang ng 3 mga pagpipilian na karaniwang sinasabi sa bulag kung ano ang dapat gawin, 0 = blind down, 1 = blind up, 2 = huwag gumawa dahil ang bulag ay nasa tamang lugar. Nagsisimula ang loop sa pamamagitan ng pagbabasa ng variable na "BlindShould" na tumutukoy sa tamang gawain na dapat gawin ng bulag, pagkatapos ay isakatuparan ang gawaing iyon, binago ang variable na "BlindOpen" sa tamang pagpipilian at pagkatapos ay naging idle hanggang sa mabago ang variable na "BlindShould" kung saan umuulit ito. Gumagamit ito ng halagang "RotationsNeeded" pati na rin isang +/- 100% na lakas upang ilipat ang bulag na ganap na buksan o sarado.

Ang pang-apat at pangwakas na loop ay ang pinaka kumplikado, ito ay ang "Desider" na loop na humahawak sa lahat ng data at nagpapasya kung ano ang gagawin sa bawat permutasyon. Ginagawa ito sa pamamagitan ng paggamit ng lohikal na mga "tinidor sa kalsada" kung saan ang "pindutan ay pinindot", "Antas ng ilaw", "Bulag na bukas" ang totoo o maling katanungan. Ang lahat ng mga permutasyon ay may isang mahirap na naka-code na tugon, na alinman sa 0 = blind down, 1 = blind up o 2 = huwag gumawa - ang halagang ito ay nakasulat sa variable na "BlindShould" na pagkatapos ay hawakan ng isang nakaraang loop. Ang ilang mga tugon ay maghihintay para sa alinman sa variable na "ItIsLight" at / o "ButtonPressed" upang mabago bago matapos ang script, ito lamang ang kaso para sa pindutan na pinapagana ang mga permutasyon dahil kung hindi man ay agad nitong susubukan na iwasto ang posisyon nito na nangangahulugang babalik ang bulag sa orihinal nitong estado. Pagkatapos ay loop ang prosesong ito upang makagawa ng isang matatag at medyo simpleng awtomatikong system, na maaaring madaling maidagdag at ma-debug. Phew.

Hakbang 5: Pagtatapos ng Mga Touch

Mga Pagtatapos ng Mga Touch
Mga Pagtatapos ng Mga Touch

Napagpasyahan ko pagkatapos na i-wire ang isang supply ng kuryente na 9V sa aking EV3 gamit ang paggamit ng ilang mga kahoy na dowel at turnilyo bilang "baterya", ginawa nitong hindi maaasahan ang produkto sa mga baterya at pinigilan ako na palitan ang mga baterya bawat ilang araw.

Hakbang 6: Pagsusuri sa Proyekto

Sa palagay ko ang proyekto ay naging maayos sa pangkalahatan, nagtapos ako sa isang gumaganang prototype para sa pagpupulong ng Awtomatikong mga blinds, na maaari kong kunin ang lahat ng may-katuturang impormasyon na nakita ko sa panahon ng proyekto at ipatupad sa huling bersyon. Matagumpay kong na-code ang aparato, at nang maglaon ay wala akong nakitang pangunahing mga isyu sa code sa ngayon. Nais kong gawing mas kaakit-akit ang aparato ngunit sa sandaling muli ito ay isang patunay ng konsepto at maglalagay ako ng pagsisikap upang gawin itong maganda kapag ginawa ko ang huling bersyon sa isang ESP8266. Kapag ginawa ko ulit ang proyekto ay ididisenyo ko ang motor na umupo sa loob ng bulag dahil mas madaling magtago. Ang pinakamalaking aral na natutunan ko ay ang pag-debug nang lohikal at pag-isipan, idokumento at subukan ang aking code bago ko ito ipatupad.

Inirerekumendang: