Daftar Isi:

Menggunakan Sonar, Lidar, dan Computer Vision pada Mikrokontroler untuk Membantu Tunanetra: 16 Langkah
Menggunakan Sonar, Lidar, dan Computer Vision pada Mikrokontroler untuk Membantu Tunanetra: 16 Langkah

Video: Menggunakan Sonar, Lidar, dan Computer Vision pada Mikrokontroler untuk Membantu Tunanetra: 16 Langkah

Video: Menggunakan Sonar, Lidar, dan Computer Vision pada Mikrokontroler untuk Membantu Tunanetra: 16 Langkah
Video: Ultrasonic sensor based waist belt for blind people 2024, November
Anonim
Menggunakan Sonar, Lidar, dan Computer Vision pada Mikrokontroler untuk Membantu Tunanetra
Menggunakan Sonar, Lidar, dan Computer Vision pada Mikrokontroler untuk Membantu Tunanetra

Saya ingin membuat 'tongkat' cerdas yang dapat membantu orang dengan gangguan penglihatan lebih dari solusi yang ada. Tongkat akan dapat memberi tahu pengguna tentang objek di depan atau di samping dengan membuat suara di headphone jenis suara surround. Tongkat tersebut juga akan memiliki kamera kecil dan LIDAR (Light Detection and Ranging) sehingga dapat mengenali objek dan orang di dalam ruangan dan memberi tahu pengguna dengan menggunakan headphone. Untuk alasan keamanan, headphone tidak akan menghalangi semua kebisingan karena akan ada mikrofon yang dapat menyaring semua suara yang tidak perlu dan membuat klakson mobil dan orang berbicara. Terakhir sistem akan memiliki GPS sehingga dapat memberikan arah dan menunjukkan kepada pengguna ke mana harus pergi.

Tolong pilih saya di kontes Mikrokontroler dan Kebugaran Luar Ruangan!

Langkah 1: Ikhtisar Proyek

Ikhtisar Proyek
Ikhtisar Proyek
Ikhtisar Proyek
Ikhtisar Proyek
Ikhtisar Proyek
Ikhtisar Proyek

Menurut World Access for the Blind, gerakan fisik merupakan salah satu tantangan terbesar bagi penyandang tunanetra. Bepergian atau sekadar berjalan di jalan yang ramai mungkin sangat sulit. Secara tradisional satu-satunya solusi adalah menggunakan "tongkat putih" yang umum dikenal yang terutama digunakan untuk memindai lingkungan dengan memukul rintangan di dekat pengguna. Solusi yang lebih baik adalah perangkat yang dapat menggantikan asisten awas dengan memberikan informasi tentang lokasi hambatan sehingga penyandang tunanetra dapat keluar di lingkungan yang tidak dikenal dan merasa aman. Selama proyek ini, perangkat kecil yang dioperasikan dengan baterai yang memenuhi kriteria ini dikembangkan. Perangkat dapat mendeteksi ukuran dan lokasi objek melalui sensor yang mengukur posisi objek dalam kaitannya dengan pengguna, menyampaikan informasi tersebut ke mikrokontroler, dan kemudian mengubahnya menjadi audio untuk memberikan informasi kepada pengguna. Perangkat ini dibuat menggunakan LIDAR (Deteksi dan Jangkauan Cahaya) komersial yang tersedia, SONAR (Navigasi dan Jangkauan Suara), dan teknologi visi komputer yang ditautkan ke mikrokontroler dan diprogram untuk menyediakan keluaran informasi yang dapat didengar yang diperlukan menggunakan earbud atau headphone. Teknologi deteksi disematkan di dalam "tongkat putih" untuk menunjukkan kepada orang lain kondisi pengguna dan memberikan keamanan tambahan.

Langkah 2: Penelitian Latar Belakang

Penelitian Latar Belakang
Penelitian Latar Belakang
Penelitian Latar Belakang
Penelitian Latar Belakang
Penelitian Latar Belakang
Penelitian Latar Belakang
Penelitian Latar Belakang
Penelitian Latar Belakang

Pada tahun 2017, Organisasi Kesehatan Dunia melaporkan bahwa ada 285 juta orang dengan gangguan penglihatan di seluruh dunia, 39 juta di antaranya benar-benar buta. Kebanyakan orang tidak memikirkan masalah yang dihadapi orang tunanetra setiap hari. Menurut World Access for the Blind, gerakan fisik merupakan salah satu tantangan terbesar bagi penyandang tunanetra. Bepergian atau sekadar berjalan di jalan yang ramai mungkin sangat sulit. Karena itu, banyak orang tunanetra lebih suka membawa teman atau anggota keluarga yang dapat melihat untuk membantu menavigasi lingkungan baru. Secara tradisional satu-satunya solusi adalah menggunakan "tongkat putih" yang umum dikenal yang terutama digunakan untuk memindai lingkungan dengan memukul rintangan di dekat pengguna. Solusi yang lebih baik adalah perangkat yang dapat menggantikan asisten awas dengan memberikan informasi tentang lokasi hambatan sehingga penyandang tunanetra dapat keluar di lingkungan yang tidak dikenal dan merasa aman. NavCog, sebuah kolaborasi antara IBM dan Carnegie Mellon University, telah berusaha untuk memecahkan masalah dengan membuat sistem yang menggunakan beacon Bluetooth dan smartphone untuk membantu memandu. Namun, solusinya rumit dan terbukti sangat mahal untuk implementasi skala besar. Solusi saya mengatasi hal ini dengan menghilangkan kebutuhan akan perangkat eksternal dan dengan menggunakan suara untuk memandu pengguna sepanjang hari (Gambar 3). Keuntungan memiliki teknologi yang tertanam dalam "tongkat putih" adalah bahwa hal itu menandakan kondisi pengguna di seluruh dunia yang menyebabkan perubahan perilaku orang-orang di sekitarnya.

Langkah 3: Persyaratan Desain

Persyaratan Desain
Persyaratan Desain

Setelah meneliti teknologi yang tersedia, saya mendiskusikan solusi yang mungkin dengan profesional penglihatan tentang pendekatan terbaik untuk membantu tunanetra menavigasi lingkungan mereka. Tabel di bawah mencantumkan fitur terpenting yang diperlukan seseorang untuk beralih ke perangkat saya.

Fitur - Deskripsi:

  • Komputasi - Sistem perlu menyediakan pemrosesan cepat untuk pertukaran informasi antara pengguna dan sensor. Misalnya, sistem harus dapat memberi tahu pengguna tentang rintangan di depan yang berjarak minimal 2m.
  • Cakupan - Sistem perlu menyediakan layanannya di dalam dan di luar ruangan untuk meningkatkan kualitas hidup orang dengan gangguan penglihatan.
  • Waktu - Sistem harus bekerja dengan baik di siang hari seperti di malam hari.
  • Range – Range adalah jarak antara pengguna dengan objek yang akan dideteksi oleh sistem. Jangkauan minimum yang ideal adalah 0,5 m, sedangkan jangkauan maksimum harus lebih dari 5 m. Jarak lebih jauh akan lebih baik tetapi lebih menantang untuk dihitung.
  • Tipe Objek - Sistem harus mendeteksi kemunculan objek secara tiba-tiba. Sistem harus dapat membedakan antara benda bergerak dan benda statis.

Langkah 4: Desain Teknik dan Pemilihan Peralatan

Desain Teknik dan Pemilihan Peralatan
Desain Teknik dan Pemilihan Peralatan
Desain Teknik dan Pemilihan Peralatan
Desain Teknik dan Pemilihan Peralatan
Desain Teknik dan Pemilihan Peralatan
Desain Teknik dan Pemilihan Peralatan

Setelah melihat banyak komponen yang berbeda, saya memutuskan bagian yang dipilih dari berbagai kategori di bawah ini.

Harga bagian yang dipilih:

  • Zungle Panther: $149.99
  • LiDAR Lite V3: $149.99
  • LV-MaxSonar-EZ1: $29,95
  • Sensor Ultrasonik - HC-SR04: $3,95
  • Raspberry Pi 3: $39,95
  • Arduino: $24,95
  • Kinect: $32,44
  • Floureon 11.1v 3s 1500mAh: $19,99
  • LM2596HV: $9,64

