- Bahan yang Diperlukan:
- 3D Mencetak Bahagian yang Diperlukan (Pilihan):
- Skematik dan Perkakasan:
- Menyiapkan Aplikasi Android anda:
- Memprogram Arduino anda:
- Bekerja:
Pernah mahu membina Robot Arm atau Robot Penjejakan Wajah dengan hanya menggunakan Arduino dan bukan pengaturcaraan lain seperti OpenCV, asas visual C # dll? Kemudian baca lagi, dalam projek ini kita akan melaksanakan pengesanan wajah dengan menggabungkan kekuatan Arduino dan Android. Dalam projek ini, kamera mudah alih akan bergerak seiring dengan wajah anda dengan bantuan servo. Kelebihan menggunakan Telefon bimbit Android di sini ialah anda tidak perlu melabur pada modul kamera dan keseluruhan kerja pengesanan gambar dapat dilakukan di dalam telefon bimbit itu sendiri, anda tidak memerlukan Arduino anda disambungkan ke komputer anda agar berfungsi. Di sini kami telah menggunakan Modul Bluetooth dengan Arduino untuk berkomunikasi dengan Mudah Alih tanpa wayar.
Aplikasi Android yang digunakan dalam proyek ini dibuat menggunakan Android Pemrosesan, Anda dapat memasang aplikasi secara langsung dengan mengunduh file APK (baca lebih lanjut untuk pautan) atau memakai topi pengaturcaraan anda dan membuat Aplikasi Android anda sendiri yang lebih menarik menggunakan Kod Pemprosesan lebih jauh dalam Tutorial. Ketahui lebih lanjut mengenai Pemprosesan dengan memeriksa Projek Pemprosesan kami sebelumnya.
Pada akhir tutorial ini, anda akan mempunyai Mini Tilt dan Span Robotic Arm yang dapat mengesan wajah anda dan bergerak seiring dengannya. Anda boleh menggunakan ini (dengan kemajuan lebih lanjut) untuk merakam video vlog anda atau bahkan mengambil gambar diri sendiri dengan kamera belakang telefon bimbit anda kerana meletakkan wajah anda tepat di tengah-tengah skrin telefon bimbit anda. Jadi !! Bunyinya menarik? Lihat Video Demo di akhir tutorial ini untuk melihatnya berfungsi. Mari lihat bagaimana kita dapat membina satu…
Saya telah berusaha sedaya upaya untuk menjadikan projek ini berfungsi sesederhana mungkin, sesiapa yang mempunyai pengetahuan minimum mengenai perkakasan atau pengekodan boleh menggunakan panduan ini untuk menjadikan projek ini dapat berfungsi dalam masa yang singkat. Tetapi setelah anda membuatnya, saya cadangkan anda untuk menggunakan kod-kod tersebut agar anda dapat mengetahui apa yang menjadikan perkara ini berfungsi dan bagaimana.
Bahan yang Diperlukan:
- Arduino Nano
- Motor servo SG90 - 2Nos
- Telefon Android dengan kamera yang baik
- Modul Bluetooth HC-05 / HC-06
- Komputer untuk pengaturcaraan
- Pencetak 3D (pilihan)
- Bateri 9V
3D Mencetak Bahagian yang Diperlukan (Pilihan):
Untuk menggerakkan dan memiringkan telefon bimbit, kami memerlukan beberapa struktur mekanikal seperti pemegang mudah alih dan beberapa pendakap servo. Anda boleh menggunakan kadbod untuk membuatnya, kerana saya mempunyai pencetak 3D saya memutuskan untuk mencetak 3D bahagian ini.
Percetakan 3D adalah alat yang luar biasa yang dapat memberikan banyak sumbangan semasa membuat projek prototaip atau bereksperimen dengan reka bentuk mekanikal baru. Sekiranya anda belum menemui faedah pencetak 3D atau cara kerjanya, anda boleh membaca Panduan pemula untuk mencetak 3D.
Sekiranya anda memiliki atau mempunyai akses ke pencetak 3D maka anda boleh menggunakan fail STL yang boleh dimuat turun dari sini untuk mencetak dan memasangnya secara langsung. Walau bagaimanapun, beberapa bahagian seperti pemegang telefon bimbit mungkin memerlukan beberapa pengubahsuaian berdasarkan dimensi telefon anda. Saya telah merancangnya untuk telefon bimbit MOTO G saya. Saya telah menggunakan pencetak saya yang sangat asas untuk mencetak semua bahagian. Pencetaknya adalah FABX v1 dari 3ding dengan harga yang berpatutan dengan jumlah cetakan 10 cm padu. Harga murah hadir dengan pertukaran dengan resolusi cetak rendah dan tidak ada kad SD atau fungsi menyambung cetakan. Saya menggunakan perisian yang dipanggil Cura untuk mencetak fail STL. Tetapan yang saya gunakan untuk mencetak bahan diberikan di bawah ini, anda boleh menggunakan yang sama atau mengubahnya berdasarkan pencetak anda.
Sebaik sahaja anda mencetak semua bahan yang diperlukan, anda boleh meletakkannya dengan betul menggunakan skru dan sedikit gam panas. Setelah pemasangan anda selesai, ia akan kelihatan seperti ini di bawah.
Skematik dan Perkakasan:
Litar untuk projek Penjejakan Muka pada Telefon Pintar ini ditunjukkan dalam gambar di bawah:
Litar Terdiri dari dua motor Servo, salah satunya digunakan untuk menggerakkan telefon bimbit ke kiri / kanan dan yang lain digunakan untuk memiringkan telefon bimbit ke atas / bawah. Arah di mana servo harus bergerak akan diperintahkan oleh Arduino Nano yang dengan sendirinya mendapat maklumat dari modul Bluetooth (HC-05). Keseluruhan litar dikuasakan oleh bateri 9V.
Litar ini boleh disambungkan dengan mudah di papan roti anda atau anda juga boleh memasangkannya pada papan Perf kecil seperti yang saya lakukan di sini.
Menyiapkan Aplikasi Android anda:
Seperti, saya katakan sebelumnya otak utama yang bekerja di belakang projek ini adalah aplikasi Android ini. Aplikasi android ini dikembangkan menggunakan Processing Android. Anda boleh memasang aplikasi ini secara langsung di telefon bimbit anda dan melancarkannya dengan mengikuti langkah-langkah di bawah.
- Muat turun fail APK dari sini.
- Hidupkan litar seperti di atas.
- Dalam tetapan telefon anda, cari modul Bluetooth bernama "HC-05"
- Sekiranya anda telah menamakannya sebagai sesuatu yang lain daripada "HC-05" ubahnya kembali ke HC-05 kerana hanya itu aplikasi akan berfungsi.
- Pasangkan modul Bluetooth anda dengan kata laluan "1234" atau "0000".
- Sekarang, lancarkan Aplikasi dalam mod potret. Anda harus melihat layar kamera anda dan juga "Terhubung ke: HC-05" di bahagian atas skrin anda.
- Cuba gerakkan kamera anda ke atas wajah dan kotak hijau akan muncul di atasnya dan posisinya juga akan dipaparkan di sudut kiri atas skrin anda seperti gambar di bawah.
Anda boleh menaikkan Arduino Face Tracking Project ini ke tahap seterusnya dengan membawa banyak kemajuan yang mana anda tidak perlu membuat kod aplikasi Android anda sendiri. Membuat aplikasi Android mungkin terdengar sukar tetapi percayalah dengan bantuan Pemprosesan, anda boleh mempelajarinya dalam masa yang singkat. Kod pemprosesan lengkap yang digunakan untuk membina aplikasi ini boleh dimuat turun di sini. Anda bebas untuk membuat kemajuan dengan kreativiti anda sendiri. Lihat projek di bawah untuk mengetahui lebih lanjut mengenai Pemprosesan:
- Realiti Maya menggunakan Arduino dan Pemprosesan
- Permainan Ping Pong menggunakan Arduino
- Telefon Pintar Dikendalikan Radio FM menggunakan Pemprosesan.
- Sistem Radar Arduino menggunakan Pemprosesan dan Sensor Ultrasonik
Memprogram Arduino anda:
Aplikasi Android akan mengesan wajah dan kedudukannya di skrin; ia kemudian akan menentukan arah mana yang harus bergerak berdasarkan kedudukan wajah sehingga wajah sampai ke tengah skrin. Arah ini kemudian dihantar ke Arduino melalui Modul Bluetooth.
Program Arduino untuk projek ini agak mudah, kita hanya perlu mengawal arah kedua motor servo berdasarkan nilai yang diterima dari Modul Bluetooth. The kod lengkap boleh didapati pada akhir tutorial ini, saya juga telah menjelaskan beberapa baris penting di bawah.
Garis bawah kod mewujudkan sambungan bersiri dengan pin D12 sebagai RX dan D11 sebagai TX. Oleh itu pin D12 mesti disambungkan ke TX modul BT dan pin D11 ke RX modul BT.
SoftwareSerial cam_BT (12, 11); // RX, TX
Kemudian kami telah memulakan modul Bluetooth pada kadar baud 9600. Pastikan modul anda juga berfungsi pada kadar baud yang sama. Jika tidak, ubahlah dengan sewajarnya.
cam_BT.begin (9600); // mulakan komunikasi Bluetooth pada 9600 baudrate cam_BT.println ("Sedia untuk menerima perintah");
Garis bawah membaca apa yang masuk melalui modul Bluetooth. Data juga disimpan dalam pemboleh ubah "BluetoothData".
if (cam_BT.available ()) // Baca apa yang masuk melalui Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Masuk dari BT:"); Serial.println (BluetoothData); }
Berdasarkan data yang diterima dari Bluetooth, arah motor dikawal. Untuk memusingkan motor ke kiri, motor dikurangkan dengan nilai 2 dari kedudukan sebelumnya. Anda boleh meningkatkan nilai ini 2 hingga 4 atau 6 jika anda memerlukan lengan untuk bergerak lebih pantas. Tetapi, mungkin membuat beberapa kejutan menjadikan kamera tidak stabil.
if (BluetoothData == 49) // Belok Kiri {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Belok Kanan {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Angkat {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Turunkan {pos2 + = 2; servo2.write (pos2);}
Bekerja:
Setelah kami siap dengan perkakasan, kod dan Aplikasi Android kami, inilah masanya untuk bertindak. Cukup aktifkan Arduino anda dan buka aplikasi android. Aplikasi akan secara automatik menyambung ke modul Bluetooth HC-05 (mesti diberi nama HC-05) dan akan menunggu wajah dikesan. Cukup letakkan telefon di pemegang telefon bimbit kami dan duduk di hadapannya. Anda harus melihat motor servo anda menggerakkan telefon anda sehingga wajah anda akan diletakkan di tengah-tengah skrin. Sekarang bergerak dalam jarak kamera dan telefon bimbit anda akan mengikuti pergerakan anda. Anda juga boleh mencubanya dengan meletakkan dan memindahkan gambar apa pun.
Kerja-kerja projek yang lengkap ditunjukkan dalam video di bawah. Anda boleh membina banyak