Всем здравствуйте, у меня есть датчик расстояния Laser Sensor и Raspberry Pi 3. Вопрос к участникам форума следующий - как обрабатывать данные с данного устройства. Ведь я, так понимаю для него необходима библиотека работающая с цифровым кодом. Библиотека должна быть желательно для питона. Это даже возможно не дальномер а датчик препятствий судя по данной статье ноя не уверен , тк информации о нем мало в сети https://www.waveshare.com/wiki/Laser_Sensor
Для работы с портами есть для питона специальная библиотека - RPi.GPIO. Здесь инструкция по установке и проекты с его использованием: https://arduinomaster.ru/raspberry-pi/ustanovka-python-i-na-raspberry-pi/ https://arduinomaster.ru/raspberry-pi/proekty-raspberry-pi-na-python-s-gpio/
Это точно не дальномер судя по схеме. Там только стабилизатор питания, излучатель питания и датчик отражения. И отражение должно быть нормальным - всего один транзистор. Скорее всего отражающая поверхность (такие "плёнки" у нас приклеены на каждой тележке на рельсах для настоящего дальномера). В схеме нет даже модулятора на излучатель и фильтра для приёмника для отсеивания просто освещения от отражения(хотя некоторая последовательная RC цепочка (R7 и C5) присутствует . Так что это просто датчик препятствия и похоже в темноте(когда не мешает внешний свет). Для работы Вам потребуется только библиотеки взаимодействия с портами ввода-вывода.
Вот посмотрите, какой код предлагают для Arduino: Код (C++): int laser_din=2; void setup() { pinMode(laser_din,INPUT); Serial.begin(9600); } void loop() { if(digitalRead(laser_din)==LOW) { Serial.println("NO Obstacles!"); } else { Serial.println("Obstacles!"); } delay(500); } Простое определение есть сигнал или нет (отражение) Да и для STM32 ничего иного: Код (C++): /******************************************************************************* * Function Name : main * Description : Main program * Input : None * Output : None * Return : None * Attention : None *******************************************************************************/ int main(void) { Delay_Init(); usart_Configuration(); ADC_Configuration(); user_gpio_init(); printf("\r\n****************************************************************\r\n"); /* Infinite loop */ while (1) { if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)) printf("The Obstacles is far!\r\n"); else printf("The Obstacles is near!\r\n"); Delay(100); /* delay 1000ms */ } } Так, что в Питоне вам потребуется только работа с дискретными портами, на которую Вы сами всё выложили.
И последнее - простите не обратил внимания на H1 и H2(думаю это некие перемычки) на схеме... Это возможность "поиграться" с модуляцией. На Ваше усмотрение.