Mündəricat:
- Addım 1: Potensial fikirlər və ya həllər
- Addım 2: Məclisin hazırlanması
- Addım 3: Kor Ötürücülərin Dizaynı
- Addım 4: Korların Kodlaşdırılması
- Addım 5: Toxunuşları bitirmək
- Addım 6: Layihənin qiymətləndirilməsi
Video: EV3: 6 Addımdan istifadə edərək avtomatik kor açıcı
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Yataq otağımda tez -tez səhər və ya axşam açmağı və ya bağlamağı unutduğum silindrli qaranlıq pərdələrim var. Açılışı və bağlanmasını avtomatlaşdırmaq istəyirəm, amma nə vaxt dəyişəcəyimi əvəz etməklə.
Addım 1: Potensial fikirlər və ya həllər
YouTube, Instructables və Thingiverse kimi müxtəlif saytlara baxdıqdan sonra gördüm ki, ən çox yayılmış həlli bir pilləli motor və ya servo istifadə edərək pərdələri yaralayan və açan makaranı işə salmaqdır. Müxtəlif üstünlükləri və mənfi cəhətləri olan 2 əsas variant tapdım.
Fikir 1: Mühərrikin və dişli çarxın içərisində yerləşdiyi makara üsulu. Bunun səliqəli və zərif bir üsul olması üstünlüyünə malikdir, lakin korlar üçün böyük bir dəyişiklik tələb edən dezavantajlara malikdir, şnur artıq istifadə edilə bilməz və montaj edildikdə təmir üçün əldə etmək çox çətin olacaq.
Fikir 2: motorun və dişlinin şnurun üzərində yerləşdiyi şnur metodu. Bunun üstünlüyü daha sadədir və montajı asanlıqla əldə etmək mümkündür. Bununla birlikdə, çirkin və həcmli ola biləcəyi bir dezavantaja malikdir və tətbiq edildikdə eşikə yapışdırılmalıdır.
Şnurun əllə istifadəsini maneə törətməyən daha sadə bir həll olduğu üçün kord metoduna üstünlük verirəm və korlar heç bir böyük dəyişiklik tələb etməyəcək. ESP8266 ilə son versiyanı hazırladığım zaman mümkün qədər gizli və yığcam hala gətirməyi planlaşdırıram.
Addım 2: Məclisin hazırlanması
Layihənin işləyə biləcəyini göstərmək üçün ehtiyac duyduğum funksiyaya malik olan Lego mindstorms EV3 -dən istifadə edərək bu layihəni etdim və mütləq çox kömək edən proqramla tanışam. Kör, Lego dişlilərinin uyğun gəlmədiyi makaranı idarə etmək üçün bir top zənciri istifadə etdiyindən, qərara gəldim ki, ən yaxşı həll, kənarında düzgün top aralığına malik olan dişli dizayn etməkdir. mərkəzi, daha sonra dizaynı 3D olaraq yazdıracağam. Bu nöqtədə bir kalibrləmə düyməsini də düzəltdim və pəncərəmə işıq sensoru əlavə etdim və ləğv etmə düyməsini bağladım.
Addım 3: Kor Ötürücülərin Dizaynı
Krankın daha ətraflı şəkildə necə göründüyünü görmək üçün korları sökdüm. Sökülmə zamanı aradığım hissə, gerilmiş bir rulonla tutulan kiçik 16 dişli dişli tapdım. Ötürücünün bir nüsxəsini hazırladıqdan sonra lazım olan Lego uyğun delikləri əlavə etdim, 3 ayrı hissəni çap etdim və nəhayət super yapışqan ilə bağladım. Əvvəlcə Lego hissəsini uyğunlaşdırmaqla bağlı problemlər yaşadım, çünki 3D printerimin "x" çuxurunu kifayət qədər düzəltmək üçün qətnaməsi yox idi, lakin hər iki tərəfindəki dairəvi deliklər ilə heç bir problemi yox idi. Beləliklə, "x" işarəsini dairəvi bir çuxurla əvəz etdim və gözəl çap olundu. Sonra, az miqdarda testdən sonra, torkun və korların çəkisini idarə edə biləcəyini gördüm. Ötürücü dizaynlarımı aşağıda bağlayacağam və ya Thingiverse -də tapa bilərsiniz:
Addım 4: Korların Kodlaşdırılması
Xüsusi bir işıq səviyyəsinə çatdıqda pərdələri avtomatik olaraq açacaq və bağlayacaq bir kod istədim, amma eyni zamanda istədiyi vaxt koru aça və ya bağlaya biləcək bir ləğv düyməsinə sahib idim. GitHub -ı kodun son versiyası ilə əlaqələndirdim:
Layihənin kodunu tamamlamaq bir neçə gün çəkdi, işığın sensoru ilə düzgün işləyən proqramın əsas məntiqinə sahib idim, lakin ani ləğv düyməsi düzgün işləmirdi. Basıldıqda korların vəziyyətini dəyişdirdi, ancaq korların mövqeyində qalacaqlarını ifadə edən "tutma" funksiyası yox idi, yəni korlar dərhal əvvəlki vəziyyətinə qaytaracaqlar. Bunu aşağıda izah edəcəyim işıq sensoru və toxunma sensorunun dəyərlərini oxuyan bir məntiq və ya qapıya bağlı bir "gözləyin" blokundan istifadə edərək düzəltdim.
Kod, mühərrikləri və korları kalibr etməklə başlayır, pərdənin tam açılmasından başlayaraq, altdakı toxunma sensoruna çırpılana qədər endirərək, "RotationsNeeded" olaraq qeyd olunan dibə çatmaq üçün neçə rüb döndüyünü hesablayır. dəyişən Sonra korların vəziyyətini izləmək üçün istifadə olunan "BlindOpen" dəyişəninə "yalan" yazır. Bu nöqtədə kod 4 döngəyə bölünür.
Bu döngələrdən biri, düymənin vəziyyətini davamlı olaraq "ButtonPressed" adlı bir dəyişənə yayımlayan "Buttonstate" döngəsidir. Bu, skriptdə birdən çox düymə blokunun yerləşdirilməsini aradan qaldırır.
İkinci döngə, pəncərəmin xaricindəki işıq səviyyəsini kodun əvvəlində müəyyən edilmiş sabitlə müqayisə edən "İşıq və ya qaranlıq" dır. Nəticə bu sabitdən aşağıdırsa, döngə "ItIsLight" dəyişəninə "yalan" yazacaq, dəyərdən yuxarı olarsa "doğru" yazacaq.
Üçüncü döngədə, korlara nə etməli olduqlarını izah edən 3 variantdan ibarət rəqəmsal bir siyahı var, 0 = kor, 1 = kor, 2 = heç bir şey etmə, çünki kor yerindədir. Döngü, korların etməli olduğu düzgün vəzifəni təyin edən "BlindShould" dəyişənini oxumaqla başlayır, sonra bu vəzifəni yerinə yetirir, "BlindOpen" dəyişənini doğru seçimə dəyişir və sonra "BlindShould" dəyişəninin dəyişdirildiyi yerə boş qalır. təkrar edir. Korları tamamilə açmaq və ya bağlamaq üçün "RotationsNeeded" dəyərindən və +/- 100% gücündən istifadə edir.
Dördüncü və son döngə ən mürəkkəbdir, bütün məlumatları idarə edən və hər bir permütasiya ilə nə edəcəyinə qərar verən "Decider" döngəsidir. Bunu məntiqə əsaslanan "yolda çəngəllər" istifadə edərək edir, burada "düyməyə basıldı", "İşıq səviyyəsi", "Korlar açıqdır" doğru və ya yanlış suallardır. Bütün permütasiyaların 0 = kor aşağı, 1 = kor və ya 2 = heç bir şey etməyən sərt kodlu bir cavabı var - bu dəyər daha sonra əvvəlki bir döngə tərəfindən idarə olunan "BlindShould" dəyişəninə yazılır. Bəzi cavablar daha sonra "ItIsLight" və/və ya "ButtonPressed" dəyişənlərinin ssenarini bitirməzdən əvvəl dəyişməsini gözləyəcək, bu yalnız düymənin aktivləşdirilmiş permütasiyaları üçün keçərlidir, əks halda dərhal mövqeyini düzəltməyə çalışacaq ki, korlar qayıdacaq. orijinal vəziyyətinə. Bu proses daha sonra asanlıqla əlavə edilə bilən və düzəldilə bilən sağlam və nisbətən sadə bir avtomatik sistem etmək üçün döngələnir. Puf.
Addım 5: Toxunuşları bitirmək
Daha sonra taxta dübeller və vintlər istifadə edərək "batareyalar" olaraq EV3 -ə 9V enerji təchizatı bağlamağa qərar verdim, bu da məhsulu batareyalarda etibarsız etdi və batareyaları hər iki gündə bir dəyişdirməyimə mane oldu.
Addım 6: Layihənin qiymətləndirilməsi
Düşünürəm ki, layihə ümumilikdə yaxşı keçdi, avtomatik pərdələrin montajı üçün işləyən bir prototiplə başa çatdım, layihə zamanı tapdığım bütün müvafiq məlumatları götürüb son versiyaya tətbiq edə bilərəm. Cihazı uğurla kodladım və sonradan bu günə qədər kodla bağlı böyük bir problem tapmadım. Cihazı vizual olaraq daha cəlbedici etmək istərdim, amma bir daha konsepsiyanın sübutudur və ESP8266 ilə son versiyanı hazırladığım zaman yaxşı görünməsi üçün bir az səy göstərəcəyəm. Layihəni yenidən həyata keçirəndə mühərriki korların içərisində oturacaq şəkildə dizayn edəcəyəm ki, bunu gizlətmək daha asan olar. Öyrəndiyim ən böyük dərs, kodumu tətbiq etməzdən əvvəl məntiqi olaraq düzəltmək və düşünmək, sənədləşdirmək və sınamaqdır.
Tövsiyə:
Servo Motor - Arduino: 8 Addımdan istifadə edərək Qum SAATINI Hər Dəqiqədə Döndürün
Servo Motor - Arduino istifadə edərək Qum SAATINI Hər Dəqiqədə Döndürün: Bu təlimatda servo motor və Visuino istifadə edərək hər 60 -cı ildə kiçik (1 dəqiqəlik) bir qum saatının necə fırlanacağını öyrənəcəyik, nümayiş videosuna baxın
Sadə DC - 555: 4 Addımdan istifadə edərək DC Boost Dönüştürücü
Sadə DC - 555 istifadə edərək DC Boost Dönüştürücü: Yüksək gərginliyə sahib olmaq bir dövrədə çox vaxt faydalıdır. Ya bir op -amp üçün +ve və -ve rayları təmin etmək, buzzerləri idarə etmək və ya hətta əlavə bir batareyaya ehtiyac olmadan bir röleyi idarə etmək
LM317: 6 Addımdan istifadə edərək DIY Dəyişən Güc Təchizatı
LM317 istifadə edərək DIY Dəyişən Güc Təchizatı: Güc Təchizatı bir tinkerin sahib ola biləcəyi ən vacib vasitələrdən biridir. Daimi bir təchizat etmədən prototip sxemlərini asanlıqla sınaqdan keçirməyimizə imkan verir. bəzi enerji təchizatı kimi xüsusiyyətlərə sahib olduğu üçün dövrələri təhlükəsiz bir şəkildə sınamağa imkan verir
Evdə Raspberry Pi və SI7021: 6 Addımdan istifadə edərək bir Higrometr yaradın
Raspberry Pi və SI7021 istifadə edərək evdə bir higrometr qurun: Bu gün nəmdirmi? Bəzən bizim üçün yüksək rütubət, həqiqətən, həm narahatlıq, həm də sağlamlıq gətirmir. Ev sahibləri üçün də potensial zərər verə bilər. Bir ev üçün yüksək rütubət taxta döşəmələri və mebelləri xarab edir
Avtomatik Kor Açıcı: 11 addım
Avtomatik Kör Açar: http: //contraptionmaker.info Biz orijinal pəncərələri olan 150 illik bir ferma evində yaşayırıq. İzolyasiyaya və yeni sidingə baxmayaraq, qış vaxtı bir ələkdə yaşamaq kimidir. Bu problemlə mübarizə aparmaq üçün pəncərələrin üstünə plastik quraşdırırıq və