Langkah 5: Pemilihan Peralatan: Metode Interaksi

Pemilihan Peralatan: Metode Interaksi
Pemilihan Peralatan: Metode Interaksi
Pemilihan Peralatan: Metode Interaksi
Pemilihan Peralatan: Metode Interaksi

Saya memutuskan untuk menggunakan kontrol suara sebagai metode untuk berinteraksi dengan perangkat karena memiliki banyak tombol pada tongkat dapat menjadi tantangan bagi orang dengan gangguan penglihatan, terutama jika beberapa fungsi memerlukan kombinasi tombol. Dengan kontrol suara, pengguna dapat menggunakan perintah preset untuk berkomunikasi dengan tongkat yang mengurangi potensi kesalahan.

Perangkat: Pro --- Kontra:

  • Tombol: Tidak ada kesalahan perintah saat tombol kanan ditekan --- Mungkin sulit untuk memastikan tombol yang benar ditekan
  • Kontrol suara: Mudah karena pengguna dapat menggunakan perintah preset --- Pengucapan yang salah dapat menyebabkan kesalahan

Langkah 6:Pemilihan Peralatan: Mikrokontroler

Pemilihan Peralatan: Mikrokontroler
Pemilihan Peralatan: Mikrokontroler
Pemilihan Peralatan: Mikrokontroler
Pemilihan Peralatan: Mikrokontroler
Pemilihan Peralatan: Mikrokontroler
Pemilihan Peralatan: Mikrokontroler

Perangkat menggunakan Raspberry Pi karena biayanya yang rendah dan kekuatan pemrosesan yang cukup untuk menghitung peta kedalaman. Intel Joule akan menjadi pilihan yang lebih disukai tetapi harganya akan menggandakan biaya sistem yang tidak akan ideal perangkat ini yang dikembangkan untuk memberikan pilihan biaya yang lebih rendah bagi pengguna. Arduino digunakan dalam sistem karena dapat dengan mudah mendapatkan informasi dari sensor. BeagleBone dan Intel Edison tidak digunakan karena rasio harga terhadap kinerja rendah yang buruk untuk sistem biaya rendah ini.

Mikrokontroler: Kelebihan --- Kekurangan:

  • Raspberry Pi: Memiliki kekuatan pemrosesan yang cukup untuk menemukan rintangan dan memiliki WiFi/Bluetooth terintegrasi --- Tidak banyak pilihan untuk menerima data dari sensor
  • Arduino: Mudah menerima data dari sensor kecil. yaitu. LIDAR, Ultrasonic, SONAR, dll --- Tidak cukup kekuatan pemrosesan untuk menemukan rintangan
  • Intel Edison: Dapat memproses rintangan dengan cepat dengan prosesor yang cepat --- Membutuhkan bagian pengembang tambahan agar berfungsi untuk sistem
  • Intel Joule: Memiliki kecepatan pemrosesan dua kali lipat dari mikrokontroler mana pun di pasar konsumen hingga saat ini --- Biaya yang sangat tinggi untuk sistem ini dan sulit untuk berinteraksi dengan GPIO untuk interaksi sensor
  • BeagleBone Black: Ringkas dan kompatibel dengan sensor yang digunakan dalam proyek dengan menggunakan Output Input Tujuan Umum (GPIO) --- Daya pemrosesan tidak cukup untuk menemukan objek secara efektif

Langkah 7:Pemilihan Peralatan: Sensor

Pemilihan Peralatan: Sensor
Pemilihan Peralatan: Sensor
Pemilihan Peralatan: Sensor
Pemilihan Peralatan: Sensor
Pemilihan Peralatan: Sensor
Pemilihan Peralatan: Sensor

Kombinasi beberapa sensor digunakan untuk mendapatkan akurasi lokasi yang tinggi. Kinect adalah sensor utama karena luasnya area yang dapat dipindai oleh rintangan pada satu waktu. LIDAR yang merupakan singkatan dari Light Detection and Ranging, adalah metode penginderaan jauh yang menggunakan cahaya dalam bentuk laser berdenyut untuk mengukur jarak dari tempat sensor ke objek dengan cepat; Sensor itu digunakan karena dapat melacak area hingga 40 meter (m) dan karena dapat memindai di berbagai sudut, dapat mendeteksi jika ada langkah yang naik atau turun. Sensor Sound Navigation And Ranging (SONAR) dan Ultrasonic digunakan sebagai pelacakan cadangan jika Kinect meleset dari tiang atau gundukan tanah yang akan menimbulkan bahaya bagi pengguna. Sensor 9 Derajat Kebebasan digunakan untuk melacak ke arah mana pengguna menghadap sehingga perangkat dapat menyimpan informasi untuk mengarahkan akurasi yang lebih tinggi saat orang tersebut berjalan di tempat yang sama di lain waktu.

Sensor: Kelebihan --- Kekurangan:

  • Kinect V1: Dapat melacak objek 3D dengan --- Hanya satu kamera untuk mendeteksi lingkungan
  • Kinect V2: Memiliki 3 kamera inframerah dan kamera Merah, Hijau, Biru, Kedalaman (RGB-D) untuk deteksi objek 3D presisi tinggi --- Dapat memanas dan mungkin memerlukan kipas pendingin, dan lebih besar dari sensor lainnya
  • LIDAR: Sinar yang dapat melacak lokasi hingga jarak 40 m --- Perlu diposisikan ke arah objek dan hanya dapat melihat ke arah itu
  • SONAR: Sinar yang dapat melacak 5 m tetapi dalam jarak jauh --- Benda kecil seperti bulu dapat memicu sensor
  • Ultrasonik: Memiliki jangkauan hingga 3 m dan sangat murah --- Jarak terkadang tidak akurat
  • 9 Derajat Kebebasan Sensor: Baik untuk orientasi penginderaan dan kecepatan pengguna --- Jika ada yang mengganggu sensor, perhitungan jarak dapat salah dihitung

Langkah 8: Pemilihan Peralatan: Perangkat Lunak

Seleksi Peralatan: Perangkat Lunak
Seleksi Peralatan: Perangkat Lunak
Seleksi Peralatan: Perangkat Lunak
Seleksi Peralatan: Perangkat Lunak
Seleksi Peralatan: Perangkat Lunak
Seleksi Peralatan: Perangkat Lunak

Perangkat lunak yang dipilih untuk beberapa prototipe pertama yang dibuat dengan sensor Kinect V1 adalah Freenect tetapi tidak terlalu akurat. Saat beralih ke Kinect V2 dan Freenect2, hasil pelacakan meningkat secara signifikan karena pelacakan yang ditingkatkan karena V2 memiliki kamera HD dan 3 kamera inframerah dibandingkan dengan kamera tunggal pada Kinect V1. Saat saya menggunakan OpenNi2 dengan Kinect V1, fungsinya terbatas dan saya tidak dapat mengontrol beberapa fungsi perangkat.

Perangkat Lunak: Kelebihan --- Kekurangan:

  • Freenect: Memiliki tingkat kontrol yang lebih rendah untuk mengendalikan semuanya --- Hanya mendukung Kinect V1
  • OpenNi2: Dapat dengan mudah membuat data titik cloud dari aliran informasi dari Kinect --- Hanya mendukung Kinect V1 dan tidak memiliki dukungan untuk kontrol tingkat rendah
  • Freenect2: Memiliki tingkat kontrol yang lebih rendah untuk bilah sensor --- Hanya berfungsi untuk Kinect V2
  • ROS: Sistem operasi ideal untuk memprogram fungsi kamera --- Perlu diinstal pada kartu SD cepat agar perangkat lunak dapat bekerja

Langkah 9: Seleksi Peralatan: Bagian Lain

Pemilihan Peralatan: Suku Cadang Lainnya
Pemilihan Peralatan: Suku Cadang Lainnya
Pemilihan Peralatan: Suku Cadang Lainnya
Pemilihan Peralatan: Suku Cadang Lainnya

Baterai Lithium Ion dipilih karena ringan, memiliki kapasitas daya tinggi, dan dapat diisi ulang. Varian 18650 baterai lithium ion memiliki bentuk silinder dan sangat cocok dengan prototipe tebu. Prototipe rotan pertama dibuat dari pipa PVC karena berlubang dan mengurangi berat rotan.

Langkah 10: Pengembangan Sistem: Membuat Perangkat Keras Bagian 1

Pengembangan Sistem: Membuat Perangkat Keras Bagian 1
Pengembangan Sistem: Membuat Perangkat Keras Bagian 1
Pengembangan Sistem: Membuat Perangkat Keras Bagian 1
Pengembangan Sistem: Membuat Perangkat Keras Bagian 1
Pengembangan Sistem: Membuat Perangkat Keras Bagian 1
Pengembangan Sistem: Membuat Perangkat Keras Bagian 1

Pertama kita harus membongkar Kinect agar lebih ringan dan pas di dalam tongkat. Saya mulai dengan melepas semua casing luar dari Kinect karena plastik yang digunakan sangat berat. Kemudian saya harus memotong kabel agar alasnya bisa dilepas. Saya mengambil kabel dari konektor yang ditunjukkan pada gambar dan menyoldernya ke kabel usb dengan kabel sinyal dan dua koneksi lainnya untuk daya input 12V. Karena saya ingin kipas di dalam tongkat berjalan dengan kekuatan penuh untuk mendinginkan semua komponen lainnya, saya memutuskan konektor kipas dari Kinect dan menyambungkan kabel 5V dari Raspberry Pi. Saya juga membuat adaptor kecil untuk kabel LiDAR sehingga dapat terhubung langsung ke Raspberry Pi tanpa sistem lain di antaranya.

Saya tidak sengaja menyolder kabel putih ke yang hitam jadi jangan lihat gambar untuk diagram pengkabelan

Langkah 11: Pengembangan Sistem: Membuat Perangkat Keras Bagian 2

Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2
Pengembangan Sistem: Membuat Perangkat Keras Bagian 2

Saya membuat bagian regulator untuk memberikan daya ke semua perangkat yang membutuhkan 5V seperti Raspberry Pi. Saya menyetel regulator dengan meletakkan meteran pada output dan menyesuaikan resistor sehingga regulator akan memberikan 5.05V. Saya meletakkannya sedikit lebih tinggi dari 5V karena seiring waktu, tegangan baterai turun dan sedikit mempengaruhi tegangan output. Saya juga membuat adaptor yang memungkinkan saya untuk menyalakan hingga 5 perangkat yang membutuhkan 12V dari baterai.

Langkah 12: Pengembangan Sistem: Pemrograman Sistem Bagian 1

Pengembangan Sistem: Pemrograman Sistem Bagian 1
Pengembangan Sistem: Pemrograman Sistem Bagian 1
Pengembangan Sistem: Pemrograman Sistem Bagian 1
Pengembangan Sistem: Pemrograman Sistem Bagian 1
Pengembangan Sistem: Pemrograman Sistem Bagian 1
Pengembangan Sistem: Pemrograman Sistem Bagian 1

Salah satu bagian yang paling menantang dari sistem ini adalah pemrograman. Ketika saya pertama kali mendapatkan Kinect untuk bermain-main dengannya, saya menginstal sebuah program bernama RTAB Map yang mengambil aliran data dari Kinect dan mengubahnya menjadi point cloud. Dengan point cloud, dibuat gambar 3D yang bisa diputar sehingga terlihat kedalaman dimana semua objek berada. Setelah bermain-main dengannya sebentar dan menyesuaikan semua pengaturan, saya memutuskan untuk menginstal beberapa perangkat lunak pada Raspberry Pi untuk memungkinkan saya melihat aliran data dari Kinect. Dua gambar terakhir di atas menunjukkan apa yang dapat dihasilkan oleh Raspberry Pi pada sekitar 15-20 frame per detik.

Direkomendasikan: