Мазмуну:

Көрүүсү начарлар үчүн перифериялык радар: 14 кадам
Көрүүсү начарлар үчүн перифериялык радар: 14 кадам

Video: Көрүүсү начарлар үчүн перифериялык радар: 14 кадам

Video: Көрүүсү начарлар үчүн перифериялык радар: 14 кадам
Video: Эстутумун Начарбы? Анда Кор! Зээнди Жакшыртуучу Амал! 2024, Июль
Anonim
Көрүүсү начарлар үчүн перифериялык радар
Көрүүсү начарлар үчүн перифериялык радар

Үрөй учурган кырсыктын кесепетинен жакында эле менин бир досумдун оң көзү көрбөй калды. Ал көпкө иштебей калды жана кайра келгенде ал мага эң оңтойсуз нерселердин бири - анын оң жагында эмне бар экенин билбөө экенин айтты. Аз перифериялык көрүнүш нерселерге жана адамдарга урунууну билдирет. Бул мени убара кылды. Мен кыла турган нерсе болушу керек деп чечтим.

Мен досумдун оң жагындагы объектилерге чейинки аралыкты өлчөй турган түзмөк кургум келди. Менин планым - объектти алыстыкка тескери пропорционалдуу түзмөктү титиретүү үчүн гаптик моторду колдонуу. Эгерде объекттер алыс болсо, мотор титиребейт жана объект жакыныраак болгондо, ал төмөн деңгээлде дирилдей баштайт. Эгерде объект жакын болсо, анда ал бир кыйла жогору деңгээлде (же сиз каалаган деңгээлде) дирилдейт. Түзмөк кичинекей болушу керек, сенсор оңго караган көз айнектин капталына илинет. Менин досум аппаратты көз айнегинин оң жагына коймок, бирок, албетте, башка бирөө үчүн, бул сол жагы болушу мүмкүн.

Үйдө акустикалык аралыктын сенсорлору бар экенин эстедим. Бирок, алар бир аз чоң жана көлөмдүү, анча так эмес жана көз айнекке колдонуу үчүн өтө оор болмок. Мен башка нерсени издей баштадым.

Мен тапканым-ST Electronics VL53L0X Учуу убактысынын сенсору. Бул инфракызыл лазер жана инфракызыл детектор бир пакетте. Ал адам көрө турган диапазондон (940 нм) тышкары лазер нурунун импульсун чыгарат жана чагылган импульсту аныктоо үчүн өткөн убакытты жазат. Бул убакытты 2ге бөлүп, миллиметр менен абдан так аралыкты чыгарган жарыктын ылдамдыгына көбөйөт. Сенсор 2 метрге чейинки аралыкты аныктай алат, бирок мен көргөндөй, 1 метр оптималдуу.

Болуп өткөндөй, Adafruitте VL53L0X сынык тактасы бар. Ошондуктан мага вибрациялык мотор керек болчу, аларда да бар болчу жана мунун баарын иштетүү үчүн микроконтроллер. Менде PJRC Teensy 3.2 бар болчу. Мен каалагандан чоңураак болсо да, ал жай ылдамдыкта иштөө жөндөмүнө ээ болчу. Мен кубатты үнөмдөө үчүн сааттын ылдамдыгын төмөндөткүм келди. Энергия булагына келсек, менде керексиз кутучада Sparkfun тездеткичи бар болчу, AAA батарея кармагычы менен. Мага керектүү нерселердин баары бар болчу.

1 -кадам: Биринчи прототип

Биринчи прототип
Биринчи прототип
Биринчи прототип
Биринчи прототип

Мен колумда болгон тетиктерди алып, мен ойлогон түзмөктүн кол прототибин жасадым. Мен 3D туткасын жана монтаж табакчасын басып чыгардым жана электрониканын бардыгын Adafruit протоборуна кошту. Мен титиретүүчү моторду 2N3904 NPN транзистору аркылуу Teensyге туташтырдым. Мен потенциометрди түзмөк жооп бере турган максималдуу аралыкты орнотуу үчүн коштум.

