Daftar Isi:

Sensor Gerak / Lampu Terkendali Penghitung: 7 Langkah
Sensor Gerak / Lampu Terkendali Penghitung: 7 Langkah

Video: Sensor Gerak / Lampu Terkendali Penghitung: 7 Langkah

Video: Sensor Gerak / Lampu Terkendali Penghitung: 7 Langkah
Video: Cara bikin listrik gratis + sensor lampu otomatis 2024, November
Anonim
Sensor Gerak/Lampu Terkendali Penghitung
Sensor Gerak/Lampu Terkendali Penghitung

Proyek ini dibuat sebagai tugas akhir untuk kursus Desain Digital di Cal Poly, San Luis Obispo (CPE 133).

Mengapa kami melakukan ini? Kami ingin membantu melestarikan sumber daya alam di dunia. Proyek kami fokus pada penghematan listrik. Dengan lebih menghemat listrik, kita akan dapat menghemat sumber daya alam yang digunakan untuk menghasilkan listrik. Saat kita memulai tahun 2018, sumber daya alam dikonsumsi pada tingkat yang luar biasa. Kami ingin menyadari dampak kami terhadap lingkungan kami dan memainkan peran kami dalam melestarikan sumber daya alam. Elektronik dapat diimplementasikan dengan berbagai cara untuk menghemat energi yang membantu lingkungan serta keadaan ekonomi kita.*Model ini dibuat menggunakan komponen yang tersedia bagi kita.

Apa inspirasi kami? Orang sering lupa mematikan lampu liburan mereka, dan membuang-buang energi dengan membiarkannya menyala semalaman. Pada kenyataannya, proyek ini akan menghemat listrik karena "lampu liburan" hanya akan menyala ketika orang-orang di dekatnya, sehingga menghemat energi ketika tidak ada orang di sekitar. Selain itu, kami ingin merancang pengatur waktu sehingga lampu akan mati sepenuhnya setelah waktu tertentu untuk memastikan bahwa mereka tidak menyala karena gerakan terdeteksi pada jam 3 pagi, misalnya.

Bagaimana Anda bisa menggunakan desain ini? Desain ini dapat diterapkan untuk semua jenis lampu, baik dekoratif, praktis, atau keduanya. Jika Anda ingin lampu meja Anda hanya berfungsi selama 6 jam saja, misalnya. Anda perlu menyetel penghitung ke 21.600 detik (6 jam x 3.600 detik/jam). Sementara penghitung secara aktif meningkat, sensor gerak akan mengontrol cahaya. Jadi, setiap kali mati selama rentang waktu itu, Anda hanya perlu melambaikan tangan di depan sensor gerak dan itu akan menyala kembali. Jika Anda tertidur di meja Anda dan bangun 7 jam kemudian, gerakan Anda tidak akan menyalakannya.

Langkah 1: Perangkat Lunak dan Perangkat Keras yang Diperlukan

Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan
Perangkat Lunak dan Perangkat Keras yang Diperlukan

Perangkat lunak:

  • Vivado 2016.2 (atau versi yang lebih baru) dapat ditemukan di sini
  • Arduino IDE 1.8.3 (atau versi yang lebih baru) dapat ditemukan di sini

Perangkat keras:

  • 1 papan Basy 3
  • 1 Arduino Uno
  • 2 papan tempat memotong roti
  • 1 Sensor mulai ultrasonik HC-SR04
  • 9 kabel Male-to-male
  • 1 LED
  • 1 100Ω Resistor

Langkah 2: Kode (Vivado)

Kode (Vivado)
Kode (Vivado)

Mesin Keadaan Hingga (lihat diagram keadaan di atas):

LED membutuhkan mesin keadaan terbatas. Sebuah LED hanya memiliki dua keadaan hidup dan mati. Hanya dua input yang mengontrol status LED, penghitung dan sensor. Satu-satunya waktu LED harus menyala adalah saat sensor mendeteksi gerakan dan saat penghitung menghitung dari nol hingga tiga puluh detik. Kasus lain LED akan mati.

Nama file: LEDDES

Menangkal:

Penghitung memungkinkan kita untuk membatasi lamanya waktu selama sensor gerak dapat mengaktifkan LED. Nilainya ditampilkan pada layar tujuh segmen Basys 3 Board melalui kode sumber ("sseg_dec"). Ketika sakelar Reset turun (nilai: '0'), penghitung mulai meningkat setiap detik dari 0 hingga 30. Ketika mencapai 30, penghitung membeku pada angka itu. Itu tidak akan restart dari 0 sampai sakelar Reset dialihkan ke '1' dan kembali ke '1.' Jika Reset menjadi '1' saat penghitung berjalan, penghitung akan membeku pada nilai apa pun yang telah dicapai. Ketika Reset kembali ke '0,' penghitung akan restart dari 0 hingga 30. Implementasi ini juga memerlukan penggunaan sinyal clock, kodenya disediakan di bawah ("clk_div2").

Nama file: FinalCounter

FILE YANG DISEDIAKAN:

Tampilan Tujuh Segmen:

Kode ini memungkinkan tampilan tujuh segmen untuk menampilkan nilai desimal. Satu submodule bertindak sebagai decoder antara input biner 8-bit dan Desimal Kode Biner 4-bit. Yang lain membagi sinyal jam untuk menyegarkan nilainya pada tingkat tertentu.

Nama file: sseg_dec

Sinyal Jam:

Kode ini memungkinkan penghitung meningkat dengan penambahan 1 detik. Ini membagi frekuensi clock input menjadi frekuensi yang lebih lambat. Kami mengadaptasi untuk memberikan periode 1 detik dengan mengubah konstanta max_count: integer:= (3000000)” menjadi “constant max_count: integer:= (50000000).”

Nama file: clk_div2

File yang disediakan: sseg_dec, clk_div2 *File sumber ini disediakan oleh Profesor Bryan Mealy.

Langkah 3: Memahami Bagaimana Mereka Datang Bersama (Skema Komponen VHDL)

Memahami Bagaimana Mereka Datang Bersama (Skema Komponen VHDL)
Memahami Bagaimana Mereka Datang Bersama (Skema Komponen VHDL)

File utama ("MainProjectDES") berisi semua subfile yang dibahas sebelumnya. Mereka terhubung dengan cara di atas. Komponen yang berbeda saling berhubungan menggunakan peta port untuk mengirim sinyal dari satu elemen ke elemen lainnya.

Seperti yang mungkin Anda perhatikan, FinalCounter menyediakan keluaran 5 bit sementara sseg_dec membutuhkan masukan 8 bit. Untuk mengimbanginya, kami mengatur sinyal yang menghubungkan kedua komponen untuk memulai dengan "000" dan menambahkan output 5-bit dari penghitung. Dengan demikian memberikan input 8-bit.

Kendala:

Untuk menjalankan kode-kode ini pada Basys 3 Board, diperlukan file batasan, yang memberi tahu setiap sinyal ke mana harus pergi dan bagaimana bagian-bagian itu terhubung.

Langkah 4: Kode (Arduino)

Kami memprogram Arduino Uno untuk menggunakan sensor gerak untuk mendeteksi gerakan dan memberikan output yang memberi sinyal pada LED untuk menyala. Selain itu, menggunakan sensor untuk mendeteksi gerakan memerlukan putaran yang terus-menerus mencari perubahan jarak. Pada dasarnya, perlu timer yang berjalan secara bersamaan untuk mengeluarkan sinyal "tinggi" agar LED menyala sementara timer perlu diatur ulang setelah ada gerakan baru yang terdeteksi, yang hampir tidak mungkin diterapkan di Vivado berdasarkan ruang lingkup pengetahuan dari kelas. Selain itu, kami menggunakan Arduino karena tidak layak untuk menggunakan HC-SR04 dengan Basys 3 Board karena board hanya memasok 3.3V sedangkan sensor membutuhkan catu daya 5V. Untuk implementasi gerakan pendeteksian, ini adalah pengkodean aktual yang bertentangan dengan CAD di VHDL.

Kami menggunakan fungsi built-in pulsa untuk sensor untuk mengambil waktu yang berlalu antara suara yang awalnya dipancarkan dari sensor dan suara yang dipantulkan kembali saat mengenai objek. Kemudian kita menggunakan kecepatan suara dan interval waktu untuk menghitung jarak antara objek dan sensor. Dari situ, kami menyimpan jarak saat ini dan melacaknya. Kami memeriksa jarak setiap 150ms. Kami juga menggunakan perpustakaan elapsedmil untuk menjalankan timer internal di dalam arduino untuk melacak waktu yang telah berlalu. Jika kami mendeteksi perubahan jarak, yang sesuai dengan gerakan, pengatur waktu diatur ulang ke nol dan lampu akan tetap menyala hingga 3 detik berlalu. Setiap kali sensor mendeteksi gerakan lain, timer diatur ulang ke 0 dan sinyal untuk lampu LED akan "tinggi" selama 3 detik berikutnya. Kami telah melampirkan salinan kode Arduino kami di bawah ini.

Langkah 5: Bagaimana Komponen Kami Cocok Bersama

Bagaimana Komponen Kami Cocok Bersama!
Bagaimana Komponen Kami Cocok Bersama!
Bagaimana Komponen Kami Cocok Bersama!
Bagaimana Komponen Kami Cocok Bersama!
Bagaimana Komponen Kami Cocok Bersama!
Bagaimana Komponen Kami Cocok Bersama!

Seperti yang Anda lihat di "Basys3: Pmod Pin-out Diagram*" dan foto Papan Arduino Uno, kami menyorot dan memberi label port yang kami gunakan.

1. Papan LED dan Basys 3

LED dihubungkan secara seri dengan resistor 100Ω. -Kabel putih menghubungkan resistor ke pin PWR dari papan Basys 3. -Kabel kuning menghubungkan LED ke pin H1 dari papan Basys 3.

2. Sensor Gerak dan Arduino Uno

-Kabel oranye menghubungkan Vcc (daya) sensor gerak ke pin 5V board Arduino Uno.-Kabel putih menghubungkan pin Trigonometri sensor gerak ke pin 10 board Arduino Uno.-Kabel kuning menghubungkan pin Echo dari sensor gerak ke pin 9 board Arduino Uno.-Kabel hitam menghubungkan pin GND sensor gerak ke pin GND board Arduino Uno.

[Kabel yang kami gunakan terlalu pendek untuk menjangkau komponen, sehingga mereka saling berhubungan]

3. Papan Basys 3 dan Arduino Uno

Kabel kuning menghubungkan pin A14 papan Basys 3 ke pin 6 papan Arduino Uno.

*Diagram ini diambil dari "Basys 3™ FPGA Board Reference Manual" Digilent yang dapat ditemukan di sini.

Langkah 6: Demonstrasi

Langkah 7: Saatnya Mengujinya

Selamat! Anda telah berhasil mencapai akhir dari sensor gerak & proyek cahaya yang dikendalikan counter kami! Terima kasih banyak telah membaca posting Instructables kami. Sekarang saatnya Anda mencoba membangun proyek ini sendiri. Jika Anda mengikuti setiap langkah dengan hati-hati, Anda harus memiliki sensor gerak & lampu yang dikendalikan penghitung yang bekerja mirip dengan kami! Kami berharap Anda sukses dalam membangun proyek ini, dan berharap dapat berkontribusi pada penghematan listrik serta sumber daya alam!

Direkomendasikan: