RoboxКомплект из сервопривода и датчика расстояния
V.4Лабораторный стенд Promobot
RRStudioПростое написание алгоритмов
TestDevicesТестирование оборудования и проверка связи
Настройка WSL2Windows Subsystem for Linux
TelegramНаписать в чат технической поддержки
# Импорт необходимых модулей:
# Модуль для работы с датчиком расстояния
import Ranger
# Модуль, необходимый для реализации задержки между измерениями расстояния
import time
# Модуль для инициализации шины передачи данных
import bus_handler
# Определение последовательного порта интерфейсного блока.
# По умолчанию для ubuntu - /dev/RS_485
port = '/dev/RS_485'
# Адрес датчика расстояния. По умолчанию - 1
sensor_id = 1
# Инициализация шины передачи данных
master = bus_handler.Bus(port = port, baudrate = 460800, debug = False, timeout = 1.0)
# Инициализация датчика. Создание объекта - датчика расстояния.
sensor = Ranger.Sensor(sensor_id ,master.bus)
# Установка значения измеренной дистанции (мм), ниже которого сработает световая индикация.
# ЗЕЛЕНЫЙ - ИК-датчик, СИНИЙ - УЗ-датчик
sensor.set_min_dist(800)
if __name__ == '__main__':
while(True):
# Отправка команды для измерения расстояния
sensor.trig_sensor()
# Задержка перед получением данных о расстоянии.
# Ожидание прохождения звука от излучателя и обратно.
# Здесь установлено время с запасом.
# Расчет времени = (макс.дист. / скорость звука) * 2, таким образом (2.5 / 343)*2 = 0.014
time.sleep(0.05)
# Чтение полученных данных о расстоянии
# Функция возвращает словарь c ключами:
# - "IR_distance"
# - "US_distance"
# Измеренные расстояния представлены в миллиметрах.
vals = sensor.read_sensor()
# Если есть данные, то выводим их на экран
if vals:
print('Data from sensor: {0}'.format(sensor_id))
print('------------')
for i in vals:
print('{0} : {1}'.format(i, vals[i]))
print('\n' * 3)