Daftar Isi:

Radar Perifer untuk Tunanetra: 14 Langkah
Radar Perifer untuk Tunanetra: 14 Langkah

Video: Radar Perifer untuk Tunanetra: 14 Langkah

Video: Radar Perifer untuk Tunanetra: 14 Langkah
Video: Waspada #Glaukoma, Si Pencuri Penglihatan ||Penyebab Kebutaanku (part 2) 2024, November
Anonim
Radar Perifer untuk Tunanetra
Radar Perifer untuk Tunanetra

Sebagai akibat dari kecelakaan yang mengerikan, seorang teman saya baru-baru ini kehilangan penglihatan di mata kanannya. Dia tidak bekerja untuk waktu yang lama dan ketika dia kembali dia mengatakan kepada saya bahwa salah satu hal yang paling menakutkan yang harus dia hadapi adalah kurangnya mengetahui apa yang ada di sisi kanannya. Penglihatan tepi yang lebih sedikit berarti menabrak benda dan orang. Ini mengganggu saya. Saya memutuskan harus ada sesuatu yang bisa kita lakukan.

Saya ingin membuat perangkat yang dapat mengukur jarak ke objek di sisi kanan teman saya. Rencana saya adalah menggunakan motor haptic untuk menggetarkan perangkat berbanding terbalik dengan jarak ke suatu objek. Kemudian jika objek jauh, motor tidak akan bergetar dan jika objek lebih dekat, motor akan mulai bergetar pada tingkat rendah. Jika objek dekat itu akan bergetar pada tingkat yang jauh lebih tinggi (atau tingkat apa pun yang Anda inginkan). Perangkat harus cukup kecil untuk digantung di sisi kacamata dengan sensor mengarah ke kanan. Teman saya akan meletakkan perangkat di sisi kanan kacamatanya tetapi tentu saja untuk orang lain, itu bisa di sisi kiri.

Saya ingat bahwa saya memiliki beberapa sensor jarak akustik di rumah. Tapi, mereka agak besar dan besar, kurang tepat dan kemungkinan akan terlalu berat untuk digunakan pada kacamata. Saya mulai mencari sesuatu yang lain.

Apa yang saya temukan adalah sensor Waktu Penerbangan ST Electronics VL53L0X. Ini adalah laser inframerah dan detektor inframerah dalam satu paket. Ini memancarkan pulsa sinar laser di luar jangkauan yang terlihat oleh manusia (940 nm) dan mencatat waktu yang diperlukan untuk mendeteksi pulsa yang dipantulkan. Ini membagi waktu ini dengan 2 dan dikalikan dengan kecepatan cahaya menghasilkan jarak yang sangat akurat dalam milimeter. Sensor bisa mendeteksi jarak hingga 2 meter tapi seperti yang saya lihat, 1 meter lebih optimal.

Seperti yang terjadi, Adafruit memiliki papan breakout VL53L0X. Jadi saya membutuhkan motor getar, yang juga mereka miliki, dan mikrokontroler untuk menjalankan semuanya. Saya kebetulan memiliki PJRC Teensy 3.2 di tangan. Meskipun lebih besar dari yang saya inginkan, ia memiliki kemampuan untuk mencatat kecepatan lambat. Saya ingin menurunkan kecepatan clock untuk menghemat daya. Dan sejauh sumber daya berjalan, saya memiliki regulator peningkatan Sparkfun di kotak sampah saya bersama dengan dudukan baterai AAA. Saya memiliki hampir semua yang saya butuhkan.

Langkah 1: Prototipe Pertama

Prototipe Pertama
Prototipe Pertama
Prototipe Pertama
Prototipe Pertama

Saya mengambil bagian-bagian yang saya miliki dan membuat prototipe perangkat genggam yang saya bayangkan. Saya mencetak 3D pegangan dan pelat pemasangan dan menyolder semua elektronik ke protoboard Adafruit. Saya menghubungkan motor bergetar ke Teensy melalui transistor NPN 2N3904. Saya menambahkan potensiometer yang akan digunakan untuk mengatur jarak maksimum yang akan ditanggapi perangkat.

Saya menjalankannya pada akhir pekan berikutnya (lihat gambar di atas). Itu tidak cantik tapi itu menunjukkan prinsipnya. Teman saya dapat memegang perangkat di sisi kanannya dan menguji apakah perangkat itu berguna atau tidak dan membantu menyempurnakan fitur yang diinginkannya.

Langkah 2: Prototipe #2

Prototipe #2
Prototipe #2
Prototipe #2
Prototipe #2
Prototipe #2
Prototipe #2

Setelah prototipe genggam pertama saya mulai membuat versi yang lebih kecil. Saya ingin lebih dekat dengan tujuan saya membuat sesuatu yang bisa muat di kacamata. Teensy yang saya gunakan pada versi genggam memungkinkan saya untuk memperlambat jam untuk menghemat daya. Tapi ukuran akan menjadi faktor dan jadi saya beralih ke Adafruit Trinket M0. Meskipun clock rate-nya adalah 48 MHz, prosesor ARM yang menjadi basisnya dapat di-clock lebih lambat. Dengan menggunakan osilator RC internal dapat berjalan pada 8, 4 2 dan bahkan 1 MHz.

Prototipe # 2 datang bersama cukup cepat karena saya memiliki semuanya bersama akhir pekan depan. Sirkuitnya sama dengan prototipe #1 kecuali ARM M0. Saya 3D mencetak selungkup kecil dan meletakkan pemandu di bagian belakang sehingga bisa digeser ke kacamata. Lihat gambar di atas. Awalnya sedang clock pada tingkat 48 MHz.

Langkah 3: Prototipe #3

Prototipe #3
Prototipe #3

Jadi, Instruksi ini benar-benar dimulai di sini. Saya memutuskan untuk membuat satu prototipe terakhir. Saya memutuskan untuk memerasnya sekecil mungkin dengan menggunakan PWB khusus (yang saya yakin kita tuju). Sisa dari Instruksi ini akan menunjukkan kepada Anda cara membuatnya. Sama seperti orang-orang yang membuat tangan cetak 3D untuk anak-anak penyandang disabilitas, harapan saya adalah orang-orang akan membuat ini untuk siapa saja dengan kehilangan penglihatan yang sama di matanya.

Saya menyimpan daftar bagian yang sama dengan prototipe # 2 tetapi saya memutuskan untuk menghapus potensiometer. Setelah berbicara dengan teman saya, kami memutuskan untuk mengatur jarak maksimum menggunakan perangkat lunak. Karena saya memiliki kemampuan untuk menggunakan sensor sentuh menggunakan Teensy, kami selalu dapat mengatur jarak maksimal dengan menyentuh. Satu sentuhan menetapkan jarak pendek, atau lebih sentuhan jarak yang lebih jauh, sentuhan lain jarak terpanjang dan kemudian untuk satu sentuhan lagi, bungkus kembali ke awal. Tapi pada awalnya, kami akan menggunakan jarak tetap untuk pergi.

Langkah 4: Bagian

Bagian
Bagian

Untuk prototipe ini saya membutuhkan papan yang lebih kecil. Saya menggunakan protoboard Sparkfun (PRT-12702) karena dimensinya yang kecil (sekitar 1,8" X 1,3") akan menjadi ukuran yang bagus untuk memotret.

Saya juga perlu menggunakan sesuatu selain baterai AAA sebagai sumber daya. LiPo sepertinya merupakan pilihan yang tepat karena memiliki kapasitas penyimpanan dan bobot yang ringan. Saya mencoba sel koin tetapi tidak memiliki daya yang cukup untuk menangani motor dalam waktu lama. Saya memilih LiPo kecil yang memiliki kapasitas 150 mAH.

Saya akan tetap menggunakan Trinket M0 dan tentu saja, papan breakout VL53L0X.

Sekarang kita turun ke detailnya, berikut adalah daftar bagian untuk prototipe ini:

Adafruit VL53L0X Sensor Waktu Jarak Terbang - ID PRODUK: 3317 Adafruit - Cakram Motor Mini Bergetar - ID PRODUK: 1201 Adafruit - Baterai Lithium Ion Polymer - 3.7v 150mAh - ID PRODUK: 1317 SparkFun - Papan tempat memotong roti yang dapat disolder - Mini - PRT-12702 Sparkfun - Konektor Sudut Kanan JST - Lubang 2-Pin - PRT-09749 Resistor 10K ohm - Junkbox (lihat di lantai Anda) Transistor NPN 2N3904 - Junkbox (atau telepon teman) Beberapa kabel hookup (saya menggunakan 22 gauge terdampar)

Untuk mengisi baterai LiPo saya juga mengambil:

Adafruit - Micro Lipo - Pengisi daya LiIon/LiPoly USB - v1 - ID PRODUK: 1304

Langkah 5: Skema

Skema
Skema

Skema untuk perangkat ini ditunjukkan di atas. Input sentuh akan untuk versi mendatang tetapi tetap ditampilkan dalam skema. Juga, resistor 10K antara Trinket M0 dan alas 2N3904 menyediakan alas yang cukup untuk menghidupkan motor tanpa membantingnya terlalu keras.

Berikut ini adalah deskripsi perakitan langkah demi langkah.

Langkah 6: Protoboard

Protoboard
Protoboard

Banyak dari Anda yang berpengalaman mengetahui hal ini, tetapi ini untuk mereka yang mungkin baru dalam menyolder protoboard:

Protoboard Sparkfun (PRT-12702) yang ditunjukkan di atas memiliki 17 kolom (grup) dari 5 pin di setiap sisi dengan jarak tiga persepuluh inci. Setiap kolom vertikal 5 pin di kedua sisi celah adalah umum satu sama lain. Maksud saya, koneksi apa pun ke pin dalam grup adalah koneksi ke setiap pin lain dalam grup. Untuk papan ini, itu tidak tampak jelas tetapi Anda dapat memverifikasi ini jika Anda menggunakan DVM (Digital Volt Meter). Jika Anda melihat ke belakang, Anda bisa melihat jejak yang menghubungkan grup.

Langkah 7: Penempatan Komponen

Penempatan Komponen
Penempatan Komponen
Penempatan Komponen
Penempatan Komponen

Anda mungkin harus menyolder pin strip ke Trinket M0 dan VL53L0X. Keduanya datang dengan strip tetapi harus disolder. Adafruit memiliki instruksi di Pusat Pembelajaran mereka untuk kedua bagian ini. Jika Anda baru dalam hal ini, silakan pergi ke sana (di sini dan di sini) sebelum menyolder strip ke papan. Strip pin memberikan profil yang lebih rendah daripada soket.

Hal pertama yang perlu dipertimbangkan saat menyolder sesuatu ke protoboard dengan ruang terbatas adalah penempatan komponen. Saya menempatkan Trinket dan VL53L0X di posisi yang ditunjukkan pada gambar di atas. Trinket memiliki pin di kedua tepi papan tetapi VL53L0X memiliki 7 pin semua di satu tepi papan. Sisi VL53L0X yang tidak memiliki pin akan kita gunakan untuk menghubungkan beberapa komponen…seperti yang akan kita lihat.

Saya juga menyolder sakelar geser ke posisinya dan saya menyolder 2N3904. Saya telah menggelapkan lubang di mana bagian-bagian itu ditempatkan dan, untuk 2N3904, saya telah mencatat pin mana yang merupakan Kolektor, Basis, dan Pemancar. Saat Anda pertama kali menyoldernya, Anda harus membiarkannya tegak lurus dengan papan sehingga Anda dapat menyolder sambungan lainnya. Nanti bisa ditekuk (hati-hati) supaya lebih dekat rata dengan papan.

CATATAN: Breakout Baterai JST TIDAK disolder ke papan saat ini. Ini akan disolder ke bagian belakang papan tetapi hanya SETELAH kami menyolder koneksi kami yang lain. Ini akan menjadi hal terakhir yang kita solder.

Langkah 8: Kabel

kabel
kabel

Diagram di atas menunjukkan protoboard lagi dengan lubang gelap di mana komponen akan ditempatkan. Saya telah menambahkan label untuk mereka di sepanjang tepinya agar lebih mudah untuk disambungkan. Perhatikan motor getaran ditampilkan tetapi akan terletak di sisi belakang papan dan akan terhubung hampir terakhir jadi untuk saat ini, abaikan saja. Saya juga menunjukkan Breakout Baterai JST dengan garis putus-putus. Seperti yang diidentifikasi pada langkah sebelumnya, jangan sambungkan tetapi biarkan 4 lubang di bagian atas papan terbuka (yaitu, jangan menyoldernya).

Saya berasumsi pada titik ini bahwa Anda tahu cara melepaskan isolasi dari kawat, timah ujungnya dengan solder dan solder ke papan. Jika tidak, silakan lihat salah satu Instruksi tentang penyolderan.

Untuk langkah ini, solder kabel seperti yang ditunjukkan dengan warna kuning. Titik akhirnya adalah lubang tempat Anda harus menyoldernya. Anda juga harus menyolder resistor 10K ohm ke papan seperti yang ditunjukkan. Sambungan yang dilakukan adalah:

1. Sambungan dari terminal positif baterai ke terminal COMmon (tengah) dari sakelar geser. Satu sisi sakelar geser akan membuat kontak dengan input BAT ke Trinket. Regulator on-board Trinket menghasilkan 3.3V dari tegangan input BAT.

2. Sambungan dari terminal negatif baterai (arde) ke ground Trinket.

3. Sambungan dari terminal negatif (ground) baterai ke emitor 2N3904

4. Sambungan dari pin 3,3 volt (3V) Trinket ke VIN VL53L0X. VL53L0X selanjutnya akan mengatur ini menjadi 2,8 volt untuk penggunaan sendiri. Ini juga membawa tegangan ini ke pin tetapi kami tidak membutuhkannya sehingga akan dibiarkan tidak terhubung.

Langkah 9: Lebih Banyak Kabel

Lebih Banyak Kabel
Lebih Banyak Kabel

Jadi sekarang kita tambahkan grup kabel berikutnya seperti yang ditunjukkan di atas. Berikut adalah daftar setiap koneksi:

1. Sambungan dari pin Trinket berlabel 2 ke pin SCL VL53L0X. Ini adalah sinyal clock I2C. Protokol serial I2C adalah apa yang digunakan oleh Trinket untuk berkomunikasi dengan VL53L0X.

2. Sambungan dari pin Trinket berlabel 0 (nol) ke pin SDA VL53L0X. Ini adalah sinyal data I2C.

3. Sambungan dari pin VL53L0X GND melintasi celah pada protoboard ke Emitter 2N3904. Ini memberikan landasan bagi VL53L0X.

4. Sambungan dari pin Trinket berlabel 4 ke resistor 10K. Ini adalah penggerak untuk motor getaran. Kawat ini pasti harus disolder ke sisi belakang papan jika Anda memilih titik koneksi saya.

Ingatlah bahwa, setiap grup vertikal dari 5 pin adalah sama satu sama lain sehingga Anda dapat menghubungkan di mana saja dalam grup ini dengan nyaman. Anda akan melihat di foto-foto papan saya, saya mengubah beberapa titik koneksi saya. Selama itu adalah koneksi yang benar, maka pad mana pun yang Anda pilih tidak masalah.

Langkah 10: Motor Getaran

Getaran Motor
Getaran Motor

Motor getar dilengkapi dengan stiker yang bisa dibuka di bagian belakang. Anda menarik ini untuk mengungkapkan bahan lengket yang memungkinkan motor menempel di bagian belakang papan (tapi, lihat komentar di bawah sebelum Anda menempelkannya). Saya meletakkannya di sebelah kiri (melihat bagian belakang papan) papan Breakout Baterai JST yang belum kami pasang. Jadi, sisakan ruang untuk papan Breakout Baterai JST. Saya juga ingin memastikan casing logam motor tidak memendekkan pin di celah protoboard. Jadi, saya memotong sepotong kecil selotip dua sisi dan menempelkannya ke bagian belakang sisi lengket motor getaran. Lalu saya mendorong itu ke bagian belakang papan. Ini membantu menjaga casing logam tetap tinggi dan jauh dari pin apa pun. Tapi tetap saja, berhati-hatilah untuk menempatkannya dengan cara yang TIDAK korslet pada pin apa pun.

Solder kabel merah motor getar ke pin 3V Trinket. Kabel hitam motor getaran disolder ke kolektor 2N3904. Ketika perangkat lunak memberikan pulsa 2N3904 (memberikan logika 1 sebagai 3.3V), transistor menyala menghubungkan kabel hitam motor getaran ke ground (atau dekat dengannya). Hal ini membuat motor bergetar.

Saya bisa menambahkan beberapa kapasitansi di titik koneksi kabel merah Vibration Motor. Tetapi ada kapasitansi pada saluran 3.3V Trinket';s jadi saya yakin itu baik-baik saja tetapi jika Anda ingin menambahkan kapasitansi lain, Anda bisa…selama Anda bisa menekannya. Untuk itu kabel merah bisa terhubung langsung ke sisi positif baterai LiPo. Saya memilih sisi 3.3V untuk menjaga tegangan tetap konstan. Sejauh ini, tampaknya berfungsi dengan baik.

Langkah 11: Terakhir Tapi Tidak Sedikit…

Terakhir, tetapi tidak kalah penting…
Terakhir, tetapi tidak kalah penting…
Terakhir, tetapi tidak kalah penting…
Terakhir, tetapi tidak kalah penting…

Terakhir kita sambungkan papan breakout Baterai JST ke sisi belakang protoboard. Saya menyolder pin ke papan dan menempatkan papan breakout Baterai JST dengan sisi atasnya menghadap ke protoboard seperti yang ditunjukkan di atas. Pastikan Anda menyolder kabel untuk baterai positif dan membumikan ke pin yang tepat saat Anda menempatkan bagian ini. Jika Anda salah, Anda akan membalikkan polaritas ke bagian-bagian dan kemungkinan menghancurkan semuanya. Jadi tolong, periksa dan periksa kembali sebelum menyolder dan mencolokkan baterai.

Langkah 12: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Untuk menginstal dan/atau memodifikasi perangkat lunak, Anda memerlukan Arduino IDE dan file papan untuk Trinket M0 serta perpustakaan untuk VL53L0X. Semua itu ada di sini, di sini, dan di sini.

Ikuti petunjuk penggunaan Adafruit M0 di situs pembelajaran mereka di sini.

Setelah perangkat lunak dimuat, papan harus mulai dan berjalan pada koneksi serial USB. Pindahkan sisi papan dengan VL53L0X dekat ke dinding atau tangan Anda dan Anda akan merasakan motor bergetar. Getaran harus semakin rendah dalam amplitudo semakin jauh dari perangkat objek.

Perilaku yang terlihat di perangkat agak dijelaskan dalam komentar di kode sumber. Tetapi grafik terlampir harus menjelaskan hal ini dengan baik. Perangkat tidak boleh mulai bergetar hingga sekitar 863 mm dari suatu objek. Ini akan mencapai tingkat getaran maksimum pada 50 mm dari suatu objek. Jika Anda bergerak lebih dekat ke objek dari 50 mm perangkat tidak akan menghasilkan getaran lebih dari pada 50 mm.

Langkah 13: Kandang

Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran

Saya mendesain enklosur dan mencetaknya 3D dalam plastik ABS. Anda bisa mencetaknya di PLA atau ABS atau bahan apa pun yang Anda inginkan. Saya menggunakan ABS karena saya dapat mengelas potongan aseton ke papan jika diperlukan. Papan yang saya rancang sederhana dan memiliki lubang untuk port USB pada Trinket dan lubang untuk sakelar daya. Saya membuat kedua papan itu menyatu dengan tangan kecil di sisi kotak. Saya tidak terlalu menyukainya, jadi saya mungkin akan mengubahnya. Tentu saja, Anda dapat membuat perubahan apa pun yang ingin Anda lihat.

Saat ini untuk versi ini, kotak harus dibuka untuk melepaskan baterai LiPo untuk mengisi ulang. Jika saya membuat papan sirkuit untuk proyek ini, saya akan menambahkan konektor lain untuk membuat baterai dapat diakses tanpa membuka kotaknya. Dimungkinkan untuk melakukan itu pada desain protoboard ini dan membuat lubang untuk konektor untuk pengisian daya. Jika Anda ingin mencoba ini, silakan bagikan hasil Anda.

Saya berhasil mendesain kotak yang tidak sepenuhnya saya benci. Kami akan menggunakan yang ini untuk menguji sistem. Saya telah melampirkan bagian atas dan bawah kotak sebagai file STL serta braket/panduan yang saya tambahkan di bagian bawah. Saya menambahkan sepasang pemandu menggunakan aseton untuk mengelas bagian-bagiannya secara kimiawi. Jika Anda melakukan ini, berhati-hatilah. Anda dapat melihat perakitan di atas.

Langkah 14: Sekarang Apa?

Sekarang apa?
Sekarang apa?

Periksa saya … Saya sudah tua dan mungkin telah melupakan sesuatu atau kacau. Saya membaca ulang dan memeriksa ini tetapi, saya masih bisa melewatkan banyak hal. Jangan ragu untuk memberi tahu saya apa pun yang saya lakukan / lakukan salah.

Dan, sekarang setelah Anda membuat papan Radar Periferal dan memuatnya dan baterai LiPo berada dalam wadah cetak 3D yang bagus (ketika saya menyelesaikannya atau, jika Anda melakukannya sendiri), apa yang Anda lakukan selanjutnya? Saya pikir Anda harus mendapatkan pengalaman dengan cara mengoperasikannya dan membuat modifikasi pada perangkat lunak. Perjanjian lisensi dalam perangkat lunak menyatakan bahwa Anda dapat menggunakannya tetapi jika Anda membuat perubahan apa pun, Anda harus membagikannya. Saya tidak mengatakan bahwa perangkat lunak untuk proyek ini rumit atau menakjubkan dalam beberapa hal. Ini mencapai tujuannya tetapi ada ruang untuk perbaikan. Bantu jadikan perangkat ini lebih baik dan bagikan kepada kita semua. Ingat, proyek ini adalah tentang membantu orang. Jadi, tolong!

Direkomendasikan: