Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

UltrasonicEyes

Komponen dan persediaan

Sensor Ultrasonik - HC-SR04 (Generik)
× 2
Arduino Nano R3
× 1
Resistor foto
× 1
Maxim Integrated 8x8 LED Matrix MAX7219
× 2
Ukuran Setengah Papan Tempat Memotong Roti Tanpa Solder
× 1
Kabel jumper (generik)
× 1
Resistor 330 ohm
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Saya ingin membuat proyek unik menggunakan beberapa LED matriks 8x8 dan beberapa sensor ultrasonik... sesuatu yang berbeda dari yang biasanya dibuat orang lain dengan ultrasonik - dan saya ingin proyek ini menyenangkan dan menyenangkan.

Jadi saya membuat apa yang saya sebut UltrasonicEyes - proyek menyenangkan yang Anda duduk di suatu tempat di dekat tempat orang-orang bergerak dan itu akan melihat-lihat di mana orang-orang berada, dan berkedip dan baik, hanya membuat Anda aneh dengan cara yang menyenangkan dan menyeramkan!

Apa yang kita butuhkan?

Modul sensor ultrasonik dirancang untuk mendeteksi rintangan dan untuk menentukan seberapa jauh rintangan itu, sehingga umumnya memiliki jarak deteksi hingga 3-4 meter, yang merupakan jarak yang baik untuk proyek ini untuk ditempatkan di dalam ruang tamu atau kantor. daerah.

Saya menggunakan 2x modul HC-SR04 yang saya ambil dari e-Bay. Anda dapat menemukan mereka super-murah.

Modul ini cukup mudah digunakan, dan hanya memerlukan 3 atau 4 kabel, untuk terhubung ke mikrokontroler Arduino.

Modul Matrix led 8x8 yang saya pilih untuk menggunakan allow chaining, jadi hanya satu modul yang perlu dihubungkan ke Arduino, dan modul kedua terhubung ke modul pertama.

Modul menggunakan SPI, jadi kami hanya memerlukan 5 kabel untuk masuk ke Arduino untuk mengontrol gambar mata di kedua layar.​ Tentu saja kami membutuhkan dua kabel!

CATATAN: Kode yang diberikan menggunakan Hardware SPI , jadi jika Anda menggunakan papan Arduino yang berbeda dari Nano, harap periksa pin mana yang merupakan pin Hardware SPI untuk MOSI dan SCK dan sambungkan sesuai dengan itu!

Anda juga memerlukan mikrokontroler yang kompatibel dengan Arduino dari beberapa jenis. Saya menggunakan Nano (kompatibel) karena cukup kecil untuk dimasukkan ke dalam casing, memiliki USB untuk daya/pemrograman firmware dan memiliki setumpuk GPIO untuk menghubungkan semuanya juga.

Saya telah menyolder semuanya ke papan proto yang berukuran sama dengan setengah papan tempat memotong roti, tetapi saya sarankan Anda hanya membangun semuanya ke papan tempat memotong roti berukuran setengah terlebih dahulu, karena dengan cara itu proyek tidak memerlukan penyolderan dan dapat dengan mudah ditarik terpisah atau berubah.

Beberapa hal terakhir yang Anda perlukan adalah LDR (Resistor Foto) untuk mendeteksi cahaya, resistor 330ohm, dan sekumpulan kabel papan tempat memotong roti, baik pria ke wanita, dan wanita ke wanita.

CATATAN: Anda dapat menggunakan kabel warna apa pun dalam proyek ini... tidak ada persyaratan untuk menggunakan warna yang sama dengan yang saya tentukan, tetapi , itu selalu praktik yang baik untuk menggunakan merah dan hitam untuk POWER dan GND, dan menggunakan warna lain untuk kabel lain karena membuatnya sangat mudah untuk mengidentifikasi kabel mana yang memiliki daya yang mengalir melaluinya dan kabel mana yang digunakan untuk data &sinyal.

Menyatukan semuanya

Mari kita mulai dengan mencolokkan Nano ke papan tempat memotong roti tepat di ujungnya sehingga USB menggantung di tepinya, namun tetap semua pin tetap terpasang ke papan.

Koneksi POWER dan GND

Sekarang sambungkan kabel hitam dari koneksi GND di Nano ke rel GND di papan tempat memotong roti. Sekarang lakukan hal yang sama dengan kabel merah, sambungkan 3V (atau 5V jika hanya itu yang Anda miliki) ke rel POWER di papan tempat memotong roti.

Saat kita sedang mengerjakan GND dan POWER, mari kita sambungkan kabel hitam di antara dua rel GND di setiap sisi papan tempat memotong roti. Lakukan hal yang sama dengan kabel merah dan kedua rel POWER.

*Catatan: Beberapa panel LED matriks mungkin memerlukan 5V, bukan 3.3V, tergantung pada mereknya. Jika Anda menemukan hasil yang tidak dapat diandalkan, coba gunakan pin 5V dari Arduino.

Mari kita pasang sensor Ultrasonik

Hubungkan kabel hitam antara pin GND pada masing-masing sensor Ultrasonik ke rel GND di papan tempat memotong roti. Lakukan hal yang sama dengan kabel merah dan pin VCC (POWER) pada sensor dan rel POWER pada breadboard.

Sekarang mari kita sambungkan kabel putih dan biru berikut:

  • Kabel putih dari pin TRIG pada sensor 1 ke pin Digital 2 pada Arduino
  • Kabel biru dari pin ECHO pada sensor 1 ke pin Digital 3 pada Arduino
  • Kabel putih dari pin TRIG pada sensor 2 ke pin Digital 4 pada Arduino
  • Kabel biru dari pin ECHO pada sensor 2 ke pin Digital 5 pada Arduino

Kerja bagus! Itulah sensor Ultrasonik yang diurus!

Menghubungkan dua layar matriks LED 8x8

Hubungkan kabel hitam antara pin GND yang masuk pada salah satu tampilan matriks LED ke rel GND pada papan tempat memotong roti. Lakukan hal yang sama dengan kabel merah dan pin VCC (POWER) yang masuk di display dan rel POWER di breadboard.

Hubungkan kabel hitam antara pin GND keluar pada tampilan satu dan pin GND masuk pada tampilan dua. Lakukan hal yang sama dengan kabel merah dan pin VCC keluar di layar satu dan pin VCC masuk di layar 2.

Sementara kita menghubungkan kabel antara 2 layar, mari selesaikan bagian itu...

  • Hubungkan kabel kuning antara pin SCK (Jam) keluar pada tampilan satu dan pin SCK masuk pada tampilan dua.
  • Hubungkan kabel biru antara pin MOSI (Data) keluar pada tampilan satu dan pin MOSI masuk pada tampilan dua.
  • Hubungkan kabel putih antara pin CS keluar (Pilih) pada tampilan satu dan pin CS masuk pada tampilan dua.

Besar! Sekarang mari kita sambungkan tampilan lainnya ke papan tempat memotong roti...

  • Hubungkan kabel kuning antara pin SCK yang masuk pada layar satu dan pin digital 13 pada Arduino.
  • Hubungkan kabel biru antara pin MOSI yang masuk pada layar satu dan pin digital 11 pada Arduino.
  • Hubungkan kabel putih antara pin CS yang masuk di layar satu dan pin 10 digital di Arduino.

INGAT: Kode yang diberikan menggunakan Hardware SPI , jadi jika Anda menggunakan papan Arduino yang berbeda dari Nano, harap periksa pin mana yang merupakan pin Hardware SPI untuk MOSI dan SCK dan sambungkan sesuai dengan itu!

Sudah selesai dilakukan dengan baik. Sekarang ke langkah pengkabelan terakhir...

Menghubungkan LDR dan Resistor untuk mendeteksi cahaya sekitar

Sebelum kita menghubungkan kabel ini, mengapa kita melakukan langkah ini? Yah, saya senang Anda bertanya! LDR yang terhubung ke Arduino akan memungkinkan kami mendeteksi keadaan terang atau gelap di sekitar UltrasonicEyes dan kami akan menggunakan informasi tersebut untuk mencerahkan atau meredupkan tampilan LED yang sesuai.

Kami tidak ingin tampilan super terang di malam hari seperti dalam cahaya yang lebih gelap, kami masih dapat melihat tampilan dengan cukup baik ketika kecerahannya sekitar 30%, tetapi di siang hari, atau di ruangan yang terang, kami perlu meningkatkan kecerahan ke tingkat yang lebih tinggi. membuat tampilan lebih terlihat.

Oke, selesaikan langkah terakhir ini agar kita bisa melanjutkan untuk memasukkannya ke dalam kotak 3D!

Hubungkan LDR pada 2 baris pin pada breadboard, seperti pada wiring diagram di atas. Sisakan ruang untuk menempatkan resistor dan kabel yang akan masuk ke Arduino.

Hubungkan resistor 330ohm antara satu baris pin di satu sisi LDR dan rel GND pada papan tempat memotong roti.

Hubungkan kabel merah di antara deretan pin di sisi lain LDR ke rel POWER papan tempat memotong roti.

Terakhir, mari kita sambungkan kabel cokelat di antara deretan pin yang dihubungkan dengan resistor 330ohm dan pin Analog 5 (A5) pada Arduino. Ini harus berupa pin analog karena kita perlu membaca nilai antara 0 dan 255 dari LDR (kekuatan cahaya), bukan hanya 0 dan 1, seperti yang akan kita dapatkan dari pin digital.

Ayo nyalakan dan unggah kodenya

Ok, itu saja, kita semua terhubung. Saatnya mencolokkan kabel USB di antara Arduino dan komputer Anda, dan unggah sketsa UltrasonicEyes yang disediakan di bawah untuk melihat semuanya berfungsi.

Setelah dinyalakan dan kode telah diunggah, berjalanlah di depan sensor Anda, atau gerakkan tangan Anda di depannya dan lihat apa yang terjadi!

Ingin membuatnya lebih permanen?

Ingin membuat UltrasonicEyes Anda lebih permanen? Lihat video saya yang mencakup pengambilan versi papan tempat memotong roti dan menyoldernya ke papan proto di sini...

Kemudian cetak 2 bagian casing pada printer 3D mana pun dan rakit seperti yang saya lakukan di video!

Saya juga sedang mengembangkan UltrasonicEyes untuk memiliki tombol sentuh kapasitif (atau tombol biasa) untuk menelusuri berbagai bentuk mata... Anda dapat melihat eksperimen saya di sini...

Anda dapat melihat proyek &video saya yang lain di... tak terdugamaker.com

Ikuti saya di twitter, Facebook, Instagram &tindie

https://www.patreon.com/unexpectedmaker

Itu dia!

Kode

  • Mata Ultrasonik
Mata UltrasonikC/C++
#include  // Kami menggunakan ini untuk mengontrol Tampilan matriks LED 8x8 - Anda harus menginstal perpustakaan ini dari manajer perpustakaan jika Anda belum memilikinya.#include  // Kami menggunakan NewPing untuk mengontrol Sensor Ultrasonik - Anda harus menginstal pustaka ini dari pengelola pustaka jika Anda belum memilikinya.// tentukan pin yang terpasang pada tampilan matriks LED 1//#define CLK_PIN 13 / / Kami menggunakan SPI perangkat keras - pastikan Anda telah menghubungkan pin CLK ke pin CLK perangkat keras pada perangkat Anda//#define DATA_PIN 11 // Kami menggunakan SPI perangkat keras - pastikan Anda telah menghubungkan pin MOSI ke pin MOSI perangkat keras pada perangkat Anda#define CS_PIN 10 // Chip Select pin#define MAX_DEVICES 2 // jumlah tampilan - kami membutuhkan 2, satu untuk setiap mata#define LIGHT A5 // Kami menggunakan pin Analog 5 untuk membaca nilai cahaya dari LDR/ / Kami menggunakan hardware SPI yang secara otomatis MD_MAX72XX mx =MD_MAX72XX(CS_PIN, MAX_DEVICES); // Inisialisasi 2 tampilan Matriks#define t1 2 // Pin pemicu pada Sensor Ultrasonik 1#definisikan e1 3 // Pin gema pada Sensor Ultrasonik 1#definisi t2 4 // Pin pemicu pada Sensor Ultrasonik 2#definisi e2 5 // Gema pin pada Sensor Ultrasonik 2#menentukan maxDist 400 // jarak maksimal untuk pulsa ultrasonikNewPing eyeR(t2, e2, maxDist ); // Inisialisasi sensor Ultrasonik 2NewPing eyeL(t1, e1, maxDist ); // Inisialisasi sensor Ultrasonik 1// Kami melacak status sistem saat ini dengan variabel bilangan bulat ini, dengan cara ini setelah berkedip, kami dapat mengeluarkan mata kembali untuk melihat ke arah terakhir mereka berada// Status yang mungkin adalah:// 0:Melihat ke depan// 1:Melihat ke Kanan// 2:Melihat ke Kiriint currentState =-1; // Kami menyimpan waktu dan jarak untuk ping untuk setiap sensor Ultrasonik dalam variabel inidurasi panjang1, durasi2;int jarak1, jarak2;// Kami ingin kedipan dimasukkan secara acak ke dalam siklusfloat nextBlink =milis() + 1000;// Kami menyimpan intensitas cahaya saat ini dalam variabel inifloat lightAmount =0;uint8_t eye_forward[COL_SIZE] ={ 0b001111100, 0b01000010, 0b01011010, 0b10101101, 0b10111101, 0b10011001, 0b01000010, 0b00111100};uint8_t eye_right ={ 0b011000100, 0b01100100,0_t eye_right 0b11011001, 0b11111001, 0b10110001, 0b01000010, 0b00111100};uint8_t eye_left[COL_SIZE] ={ 0b001111100, 0b01000010, 0b01001110, 0b10010111, 0b10011111, 0b10001101, 0b01000010, 0b10000008_OL_b11000010_OL_b11000010_OL_b1100001_OL}; 0b10111101, 0b11000011, 0b01111110, 0b001111100};void setup(){ // Inisialisasi pustaka Tampilan Matriks mx.begin(); // Atur mode pin untuk sensor Ultrasonik 1 pinMode( t1, OUTPUT ); pinMode( e1, INPUT ); // Atur mode pin untuk Sensor ultrasonik 2 pinMode( t2, OUTPUT ); pinMode( e2, INPUT ); // Atur setiap pin pemicu pada sensor Ultrasonik untuk memulai dari LOW digitalWrite( t1, LOW ); digitalWrite( t2, LOW );// Atur mode pin untuk LDR menjadi INPUT pinMode( LIGHT, INPUT ); // Mulailah dengan mata melihat ke depan ShowEye_Forward(); currentState =0;}void loop(){ // membaca di tingkat cahaya saat ini lightAmount =analogRead( LIGHT ); // pastikan nilai cahaya berada dalam kisaran Intensitas Maks dari tampilan lightAmount =( lightAmount / 255 ) * MAX_INTENSITY; // mengatur intensitas mx.control(MD_MAX72XX::INTENSITY, lightAmount ); // Ping mata kiri dengan rekursi 5 distance1 =eyeL.ping_median( 5 ); // Delay 500ms sebelum kita melakukan ping ke mata kanan, jadi kita tidak mendapatkan hasil yang bertentangan delay(500); // Ping Mata Kanan dengan rekursi 5 jarak2 =eyeR.ping_median( 5 ); // Periksa untuk melihat apakah sudah waktunya untuk mencoba memasukkan kedipan if ( nextBlink  0) { ShowEye_Right(); keadaan saat ini =1; } // Sekarang jika distance2 lebih besar dari distance1 dan distance2 juga lebih besar dari 0, maka kita ingin melihat ke kiri lagi if ( distance1  0 ) { ShowEye_Left(); keadaan saat ini =2; } // tunda loop selama 250 ms untuk memastikan mata memiliki waktu untuk menampilkan delay(250);}/*************************** *************//************ MAX7219 Barang ************//******* ********************************/void ShowEye_Right(){ // Hapus tampilan mx.clear(); // Atur kecerahan tampilan saat ini mx.control(MD_MAX72XX::INTENSITY, lightAmount ); // Ulangi setiap baris tampilan untuk (uint8_t row=0; row  

Suku cadang dan penutup khusus

Mencetak dengan printer 3D apa pun, tidak memerlukan setelan khusus. Mencetak dengan printer 3D apa pun, tidak memerlukan setelan khusus.

Skema

ultrasonikeyes_final_Th84xpUyB2.fzz

Proses manufaktur

  1. Serangan UFO!
  2. Smart Blinds
  3. Arduclock RGB 3D
  4. MyRiver
  5. Iron Man
  6. Sensor Kendala Sederhana dengan Arduino
  7. Game Joystick
  8. Temukan Saya
  9. Kontrol Humidifier Arduino
  10. Little Rover