Talaan ng mga Nilalaman:
- Hakbang 1: Mga Potensyal na Ideya o Solusyon
- Hakbang 2: Paggawa ng Assembly
- Hakbang 3: Pagdidisenyo ng Blind Gear
- Hakbang 4: Pag-coding ng Bulag
- Hakbang 5: Pagtatapos ng Mga Touch
- Hakbang 6: Pagsusuri sa Proyekto
Video: Awtomatikong Pagbubukas ng Bulag Gamit ang EV3: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
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
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
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
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
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:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Awtomatikong I-save ang Mga Screenshot sa Windows Gamit ang isang Python Script: 4 Mga Hakbang
Awtomatikong I-save ang Mga Screenshot sa Windows Gamit ang isang Python Script: Karaniwan sa mga bintana, upang mai-save ang isang screenshot (print screen) muna kailangan naming kumuha ng isang screenshot at pagkatapos ay buksan ang pintura, pagkatapos ay i-paste ito at pagkatapos ay i-save ito. Ngayon, tuturuan kita kung paano gumawa ng isang programa ng sawa upang i-automate ito. Ang program na ito ay lilikha ng isang folder
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c
Awtomatikong Pagbubukas ng Bulag: 11 Mga Hakbang
Awtomatikong Nagbubukas ng Bulag: http: //contraptionmaker.info Nakatira kami sa isang 150 taong gulang na bahay sa bukid na may mga orihinal na bintana. Sa kabila ng pagkakabukod at bagong panghaliling daan, ito ay tulad ng pamumuhay sa isang salaan, sa oras ng taglamig. Upang labanan ang problemang ito nag-i-install kami ng plastik sa mga bintana upang subukan at