Для управления роботом предлагается использовать библиотеку bsp.py. Для того, чтобы воспользоваться ей, ее нужно поместить в папку с вашим проектом и добавить ее в ваш код следующим образом:
Для управления роботом предлагается использовать библиотеку bsp.py. Для того, чтобы воспользоваться ей, ее нужно поместить в папку с вашим проектом и добавить ее в ваш код следующим образом:
```python
```python
import bsp
from bsp import *
```
```
Рассмотрим все компоненты робота и то, как ими можно управлять, какие данные с них можно получить.
Рассмотрим все компоненты робота и то, как ими можно управлять, какие данные с них можно получить.
@ -336,16 +336,23 @@ H-мост состоит из четырех переключателей, ко
В библиотеке bsp.py реализован функционал, который позволит вам просто объявить объект-мотор, задать скорость и направление вращения:
В библиотеке bsp.py реализован функционал, который позволит вам просто объявить объект-мотор, задать скорость и направление вращения:
```python
```python
from bsp import *
m = motor()
m = motor()
speed = 10 # Скорость, по сути напрядение на моторе (0 .. 100)
speed = 10 # Скорость, по сути напрядение на моторе (0 .. 100)
m.forward(speed) # Ехать вперед со скоростью speed
m.forward(speed) # Ехать вперед со скоростью speed
time.sleep(1) # Задержка
m.backward(speed) # Ехать назад со скоростью speed
m.backward(speed) # Ехать назад со скоростью speed
time.sleep(1)
m.left(speed) # Крутиться вправо со скоростью speed
m.left(speed) # Крутиться вправо со скоростью speed
time.sleep(1)
m.right(speed) # Крутиться влево со скоростью speed
m.right(speed) # Крутиться влево со скоростью speed
time.sleep(1)
m.stop() # Остановиться
m.stop() # Остановиться
m.setMotor(10, 20) # Выставить скорость (ШИМ) 10 на левом колесе, и 20 на правом.
m.setMotor(10, 20) # Выставить скорость (ШИМ) 10 на левом колесе, и 20 на правом.
# Скорость может быть от -100 до 100, знак определяет направление
# Скорость может быть от -100 до 100, знак определяет направление
time.sleep(1)
```
```
### Взаимодействие с пьезодинамиком (buzzer)
### Взаимодействие с пьезодинамиком (buzzer)
@ -359,9 +366,13 @@ m.setMotor(10, 20) # Выставить скорость (ШИМ) 10 на ле
Взаимодействие с пьезодинамиком с помощью библиотеки bsp.py реализовано следующим образом:
Взаимодействие с пьезодинамиком с помощью библиотеки bsp.py реализовано следующим образом:
```python
```python
from bsp import *
b = beep()
b = beep()
b.on() # Включить пищалку
b.on() # Включить пищалку
time.sleep(1) # Задержка
b.off() # Выключить пищалку, пищит до тех пор пока не выключите
b.off() # Выключить пищалку, пищит до тех пор пока не выключите
time.sleep(1)
```
```
### Джойстик
### Джойстик
@ -386,6 +397,8 @@ j.check_d() # Вернет единицу если нажата D
Рассмотрим пример взаимодействия с джойстиком с помощью bsp.py:
Рассмотрим пример взаимодействия с джойстиком с помощью bsp.py:
```python
```python
from bsp import *
j = joystick()
j = joystick()
b = beep()
b = beep()
while True: # В бесконечном цикле проверяем нажата ли кнопка
while True: # В бесконечном цикле проверяем нажата ли кнопка
Для примера попробуем установить разные цвета на диоды:
Для примера попробуем установить разные цвета на диоды:
```python
```python
from bsp import *
r = rgb_led()
r = rgb_led()
r.color(0, 255, 255, 255)
r.color(0, 255, 255, 255)
r.color(1, 0, 0, 255)
r.color(1, 0, 0, 255)
@ -537,6 +558,8 @@ r.color(3, 255, 0, 0)
Такого же эффекта можно добиться если указать не яркость каждого отдельного цвета, а применить название соответствующего цвета.
Такого же эффекта можно добиться если указать не яркость каждого отдельного цвета, а применить название соответствующего цвета.
```python
```python
from bsp import *
r = rgb_led()
r = rgb_led()
r.color(0, "White")
r.color(0, "White")
r.color(1, "Blue")
r.color(1, "Blue")
@ -562,6 +585,8 @@ r.color(3, "Red")
Для отслеживания линии в нижней части робота есть 5 оптических датчиков. Для примера можно просто считать с них значения:
Для отслеживания линии в нижней части робота есть 5 оптических датчиков. Для примера можно просто считать с них значения:
```python
```python
from bsp import *
l = line_sensor()
l = line_sensor()
while True:
while True:
print(l.AnalogRead())
print(l.AnalogRead())
@ -584,6 +609,7 @@ c.setCameraAngle(30, 90)
Пример программы, которая двигает камерой вправо и влево, а также вверх и низ:
Пример программы, которая двигает камерой вправо и влево, а также вверх и низ:
```python
```python
from bsp import *
c = CameraAngle()
c = CameraAngle()
while True:
while True:
@ -596,12 +622,12 @@ while True:
time.sleep(0.02)
time.sleep(0.02)
```
```
# Примеры простых программ
# Пример простой программы
Для примера работы с роботом реализуем программу движения по линии с помощью датчиков линии. Данная программа позволит двигаться роботу по замкнутому контуру, который можно получить распечатав страницы 2,2,2,2,3,3,3,3,11 из документа с элементами трассы (документ linefollowtiles.pdf в папке docs).
Для примера работы с роботом реализуем программу движения по линии с помощью датчиков линии. Данная программа позволит двигаться роботу по замкнутому контуру, который можно получить распечатав страницы 2,2,2,2,3,3,3,3,11 из документа с элементами трассы (документ linefollowtiles.pdf в папке docs).