Daftar Isi:

Pembuka Buta Otomatis Menggunakan EV3: 6 Langkah
Pembuka Buta Otomatis Menggunakan EV3: 6 Langkah

Video: Pembuka Buta Otomatis Menggunakan EV3: 6 Langkah

Video: Pembuka Buta Otomatis Menggunakan EV3: 6 Langkah
Video: Beli lego paling Murah ? Emang ada ? 🤔 2024, Juli
Anonim
Pembuka Buta Otomatis Menggunakan EV3
Pembuka Buta Otomatis Menggunakan EV3
Pembuka Buta Otomatis Menggunakan EV3
Pembuka Buta Otomatis Menggunakan EV3

Saya memiliki satu set roller blackout blinds di kamar tidur saya yang sering lupa saya buka atau tutup di pagi atau sore hari. Saya ingin mengotomatiskan pembukaan dan penutupan, tetapi dengan mengesampingkan kapan saya akan berubah.

Langkah 1: Ide atau Solusi Potensial

Setelah mencari di berbagai situs seperti YouTube, Instructables, dan Thingiverse, saya menemukan bahwa solusi paling umum adalah menggerakkan spool yang melilit dan membuka tirai menggunakan motor stepper atau servo. Saya menemukan 2 opsi utama dengan berbagai kelebihan dan kekurangan.

Ide 1: Metode spool dimana motor dan gearing ditempatkan di dalam spool. Ini memiliki keuntungan bahwa ini adalah metode yang rapi dan elegan, tetapi memiliki kelemahan yang memerlukan modifikasi besar pada tunanetra, kabelnya tidak lagi dapat digunakan, dan perakitan akan sangat sulit diakses untuk pemeliharaan saat diimplementasikan.

Ide 2: metode kabel di mana motor dan persneling ditempatkan di kabelnya. Ini memiliki keuntungan lebih sederhana dan perakitan dapat dengan mudah diakses. Namun memiliki kelemahan bahwa itu bisa jelek dan besar, serta fakta bahwa itu harus dilampirkan ke ambang pintu saat diterapkan.

Saya lebih suka metode kabel karena merupakan solusi yang jauh lebih sederhana yang tidak menghambat penggunaan kabel secara manual, dan tirai tidak memerlukan modifikasi besar. Saya berencana untuk membuatnya serahasia dan sekompak mungkin ketika saya membuat versi final dengan ESP8266.

Langkah 2: Membuat Majelis

Membuat Majelis
Membuat Majelis
Membuat Majelis
Membuat Majelis

Saya melakukan proyek ini menggunakan Lego mindstorms EV3 saya yang memiliki fungsionalitas yang saya perlukan untuk menunjukkan bahwa proyek dapat bekerja, dan saya akrab dengan perangkat lunak yang pasti sangat membantu. Karena tirai menggunakan rantai bola untuk menggerakkan gulungan, yang tidak cocok dengan roda gigi Lego, saya memutuskan bahwa solusi terbaik adalah merancang roda gigi dengan jarak bola yang benar di bagian luar - dengan lubang standar "berbentuk silang" di bagian luarnya. pusat, di mana saya kemudian akan mencetak desain 3D. Pada titik ini saya juga membuat tombol kalibrasi dan memasang sensor cahaya ke jendela saya serta tombol untuk bertindak sebagai override.

Langkah 3: Merancang Blind Gear

Merancang Blind Gear
Merancang Blind Gear
Merancang Blind Gear
Merancang Blind Gear
Merancang Blind Gear
Merancang Blind Gear
Merancang Blind Gear
Merancang Blind Gear

Saya membongkar tirai untuk melihat tampilan engkol lebih detail. Selama pembongkaran saya menemukan gigi 16 gigi kecil yang ditahan oleh kumparan yang dikencangkan, ini adalah bagian yang saya cari. Setelah merancang replika roda gigi, saya menambahkan lubang yang kompatibel dengan Lego yang diperlukan, mencetak 3 bagian terpisah dan akhirnya mengikatnya bersama dengan lem super. Awalnya saya memiliki masalah dengan membuat bagian yang kompatibel dengan Lego, dalam arti bahwa printer 3D saya tidak memiliki resolusi untuk membuat lubang "x" dengan cukup, namun tidak ada masalah dengan lubang melingkar di kedua sisinya. Jadi saya mengganti "x" dengan lubang melingkar dan dicetak dengan baik. Kemudian, setelah sedikit pengujian saya dapat melihat bahwa itu dapat menangani torsi dan berat dari blind. Saya akan menautkan desain saya untuk perlengkapan di bawah ini atau Anda dapat menemukannya di Thingiverse di:

Langkah 4: Mengkode Orang Buta

Mengkode Orang Buta
Mengkode Orang Buta

Saya menginginkan kode yang secara otomatis membuka dan menutup tirai ketika mencapai tingkat cahaya tertentu, tetapi juga memiliki tombol override sehingga seseorang masih dapat membuka atau menutup tirai saat mereka menginginkannya. Saya telah menautkan GitHub saya dengan versi terakhir kode di sini:

Kode untuk proyek ini membutuhkan waktu beberapa hari untuk saya selesaikan, saya memiliki logika dasar program yang bekerja dengan benar dengan sensor cahaya, namun tombol override sesaat tidak berfungsi dengan benar. Itu memang mengubah keadaan tirai saat ditekan, tetapi tidak memiliki fungsi "menempel" yang berarti tirai akan tetap pada posisinya - artinya tirai akan segera menggulungnya kembali seperti semula. Saya memperbaikinya menggunakan blok "tunggu sampai", yang ditautkan ke gerbang logika OR yang membaca nilai sensor cahaya dan sensor sentuh, yang akan saya jelaskan di bawah.

Kode dimulai dengan mengkalibrasi motor dan tirai, dimulai dengan tirai terbuka penuh dan menurunkannya hingga menyentuh sensor sentuh di bagian bawah, menghitung berapa seperempat putaran yang diperlukan untuk sampai ke bawah, yang disimpan sebagai "Perlu Rotasi" variabel. Kemudian ia menulis "false" ke variabel "BlindOpen" yang digunakan untuk melacak posisi blind. Pada titik ini kode terbagi menjadi 4 loop.

Salah satu perulangan ini adalah perulangan “Buttonstate” yang secara terus-menerus memublikasikan status tombol ke variabel yang disebut “ButtonPressed”. Ini menghilangkan kebutuhan akan beberapa blok tombol untuk ditempatkan pada skrip.

Loop kedua adalah "Terang atau gelap" yang terus-menerus membandingkan tingkat cahaya di luar jendela saya, dengan konstanta yang ditentukan sebelumnya dalam kode. Jika hasilnya di bawah konstanta itu, loop akan menulis "false" ke variabel "ItIsLight", sedangkan jika di atas nilai itu akan menulis "true".

Loop ketiga berisi daftar numerik 3 opsi yang pada dasarnya memberi tahu tunanetra apa yang harus dilakukan, 0=blind down, 1=blind up, 2=tidak melakukan apa-apa karena blind berada di tempat yang benar. Perulangan dimulai dengan membaca variabel "BlindShould" yang menentukan tugas yang benar yang harus dilakukan oleh tunanetra, kemudian melakukan tugas itu, mengubah variabel "BlindOpen" ke opsi yang benar dan kemudian menjadi idle sampai variabel "BlindShould" diubah di mana itu berulang. Ini menggunakan nilai "RotationsNeeded" serta kekuatan +/- 100% untuk menggerakkan blind sepenuhnya terbuka atau tertutup.

Loop keempat dan terakhir adalah yang paling kompleks, loop "Decider" yang menangani semua data dan memutuskan apa yang harus dilakukan dengan setiap permutasi. Ini dilakukan dengan menggunakan "garpu di jalan" berbasis logika di mana "tombol ditekan", "Tingkat cahaya", "Buka buta" adalah pertanyaan benar atau salah. Semua permutasi memiliki respons kode keras, yaitu 0=blind down, 1=blind up atau 2= do nothing - nilai ini ditulis ke variabel “BlindShould” yang kemudian ditangani oleh loop sebelumnya. Beberapa tanggapan kemudian akan menunggu variabel "ItIsLight" dan/atau "ButtonPressed" berubah sebelum menyelesaikan skrip, ini hanya kasus untuk permutasi tombol yang diaktifkan karena jika tidak, ia akan segera mencoba untuk memperbaiki posisinya yang berarti orang buta akan kembali ke keadaan aslinya. Proses ini kemudian diulang untuk membuat sistem otomatis yang kuat dan relatif sederhana, yang dapat dengan mudah ditambahkan dan di-debug. Fiuh.

Langkah 5: Sentuhan Akhir

Sentuhan Akhir
Sentuhan Akhir

Saya memutuskan setelah itu untuk memasang catu daya 9V ke EV3 saya menggunakan beberapa paku kayu dan sekrup sebagai "baterai", ini membuat produk tidak bergantung pada baterai dan mencegah saya harus mengganti baterai setiap beberapa hari.

Langkah 6: Evaluasi Proyek

Saya pikir proyek berjalan dengan baik secara keseluruhan, saya berakhir dengan prototipe yang berfungsi untuk perakitan tirai otomatis, yang dapat saya ambil semua informasi relevan yang saya temukan selama proyek dan implementasikan ke dalam versi final. Saya berhasil mengkodekan perangkat, dan kemudian tidak menemukan masalah besar dengan kode sejauh ini. Saya ingin membuat perangkat lebih menarik secara visual tetapi sekali lagi ini adalah bukti konsep dan saya akan berusaha keras untuk membuatnya terlihat bagus ketika saya membuat versi final dengan ESP8266. Ketika saya melakukan proyek lagi, saya akan mendesain motor untuk duduk di dalam tirai agar lebih mudah disembunyikan. Pelajaran terbesar yang saya pelajari adalah melakukan debug secara logis dan memikirkan, mendokumentasikan, dan menguji kode saya sebelum saya mengimplementasikannya.

Direkomendasikan: