Ini adalah lift 5 lantai yang berfungsi. Tinggi 3 kaki. Kami telah berusaha keras untuk ini.
Mari kita langsung ke inti … inilah caranya!
Tautan cepat:
Kode
Diagram kabel (segera hadir)
Inspirasi
Kami telah bermain dengan Arduino dan pemrosesan tersemat/IoT selama beberapa tahun, tetapi sebagian besar proyek yang kami lakukan (dan sebagian besar yang kami lihat) cukup sederhana. Kami telah mencari sesuatu yang “nyata” untuk dilakukan selama waktu yang lama.
Musim panas ini, saya pergi ke camp musim panas yang luar biasa, Project Ember. Itu berada di Area San Francisco Bay dan luar biasa! Anak-anak merancang dan membangun struktur kayu besar dengan alat listrik. Setelah saya tahu saya bisa melakukan itu, saya ingin menggabungkan pembangunan fisik dengan Arduino dan inilah hasilnya!
Pendekatan
Bagian ter sulit dalam mencari tahu ini adalah teknik motor dan deteksi lantai. Lift nyata mungkin menggunakan motor A/C besar dengan sensor di setiap lokasi lantai. Kami tentu dapat menggunakan pendekatan ini dengan skala yang lebih kecil tetapi memasang sensor di setiap lantai membutuhkan banyak kabel, dan kami akan memiliki kekhawatiran tentang sensitivitas dan perataan, dll. Di sisi lain, motor stepper dapat diposisikan dengan tepat … tetapi kami harus tahu tepat di mana kita berada dan sejauh mana kita harus pergi untuk melakukan itu.
Untungnya, kami telah melakukan sesuatu yang serupa, dalam proyek “kalender canggih” kami sebelumnya. Di sana, kami telah mengetahui cara menggunakan motor stepper dan lebih menarik lagi, untuk menyimpan posisinya di memori non-volatil (EEPROM pada Arduino). Jadi kami akan menggunakan pendekatan yang sama di sini. Dengan cara ini kami tidak memerlukan sensor posisi sama sekali, kami hanya akan mengandung kemampuan kami untuk menghitung jumlah langkah yang kita gerakkan motor stepper kami.
Desain lainnya yang menjadi perhatian adalah tombol pemanggil lift. Mereka perlu menjadi saklar kontak sementara yang menyala, tetapi lampu perlu dapat dikontrol secara independen dari tombol. Kami menemukan beberapa yang cocok di eBay.
Bahan
Tombol dengan lampu terpisah (Kami beli dari eBay, seharusnya terlihat seperti:)
Arduino Mega2560 – kami memilih ini karena memiliki lebih banyak pin GPIO untuk semua bel dan pengisikan dalam proyek. Beli Resmi – Anda mungkin dapat mendapatkan tiruan/kompatibel lebih murah.
Matriks LED 8×8 untuk menunjukkan panah Beli (Amazon)
Tampilan segi tujuh untuk menunjukkan nomor lantai Beli (SparkFun)
Motor stepper dan board driver untuk menggerakkan mobil Beli paket 5 (Elegoo) Catatan: Anda hanya menggunakan satu, tetapi Anda mungkin membutuhkan lebih banyak. Dan Anda dapat menggunakan kembali kotak tempatnya datang. 🙂
Protoboard Mega2560, untuk menghubungkan kabel kami Beli (BangGood) Kami mencabut header di atas, Anda tidak harus.
Anda dapat menemukan semua bahan di bawah ini di toko perbaikan rumah terdekat Anda atau toko perbaikan rumah lainnya:
Papan serat serbaguna dan profil kayu persegi 3/4 inci untuk lift dan mobil.
Bracket sudut aluminium untuk memegang motor
Baut beragam
Selang untuk bertindak sebagai bus di dalam gulungan
Tali (kami menggunakan tali kite nylon berat)
Pembangunan
Kami membuat shaft dan mobil lift dari papan serat serbaguna dan profil kayu untuk memperkuat sudut-sudut.
Kami mulai dengan shaft lift. Kami memotong 3 lembar papan serat serbaguna ukuran 36″x8″ untuk sisi dan belakang (depan terbuka). Kemudian menggunakan 4 potong profil kayu persegi 3/4″, panjang 36″, kami membekukan papan serat serbaguna bersama untuk membuat shaft vertikal. Potongan persegi papan serat serbaguna di atas dan bawah memegang semuanya agar persegi.
Selanjutnya adalah mobil lift. Ini menggunakan jenis konstruksi yang sama, dengan dinding, langit-langit, dan lantai dari papan serat serbaguna, dan dukungan profil kayu. Ini hampir lebar penuh shaft, tetapi berjalan antara kayu depan dan belakang (jadi lebih lebar dari dalam). Kami memasang kait mata di bagian atas mobil, sehingga itu menggantung dari tali.
Pastikan tidak meletakkan bawah shaft terlalu awal, karena Anda perlu dapat memasukkan dan mengeluarkan mobil! Setelah pengujian selesai, Anda dapat menambahkan bawah.
Motor berada di atas lift. Kami memasang gulungan kayu biasa (dari benang jahit) ke shaft pada motor. Ini agak sedikit rumit. Shaft motor memiliki tepi datar tetapi tentu saja lubang di gulungan bulat. Jadi kami mencoret dan membuat gelang lubang di gulungan, dan memasukkan baut melalui untuk menahan tepi datar shaft motor. Juga, lubang di gulungan lebih besar dari shaft motor. Untuk bertindak sebagai bus untuk mengisi ruang, kami menggunakan potong selang karet yang sangat pendek dengan ukuran yang tepat.
Kemudian kami memasang motor ke potong sudut aluminium dan membekuknya ke atas shaft. Untuk mendukung sisi lain gulungan, kami memasang baut melalui potong sudut aluminium kedua. Ini membuatnya sehingga berat lift tidak akan menarik gulungan dari shaft motor, itu akan tetap rata.
Kami menggunakan lebih banyak papan serat serbaguna untuk membuat panel tombol. Di kiri, kami menggunakan papan setinggi shaft untuk tombol pemanggil. Kami menggunakan tombol merah dan hijau secara bergantian. Merah untuk turun, hijau untuk naik. Lantai atas hanya memiliki merah dan bawah hanya memiliki hijau. Panel "di dalam lift" kami di kanan. Kami memotong lubang untuk matriks LED dan tampilan segi tujuh selain 5 lubang untuk tombol.
Kami memasang 4 kotak sekrup. Dua di panel pemanggil, dan dua di sisi di samping panel "di dalam lift."
Penyambungan Kabel
Penyambungan kabel sulit karena ada banyak sekali! Kami memilih untuk menggunakan prototyping shield Arduino Mega, sebagian karena kami sudah memilikinya :-). Namun, motivasi sebenarnya adalah dengan begitu banyak kabel, kami khawatir sesuatu pasti akan terlepas jika kami hanya menggunakan koneksi pin Arduino standar. Dengan prototyping shield, kami dapat mencabut kabel secara langsung dan menghindari risiko itu. Selain itu, ini memberi kami tempat yang nyaman untuk menempatkan hal-hal seperti resistor, yang diperlukan untuk tampilan segi tujuh kami.
Itu dikatakan, kami tidak ingin semua panel berbeda ini disambungkan secara permanen, karena jika kami membuat kesalahan, akan sangat sulit untuk diperbaiki. Jadi setiap kabel memiliki ujung yang dapat dilepas. Kami menggunakan blok sekrup antara panel saklar dan Arduino, dan untuk segi tujuh dan matriks LED, satu ujung kabel masih merupakan pin cepat-lepas.
Untuk panel tombol, kami membuat kabel penyalur kami sendiri, menggunakan konektor spade krimp femina yang pas sempurna pada terminal tombol. Karena setiap tombol membutuhkan dua ground (satu untuk tombol dan satu terpisah untuk lampu), akan ada BANYAK kabel ground jika kami menjalankan semuanya ke Arduino. Jadi alih-alih kami menyatukannya semuanya dengan kabel penyalur kustom yang bagus. Pin sinyal (satu untuk saklar dan satu untuk lampu pada setiap tombol) semuanya terpisah, berjalan ke blok sekrup.
Akhirnya, blok sekrup memberi kami keuntungan lain — kami menggunakan kabel inti padat untuk mencabut ke prototyping shield, tetapi kami menggunakan kabel inti stranded untuk konektor krimp ke bagian belakang tombol. Blok sekrup memberi kami tempat untuk beralih dari satu ke yang lain tanpa mencabut.
Pemrograman
Kami memiliki banyak revisi kode, tetapi inilah versi saat ini. Bagian paling rumit dari perangkat lunak adalah logika untuk menentukan ke mana mobil lift harus pergi. Jika itu di lantai 2, seseorang di dalam ingin pergi ke 3, seseorang ingin turun dari 4 dan naik dari 1 … kemana Anda pergi pertama?
Bagian yang rumit lainnya adalah cara kerja library motor stepper biasanya adalah selama waktu motor bergerak, tidak ada yang memanggil fungsi "loop()" Arduino. Namun, itu harus berfungsi untuk seseorang menekan tombol saat lift dalam perjalanan. Jadi Anda tidak dapat pergi langsung ke tujuan dalam satu langkah — Anda perlu bergerak sedikit demi sedikit, memeriksa penekanan tombol (dan kemungkinan perubahan tujuan) di sepanjang jalan.
Anda dapat mengunduh sketsa Arduino kami di sini.
Untuk mengunggah kode:
Anda perlu mengunduh library ini:
LEDControlMS
SevenSeg
Unggah kode:
Pilih papan yang tepat: Lihat gambar ini
Pilih port: Mirip, tapi Anda pergi ke “Port”. Pada MacOS, itu akan seperti /dev/cu.usbmodem1411, sementara pada Windows, itu akan seperti COM2.
Unggah kode Anda.
Jika berhasil, selamat! Lanjutkan ke pengujian. Jika tidak, kembali ke langkah 5. Jika itu tidak berhasil lagi, periksa kembali penyambungan kabel Anda. Jika itu tidak berhasil, hubungi kami menggunakan tautan di atas.
Unduh Arduino IDE. arduino.cc
Buka kode.
Untuk menginstal library, lihat tutorial ini.
Lift harus melalui uji coba sendiri. Semua tombol pemanggil harus menyala berurutan, kemudian lima tombol di dalam lift, kemudian tampilan segi tujuh akan berputar, kemudian matriks akan menunjukkan panah atas dan bawah. Setelah selesai, tampilan segi tujuh akan menunjukkan nomor lantai terakhir yang diketahui dari mobil lift.
Pengujian/Kalibrasi
Karena motor stepper perlu tahu tepat di mana berhenti untuk setiap lantai, Anda perlu memberitahunya secara manual – sekali. Ini akan mengingatnya di memori non-volatil (artinya itu akan menyimpannya bahkan saat daya terputus).
Untuk mengkalibrasi:
Tekan dan tahan tombol atas dan bawah di panel kanan. Matriks harus menunjukkan C (untuk kalibrasi).
Gunakan tombol atas dan bawah tersebut untuk memindahkan mobil secara manual ke lantai yang ditampilkan di tampilan segi tujuh. Jika sudah di tempat yang benar, tekan tombol tengah.
Ulangi langkah 2 untuk semua lima lantai. Jika selesai, matriks akan mati.
Langkah Selanjutnya
Proyek seperti ini tidak pernah benar-benar selesai! Kami ingin membangun ulang struktur lift dan shaft dengan potongan laser. Kami menggunakan gergaji tangan untuk melakukan ini dan jadi potongan kami tidak benar-benar lurus … itu sebagian yang menyebabkan "masalah gesekan" kami. Pada saat yang sama, kami akan merancang montase motor yang lebih baik dan mendapatkan motor yang lebih baik dan lebih cepat.
Secara elektronik, kami telah menerima permintaan untuk menambahkan lonceng atau dengung setiap kali pintu lift terbuka, seperti yang dilakukan oleh banyak lift nyata. Kami akan melakukan itu juga.
Pikiran atau saran tentang proyek ini, silakan beri tahu kami di komentar!
Riwayat Versi
Catatan: Tautan Google Drive akan secara otomatis memperbarui dengan setiap versi.
Versi 2: Kami memperbaiki bug di mana pemanggilan lift dari luar pada lantai saat ini mungkin menyebabkan perangkat lunak berhenti, sehingga Anda perlu menekan tombol reset.