Мазмуну:

Statsionar Radar (LIDAR) Arduino менен массив: 10 кадам (сүрөттөр менен)
Statsionar Radar (LIDAR) Arduino менен массив: 10 кадам (сүрөттөр менен)

Video: Statsionar Radar (LIDAR) Arduino менен массив: 10 кадам (сүрөттөр менен)

Video: Statsionar Radar (LIDAR) Arduino менен массив: 10 кадам (сүрөттөр менен)
Video: СКАТ стационар с Escort redline ex 2024, Июль
Anonim
Statsionar Radar (LIDAR) Arduino менен массив
Statsionar Radar (LIDAR) Arduino менен массив
Statsionar Radar (LIDAR) Arduino менен массив
Statsionar Radar (LIDAR) Arduino менен массив
Statsionar Radar (LIDAR) Arduino менен массив
Statsionar Radar (LIDAR) Arduino менен массив

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

  • УЗИ толкун сенсор модулдары абдан чоң. Ар бир робот WALL-E окшош болмок.
  • Учурдагы радардык долбоорлордун бардыгына сенсор кирет (же УЗИ толкундары, IR, лазер, …), жана ортосунда сервопривод бар. Айлана -чөйрөнү сканерлөө үчүн servo капталга жылышы керек. Артка жана артка жылдыруу кыймылдын өзгөрүшүн жаратат, бул эки буттуу тең салмактуулукка жана басууга жаман.
  • Скандоо жыштыгы servo ылдамдыгы менен чектелген. Балким, бир нече герцке жетсе болот. Сканерлөө жыштыгы кээ бир супер-серволор тарабынан күчөтүлсө дагы, бул оор титирөөгө алып келет.
  • [Борбордук серво мотору - сенсор] аранжировкасы монтаждоо жана дизайн үчүн абалды да чектейт. Мындай нерсени баштан башкага орнотуу кыйын. Бул менин эки бутумду чайкап турган WALL-Eге окшоштурат. Салкын эмес!
  • [Серво-сенсор] аранжировкасы [мотор-сенсор] стили катары да курулушу мүмкүн. Сенсор (же сенсорлор) мотор огу боюнча үзгүлтүксүз айланат. Бул импульстун чуркоосун жана сканерлөө жыштыгынын төмөндүгүн жок кылышы мүмкүн, бирок торс дизайнынын чектөөсү эмес. Электр өткөргүчтөрүнүн кыйынчылыктары да олуттуу түрдө жогорулайт.

Издегенден кийин, бул кичинекей сенсор VL53L0X менин көзүмө чачырап кетти. "Дүйнөнүн эң кичинекей" учуу убактысынын сенсорун талап кылуу менен, өлчөмү болгону 4,4 x 2,4 x 1,0 мм. Featuring

  • IR лазердик эмитенти жана детекторунун чипинде
  • 2м диапазонго чейин (тез режимде 1.2м)
  • Программалануучу I2C дареги
  • GPIO үзгүлтүккө чыгаруу пин
  • Көз коопсуз

Бул өзгөчөлүктөрдүн баары биригип, VL53L0X сенсорлору иштей алса, жогорудагы көйгөйлөрдү жеңүүгө мүмкүндүк берди. Башында, мен бул радар катуу абалдагы радар деп аталат деп ойлогом, бирок бул термин башка нерсе үчүн колдонулганын билдим. Андыктан аталыштагы "Стационардык" сөзү бул радар гаджетинде кыймылдуу бөлүктөр жок экенин билдирет. Ошондой эле, LIDAR (жарыкты аныктоо жана диапазону) бул чиптин техникалык жактан туура термини болсо, RADAR бул жерде жалпы термин катары аталат.

Программалануучу I2C дареги менен GPIO чыгаруу пининин бул долбоор үчүн эмне үчүн маанилүү экенинин себеби кийинчерээк түшүндүрүлөт.

1 -кадам: Куралдар жана тетиктер

Куралдар жана тетиктер
Куралдар жана тетиктер
Куралдар жана тетиктер
Куралдар жана тетиктер

Куралдар

Бул долбоордо төмөнкү инструменттер талап кылынат:

  • Кандооч
  • Жардам берүүчү колдор
  • Dupont crimp куралы
  • 1,5 мм алты бурчтуу драйвер
  • Зым каптоону алып салуу куралы
  • Зым кескич
  • Ысык желим мылтык
  • Пинцет
  • Чоңойткуч (телефонуңуздагы физикалык же колдонмолор)
  • Жалпак мурчтар

Бөлүктөр

Бул долбоордо төмөнкү бөлүктөр колдонулат:

  • 10x VL53L0X GY-530 сындыруучу такталар
  • An Arduino (Uno, Nano, Mega, Zero, Mini, … ж. Б.)
  • Нан жана бир нече нан зымдары
  • AWG #26 зымдары ар кандай түстө
  • AWG #30 бир өзөктүү зым
  • 5x Dupont эркек туташтыргычы
  • 5x Single пин Дюпон корпустары
  • 10х 3D басып чыгарылган такта кармагычтар
  • 1х 3D басылган тегерек алкак
  • 10х M2x10 жалпак баш бурамалар
  • 10x 0804 LED (Blue кайрадан сунушталат)
  • 10x SOT-23 AO3400 N-Channel MOSFET
  • Кичинекей конденсатор (10 ~ 100uF)

Breakout board

Мен колдонгон VL53L0X брусчаткасы GY-530. Adafruit жана Pololu версиялары дагы бар. Мүмкүн болсо, мен Adafruit же Pololu өнүмүн колдонууну сунуштайм, анткени алар сонун продуктыларды, мыкты окуу куралдарын жана улуу программалык китепканаларды түзөт. Мен Adafruitтин VL53L0X китепканасында сынап көрдүм жана Полулунун VL53L0X китепканасынын өзгөртүлгөн версиясын колдондум.

Dupont бириктиргичтери

Дупонт туташтыргычы нан үчүн колдонулат. Сиз колуңузда болгон башка байланыш түрлөрүн колдоно аласыз.

Бурамалар жана 3D Басылган Бөлүктөр

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

2 -кадам: Бөлүшүү тактасын бузуу

Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу
Бөлүшүү тактасын бузуу

Аныктоо конусу

Мен аныктоо конусун тартуу үчүн бир модулду колдондум. Негизинен 3D басылган роботту бута катары колдонуу. Алыстык дисплейде көрсөтүлөт жана болжол менен өлчөнөт. Ченелген маалыматтар Microsoft Excel файлына жазылат жана ийри -буйру функциясын колдонот. Эң жакшы шайкеш табигый логарифм ийри, натыйжалуу аралык 3 смден болжол менен 100 см ге чейин.

60 смде, бир сенсордун аныктоо ийри сызыгы болжол менен 22см. 20 см кең бута менен, радардык массив үчүн 10 ~ 15 градус тегерек бөлүү алгылыктуу сканерлөө чечимин бериши керек.

I2C дареги

VL53L0X I2C түзмөгүнүн дареги программаланып турса да, микро контролер тарабынан XSHUT пининин толук көзөмөлү талап кылынат. Муну кылуунун ырааттуулугу:

  1. Кубат AVDDге колдонулат.
  2. Бардык VL53L0X чиптери БАРДЫК XSHUT казыктарын LOW күйгүзүү менен Hw Standby (баштапкы абалга) келтирилет.
  3. Ар бир чип бирден -бир абалга келтирилет. Жүктөөдөн кийин демейки I2C дареги 0x52.
  4. Чиптин дареги I2C буйругу аркылуу жаңы дарекке алмаштырылат. Мисалы, 0x52 0x53 болуп өзгөрдү.
  5. Бардык чиптер үчүн 3 жана 4 -кадамдарды кайталаңыз.

Теориялык жактан алганда, 7-биттик дарек диапазону үчүн бир эле автобуста максималдуу 126 бирдикти айдаса болот. Бирок, иш жүзүндө, микро сыйымдуулуктун автобустун сыйымдуулугу жана чөгүп бараткан чектөөсү аппараттын максималдуу санын чектеши мүмкүн.

Жаңы I2C дареги VL53L0X чипинде өчүрүүгө же кайра орнотууга каршы сакталган эмес. Ошентип, бул процесс ар бир күч келгенде бир жолу жасалышы керек. Бул радар массивиндеги ар бир бирдик үчүн бир баалуу пин керек экенин билдирет. Бул 10+ же 20+ бирдиктери бар радар куру үчүн зымдарды жана pin-керектөөнү өтө эле жаман көрөт.

STEP1де айтылгандай, VL53L0X чипинде GPIO1 пини бар экени, бул ишти үзгүлтүккө учуратуу үчүн колдонулгандыгы бактылуу.

GPIO-XSHUTN ромашка тизмеги

GPIO өндүрүшү жүктөлгөндө жогорку импеданс абалында жана активдүү болуп турганда төмөн агып кетет. Маалыматтар барагында сунушталгандай, GPIO жана XSHUT казыктары GY-530 сынык тактасында AVDDге жогору тартылат. Бардык VL53L0X чиптерин Hw Standby абалына коюу үчүн (XSHUT төмөн), бизге ар бир XSHUT пини үчүн логика ЭМЕС дарбаза (инвертор) керек. Андан кийин биз бир чиптин GPIO чыгарылышын (Nth чип), төмөнкү чиптин XSHUTN (XSHUT-NOT) (N+1 чип) туташтырабыз.

Күйгүзүлгөндөн кийин, бардык GPIO казыктары (активдүү эмес) тартылып алынат, кийинки бардык XSHUT казыктары ЭМЕС дарбазасы менен төмөн айдалат (анын XSHUTN пини микро контроллерге туташкан муштум чипинен башка). I2C дарегин өзгөртүү жана ылдыйкы чиптин XSHUT чыгарылышы программалык камсыздоодо бирден жасалат.

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

LED кошуу

Кийинки кадамда кичинекей 0805 SMD LED XSHUT аянтынан чектеш конденсатордун GND терминалына туташкан үзүлүү тактасына кошулат. LED өзү модулдун иштешине таасир этпесе да, ал бизге XSHUT логикалык деңгээлинде жакшы визуалдык көрсөткүчтү берет.

LEDди XSHUT пинге тарткыч каршылыгы менен катар (10к менин учурумда) туташтыруу чыңалуунун төмөндөшүн киргизет. 3.3v жогорку логикалык деңгээлдин ордуна, кызыл 0805 LED үчүн алдыга чыңалуу 1.6В ченелет. Бул чыңалуу маалымат барагындагы жогорку логикалык деңгээлден (1.12v) жогору болсо да, бул LED үчүн булак жакшы. Көк LED үчүн чыңалуунун төмөндөшү болжол менен 2.4v ченелет, бул чиптин логикалык деңгээлинен коопсуз.

N-MOS инверторун кошуу (Logic NOT Gate)

Кичинекей SOT-23 N-каналы MOSFET биз кошкон светодиодго коюлган. Эки терминалды (D, S) сындыруучу тактага ширетүү керек, ал эми калган терминал (G) #26 зымын колдонуп, GPIO пиндин жогору жагына туташтырылган.

SMD компоненттерин кошуу боюнча эскертүүлөр

SMD компоненттерин атайын пландаштырылбаган, оңой иш эмес. Эгер сиз 0805, SMD, SOT-23 жөнүндө уга элек болсоңуз, анда сиз кичинекей кичинекей компоненттерди мурда эле эритип койбогонуңуз ыктымал. Ошол кичинекей компоненттерди кол менен иштетип жатып, бул абдан кеңири таралган:

  • Кичинекей нерсе жөн эле түшүп, биротоло жок болуп кетти,
  • Кичинекей нерсенин үстүндөгү кичинекей төшөктөр жөн эле сыйрылып кеткен.
  • Кичинекей нерсенин кичинекей буттары сынды.
  • Лайк калабы жаңы эле топтолуп, бөлүнүп кете алган жок.
  • Жана дагы…

Эгерде сиз дагы эле бул радарды жасоону кааласаңыз, анда:

  • Компоненттерди DIP стили сыяктуу чоңураак пакетке өзгөртүңүз.
  • Практика жана керектөө үчүн талап кылынган минимумдан көбүрөөк компоненттерди алыңыз.

3 -кадам: 0805 LEDди ширетүү

0805 светодиодун ширетүү
0805 светодиодун ширетүү
0805 светодиодун ширетүү
0805 светодиодун ширетүү
0805 светодиодун ширетүү
0805 светодиодун ширетүү
0805 светодиодун ширетүү
0805 светодиодун ширетүү

0805 SMD светодиодун ширетүү

0805 диодун кол менен, SMD үчүн иштелип чыкпаган тактага туташтыруу оңой иш эмес. Төмөнкү кадамдар - бул LEDди ширетүү боюнча менин сунушум.

  1. Жардам тактасын кармоо үчүн жардамчы колун колдонуңуз.
  2. SMD конденсаторунун жана "XSHUT" аянтчасынын четине бир аз паста коюңуз.
  3. Конденсатордун четине кошумча ширетүү үчүн ширетүүчү темирди колдонуңуз.
  4. 0805 светодиодунун эки учуна бир аз ширетүүчү паста коюңуз.
  5. 0805 светодиодунун эки учуна калай коюу үчүн ширетүүчү темирди колдонуңуз.
  6. Сүрөттө көрсөтүлгөндөй LEDди жайгаштыруу үчүн пинцетти колдонуңуз. Менин мисалымда, катоддун учунда жашыл сызык бар. Катоддун учун конденсатордун аягына коюңуз.
  7. Конденсаторго карай LEDге жарык басымын кошуу үчүн пинцетти колдонуңуз жана конденсатордун аягына жылуулукту кошуп, ошол эле учурда конденсатордун аягына чейин кошуңуз. LEDди катуу баспаңыз. Анын капкагы жылуулуктун жана ашыкча басымдын астында сынып калышы мүмкүн. Лайк алгандан кийин, LEDдин сол жагына жумшак басым кошуп, LEDдин ордуна ширетилгенин текшериңиз.
  8. Эми LEDди XSHUT сууга түшүрүүчү панелге салыңыз. Бул кадам оңой болушу керек.

Эскертүү: Сүрөттө көрсөтүлгөн конденсатордун учу бул үзүлүү тактасындагы жер терминалы. Ал эми XSHUT чөгүүчү резистору тарабынан тартылат.

LED сыноо

Жарык диоду электр жарыгын күйгүзүшү керек (мис. 5V).

4-кадам: N-Channel MOSFETти ширетүү

N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү
N-Channel MOSFETти ширетүү

AO3400 N-Channel MOSFETти ширетүү

Бул MOSFET SOT-23 пакетинде. Биз аны светодиодго "жыйыштырып", зымды дагы кошушубуз керек:

  1. Үч терминалды бир аз ширетүүчү паста менен калай коюңуз.
  2. MOSFETти 0805 LEDдин үстүнө коюу үчүн пинцетти колдонуңуз. S терминалы конденсатордун үстүнө тийиши керек
  3. Сүрөттө көрсөтүлгөндөй, S терминалын конденсатордун учу менен туташтырыңыз.
  4. AWG #30 кичинекей бөлүгүн бир өзөктүү зымды кесип, болжол менен 1 см жабууну алып салыңыз.
  5. Сүрөттө көрсөтүлгөндөй XSHUT тешигиндеги ширетүүнү эритип, темирди колдонуңуз жана жогорудагы #30 зымын салыңыз.
  6. Зымдын жогорку учун MOSFET D терминалына кошуу.
  7. Кошумча зымды үзүңүз.

Эскертүү: MOSFET S терминалы сүрөттө көрсөтүлгөндөй конденсатордун учуна туташкан. Бул учу жер терминалы болуп саналат. MOSFET D терминалы баштапкы XSHUT пинине туташкан.

G терминалы азыркы учурда туташкан эмес. Анын позициясы кээ бир тартуу резисторлорунун үстүндө. Алардын ортосунда боштук бар экенин текшериңиз (N-MOS жана резистор) жана бири-бирине тийбейт.

5 -кадам: сенсор массивин зымга өткөрүү

Сенсор массивинин зымдары
Сенсор массивинин зымдары
Сенсор массивинин зымдары
Сенсор массивинин зымдары
Сенсор массивинин зымдары
Сенсор массивинин зымдары

Жалпы автобус зымдары

Жалпы автобус төмөнкүлөрдү камтыйт:

  • Vcc күчү. Сүрөттө кызыл. Мен 5v логикасы менен arduino nano колдонуп жатам. Үзүлүү тактасында LDO жана деңгээлди алмаштыруучу бар. Ошентип, 5vди Vin катары колдонуу коопсуз.
  • Жер. Сүрөттө кара.
  • SDA. Сүрөттө жашыл.
  • SCL. Сүрөттө сары.

Бул төрт сап жалпы линиялар. Тиешелүү зымдардын узундугун кесип, аларды параллелдүү түрдө, бардык сенсордук модулдарга тууралаңыз. Мен ардуинодон биринчи сенсорго чейин 20 см, андан кийин ар бирин 5 см колдондум.

XSHUTN жана GPIO зымдары

20 см ак зым arduino башкаруу пининен баштап, биринчи сенсордун XSHUTN пинине чейин. Бул биринчи VL53L0X чипин баштапкы абалга келтирүү жана I2C дарегин өзгөртүү үчүн талап кылынган көзөмөл линиясы.

Ар бир модулдун ортосундагы 5 см ак зым - бул ромашка чынжырын башкаруу линиясы. Жогорудагы чип (мисалы, чип #3) GPIO блокноту, ылдыйкы агымга туташкан (мисалы, чип #4) XSHUTN буту (N-Channel MOSFET G терминалы).

G терминалы төмөндөгү резистор менен байланышып калуудан сак болуңуз. Боштукка жылуулоочу лента кошсоңуз болот. Адатта VL53L0X чипи менен камсыздалган коргоочу лайнерди бул жерде колдонсо болот.

Башкаруучу зымды жабыш үчүн жылуулук куралын колдонуңуз.

Hot Glue

Сүрөттө көрүнүп тургандай, N-MOS G терминалынын жанында, ак көзөмөлдөөчү зымдын үстүндө ысык клей бар. Бул кадам абдан маанилүү жана абдан зарыл. SMD компонентинин бутуна түздөн -түз сүзүүчү ширетүү абдан алсыз. Зымга кичине эле басым болсо, буту сынып калышы мүмкүн. Бул кадамды акырын жасаңыз.

LED сыноо

Сенсордук массивге бийликти (мис. 3.3v-5v) жана жерге колдонгондо, биринчи модулдагы LED XSHUTN зым логикалык деңгээлине жооп бериши керек. Эгерде сиз XSHUTNди логиканын бийиктигине туташтырсаңыз (мис. 3.3v-5v), LED өчүк болушу керек. Эгерде сиз XSHUTN зымын төмөн (жерге) туташтырсаңыз, биринчи модулдагы LED күйүп турушу керек.

Бардык кийинки модулдар үчүн, LED өчүрүлүшү керек.

Бул тест arduino менен туташуудан мурун өткөрүлөт.

6 -кадам: сенсор массивин бүтүрүү

Image
Image
Сенсор массивин бүтүрүү
Сенсор массивин бүтүрүү
Сенсор массивин бүтүрүү
Сенсор массивин бүтүрүү
Сенсор массивин бүтүрүү
Сенсор массивин бүтүрүү

Daisy Chain Testing

Эми биз I2C дарегин өзгөртүү массивдеги бардык сенсорлор үчүн иштээрин текшерүүнү каалайбыз. Жогоруда айтылгандай, биринчи чип arduino тарабынан башкарылат. Экинчи чип биринчи чип тарабынан көзөмөлдөнөт ж.б.

  1. Нан тактасын орнотуңуз. 5V жана Жер темир жолу адриано 5V менен жерден түздөн -түз туташат. Ар бир сенсор үчүн учурдагы керектөө маалымат баракчасында 19ma деп бааланат.
  2. Винди турукташтырууга жардам берүү үчүн электр темир жолуна конденсатор кошуңуз.
  3. Вин менен Жерди сенсор массивинен электр темир жолуна туташтырыңыз.
  4. SDAны arduino Nano pin A4ке туташтырыңыз (башка микро контроллерлер үчүн башка болушу мүмкүн).
  5. SCL'ди arduino Nano pin A5ке туташтырыңыз (башка микро контроллерлер үчүн башка болушу мүмкүн).
  6. XSHUTN зымын arduino Nano pin D2 менен туташтырыңыз. (Бул эскизде өзгөртүлүшү мүмкүн).
  7. Githubга өтүңүз https://github.com/FuzzyNoodle/Fuzzy-Radar жана китепкананы жүктөп алыңыз.
  8. "Daisy_Chain_Testing" мисалын ачып, эскизин жүктөңүз.

Эгерде баары иштесе, сиз жогоруда көрсөтүлгөн видеоклипке окшош абалдагы LEDлер биринин артынан бирин күйгүзүп көрүшүңүз керек.

Сиз ошондой эле Сериялык терезени ачып, инициализациянын жүрүшүн көрө аласыз. Чыгаруу мындай көрүнөт:

PortPort ачуу Баштапкы эскиз. 0 чипти баштапкы абалга келтирүү. Бардык абалдын диоддору өчүрүлүшү керек. Азыр сенсорлор конфигурацияланууда. LED биринин артынан бири күйүп турушу керек. Чипти конфигурациялоо 0 - I2C дарегин 83кө коюу - сенсорду баштоо. 1 -чипти конфигурациялоо - I2C дарегин 84кө коюу - сенсорду баштоо. 2 -чипти конфигурациялоо - I2C дарегин 85ке коюу - сенсорду баштоо. Радар массивинин конфигурациясы аяктады.

Кармоочу жана кармагычты чогултуп алыңыз

  1. Ар бир GY-530 модулун кылдаттык менен M2x10 бурамасы менен кармагычка коюңуз. MOSFETти басыңыз же XSHUTN зымдарын тартпаңыз.
  2. Ар бир кармагычты тегерек алкакка салыңыз. Бөлүктөрдү бириктирүү үчүн ысык желимди колдонуңуз.

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

Мен колдонгон 3D басылган файлдар төмөндө келтирилген. Тегерек алкакта 9 модуль бар жана ар бири 10 градус менен бөлүнгөн. Эгер көзүңүз курч болсо, мурунку сүрөттөрдө 10 модуль болгон. Себеп? Төмөндө түшүндүрүлөт…

Коргоочу лайнерди алып салыңыз

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

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

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

7 -кадам: маалыматтарды алуу

Image
Image
Laser Tracer (Демонстрация)
Laser Tracer (Демонстрация)

Raw_Data_Serial_Output мисалын колдонуу

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

https://github.com/FuzzyNoodle/Fuzzy-Radar

Raw_Data_Serial_Output деген мисал бар. Бул мисал сенсор массивинен чийки маалыматтын чыгышын көрсөтөт. Чыгуунун маанилери миллиметрде.

Сенсорлор инициализациялангандан кийин, сенсорлор аркылуу колуңузду шилтегенде, сериялык терезеде ушундай нерсени көрүшүңүз керек:

Түз көрсөтүү үчүн видеоклипке кайрылыңыз.

Fuzzy_Radar_Serial_Output мисалын колдонуу

Кийинки кадам - бул аралыктан окуудан пайдалуу маалыматтарды алуу. Биз RADARдан эмнени кааласак, максаттуу нерсенин алыстыгы жана бурчу.

  • Аралык миллиметрде, сенсордун бетине байланыштуу. 0 кайтаруу, максаттын диапазондо эмес экенин билдирет.
  • Бурч градус менен, горизонталдык тегиздикте. Код учурда сенсорлор бирдей аралыкта күтүлүүдө. 0 градуска кайтуу максаттуу массивдин борбордук абалында экенин билдирет.

Китепканада кээ бир чыпкалоо алгоритми колдонулат:

  • Ызы -чууну алып салуу:

    • Кыска (үлгүлөрдү эсептөө жагынан) окуу ызы -чуу болуп эсептелет жана алынып салынат.
    • Орточо баалуулуктан алыс болгон окуу жок кылынат.
  • Салмактуу бурчту эсептөө (жогорудагы сүрөттү караңыз)

    • Максаттуу объект тегиз бет деп болжолдонууда
    • Эгерде бир эле учурда бир нече сенсор объектти аныктаса, анда ар бир сенсорго салмагы эсептелет.
    • Ар бир сенсордун салмагы тескерисинче анын алыстыгына байланыштуу.
    • Натыйжа периштеси ар бир сенсордун салмактуу бурчунан эсептелет.
  • Негизги максаттуу тандоо:

    • Эгерде окуулардын бир нече тобу бар болсо, анда эң кеңири (сенсордун окуу саны менен) тобу калат.
    • Мисалы, сен сенсордук массивдин алдына эки колуңду койсоң, сенсорлор тарабынан аныкталган кол калат.
  • Эң жакын максаттуу тандоо:

    • Эгерде туурасы бирдей аныкталган бир нече топ болсо, анда эң жакын аралыкта топ калат.
    • Мисалы, сен сенсордук массивдин алдына эки колуңду койсоң жана эки аныкталган топтун сенсорлорунун саны бирдей болсо, сенсорго жакыныраак топ калат.

Чыгуу аралык жана бурч төмөн өтүү чыпкасы аркылуу тегизделет

In Raw_Data_Serial_Output, чийки аралыктын көрсөткүчтөрү аралыкка жана бурчтук мааниге айландырылат. Эскизди жүктөгөндөн кийин, ушул сыяктуу натыйжаны көрүү үчүн сериялык терезени ачсаңыз болот:

Эч нерсе табылган жок. Эч нерсе табылган жок. Расстояние = 0056 Бурч = 017 Аралык = 0066 Бурч = 014 Аралык = 0077 Бурч = 011 Аралык = 0083 Бурч = 010 Аралык = 0081 Бурч = 004 Аралык = 0082 Бурч = 000 Аралык = 0092 Бурч = 002 Аралык = 0097 Бурч = 001 Аралык = 0096 Бурч = 001 Расстояние = 0099 Бурч = 000 Аралык = 0101 Бурч = -002 Дистанция = 0092 Бурч = -004 Аралык = 0095 Бурч = -007 Аралык = 0101 Бурч = -008 Аралык = 0112 Бурч = -014 Аралык = 0118 Бурч = -017 Расстояние = 0122 Бурч = -019 Аралык = 0125 Бурч = -019 Аралык = 0126 Бурч = -020 Аралык = 0125 Бурч = -022 Аралык = 0124 Бурч = -024 Аралык = 0133 Бурч = -027 Аралык = 0138 Бурч = - - 031 Distance = 0140 Angle = -033 Distance = 0136 Angle = -033 Distance = 0125 Angle = -037 Distance = 0120 Angle = -038 Distance = 0141 Angle = -039 Объект табылган жок. Эч нерсе табылган жок. Эч нерсе табылган жок.

Эми, сизде RADAR (LIDAR) бар:

  • УЗИ сенсор модулдарынан кичине
  • Кыймылдуу бөлүктөрү жок
  • 40 Гцте сканерлейт.
  • Курга окшош, тегерек алкакка орнотулушу мүмкүн
  • Үч гана көзөмөлдөөчү зымды, плюс электр жана жерди колдонуңуз.
  • 30 миллиметрден 1000 миллиметрге чейин диапазону бар.

Кийинки кадамдарда биз сизге сонун демонстрацияларды көрсөтөбүз!

8 -кадам: Laser Tracer (Демонстрация)

Image
Image
Laser Tracer (Демонстрация)
Laser Tracer (Демонстрация)

Бул мурунку кадамдардан курулган Стационардык Радарды колдонуунун бир мисалы. Бул кадам деталдуу түрдө жазылган эмес, анткени бул Радарды көрсөтүүчү. Жалпысынан алганда, бул көрсөтүү долбоорун куруу үчүн бул кошумча нерселер керек:

  • Эки servo
  • Лазердик калем чыгаруучу баш
  • A MOSFET же NPN транзистору лазердин башын чыгарууну көзөмөлдөө үчүн
  • Серво үчүн кубат булагы. Аны микроконтроллерден ажыратуу керек.

Кодду бул жерден көчүрүп алсаңыз болот.

Сураныч, берилген видеону көрүңүз.

9 -кадам: Пупейлерди кароо (Демонстрация)

Image
Image

Объекттин жайгашкан жерин жана алыстыгын көзөмөлдөө үчүн радарды колдонууну көрсөтүү.

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