diff --git a/README.md b/README.md index c9105fb..01fbe19 100644 --- a/README.md +++ b/README.md @@ -540,8 +540,69 @@ while True: Если поставить робота на трассу (ее можно найти в папке docs), то маленикие значения (< 200) будут полученны с сенсора который находится над черной линией, а большие (> 800) над беым участком трассы. -## Контроль линии - ## Управление положением камеры +Для управлением полужением камеры (2мя сервоприводами) здесь отвечает специальная микросхема - PCA9685, её необходимо задать угол поворота камеры и она будет его поддерживать, пока мы не передадим новое значение угла. Для реализации данного функцилнала можно воспользоваться следующей функцией: + +```python +c = CameraAngle() +c.setCameraAngle(30, 90) +``` + +Установит на 30 градусов по вертикальной оси и 90 градусов по горизонтальной. + +Пример программы которая двигает камерой впрово и влево, а так-же вверх и низ: + +```python +c = CameraAngle() + +while True: + for i in range(0, 180, 1): + c.setCameraAngle(i, i) + time.sleep(0.02) + + for i in range(180, 0, -1): + c.setCameraAngle(i, i) + time.sleep(0.02) +``` + +# Примеры простых программ: + +Для примера работы с роботом давайте реализуем программу движения по линии, по датчикам линии. Данная программа позволит двигатся роботу по замкнотуму контуру который можно получить распечатав страницы 2,2,2,2,3,3,3,3,11 из документа с элементами трассы. + +```python +from bsp import rgb_led, line_sensor, motor + +m = motor() +r = rgb_led() +l = line_sensor() + +colors = {0:4, 1:3, 2:1, 3:0} + +delta_sensor = 200 + +while True: + c = l.AnalogRead() + + i = 0 + for i in range(4): + if c[colors[i]] < delta_sensor: + r.color(i, "Red") + else: + r.color(i, "Black") + i = i+1 + + + if c[1] < delta_sensor: + m.setMotor(40,0) + elif c[3] < delta_sensor: + m.setMotor(30,10) + elif c[0] < delta_sensor: + m.setMotor(10,30) + elif c[4] < delta_sensor: + m.setMotor(0,40) + else: + m.setMotor(10, 10) +``` +В данном примере робот ездиет по черной линии, также светодтодами подсвечивается сенсор под которым обнаружина линия. delta_sensor это пороговое значения срабатывания сенсора, оно может менятся в зависимости от освещения. Это значение можно узнать если воспользоватся примером выше который считывает значения с сенсоров.