Мен аны кийинки дем алыш күндөрү иштеттим (жогорудагы сүрөттү караңыз). Бул сулуу эмес болчу, бирок бул принципти көрсөттү. Менин досум түзмөктү оң жагына кармап, анын пайдалуу же пайдалуу эместигин текшерип, өзгөчөлүктөрү үчүн эмнени каалап жатканын тактоого жардам бере алат.

2 -кадам: Прототип #2

Прототип #2
Прототип #2
Прототип #2
Прототип #2
Прототип #2
Прототип #2

Биринчи колго жасалган прототиптен кийин мен кичирээк версиясын жасай баштадым. Көз айнекке бата турган нерсени жасоо максатыма жакындагым келди. Мен колдогу версияда колдонгон Teensy мага кубатты үнөмдөө үчүн саатты жайлатууга мүмкүнчүлүк берди. Бирок өлчөмү фактор болмокчу, ошондуктан мен Adafruit Trinket M0го которулдум. Анын сааты 48 МГц болсо да, ал негизделген ARM процессору жайыраак иштеши мүмкүн. Ички RC осцилляторун колдонуу менен ал 8, 4 2 жана ал тургай 1 МГцте иштей алат.

№2 прототип абдан тез чогулду, анткени мен аны кийинки дем алыш күндөрү чогуу алгам. Электрондук схема ARM M0дон башка №1 прототипи менен бирдей болгон. Мен 3D кичинекей корпусту басып чыгардым жана аны көз айнектерге жылдырыш үчүн артына гиддерди койдум. Жогорудагы сүрөттү караңыз. Башында ал 48 МГц жыштыкта иштейт.

3 -кадам: Прототип #3

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

Ошентип, бул Нускамалык чынында ушул жерден башталат. Мен акыркы прототипти жасоону чечтим. Мен аны ыңгайлаштырылган PWBди колдонбой эле кичине сыгып салууну чечтим (бул жерде биз бара жатканыбызга ишенем). Бул Нускаманын калган бөлүгү сизге кантип жасоону көрсөтүү жөнүндө болмокчу. Ден соолугунун мүмкүнчүлүгү чектелген балдар үчүн 3D басып чыгарган адамдар сыяктуу эле, менин үмүтүм боюнча, адамдар муну көзүнүн көрүүсү начар адамдар үчүн жасашат.

Мен тетиктердин тизмесин #2 прототипиндей эле калтырдым, бирок мен потенциометрди алып салууну чечтим. Досум менен сүйлөшкөндөн кийин, биз программалык камсыздоону колдонуу менен максималдуу аралыкты түзүүнү чечтик. Мен Teensy аркылуу сенсорду колдонуу мүмкүнчүлүгүнө ээ болгондуктан, биз дайыма тийип максималдуу аралыкты орното алмакпыз. Бир тийүү кыска аралыкты белгилейт, же көбүрөөк тийүү узак аралыкты, экинчиси эң узун аралыкты, андан кийин дагы бир тийүү үчүн башына кайра ороп коюңуз. Бирок адегенде биз жолго чыгуу үчүн белгиленген аралыкты колдонобуз.

4 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр

Бул прототип үчүн мага кичине такта керек болчу. Мен Sparkfun protoboard (PRT-12702) менен бардым, анткени анын кичинекей өлчөмдөрү (болжол менен 1.8 "X 1.3") атуу үчүн жакшы өлчөм болмок.

Мен дагы энергия булагы катары AAA батареясынан башка нерсени колдонуум керек болчу. LiPo туура тандоо болуп көрүндү, анткени ал сактагычка жана жеңил салмакка ээ болот. Мен тыйын уячасын колдонуп көрдүм, бирок моторду башкарууга көпкө жетпей калды. Мен 150 мАч сыйымдуулугу бар кичинекей LiPo тандадым.

Мен Trinket M0 менен калмак болчумун жана, албетте, VL53L0X бренди.

Эми биз майда -чүйдөсүнө чейин, бул прототиптин бөлүктөрүнүн тизмеси:

Adafruit VL53L0X Учуу Алыстыгынын Сенсорунун Убактысы - PRODUCT ID: 3317 Adafruit - Вибрациялуу Мотор Диск - PRODUCT ID: 1201 Adafruit - Литий -Ион Полимер Батареясы - 3.7v 150mAh - PRODUCT ID: 1317 SparkFun - Solder -Breadboard - Mini - PRT -1270 Sparkfun - JST Оң бурчтуу туташтыргычы - 2 тешик аркылуу - PRT -09749 10K ом каршылыгы - Junkbox (полуңузду караңыз) 2N3904 NPN Транзистору - Junkbox (же досуңузга телефон чалыңыз) Кээ бир туташтыруучу зым (мен 22 калибрди колдонгон)

LiPo аккумуляторун кубаттоо үчүн мен дагы таптым:

Adafruit - Micro Lipo - USB LiIon/LiPoly заряддагыч түзүлүшү - v1 - ПРОДУКЦИЯ ID: 1304

5 -кадам: схемалык

Схемалык
Схемалык

Бул аппараттын схемасы жогоруда көрсөтүлгөн. Сенсордук киргизүү келечектеги версия үчүн болот, бирок баары бир схемада көрсөтүлгөн. Ошондой эле, Trinket M0 менен 2N3904 базасынын ортосундагы 10K каршылыгы моторду өтө катуу чаппастан иштетүү үчүн жетиштүү базаны камсыздайт.

Кийинки кадам-кадам монтаждоо сүрөттөмөсү.

6 -кадам: Protoboard

Protoboard
Protoboard

Тажрыйбалуу сиздердин көбүңүз муну билесиздер, бирок бул протооборддорду ширетүүнү жаңы баштагандар үчүн:

Жогоруда көрсөтүлгөн Sparkfun protoboard (PRT-12702) дюймдук ажырымдын ондон үч бөлүгүнүн ар бир жагында 5 пиндин 17 мамычасы (тобу) бар. Боштуктун эки жагындагы 5 казыктан турган ар бир вертикалдуу мамыча бири -бирине жалпы. Муну менен мен айтайын дегеним, топтогу пинге болгон кандайдыр бир туташуу - бул группанын башка бардык пиндери менен болгон байланыш. Бул такта үчүн бул ачык көрүнбөйт, бирок DVM (Digital Volt Meter) колдонсоңуз, муну текшере аласыз. Эгерде сиз арт жагын карасаңыз, сиз жөн гана топторду байланыштырган издерди таба аласыз.

7 -кадам: Компоненттерди жайгаштыруу

Компоненттерди жайгаштыруу
Компоненттерди жайгаштыруу
Компоненттерди жайгаштыруу
Компоненттерди жайгаштыруу

Балким, пин тилкелерин Trinket M0 менен VL53L0Xке да ширетүүңүз керек. Экөө тең тилкелери менен келет, бирок аларды ширетүү керек. Adafruit бул эки бөлүк үчүн Окуу борборунда көрсөтмөлөргө ээ. Эгерде сиз бул боюнча жаңы болсоңуз, анда тилкелерди тактайга ширетүүдөн мурун ошол жакка (бул жакка жана бул жакка) барыңыз. Пин тилкелери розеткага караганда төмөн профилди камсыз кылат.

Чектелген мейкиндикке ээ болгон нерсени протоборго ширетүүдө биринчи кезекте эске алуу керек болгон нерсе - бул компоненттердин жайгашуусу. Мен Trinketти жана VL53L0Xти жогорудагы сүрөттө көрсөтүлгөн кызматтарга койдум. Тринкеттин тактайынын эки четинде төөнөгүчтөрү бар, бирок VL53L0X анын тактайынын бир четинде 7 төөнөгүч бар. VL53L0Xтин казыктары жок жагы биз кээ бир компоненттерди туташтыруу үчүн колдонобуз … биз көрөбүз.

