Съдържание:

Периферен радар за хора с увредено зрение: 14 стъпки
Периферен радар за хора с увредено зрение: 14 стъпки

Видео: Периферен радар за хора с увредено зрение: 14 стъпки

Видео: Периферен радар за хора с увредено зрение: 14 стъпки
Видео: Buck Rogers (S1 E6) Return of the Fighting 69th: My Jaw Dropping Reaction! #buckrogers #scifi 2024, Ноември
Anonim
Периферен радар за хора със зрителни увреждания
Периферен радар за хора със зрителни увреждания

В резултат на ужасяваща катастрофа мой приятел наскоро загуби зрение в дясното си око. Той беше без работа дълго време и когато се върна, ми каза, че едно от най -обезпокоителните неща, с които трябва да се справи, е липсата на представа какво е от дясната му страна. По -малко периферно зрение означава блъскане в неща и хора. Това ме притесни. Реших, че трябва да има нещо, което можем да направим.

Исках да създам устройство, което да измерва разстоянието до обекти от дясната страна на приятеля ми. Моят план е да използвам тактилен двигател, за да вибрира устройството обратно пропорционално на разстоянието до обект. Тогава, ако обектите бяха далеч, двигателят нямаше да вибрира и тъй като обектът е по -близо, той ще започне да вибрира на ниско ниво. Ако обектът беше близо, той ще вибрира на много по -високо ниво (или каквото и ниво искате). Устройството трябва да е достатъчно малко, за да виси отстрани на очилата със сензор, насочен надясно. Моят приятел щеше да постави устройството от дясната страна на очилата си, но разбира се за някой друг, може да е от лявата страна.

Спомних си, че имах някои акустични сензори за разстояние у дома. Но те са малко големи и обемисти, по -малко прецизни и вероятно биха били твърде тежки за използване върху очила. Започнах да търся нещо друго.

Това, което открих, беше ST Electronics VL53L0X сензор за време на полет. Това е инфрачервен лазер и инфрачервен детектор в един пакет. Той излъчва импулс от лазерна светлина извън видимия за човека диапазон (940 nm) и записва изминалото време, необходимо за откриване на отразения импулс. Той дели този път на 2 и се умножава по скоростта на светлината, създавайки много точно разстояние в милиметри. Сензорът може да открие разстояние до 2 метра, но както видях, 1 метър е по -оптимален.

Както се случва, Adafruit има пробивна платка VL53L0X. Така че имах нужда от вибриращ двигател, който те също имаха, и микроконтролер, за да управлявам всичко. Случайно имах под ръка PJRC Teensy 3.2. Макар и по -голям, отколкото исках, той имаше възможност да работи на бавна скорост. Исках да намаля тактовата честота, за да спестя енергия. А що се отнася до източник на захранване, имах регулатор за усилване на Sparkfun в кутията си за боклуци заедно с държач за батерия AAA. Имах почти всичко необходимо.

Стъпка 1: Първи прототип

Първи прототип
Първи прототип
Първи прототип
Първи прототип

Взех частите, които имах под ръка, и направих ръчен прототип на устройството, което си представях. Отпечатах 3D дръжката и монтажната плоча и запоех цялата електроника върху протоборд Adafruit. Свързах вибриращия двигател към Teensy чрез 2N3904 NPN транзистор. Добавих потенциометър, който да се използва за задаване на максималното разстояние, на което устройството ще реагира.

Имах го до следващия уикенд (вижте снимката по -горе). Не беше красиво, но демонстрира принципа. Приятелят ми можеше да държи устройството от дясната си страна и да провери дали устройството би било полезно или не, и да помогне за прецизиране на това, което иска за функции.

Стъпка 2: Прототип #2

Прототип №2
Прототип №2
Прототип №2
Прототип №2
Прототип №2
Прототип №2

След първия ръчен прототип започнах да правя по-малка версия. Исках да се доближа до целта си да направя нещо, което да пасне на очила. Teensy, който използвах на ръчната версия, ми позволи да забавя часовника, за да спестя енергия. Но размерът щеше да бъде фактор и затова преминах към Adafruit Trinket M0. Докато тактовата му честота е 48 MHz, процесорът ARM, на който се основава, може да работи по -бавно. С помощта на вътрешния RC осцилатор той може да работи на 8, 4 2 и дори 1 MHz.

Прототип #2 се събра доста бързо, тъй като събрах всичко до следващия уикенд. Схемата беше същата като прототип № 1, с изключение на ARM M0. Отпечатах 3D корпус и поставих водачи на гърба, така че да може да се плъзне върху очила. Вижте снимката по -горе. Първоначално той се тактира с честота 48 MHz.

Стъпка 3: Прототип #3

Прототип #3
Прототип #3

Така че този Instructable наистина започва тук. Реших да направя последен прототип. Решавам да го стисна колкото е възможно по -малко, без да използвам персонализирана PWB (там съм сигурен, че сме на път). Останалата част от тази инструкция ще ви покаже как да я направите. Точно като хората, които правят 3D отпечатани ръце за деца с увреждания, аз се надявам, че хората ще ги направят за всеки с подобна загуба на зрение в окото.

Запазих списъка с части като прототипа #2, но реших да премахна потенциометъра. След разговор с моя приятел решихме да направим максималното разстояние, зададено с помощта на софтуер. Тъй като имам възможността да използвам сензор за докосване с помощта на Teensy, винаги можем да зададем максимално разстояние като докосваме. Едно докосване задава кратко разстояние или повече докосване по -голямо разстояние, друго докосване най -голямото разстояние и след това за още едно докосване, завъртете обратно до началото. Но в началото ще използваме фиксирано разстояние, за да продължим.

Стъпка 4: Части

Части
Части

За този прототип имах нужда от по -малка дъска. Отидох с протоборд Sparkfun (PRT-12702), защото неговите малки размери (около 1,8 "X 1,3") биха били добър размер за стрелба.

Също така трябваше да използвам нещо различно от батерия AAA като източник на захранване. LiPo изглежда като правилният избор, тъй като ще има капацитет за съхранение и леко тегло. Опитах монетна клетка, но тя нямаше достатъчно енергия, за да се справя с двигателя много дълго. Избрах малък LiPo с капацитет 150 mAH.

Щях да остана с Trinket M0 и разбира се, с пробивната платка VL53L0X.

Сега, когато пристъпихме към детайлите, ето списък на частите за този прототип:

Adafruit VL53L0X Сензор за време на полет - Идентификатор на продукта: 3317 Adafruit - Вибриращ диск с малък мотор - ИД на ПРОДУКТ: 1201 Adafruit - Литиево -йонна полимерна батерия - 3.7v 150mAh - ИД на продукта: 1317 SparkFun - Спояваща платка - Mini - PRT -12702 Sparkfun - JST правоъгълен конектор - 2 -пинов през дупка - PRT -09749 10K ом резистор - Junkbox (погледнете на пода) 2N3904 NPN транзистор - Junkbox (или обадете се на приятел) Някакъв свързващ проводник (използвах 22 -жичен кабел)

За да заредя LiPo батерията, също взех:

Adafruit - Micro Lipo - USB LiIon/LiPoly зарядно устройство - v1 - ID на продукта: 1304

Стъпка 5: Схематично

Схематично
Схематично

Схемата за това устройство е показана по -горе. Сензорното въвеждане ще бъде за бъдеща версия, но така или иначе е показано в схемата. Също така, 10K резисторът между Trinket M0 и основата на 2N3904 осигурява достатъчно база за включване на двигателя, без да го удря твърде силно.

Следва стъпка по стъпка описание на сглобяването.

Стъпка 6: Protoboard

Protoboard
Protoboard

Много от вас, които имат опит, знаят това, но това е за тези, които може би са нови за запояване на протобордове:

Показаната по-горе протоплата Sparkfun (PRT-12702) има 17 колони (групи) от 5 щифта от всяка страна с пролука от три десети от инча. Всяка вертикална колона от 5 щифта от двете страни на пролуката са общи помежду си. С това искам да кажа, че всяка връзка към щифт в групата е връзка към всеки друг щифт в групата. За тази платка това не изглежда очевидно, но можете да проверите това, ако използвате DVM (цифров волтов метър). Ако погледнете отзад, можете просто да различите следите, свързващи групите.

Стъпка 7: Поставяне на компоненти

Поставяне на компоненти
Поставяне на компоненти
Поставяне на компоненти
Поставяне на компоненти

Вероятно трябва да запоите щифтове за ленти както към Trinket M0, така и към VL53L0X. И двете идват с лентите, но трябва да бъдат запоени. Adafruit има инструкции в учебния си център за двете части. Ако сте нов в това, моля, отидете там (тук и тук), преди да запоявате лентите върху дъските. Щифтовите ленти осигуряват по -нисък профил от гнездото.

Първото нещо, което трябва да имате предвид, когато запоявате нещо върху протоборд с ограничено пространство, е поставянето на компоненти. Поставих дрънкулката и VL53L0X на позициите, показани на фигурата по -горе. Дрънкулката има щифтове от двата ръба на дъската, но VL53L0X има 7 щифта на единия ръб на дъската. Страната на VL53L0X, която няма щифтове, ще използваме за свързване на някои компоненти … както ще видим.

Също така запоявах плъзгащия превключвател в положение и запоявах 2N3904. Потъмних дупките, където са поставени тези части и за 2N3904 отбелязах кои щифтове са колекторът, основата и излъчвателят. Когато го запоявате за първи път, трябва да го оставите перпендикулярно на дъската, за да можете да запоявате други връзки. По -късно ще можете да го огънете (внимателно), така че да е по -близо до нивото на дъската.

ЗАБЕЛЕЖКА: Понастоящем JST разкъсването на батерията НЕ се запоява към платката. Той ще бъде запоен на гърба на платката, но само СЛЕД като запояваме другите ни връзки. Това ще бъде последното нещо, което запояваме.

Стъпка 8: Проводници

Проводници
Проводници

Диаграмата по -горе показва протоборда отново със затъмнени дупки, където ще бъдат разположени компоненти. Добавих етикетите към тях по краищата, за да улесня свързването. Обърнете внимание, че вибрационният двигател е показан, но той ще бъде разположен от задната страна на платката и ще бъде свързан почти последен, така че засега просто го игнорирайте. Показвам и JST Battery Breakout с пунктирана линия. Както е посочено в предишната стъпка, не го свързвайте, но моля, оставете 4 отвора в горната част на платката отворени (т.е. не запоявайте към тях).

Предполагам, че в този момент знаете, че знаете как да свалите изолацията от жица, да калайнете краищата с спойка и да спойка към дъска. Ако не, моля, вижте една от инструкциите за запояване.

За тази стъпка запоявайте проводници, както е показано в жълто. Крайните точки са дупките, към които трябва да ги запоите. Също така трябва да запоите 10K омовия резистор към дъската, както е показано. Осъществените връзки са:

1. Връзка от положителния извод на батерията към COMmon (централния) извод на плъзгащия превключвател. Едната страна на плъзгащия превключвател ще осъществи контакт с входа на НДНТ за дрънкулката. Вграденият регулатор на Trinket генерира 3.3V от входното напрежение на BAT.

2. Връзка от отрицателния (заземен) извод на батерията към масата на дрънкулката.

3. Връзка от отрицателния (заземен) извод на батерията към излъчвателя на 2N3904

4. Връзка от 3.3 -волтовия (3V) щифт на Trinket към VIN на VL53L0X. VL53L0X допълнително ще регулира това до 2,8 волта за собствена употреба. Той също така извежда това напрежение на щифт, но нямаме нужда от него, така че ще остане без връзка.

Стъпка 9: Още кабели

Още кабели
Още кабели

Така че сега добавяме следващата група проводници, както е показано по -горе. Ето списък на всяка връзка:

1. Връзка от щифта на Trinket, означен като 2 към SCL пина VL53L0X. Това е сигналът на часовника I2C. I2C сериен протокол е това, което Trinket използва за комуникация с VL53L0X.

2. Връзка от щифта на Trinket, означен като 0 (нула), към VL53L0X SDA щифта. Това е сигнал за данни I2C.

3. Връзка от щифта VL53L0X GND през пролуката на протоборда към излъчвателя на 2N3904. Това осигурява заземяване на VL53L0X.

4. Връзка от щифта на Trinket, означен като 4 към 10K резистор. Това е задвижването на вибрационния двигател. Този проводник определено трябва да бъде запоен върху задната страна на дъската, ако изберете моята точка на свързване.

Не забравяйте, че всяка вертикална група от 5 пина е обща помежду си, така че можете да се свържете навсякъде в тази група, която е удобна. Ще забележите на снимките на моята дъска, че съм променил няколко мои точки за връзка. Докато те са правилната връзка, тогава която и подложка да изберете е добре.

Стъпка 10: Вибрационен двигател

Вибрационен двигател
Вибрационен двигател

Вибрационният двигател се доставя с лепящ се стикер на гърба. Издърпвате това, за да разкриете лепкав материал, който позволява на двигателя да се залепи върху задната част на дъската (но вижте коментара по -долу, преди да го залепите). Поставих го вляво (гледайки към задната част на платката) на JST Battery Breakout board, който още не сме прикрепили. Така че, оставете малко място за платката JST Battery Breakout. Исках също така да се уверя, че металният корпус на двигателя не къса никакви щифтове в пролуката на протоборда. И така, отрязах малко парче двустранна лента и я залепих на гърба на лепкавата страна на вибрационния двигател. След това го натиснах на гърба на дъската. Помага да държите металния корпус високо и далеч от всякакви щифтове. Но все пак внимавайте да го поставите по начин, който НЕ скъсява щифтове.

Запоявайте червения проводник на вибрационния двигател към 3V щифта на дрънкулката. Черният проводник на вибрационния двигател е запоен към колектора на 2N3904. Когато софтуерът пулсира 2N3904 (осигурява логика 1 като 3.3V), транзисторът се включва, свързвайки черния проводник на вибрационния двигател към земята (или близо до него). Това кара двигателя да вибрира.

Можех да добавя малко капацитет в точката на свързване на червения проводник на вибрационния двигател. Но има капацитет на 3.3V линията на дрънкулката, така че съм сигурен, че е добре, но ако искате да добавите друг капацитет, можете … стига да можете да го вкарате. В този случай червеният проводник може да се свърже директно към положителната страна на LiPo батерията. Избрах 3.3V страна, за да поддържам напрежението постоянно. Засега изглежда работи добре.

Стъпка 11: Последна, но не и най -малко …

Последно, но не и най -малко…
Последно, но не и най -малко…
Последно, но не и най -малко…
Последно, но не и най -малко…

Накрая свързваме пробивната платка JST Battery към задната страна на протоборда. Запоях щифтове върху дъската и поставих JST батерията за прекъсване на батерията с горната й страна към протоборда, както е показано по -горе. Уверете се, че сте запоявали проводниците за положителна батерия и заземени към десните щифтове, когато поставяте тази част. Ако грешите, ще обърнете полярността към частите и вероятно ще ги унищожите. Затова, моля, проверете и проверете отново преди запояване и включване на батерията.

Стъпка 12: Софтуер

Софтуер
Софтуер

За да инсталирате и/или промените софтуера, ще ви трябват Arduino IDE и файловете на платката за Trinket M0, както и библиотеките за VL53L0X. Всичко това е тук, тук и тук.

Следвайте инструкциите за използване на Adafruit M0 на техния учебен сайт тук.

След като софтуерът се зареди, платката трябва да се стартира и да работи чрез USB серийната връзка. Преместете страната на дъската с VL53L0X близо до стена или ръка и ще почувствате как двигателят вибрира. Амплитудата на вибрациите трябва да е по -ниска, колкото по -далеч от устройството е обектът.

Поведението, наблюдавано в устройството, е донякъде обяснено в коментарите в изходния код. Но приложената графика трябва да направи тази точка добре. Устройството не трябва да започне да вибрира на около 863 мм от обект. Той ще достигне максималното си ниво на вибрация на 50 мм от обект. Ако се приближите по -близо до обект, различен от 50 мм, устройството няма да произвежда повече вибрации, отколкото при 50 мм.

Стъпка 13: Приложение

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Проектирах корпус и го отпечатах 3D в ABS пластмаса. Можете да го отпечатате в PLA или ABS или какъвто искате материал. Използвам ABS, защото мога да заваря парчета ацетон върху дъската, ако е необходимо. Платката, която проектирах, е проста и има отвор за USB порта на дрънкулката и отвор за превключвателя на захранването. Направих двете дъски да се щракнат заедно с малки ръчички отстрани на кутията. Не ми харесва много, така че вероятно ще го променя. Разбира се, можете да направите всички промени, които искате да видите.

В момента за тази версия кутията трябва да се отвори, за да се изключи LiPo батерията, за да се презареди. Ако все пак създам платка за този проект, ще добавя още един конектор, за да направя батерията достъпна, без да отварям кутията. Възможно е да направите това в този дизайн на протоборд и да направите дупка за конектора за зареждане. Ако искате да опитате това, споделете резултатите си.

Успях да проектирам кутия, която не мразех напълно. Ще използваме този за тестване на системата. Прикачих горната и долната част на кутията като STL файлове, както и скобата/ръководството, което добавих отдолу. Добавих чифт водачи, използвайки ацетон за химическо заваряване на частите заедно. Ако направите това, бъдете внимателни. Можете да видите монтажа по -горе.

Стъпка 14: Сега какво?

Сега какво?
Сега какво?

Проверете ме … Аз съм стар и може би съм забравил нещо или обърках. Препрочитам и проверявам това, но все още мога да пропусна нещата. Чувствайте се свободни да ми кажете какво съм направил/направил погрешно.

И сега, след като сте конструирали платката Peripheral Radar и сте я заредили, а LiPo батерията е в хубав 3D принтиран калъф (когато я завърша или, ако сте направили своя собствена), какво ще направите по -нататък? Мисля, че трябва да получите опит с това как работи и да направите промени в софтуера. Лицензионното споразумение в софтуера гласи, че можете да го използвате, но ако направите някакви промени, трябва да ги споделите. Не казвам, че софтуерът за този проект е сложен или невероятен по някакъв начин. Той постига целите си, но има място за подобрения. Помогнете да подобрим това устройство и споделете това с всички нас. Не забравяйте, че този проект цели да помага на хората. Така че, помагайте!

Препоръчано: