Promobot Education

Logo

Платформы

RoboxКомплект из сервопривода и датчика расстояния

RookyРука-манипулятор

V.4Лабораторный стенд Promobot

Программное обеспечение

RRStudioПростое написание алгоритмов

TestDevicesТестирование оборудования и проверка связи

Настройка WSL2Windows Subsystem for Linux

Поддержка

TelegramНаписать в чат технической поддержки


Перейти в профиль на GitHub

Пример подключения к датчику расстояния и чтение с него данных.

# Импорт необходимых модулей:
# Модуль для работы с датчиком расстояния
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)