Isi kandungan:

Pembuka Buta Automatik Menggunakan EV3: 6 Langkah
Pembuka Buta Automatik Menggunakan EV3: 6 Langkah

Video: Pembuka Buta Automatik Menggunakan EV3: 6 Langkah

Video: Pembuka Buta Automatik Menggunakan EV3: 6 Langkah
Video: Tipe-tipe orang nulis... Dokter bilek! ๐Ÿ˜‘๐Ÿคญ #shorts 2024, Julai
Anonim
Pembuka Buta Automatik Menggunakan EV3
Pembuka Buta Automatik Menggunakan EV3
Pembuka Buta Automatik Menggunakan EV3
Pembuka Buta Automatik Menggunakan EV3

Saya mempunyai satu set tirai pemadam roller di bilik tidur saya yang saya sering lupa buka atau tutup pada waktu pagi atau petang. Saya mahu mengautomasikan pembukaan dan penutupan, tetapi dengan penggantian bila saya akan berubah.

Langkah 1: Idea atau Penyelesaian Berpotensi

Setelah melihat di pelbagai laman web seperti YouTube, Instructables dan Thingiverse, saya dapati bahawa penyelesaian yang paling biasa adalah dengan menggerakkan kili yang melukai dan melepaskan tirai menggunakan motor stepper atau servo. Saya dapati 2 pilihan utama dengan pelbagai kelebihan dan kekurangan.

Idea 1: Kaedah gulungan di mana motor dan gear diletakkan di dalam gulungan. Ini mempunyai kelebihan bahawa ia adalah kaedah yang rapi dan elegan, tetapi mempunyai kekurangannya kerana memerlukan pengubahsuaian besar pada orang buta, kordnya tidak lagi dapat digunakan, dan pemasangan akan sangat sukar untuk diakses untuk pemeliharaan ketika dilaksanakan.

Idea 2: kaedah kord di mana motor dan gear dipasang pada kord. Ini mempunyai kelebihan bahawa lebih mudah dan pemasangannya dapat diakses dengan mudah. Namun, ia memiliki kelemahan bahwa itu bisa jelek dan besar, serta fakta bahwa itu harus dilekatkan pada ambang ketika dilaksanakan.

Saya lebih suka kaedah kord seperti penyelesaian yang lebih mudah yang tidak menghalang penggunaan kord secara manual, dan orang buta tidak memerlukan pengubahsuaian besar. Saya merancang untuk menjadikannya selindung dan padat mungkin apabila saya membuat versi terakhir dengan ESP8266.

Langkah 2: Membuat Perhimpunan

Membuat Majlis
Membuat Majlis
Membuat Majlis
Membuat Majlis

Saya melakukan projek ini menggunakan pemikiran minda Lego EV3 saya yang mempunyai fungsi yang saya perlukan untuk menunjukkan bahawa projek itu dapat berfungsi, dan saya biasa dengan perisian yang pasti banyak membantu. Oleh kerana orang buta menggunakan rantai bola untuk menggerakkan kili, yang tidak sesuai dengan roda gigi Lego, saya memutuskan bahawa penyelesaian terbaik adalah merancang roda gigi dengan jarak bola yang betul di luar- dengan lubang "berbentuk silang" standard di pusat, di mana saya kemudian mencetak 3D reka bentuknya. Pada ketika ini saya juga membuat butang penentukuran dan melampirkan sensor cahaya ke tingkap saya serta butang untuk bertindak sebagai pengganti.

Langkah 3: Merancang Gear Buta

Merancang Gigi Buta
Merancang Gigi Buta
Merancang Gigi Buta
Merancang Gigi Buta
Merancang Gigi Buta
Merancang Gigi Buta
Merancang Gigi Buta
Merancang Gigi Buta

Saya membongkar buta untuk melihat bagaimana engkol kelihatan lebih terperinci. Semasa pembongkaran, saya menjumpai gigi 16 gigi kecil yang dipegang oleh gegelung tegang, inilah bahagian yang saya cari. Setelah merancang replika gear, saya menambah lubang yang sesuai dengan Lego, mencetak 3 bahagian yang berasingan dan akhirnya mengikatnya dengan superglue. Pada mulanya saya menghadapi masalah untuk menjadikan bahagian Lego serasi, kerana pencetak 3D saya tidak mempunyai ketetapan untuk membuat lubang "x" secukupnya, namun ia tidak mempunyai masalah dengan lubang bulat di kedua sisi. Oleh itu, saya mengganti "x" dengan lubang bulat dan dicetak dengan baik. Kemudian, setelah melakukan sedikit ujian, saya dapat melihat bahawa ia dapat mengatasi daya kilas dan berat dari orang buta. Saya akan mengaitkan reka bentuk saya untuk gear di bawah atau anda boleh mencarinya di Thingiverse di:

Langkah 4: Mengekodkan Orang Buta

Mengekodkan Orang Buta
Mengekodkan Orang Buta

Saya mahukan kod yang secara automatik akan membuka dan menutup tirai ketika sampai ke tahap cahaya tertentu, tetapi itu juga mempunyai butang ganti sehingga seseorang masih dapat membuka atau menutup tirai ketika mereka mahu. Saya telah menghubungkan GitHub saya dengan versi terakhir kod di sini:

Kod untuk projek memerlukan saya beberapa hari untuk disiapkan, saya mempunyai logik asas program berfungsi dengan betul dengan sensor cahaya, namun butang penggantian sesaat tidak berfungsi dengan betul. Itu mengubah keadaan orang buta setelah ditekan, tetapi tidak memiliki fungsi "mengunci" yang bermaksud orang buta akan tetap berada dalam posisi - yang bermaksud orang buta akan segera memutarnya kembali ke keadaan sebelumnya. Saya membetulkannya menggunakan blok "tunggu sampai", dihubungkan dengan logika ATAU gerbang yang membaca nilai sensor cahaya dan sensor sentuh, yang akan saya jelaskan di bawah.

Kodnya dimulakan dengan mengkalibrasi motor dan buta, bermula dengan buta terbuka sepenuhnya dan menurunkannya sehingga menyentuh sensor sentuhan di bahagian bawah, mengira berapa suku putaran yang diperlukan untuk sampai ke bawah, yang disimpan sebagai "RotationsNeeded" pemboleh ubah. Kemudian ia menulis "false" kepada pemboleh ubah "BlindOpen" yang digunakan untuk mengesan kedudukan buta. Pada ketika ini kod terbahagi kepada 4 gelung.

Salah satu gelung ini adalah gelung "Buttonstate" yang terus menerus menerbitkan keadaan butang ke pemboleh ubah yang disebut "ButtonPressed". Ini menghilangkan perlunya beberapa blok butang diletakkan pada skrip.

Gelung kedua adalah "Cahaya atau gelap" yang secara berterusan membandingkan tahap cahaya di luar tetingkap saya, dengan pemalar yang ditentukan sebelumnya dalam kod. Sekiranya hasilnya berada di bawah pemalar itu, gelung akan menulis "false" ke pemboleh ubah "ItIsLight", sedangkan jika di atas nilai itu akan menulis "benar".

Gelung ketiga mengandungi senarai berangka dari 3 pilihan yang pada dasarnya memberitahu orang buta apa yang harus dilakukan, 0 = buta ke bawah, 1 = buta, 2 = tidak melakukan apa-apa kerana buta berada di tempat yang betul. Gelung dimulakan dengan membaca pemboleh ubah "BlindShould" yang menentukan tugas yang betul yang harus dilakukan oleh orang buta, kemudian menjalankan tugas itu, mengubah pemboleh ubah "BlindOpen" ke pilihan yang betul dan kemudian menjadi tidak aktif sehingga pemboleh ubah "BlindShould" diubah di mana ia berulang. Ia menggunakan nilai "RotationsNeeded" serta kekuatan +/- 100% untuk menggerakkan tirai sepenuhnya terbuka atau tertutup.

Gelung keempat dan terakhir adalah yang paling kompleks, gelung "Penentu" yang mengendalikan semua data dan memutuskan apa yang harus dilakukan dengan setiap permutasi. Ia melakukannya dengan menggunakan "garpu di jalan" berdasarkan logik di mana "butang ditekan", "Tingkat cahaya", "Buta terbuka" adalah soalan yang benar atau salah. Semua permutasi mempunyai tindak balas berkod keras, iaitu 0 = buta ke bawah, 1 = buta atau 2 = tidak melakukan apa-apa - nilai ini ditulis ke pemboleh ubah "BlindShould" yang kemudian ditangani oleh gelung sebelumnya. Sebilangan tindak balas kemudian akan menunggu pemboleh ubah "ItIsLight" dan / atau "ButtonPressed" berubah sebelum menyelesaikan skrip, ini hanya berlaku untuk permutasi diaktifkan butang kerana jika tidak, ia akan segera berusaha memperbaiki kedudukannya yang bermaksud orang buta akan kembali ke keadaan asalnya. Proses ini kemudian dilancarkan untuk membuat sistem automatik yang kuat dan relatif mudah, yang dapat ditambahkan dan disahpijat dengan mudah. Phew.

Langkah 5: Menyentuh Sentuhan

Sentuhan terakhir
Sentuhan terakhir

Selepas itu saya memutuskan untuk menyambungkan bekalan kuasa 9V ke EV3 saya menggunakan beberapa dowel kayu dan skru sebagai "bateri", ini menjadikan produk tidak bersambung pada bateri dan menghalang saya daripada menukar bateri setiap beberapa hari.

Langkah 6: Penilaian Projek

Saya berpendapat bahawa projek ini berjalan dengan baik secara keseluruhan, saya berakhir dengan prototaip yang berfungsi untuk pemasangan tirai automatik, yang mana saya dapat mengambil semua maklumat berkaitan yang saya dapati semasa projek dan dilaksanakan ke versi akhir. Saya berjaya mengodkan peranti, dan kemudian tidak menemui masalah besar dengan kod tersebut setakat ini. Saya ingin menjadikan peranti ini lebih menarik secara visual tetapi sekali lagi ia adalah bukti konsep dan saya akan berusaha untuk menjadikannya kelihatan baik ketika saya membuat versi terakhir dengan ESP8266. Apabila saya membuat projek lagi, saya akan merancang motor untuk duduk di dalam tirai kerana ia akan lebih mudah disembunyikan. Pelajaran terbesar yang saya pelajari adalah melakukan debug secara logik dan memikirkan, mendokumentasikan dan menguji kod saya sebelum saya melaksanakannya.

Disyorkan: