İçindekiler:
- Adım 1: İlk Prototip
- Adım 2: Prototip #2
- Adım 3: Prototip #3
- Adım 4: Parçalar
- Adım 5: Şematik
- 6. Adım: Protoboard
- Adım 7: Bileşen Yerleştirme
- Adım 8: Kablolar
- Adım 9: Daha Fazla Tel
- Adım 10: Titreşim Motoru
- Adım 11: Son Ama En Az Değil…
- Adım 12: Yazılım
- Adım 13: Muhafaza
- Adım 14: Şimdi Ne?
Video: Görme Engelliler İçin Çevresel Radar: 14 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Korkunç bir kaza sonucu bir arkadaşım yakın zamanda sağ gözünü kaybetti. Uzun süredir işsizdi ve geri döndüğünde bana uğraşması gereken en sinir bozucu şeylerden birinin sağ tarafında ne olduğunu bilmemek olduğunu söyledi. Daha az çevresel görüş, nesnelere ve insanlara çarpmak anlamına gelir. Bu beni rahatsız etti. Yapabileceğimiz bir şey olması gerektiğine karar verdim.
Arkadaşımın sağ tarafındaki nesnelere olan mesafeyi ölçebilecek bir cihaz yapmak istedim. Planım, cihazı bir nesneye olan mesafeyle ters orantılı olarak titretmek için dokunsal bir motor kullanmak. Daha sonra nesneler uzakta olsaydı motor titreşmezdi ve bir nesne daha yakın olduğu için düşük seviyede titreşmeye başlardı. Nesne yakın olsaydı, çok daha yüksek bir seviyede (veya istediğiniz herhangi bir seviyede) titreşirdi. Cihaz, sensör sağa bakacak şekilde gözlüğün yan tarafına asılacak kadar küçük olmalıdır. Arkadaşım cihazı gözlüğünün sağ tarafına koyardı ama başkası için tabii ki sol taraf olabilir.
Evde bazı akustik mesafe sensörlerim olduğunu hatırladım. Ancak, biraz büyük ve hacimlidirler, daha az hassastırlar ve muhtemelen gözlüklerde kullanım için çok ağır olurlar. Başka bir şey aramaya başladım.
Bulduğum şey ST Electronics VL53L0X Uçuş Süresi sensörüydü. Bu, tek bir pakette bir kızılötesi lazer ve kızılötesi dedektördür. İnsan tarafından görülebilen aralığın (940 nm) dışında bir lazer ışığı darbesi yayar ve yansıyan darbeyi algılamak için geçen süreyi kaydeder. Bu süreyi 2'ye böler ve milimetre cinsinden çok hassas mesafe üreterek ışık hızıyla çarpar. Sensör 2 metreye kadar olan mesafeyi algılayabilir ama gördüğüm gibi 1 metre daha ideal.
Olduğu gibi, Adafruit bir VL53L0X koparma panosuna sahiptir. Bu yüzden onların da sahip olduğu titreşimli bir motora ve hepsini çalıştıracak bir mikro denetleyiciye ihtiyacım vardı. Elimde bir PJRC Teensy 3.2 vardı. İstediğimden daha büyük olmasına rağmen, yavaş bir hızda saat alma yeteneğine sahipti. Güçten tasarruf etmek için saat hızını düşürmek istedim. Ve bir güç kaynağı söz konusu olduğunda, çöp kutumda bir AAA pil tutucuyla birlikte bir Sparkfun boost regülatörü vardı. İhtiyacım olan hemen hemen her şeye sahiptim.
Adım 1: İlk Prototip
Elimdeki parçaları aldım ve hayal ettiğim cihazın elde taşınabilir bir prototipini yaptım. Sapı ve montaj plakasını 3D olarak yazdırdım ve tüm elektronik aksamları bir Adafruit protokol kartına lehimledim. Titreşimli motoru bir 2N3904 NPN transistörü aracılığıyla Teensy'ye bağladım. Cihazın yanıt vereceği maksimum mesafeyi ayarlamak için kullanılacak bir potansiyometre ekledim.
Önümüzdeki hafta sonu çalıştırdım (yukarıdaki resme bakın). Güzel değildi ama prensibi gösterdi. Arkadaşım cihazı sağ tarafında tutabilir ve cihazın kullanışlı olup olmayacağını test edebilir ve özellikler için ne istediğini iyileştirmeye yardımcı olabilir.
Adım 2: Prototip #2
İlk elde tutulan prototipten sonra daha küçük bir versiyon yapmaya başladım. Gözlüklere sığabilecek bir şey yapma hedefime yaklaşmak istedim. Elde taşınır versiyonda kullandığım Teensy, güç tasarrufu yapmak için saati yavaşlatmama izin verdi. Ama boyut bir faktör olacaktı ve ben de Adafruit Biblo M0'a geçtim. Saat hızı 48 MHz iken, temel aldığı ARM işlemcisi daha yavaş saat hızına sahip olabilir. Dahili RC osilatörünü kullanarak 8, 4 2 ve hatta 1 MHz'de çalışabilir.
Prototip #2, bir sonraki hafta sonu hepsini bir araya getirdiğim için oldukça hızlı bir şekilde bir araya geldi. Devre, ARM M0 dışında prototip #1 ile aynıydı. Küçük bir muhafazayı 3D olarak yazdırdım ve gözlüklerin üzerine kaydırılabilmesi için arkasına kılavuzlar koydum. Yukarıdaki resme bakın. Başlangıçta 48 MHz hızında çalışıyor.
Adım 3: Prototip #3
Yani, bu Eğitilebilirlik gerçekten burada başlıyor. Son bir prototip yapmaya karar verdim. Özel bir PWB kullanmadığım kadar küçültmeye karar verdim (ki bu, gittiğimizden emin olduğum yer). Bu Eğitilebilirliğin geri kalanı size nasıl yapılacağını göstermekle ilgili olacaktır. Tıpkı engelli çocuklar için 3D baskılı eller yapan insanlar gibi, umarım insanlar da benzer görme kaybı olan herkes için bunları yapar.
Parça listesini prototip #2 ile aynı tuttum ama potansiyometreyi çıkarmaya karar verdim. Arkadaşımla konuştuktan sonra yazılımı kullanarak maksimum mesafeyi ayarlamaya karar verdik. Teensy'yi kullanarak bir dokunmatik sensör kullanma yeteneğim olduğu için, maksimum mesafeyi her zaman dokunarak bir ayar yapabiliriz. Bir dokunuş kısa bir mesafeyi ayarlar veya daha fazla dokunuş daha uzun bir mesafeyi, başka bir dokunuş en uzun mesafeyi ayarlar ve ardından bir dokunuş daha için başa sarın. Ama ilk başta, gitmek için sabit bir mesafe kullanacağız.
Adım 4: Parçalar
Bu prototip için daha küçük bir tahtaya ihtiyacım vardı. Sparkfun protokol kartıyla (PRT-12702) gittim çünkü küçük boyutları (yaklaşık 1.8" X 1.3") çekim yapmak için iyi bir boyut olurdu.
Ayrıca güç kaynağı olarak AAA pil dışında bir şey kullanmam gerekiyordu. LiPo, depolama kapasitesi ve hafifliği nedeniyle doğru seçim gibi görünüyordu. Bir madeni para hücresi denedim ama motoru çok uzun süre idare edecek kadar gücü yoktu. 150 mAH kapasiteli küçük bir LiPo seçtim.
Ben Trinket M0 ve tabii ki VL53L0X devre kartı ile kalacaktım.
Artık ayrıntılara indiğimize göre, bu prototip için parçaların bir listesi:
Adafruit VL53L0X Uçuş Süresi Mesafe Sensörü - ÜRÜN ID: 3317 Adafruit - Titreşimli Mini Motor Disk - ÜRÜN ID: 1201 Adafruit - Lityum İyon Polimer Pil - 3.7v 150mAh - ÜRÜN ID: 1317 SparkFun - Lehimlenebilir Breadboard - Mini - PRT-12702 Sparkfun - JST Dik Açılı Konnektör - Geçişli 2 Pinli - PRT-09749 10K ohm direnç - Önemsiz kutusu (katınıza bakın) 2N3904 NPN Transistör - Önemsiz kutusu (veya bir arkadaşımı arayın) Bazı bağlantı kablosu (22 gauge telli kullandım)
LiPo pili şarj etmek için de aldım:
Adafruit - Micro Lipo - USB LiIon/LiPoly şarj cihazı - v1 - ÜRÜN ID: 1304
Adım 5: Şematik
Bu cihazın şeması yukarıda gösterilmiştir. Dokunma girişi gelecekteki bir sürüm için olacaktır, ancak yine de şematikte gösterilmiştir. Ayrıca, Trinket M0 ile 2N3904'ün tabanı arasındaki 10K direnç, motoru çok sert çarpmadan açmak için yeterli taban sağlar.
Aşağıda, adım adım montaj açıklaması yer almaktadır.
6. Adım: Protoboard
Tecrübeli bir çoğunuz bunu biliyor ama bu, lehimleme protokollerinde yeni olanlar için:
Yukarıda gösterilen Sparkfun protokolü (PRT-12702), bir inç aralığın onda üçünün her iki tarafında 5 pimli 17 sütuna (grup) sahiptir. Boşluğun her iki tarafındaki 5 pimden oluşan her dikey sütun birbiriyle ortaktır. Bununla, gruptaki bir pime herhangi bir bağlantının, gruptaki diğer her bir pime bağlantı olduğunu kastediyorum. Bu kart için bu bariz görünmüyor ancak bir DVM (Dijital Volt Metre) kullanıyorsanız bunu doğrulayabilirsiniz. Arkaya bakarsanız, grupları birbirine bağlayan izleri görebilirsiniz.
Adım 7: Bileşen Yerleştirme
Muhtemelen hem Trinket M0 hem de VL53L0X'e pin şeritlerini lehimlemeniz gerekiyor. Her ikisi de şeritlerle birlikte gelir ancak lehimlenmeleri gerekir. Adafruit, Öğrenim Merkezinde bu bölümlerin her ikisi için de talimatlara sahiptir. Bu konuda yeniyseniz, şeritleri tahtalara lehimlemeden önce lütfen oraya (buraya ve buraya) gidin. Pim şeritleri, bir soketten daha düşük bir profil sağlar.
Sınırlı alana sahip bir protokole bir şey lehimlerken dikkate alınması gereken ilk şey, bileşen yerleşimidir. Bibloyu ve VL53L0X'i yukarıdaki şekilde gösterilen konumlara yerleştirdim. Biblo, kartın her iki kenarında pimlere sahiptir, ancak VL53L0X, kartının bir kenarında 7 pime sahiptir. VL53L0X'in pinleri olmayan tarafı bazı bileşenleri bağlamak için kullanacağız…göreceğimiz gibi.
Ayrıca sürgülü anahtarı yerine lehimledim ve 2N3904'ü lehimledim. Bu parçaların yerleştirildiği delikleri kararttım ve 2N3904 için hangi pimlerin Toplayıcı, Taban ve Verici olduğunu not ettim. İlk lehimlediğinizde, diğer bağlantıları lehimleyebilmeniz için panoya dik bırakmalısınız. Daha sonra onu (dikkatle) bükebileceksiniz, böylece tahta ile aynı hizada olmaya daha yakın olacak.
NOT: JST Batarya Koparma şu anda karta lehimlenmez. Kartın arkasına lehimlenecek, ancak diğer bağlantılarımızı lehimledikten SONRA. Bu lehimleyeceğimiz son şey olacak.
Adım 8: Kablolar
Yukarıdaki şema, bileşenlerin yerleştirileceği karartılmış deliklerle tekrar protokolü göstermektedir. Kablolamayı kolaylaştırmak için kenarlarına etiketler ekledim. Titreşim motorunun gösterildiğini, ancak kartın arka tarafında bulunacağını ve neredeyse en son bağlanacağını unutmayın, bu yüzden şimdilik görmezden gelin. Ayrıca JST Battery Breakout'u kesikli çizgi ile gösteriyorum. Önceki adımda belirtildiği gibi, bağlamayın, ancak lütfen kartın üst kısmındaki 4 deliği açık bırakın (yani onlara lehim yapmayın).
Bu noktada, bir telden yalıtımı nasıl sıyıracağınızı, uçlarını lehimle ve lehimle bir tahtaya nasıl yapıştıracağınızı bildiğinizi varsayıyorum. Değilse, lütfen lehimleme ile ilgili Talimatlardan birine bakın.
Bu adım için telleri sarı ile gösterildiği gibi lehimleyin. Uç noktalar, onları lehimlemeniz gereken deliklerdir. Ayrıca 10K ohm'luk direnci de gösterildiği gibi karta lehimlemelisiniz. Yapılan bağlantılar şunlardır:
1. Akünün pozitif terminalinden sürgülü anahtarın ORTAK (orta) terminaline bir bağlantı. Sürgülü anahtarın bir tarafı Bibloya BAT girişi ile temas edecektir. Biblonun yerleşik regülatörü, BAT giriş voltajından 3,3V üretir.
2. Pilin negatif (toprak) terminalinden Biblonun toprağına bir bağlantı.
3. Akünün negatif (toprak) terminalinden 2N3904'ün emitörüne bağlantı
4. Biblonun 3,3 volt (3V) pininden VL53L0X'in VIN'ine bir bağlantı. VL53L0X, bunu kendi kullanımı için 2,8 volta ayarlayacaktır. Ayrıca bu voltajı bir pine getiriyor ancak buna ihtiyacımız yok, bu yüzden bağlantısız bırakılacak.
Adım 9: Daha Fazla Tel
Şimdi bir sonraki kablo grubunu yukarıda gösterildiği gibi ekliyoruz. İşte her bağlantının bir listesi:
1. Biblonun 2 olarak etiketlenmiş pininden VL53L0X SCL pinine bağlantı. Bu, I2C saat sinyalidir. I2C seri protokolü, Trinket tarafından VL53L0X ile iletişim kurmak için kullanılan şeydir.
2. Biblonun 0 (sıfır) olarak etiketlenmiş pininden VL53L0X SDA pinine bağlantı. Bu, I2C veri sinyalidir.
3. Protokoldeki boşluk boyunca VL53L0X GND pininden 2N3904'ün Vericisine bir bağlantı. Bu, VL53L0X'e zemin sağlar.
4. Biblonun 4 olarak etiketlenmiş pininden 10K rezistöre bağlantı. Bu, titreşim motorunun tahrikidir. Bağlantı noktamı seçerseniz bu tel kesinlikle kartın arka tarafına lehimlenmelidir.
Unutmayın, 5 pinli herhangi bir dikey grup birbiriyle ortaktır, bu nedenle bu grupta uygun olan herhangi bir yere bağlanabilirsiniz. Birkaç bağlantı noktamı değiştirdiğimi panomun fotoğraflarında fark edeceksiniz. Doğru bağlantı oldukları sürece, hangi pedi seçerseniz seçin sorun olmaz.
Adım 10: Titreşim Motoru
Titreşim motoru, arkasında soyulabilir bir çıkartma ile birlikte gelir. Motorun tahtanın arkasına yapışmasını sağlayan yapışkan bir malzemeyi ortaya çıkarmak için bunu çekersiniz (ancak yapıştırmadan önce aşağıdaki yoruma bakın). Henüz takmadığımız JST Battery Breakout panosunun soluna (tahtanın arkasına bakarak) yerleştirdim. Bu nedenle, JST Battery Breakout panosu için biraz boşluk bırakın. Ayrıca motorun metal kasasının, protokol boşluğu boyunca herhangi bir pimi kısa devre yapmadığından emin olmak istedim. Bu yüzden küçük bir çift taraflı bant parçası kestim ve bunu titreşim motorunun yapışkan tarafının arkasına yapıştırdım. Sonra onu tahtanın arkasına ittim. Metal kasayı yüksekte ve herhangi bir pimden uzak tutmaya yardımcı olur. Ancak yine de, herhangi bir pimi kısa devre etmeyecek şekilde yerleştirmeye dikkat edin.
Titreşim motorunun kırmızı telini Biblonun 3V pinine lehimleyin. Titreşim motorunun siyah teli 2N3904'ün kolektörüne lehimlenmiştir. Yazılım 2N3904'e darbe verdiğinde (3.3V olarak bir mantık 1 sağlar) transistör, titreşim motorunun siyah kablosunu toprağa (veya ona yakın) bağlamaya başlar. Bu, motorun titreşmesini sağlar.
Titreşim Motorunun kırmızı kablo bağlantı noktasına biraz kapasitans ekleyebilirdim. Ama Trinket'in 3.3V hattında kapasitans var, bu yüzden sorun olmadığına eminim ama eğer başka bir kapasitans eklemek istiyorsanız, sıkabildiğiniz sürece yapabilirsiniz. Bu konuda kırmızı kablo bağlanabilir. doğrudan LiPo pilin pozitif tarafına. Voltajı sabit tutmak için 3.3V tarafını seçtim. Şimdiye kadar, iyi çalışıyor gibi görünüyor.
Adım 11: Son Ama En Az Değil…
Son olarak, JST Batarya devre kartını protoboardun arka tarafına bağlarız. Pimleri tahtaya lehimledim ve JST Batarya devre kartını üst tarafı yukarıda gösterildiği gibi protokole bakacak şekilde yerleştirdim. Bu parçayı yerleştirirken pozitif pil için olan kabloları lehimlediğinizden ve doğru pinlere toprakladığınızdan emin olun. Eğer yanılıyorsanız, kutupları parçalara çevirecek ve muhtemelen hepsini yok edeceksiniz. Bu yüzden lütfen pili lehimlemeden ve fişe takmadan önce kontrol edin ve tekrar kontrol edin.
Adım 12: Yazılım
Yazılımı kurmak ve/veya değiştirmek için Arduino IDE'ye ve Trinket M0 pano dosyalarına ve ayrıca VL53L0X kitaplıklarına ihtiyacınız olacak. Bunların hepsi burada, burada ve burada.
Adafruit M0'ı öğrenme sitelerinde kullanma talimatlarını buradan takip edin.
Yazılım yüklendikten sonra kart başlamalı ve USB seri bağlantısında çalışmalıdır. VL53L0X bir duvara veya elinize yakın olacak şekilde tahtanın kenarını hareket ettirin ve motorun titrediğini hissetmelisiniz. Titreşim, bir nesne cihazdan uzaklaştıkça genlik olarak düşmelidir.
Cihazda görülen bir davranış, kaynak koddaki yorumlarda bir nebze anlatılmaktadır. Ancak ekteki grafik bu noktayı iyi ifade etmelidir. Cihaz, bir nesneden yaklaşık 863 mm'ye kadar titreşmeye başlamamalıdır. Bir nesneden 50 mm uzaklıkta maksimum titreşim seviyesine ulaşacaktır. Bir cisme 50 mm'den daha fazla yaklaşırsanız, cihaz 50 mm'de olduğundan daha fazla titreşim üretmeyecektir.
Adım 13: Muhafaza
Bir muhafaza tasarladım ve bunu ABS plastikten 3D olarak yazdırdım. PLA veya ABS veya istediğiniz herhangi bir malzemeye yazdırabilirsiniz. ABS kullanıyorum çünkü gerekirse parçaları tahtaya asetonla kaynaklayabilirim. Tasarladığım anakart basit ve Biblo üzerindeki USB portu için bir deliğe ve güç anahtarı için bir deliğe sahip. İki tahtayı kutunun yanlarındaki küçük kollarla birbirine tutturdum. Ben pek sevmediğim için değiştirme ihtimalim var. Tabii ki, görmek istediğiniz değişiklikleri yapabilirsiniz.
Şu anda bu sürüm için, yeniden şarj etmek için LiPo pilinin bağlantısını kesmek için kutunun açılması gerekiyor. Bu proje için bir devre kartı oluşturursam, pili kutuyu açmadan erişilebilir kılmak için başka bir konektör ekleyeceğim. Bu protoboard tasarımında bunu yapmak ve şarj için konektör için bir delik açmak mümkün olabilir. Bunu denemek isterseniz, lütfen sonuçlarınızı paylaşın.
Tamamen nefret etmediğim bir kutu tasarlamayı başardım. Bunu sistemi test etmek için kullanacağız. Kutunun üstünü ve altını STL dosyaları olarak ekledim ve altına eklediğim braket/kılavuz. Parçaları kimyasal olarak birbirine kaynaklamak için aseton kullanarak bir çift kılavuz ekledim. Bunu yaparsanız dikkatli olun. Montajı yukarıda görebilirsiniz.
Adım 14: Şimdi Ne?
Beni kontrol et…Yaşlandım ve bir şeyi unutmuş ya da karıştırmış olabilirim. Bunu tekrar okuyup kontrol ediyorum ama yine de bazı şeyleri kaçırabilirim. Bana ne yaptığımı/yanlış yaptığımı söylemekten çekinmeyin.
Ve şimdi, Çevresel Radar kartını oluşturduğunuza ve yüklediğinize ve LiPo pili güzel bir 3D baskılı kutuda olduğuna göre (bitirdiğimde veya kendiniz yaptıysanız), sonra ne yapacaksınız? Nasıl çalıştığı konusunda deneyim kazanmanız ve yazılımda değişiklikler yapmanız gerektiğini düşünüyorum. Yazılımdaki lisans sözleşmesi, onu kullanabileceğinizi belirtir, ancak herhangi bir değişiklik yaparsanız, bunları paylaşmanız gerekir. Bu projenin yazılımının bir şekilde karmaşık veya şaşırtıcı olduğunu söylemiyorum. Hedeflerine ulaşır, ancak iyileştirme için yer vardır. Bu cihazı daha iyi hale getirmeye yardımcı olun ve bunu hepimizle paylaşın. Unutmayın, bu proje tamamen insanlara yardım etmekle ilgili. Öyleyse, yardım et!
Önerilen:
Görme Engelliler, Görme Engelliler ve Diğer Herkes için ScanUp NFC Okuyucu/Yazıcı ve Ses Kaydedici: 4 Adım (Resimlerle)
Körler, Görme Engelliler ve Diğer Herkes için ScanUp NFC Okuyucu/Yazıcı ve Ses Kaydedici: Endüstriyel tasarım okuyorum ve proje benim dönemimin işi. Amaç, görme engelli ve görme engelli kişileri SD karta .WAV formatında ses kaydetmeye ve bu bilgiyi NFC etiketi ile çağırmaya olanak sağlayan bir cihazla desteklemektir. Yani
Görme Engelliler İçin Dokunsal Ayakkabı: 12 Adım
Görme Engelliler İçin Haptik Ayakkabı: Tüm dünyada 37 milyondan fazla görme engelli insan var. Bu insanların çoğu bir baston kullanır, sopa kullanır veya gidip gelmek için başka birine bağımlıdır. Sadece bağımlılıklarını azaltmakla kalmaz, bazı durumlarda da kendilerine zarar verir
Arduino ve 3D Baskı ile Görme Engelliler İçin Gelişmiş Otobüs Deneyimi: 7 Adım
Arduino ve 3D Baskı ile Görme Engelli Kişiler için Gelişmiş Otobüs Deneyimi: Görme engelli kişiler için toplu taşıma ile gidip gelme nasıl daha kolay hale getirilebilir? Harita hizmetlerindeki gerçek zamanlı veriler, toplu taşıma araçlarını kullanırken genellikle güvenilir değildir. görme engelli bireyler. T
Görme Engellilere Yardım Etmek İçin Mikrodenetleyicilerde Sonar, Lidar ve Bilgisayarla Görme Kullanımı: 16 Adım
Görme Engellilere Yardım Etmek için Mikrodenetleyicilerde Sonar, Lidar ve Computer Vision Kullanımı: Görme engelli insanlara mevcut çözümlerden çok daha fazla yardımcı olabilecek akıllı bir "baston" yaratmak istiyorum. Baston, surround ses tipi kulaklıkta gürültü yaparak öndeki veya yanlardaki nesneleri kullanıcıya bildirebilecek
Görme Engelliler İçin Cihaz: 4 Adım
Görme Engelliler için Cihaz: Bu eğitim, bir engel sensörü aracılığıyla sağlanan girdiler ve dokunsal (titreşim motoru) aracılığıyla geri bildirim vererek kör insanların herhangi bir yerde yalnız yürümelerine yardımcı olan bir Akıllı Baston ve telefon için açık kaynaklı bir Arduino projesine dayanmaktadır. T