Қашықтық сенсоры
Қашықтық сенсоры — бұл нысанға дейінгі қашықтықты жоғары дәлдікпен өлшейтін белсенді сенсор. Сенсор инфрақызыл лазерді пайдаланады және лазердің қайтып оралу уақытын жазып алады.
Негізгі қолдану
DistanceSensor(slot)
DistanceSensor объектісін жасау үшін DistanceSensor(slot) шақырыңыз.
Сондай-ақ Distance(slot) қысқа атауын пайдалануға болады.
Кез келген басқа слотты таңдауға болады ("C"-дан басқа, себебі ол I2C байланысын қолдамайды).
Аргументтер:
slot (string | int | tuple)— слот белгісі ("A", "B", "D", "E", "F", "G", "H"), пин порты (0, 2 және т.б.), кортеж (0, Pin.IN)
Қайтарады:
slot үшін VL53L0X объектісін қайтарады.
from pibody import DistanceSensor
distance = DistanceSensor("A")
.read() -> int
Бір реттік қашықтық өлшеуді орындайды.
Қашықтықты мм-мен қайтарады [20, 2000].
Қате өлшеу кезінде 20 немесе 8190 қайтарады.
from pibody import Distance # қысқа атау
distance = Distance('A')
data = distance.read()
print(data)
.is_valid(distance) -> bool
distance параметрі міндетті және нақты қашықтықты мм-мен қамтуы керек.
Егер өлшеулер .min_valid_mm және .max_valid_mm аралығында болса, True немесе False қайтарады.
.min_valid_mm әдепкі бойынша 30.
.max_valid_mm әдепкі бойынша 2000.
Бұл айнымалыларды өзгертуге болады.
from pibody import Distance # қысқа атау
distance = Distance('A')
distance.min_valid_mm = 50
distance.max_valid_mm = 200
curr_dist = distance.read()
valid = distance.is_valid(curr_dist)
print(valid)
Басқа функциялар
.bar() -> string
Ағымдағы қашықтықтың мәтіндік прогресс жолағын қайтарады.
Аргументтер:
max_range (int | None)— толық жолаққа сәйкес келетін қашықтық (мм). Әдепкі: 200 ммwidth (int | None)— жолақ ені таңбалармен. Әдепкі: 20 таңбаfill_char (string | None)— толтырылған бөлік үшін пайдаланылатын таңба. Әдепкі: "#"empty_char (string | None)— бос бөлік үшін пайдаланылатын таңба. Әдепкі: " "
from pibody import Distance # қысқа атау
distance = Distance('A')
bar = distance.bar()
print(bar) # [###### ] 75 mm
.add_close_trigger(threshold_mm, callback)
Нысан threshold_mm-ден жақын болғанда шақырылатын callback тіркейді.
Аргументтер:
threshold_mm (int)— қашықтық шегі мм-менcallback— ағымдағы қашықтықпен (мм) шақырылады
distance.add_close_trigger(100, cb)
.add_motion_trigger(change_threshold_mm, callback, cooldown_ms)
Тізбектей check() шақырулары арасында қашықтық change_threshold_mm-ден көп өзгергенде шақырылатын callback тіркейді.
Аргументтер:
change_threshold_mm (int)— іске қосу үшін ең аз өзгеріс (мм)callback— (distance_mm, delta_mm) арқылы шақырыладыcooldown_ms— тізбектей іске қосулар арасындағы ең аз уақыт мс. Әдепкі: 500
distance.add_motion_trigger(100, cb)
.check()
Қашықтықты оқиды және барлық тіркелген callback'терді іске қосады.
Негізгі циклден мерзімді түрде шақырылуы керек. Жарамсыз көрсеткіштер үнсіз еленбейді.
distance.add_motion_trigger(100, cb)
while True:
distance.check()