Распберри Пи

Како измерити удаљеност помоћу Распберри Пи

Како измерити удаљеност помоћу Распберри Пи
Растојање можете измерити помоћу ултразвучног сензора ХЦ-СР04 са Распберри Пи. Сензор ХЦ-СР04 може мерити удаљеност од 2 мм (.02м) до 400цм (4м). Шаље 8 рафала од 40 кХз сигнала, а затим чека да погоди предмет и одбије се назад. Време које је потребно ултразвучном 40КХз звучном таласу да путује напред-назад користи се за израчунавање удаљености између сензора и предмета на путу. У основи тако функционише сензор ХЦ-СР04.

У овом чланку ћу вам показати како помоћу ХЦ-СР04 ултразвучног сензора мерити удаљеност између вашег сензора и објекта на његов начин помоћу Распберри Пи. Хајде да почнемо.

Компоненте које су вам потребне:

Да бисте успешно измерили удаљеност помоћу Распберри Пи и ХЦ-СР04 сензора, треба вам,

Написао сам посвећени чланак о инсталирању Распбиан-а на Распберри Пи, који можете погледати на хттпс: // линукхинт.цом / инсталл_распбиан_распберри_пи / ако вам треба.

ХЦ-СР04 Пиноути:

ХЦ-СР04 има 4 пина. ВЦЦ, ТРИГГЕР, ЕЦХО, ГРОУД.

Фиг1: ХЦ-СР04 пиноутс (хттпс: // ввв.моусер.цом / дс / 2/813 / ХЦСР04-1022824.пдф)

ВЦЦ пин треба да буде повезан са + 5В пином Распберри Пи, који је пин 2. Пин за уземљење треба да буде повезан са ГНД пином на Распберри Пи, који је пин 4.

Пинови ТРИГГЕР и ЕЦХО треба да буду повезани са ГПИО пиновима Распберри Пи. Док се ТРИГГЕР пин може директно повезати са једним од ГПИО пинова Распберри Пи-а, ЕЦХО пин-у је потребан круг за поделу напона.

Кружни дијаграм:

Повежите ултразвучни сензор ХЦ-СР04 са Распберри Пи на следећи начин:

Слика2: ХЦ-СР04 ултразвучни сензор повезан са Распберри Пи.

Једном када се све повеже, овако изгледа:

Слика3: ХЦ-СР04 ултразвучни сензор повезан са Распберри Пи на плочи за плочу.

Слика4: ХЦ-СР04 ултразвучни сензор повезан са Распберри Пи на плочи за плочу.

Писање Питхон програма за мерење удаљености помоћу ХЦ-СР04:

Прво се повежите са Распберри Пи помоћу ВНЦ или ССХ. Затим отворите нову датотеку (рецимо удаљеност.пи) и укуцајте следеће редове кодова:

Овде ред 1 увози Распберри пи ГПИО библиотеку.

Ред 2 увози временску библиотеку.

Унутар покушати блок, заправо је написан код за мерење удаљености помоћу ХЦ-СР04.

Тхе коначно блок се користи за чишћење ГПИО пинова помоћу ГПИО.поспремити() метода када програм излази.

Унутар покушати блок, на линији 5, ГПИО.сетмоде (ГПИО.ОДБОР, ТАБЛА) користи се за олакшавање дефинисања клинова. Сада можете да референцирате чиоде према физичким бројевима као што је на плочи Распберри Пи.

На линији 7 и 8, пинТриггер је подешен на 7 и пинЕцхо је подешен на 11. Тхе ОКИДАЧ пин ХЦ-СР04 је повезан са пин 7, и ОДЈЕК пин ХЦ-СР04 је повезан са пин 11 Рапсберри Пи. Обоје су ГПИО пинови.

На линији 10, пинТриггер је подешен за ОУТПУТ помоћу ГПИО.подесити() метода.

На линији 11, пинЕцхо је подешен за ИНПУТ помоћу ГПИО.подесити() метода.

Линије 13-17 се користе за ресетовање пинТриггер (постављањем на логику 0) и подешавањем пинТриггер на логику 1 за 10мс, а затим на логику 0. За 10 мс сензор ХЦ-СР04 шаље 8 импулса од 40КХз.

Линије 19-24 користе се за мерење времена потребног да се импулси од 40КХз одразе на објекту и назад на сензор ХЦ-СР04.

На линији 25, растојање се мери помоћу формуле,

Удаљеност = делта време * брзина (340М / С) / 2

=> Удаљеност = делта време * (170М / С)

Растојање сам израчунао у центиметрима уместо у метрима, само да будем прецизан. Рачунао сам да је удаљеност такође заокружена на 2 децимале.

Коначно, на линији 27 исписује се резултат. То је то, врло једноставно.

Сада покрените Питхон скрипту са следећом наредбом:

$ питхон3 удаљеност.пи

Као што видите, измерено растојање је 8.40 цм.

Слика 5: објекат постављен на око 8.40 цм од сензора.

Померио сам се да успротивим мало даље, измерено растојање је 21.81цм. Дакле, ради како се очекивало.

Слика 6: објекат постављен на око 21.81 цм удаљен од сензора.

Дакле, на тај начин мерите удаљеност помоћу Распберри Пи помоћу ултразвучног сензора ХЦ-СР04.  Погледајте код за даљину.пи испод:

увоз РПи.ГПИО као ГПИО
време увоза
покушати:
ГПИО.сетмоде (ГПИО.ОДБОР, ТАБЛА)
пинТриггер = 7
пинЕцхо = 11
 
ГПИО.подешавање (пинТриггер, ГПИО.ОУТ)
ГПИО.подешавање (пинЕцхо, ГПИО.ИН)
 
ГПИО.излаз (пинТриггер, ГПИО.ЛОВ)
ГПИО.излаз (пинТриггер, ГПИО.ВИСОКО)
 
време.спавање (0.00001)
ГПИО.излаз (пинТриггер, ГПИО.ЛОВ)
 
док је ГПИО.улаз (пинЕцхо) == 0:
пулсеСтартТиме = време.време()
док је ГПИО.улаз (пинЕцхо) == 1:
пулсеЕндТиме = време.време()
 
пулсеДуратион = пулсеЕндТиме - пулсеСтартТиме
растојање = округло (трајање импулса * 17150, 2)
 
принт ("Удаљеност:%.2ф цм "% (удаљеност))
коначно:
ГПИО.поспремити()
Како променити показивач миша и величину, боју и шему курсора на Виндовс 10
Показивач миша и курсор у оперативном систему Виндовс 10 су врло важни аспекти оперативног система. То се може рећи и за друге оперативне системе, так...
Бесплатни и отворени кодни покретачки програми за развој Линук игара
Овај чланак ће обухватити листу бесплатних покретача игара отвореног кода који се могу користити за развој 2Д и 3Д игара на Линуку. Бројни су такви мо...
Водич за сенку Томб Раидера за Линук
Схадов оф тхе Томб Раидер је дванаести додатак серији Томб Раидер - акцијско-авантуристичкој игри коју је створио Еидос Монтреал. И критичари и фанови...