Мен ошондой эле слайддын которуштургучун позицияга салып, 2N3904ту да ширеттим. Мен ал бөлүктөр жайгаштырылган тешиктерди караңгылатып койдум жана 2N3904 үчүн коллектор, база жана эмиттердин кайсы казыктары бар экенин байкадым. Биринчи жолу ширеткенде, аны тактага перпендикуляр калтырышыңыз керек, андыктан башка туташууларды туташтыра аласыз. Кийинчерээк сиз аны эңкейе аласыз (этияттык менен), андыктан тактайга жакыныраак.

ЭСКЕРТҮҮ: JST Battery Breakout учурда тактага кошулбайт. Ал тактанын арткы бетине кошулат, бирок биз башка туташууларыбыздан кийин гана. Бул биз эң акыркы нерсе болот.

8 -кадам: Зымдар

Зымдар
Зымдар

Жогорудагы диаграмма компоненттери турган караңгыланган тешиктери менен кайрадан протобордду көрсөтөт. Мен зымдарды оңой кылуу үчүн аларга этикеткаларды четинен коштум. Көңүл буруңуз, вибрация мотору көрсөтүлгөн, бирок ал тактанын арт жагында жайгашат жана дээрлик акыркы жолу туташат, азырынча ага көңүл бурбаңыз. Мен ошондой эле үзүлгөн сызык менен JST батареясынын үзүлүшүн көрсөтөм. Мурунку кадамда аныкталгандай, аны туташтырбаңыз, бирок тактанын үстүндөгү 4 тешикти ачык калтырыңыз (б.а. аларга ширетпеңиз).

Мен бул учурда сиз зымдан изоляцияны чечип, учтарын калай менен калай менен тактага кантип салууну билесиз деп ойлойм. Болбосо, ширетүү боюнча Нускамалардын бирин караңыз.

Бул кадам үчүн, сары түстө көрсөтүлгөндөй зымдар. Акыркы чекиттер - бул аларды тешип чыгууга тийиш болгон тешиктер. Сиз ошондой эле шоу катары 10K ом резисторун тактага ширетишиңиз керек. Жасалып жаткан байланыштар төмөнкүлөр:

1. Батарейканын оң терминалынан жылдыргычтын COMmon (борбордук) терминалына туташуу. Слайд которгучтун бир тарабы Trinketке BAT киргизүү менен байланыш түзөт. Trinketтин борттогу жөндөгүчү BAT киргизүү чыңалуусунан 3,3В түзөт.

2. Батарейканын терс (жерге) терминалынан Trinket жерине туташуу.

3. Батарейканын терс (жерге) терминалынан 2N3904 эмитентине туташуу

4. Trinketтин 3.3 вольттуу (3V) пининен VL53L0Xтин VIN -ге туташуусу. VL53L0X муну андан ары өз алдынча колдонуу үчүн 2,8 вольтко чейин жөнгө салат. Ал ошондой эле бул чыңалууну пинге алып келет, бирок бизге анын кереги жок, андыктан ал туташпай калат.

9 -кадам: Дагы зымдар

More Wires
More Wires

Эми биз жогоруда көрсөтүлгөндөй зымдардын кийинки тобун кошобуз. Бул жерде ар бир байланыштын тизмеси:

1. VL53L0X SCL төөнөгүчүнө 2 деп белгиленген Trinket пининен туташуу. Бул I2C саат сигнал. I2C сериялык протоколу Trinket тарабынан VL53L0X менен байланышуу үчүн колдонулат.

2. VL53L0X SDA пинине 0 (нөл) деп белгиленген Trinket пининен туташуу. Бул I2C маалымат сигналы.

3. VL53L0X GND пинден 2N3904 эмитентине protoboardдагы боштук аркылуу туташуу. Бул VL53L0Xке негиз берет.

4. 4K менен 10K каршылыгына белгиленген Trinket пининен туташуу. Бул вибрация мотору үчүн кыймылдаткыч. Эгерде сиз менин туташуу түйүнүмдү тандасаңыз, бул зым тактанын арткы бетине ширетилиши керек.

Эсиңизде болсун, 5 пиндин каалаган вертикалдык тобу бири -бирине жалпы, ошондуктан бул топтун каалаган жерине ыңгайлуу туташа аласыз. Менин тактайымдын сүрөттөрүндө менин туташуу чекиттеримдин бир нечесин өзгөрткөнүмдү байкайсыз. Качан алар туура байланыш болсо, анда сиз кайсы подборканы тандасаңыз жакшы болот.

10 -кадам: Vibration Motor

Vibration Motor
Vibration Motor

Дирилдөөчү мотор арткы бетине чийилген жапсырма менен келет. Сиз моторду тактанын артына жабыштырууга мүмкүндүк берген жабышчаак материалды ачуу үчүн муну чечесиз (бирок, жабыштыруудан мурун төмөндөгү комментарийди караңыз). Мен аны азырынча тиркей элек JST Battery Breakout тактасынын сол жагына (тактанын артына карап) койдум. Ошентип, JST Battery Breakout тактасына бир аз орун калтырыңыз. Мен ошондой эле мотордун металл корпусунун протоболдун боштугунан эч кандай тешиктерди кыскартпаганын текшергим келди. Ошентип, мен эки тараптуу лентанын кичинекей бөлүгүн кесип, аны вибрациялык мотордун жабышчаак жагына жабыштырдым. Анан мен муну тактанын артына түртүп койдум. Бул металл корпусту бийик көтөрүүгө жана ар кандай казыктан алыс болууга жардам берет. Бирок ошентсе да, аны эч кандай казыктарды кыскартпагандай кылып жайгаштыруудан этият болуңуз.

Дирилдөөчү мотордун кызыл зымын Trinketтин 3V төөнөгүчүнө туташтырыңыз. Вибрация моторунун кара зымы 2N3904 коллекторуна ширетилет. Программалык камсыздоо 2N3904 импульсун чыгарганда (логиканы 3.3V катары камсыз кылат), транзистор дирилдөө моторунун кара зымын жерге (же ага жакын) туташтырат. Бул моторду титиретет.

Мен Вибрация Моторунун кызыл зым туташуу түйүнүнө бир аз сыйымдуулук кошо алмакмын. Бирок Trinketтин 3.3V линиясында сыйымдуулук бар, ошондуктан мен жакшы экенине ишенем, бирок эгер сиз башка сыйымдуулукту кошкуңуз келсе, аны кысып койсоңуз болот. Бул үчүн кызыл зым туташтырылышы мүмкүн LiPo батареянын оң жагына түздөн -түз. Мен чыңалууну туруктуу кармоо үчүн 3.3V жагын тандадым. Азырынча жакшы эле иштеп жатат окшойт.

11 -кадам: Акыркы, бирок аз эмес …

Кийинки Бирок акыркы эмес…
Кийинки Бирок акыркы эмес…
Кийинки Бирок акыркы эмес…
Кийинки Бирок акыркы эмес…

Акыркы жолу биз JST Батареясынын сынык тактасын протоборддун арткы тарабына туташтырабыз. Мен тактайга казыктарды эритип, JST Батареясынын сынык тактасын жогоруда көрсөтүлгөндөй протоборго каратып койдум. Бул бөлүктү койгондо, оң батареялар үчүн зымдарды ширеткениңизди текшериңиз. Эгер туура эмес болсоңуз, анда бөлүктөрдүн полярдуулугун артка кайтарасыз жана, балким, баарын жок кыласыз. Сураныч, батареяны туташтыруудан жана туташтыруудан мурун текшерип, кайра текшериңиз.

12 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

Программаны орнотуу жана/же өзгөртүү үчүн сизге Arduino IDE жана Trinket M0 үчүн такта файлдары, ошондой эле VL53L0X үчүн китепканалар керек болот. Мунун баары бул жерде, бул жерде жана бул жерде.

Бул жерде Adafruit M0ду колдонуу боюнча нускамаларды аткарыңыз.

Программалык камсыздоо жүктөлгөндөн кийин такта USB сериялык туташуусу менен иштей башташы керек. Тактайдын капталын VL53L0X менен дубалга же колуңузга жакын жылдырыңыз, ошондо мотордун дирилдешин сезишиңиз керек. Вибрация объекттен алыстаган сайын амплитудада төмөндөшү керек.

Түзмөктө байкалган жүрүм -турум булак кодундагы комментарийлерде бир аз түшүндүрүлөт. Бирок тиркелген график бул ойду жакшы кылышы керек. Түзмөк объекттен болжол менен 863 мм чейин дирилдебеши керек. Ал объекттен 50 мм максималдуу титирөө деңгээлине жетет. Эгерде сиз объектке 50 ммден жакыныраак жылсаңыз, аппарат 50 ммге караганда титирөө чыгарбайт.

13 -кадам: Каптоо

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

Мен корпусту иштеп чыгып, аны ABS пластиктен 3D басып чыгардым. Сиз аны PLA же ABS же каалаган материалда басып чыгара аласыз. Мен ABSти колдоном, анткени керек болсо ацетонду тактайга ширете алам. Мен иштеп чыккан такта жөнөкөй жана Trinketтеги USB порту үчүн тешик жана электрди алмаштыруучу тешик бар. Мен эки тактаны кичинекей колдор менен кутучанын капталына жапсырдым. Мага анча жакпайт, андыктан аны өзгөртүшүм ыктымал. Албетте, сиз каалаган өзгөрүүлөрдү жасай аласыз.

Дал ушул версия үчүн, LiPo батарейкасын кайра толтуруу үчүн, кутуну ачуу керек. Эгерде мен бул долбоор үчүн схеманы түзсөм, батареяны кутучаны ачпастан жеткиликтүү кылуу үчүн башка туташтыргычты кошом. Муну бул протоборддук дизайнда жасоо жана туташтыргычты кубаттоо үчүн тешик кылуу мүмкүн болушу мүмкүн. Эгер сиз муну сынап көргүңүз келсе, жыйынтыктарыңыз менен бөлүшүңүз.

Мен толугу менен жек көрбөгөн кутучаны долбоорлоого жетиштим. Биз муну системаны сыноо үчүн колдонобуз. Мен кутунун үстү менен астын STL файлдары, ошондой эле астын кошкон кронштейн/гид тиркеп койдум. Мен тетиктерди химиялык жол менен ширетүү үчүн ацетон менен бир нече гиддерди коштум. Эгер муну кылсаңыз, этият болуңуз. Сиз жогоруда жыйынды көрө аласыз.

14 -кадам: Эми эмне?

Эми эмне?
Эми эмне?

Мени текшериңиз … Мен карып калдым, балким бир нерсени унутуп же жаңылышкандырмын. Мен муну кайра окуп, текшерип жатам, бирок мен дагы деле нерселерди сагынып кетишим мүмкүн. Мага эмне туура эмес кылганымды айтуудан тартынба.

Эми, сиз перифериялык радар тактасын куруп, аны жүктөдүңүз жана LiPo батарейкасы жакшы 3D басылган коробкада (мен аны бүтүргөндө же өзүңүздүкүн кылсаңыз), андан кийин эмне кыласыз? Менин оюмча, сиз анын иштеши боюнча тажрыйбага ээ болуп, программалык камсыздоого өзгөртүүлөрдү киргизишиңиз керек. Программалык камсыздоонун лицензиялык келишиминде сиз аны колдоно аласыз, бирок кандайдыр бир өзгөртүүлөрдү киргизсеңиз, аларды бөлүшүүңүз талап кылынат. Мен бул долбоордун программалык камсыздоосу кандайдыр бир деңгээлде татаал же укмуш деп айтуудан алысмын. Ал максаттарын ишке ашырат, бирок жакшыртууга мүмкүнчүлүктөр бар. Бул түзмөктү жакшыртууга жардам бериңиз жана аны баарыбыз менен бөлүшүңүз. Эсиңизде болсун, бул долбоор бардык адамдарга жардам берүү үчүн. Ошентип, жардам!

Сунушталууда: