Update README.md

master
zen 3 years ago
parent 13134b3d0c
commit 7711aa6459
  1. 32
      README.md

@ -285,7 +285,7 @@ sudo pip3 install RPi.GPIO spidev rpi_ws281x
Для управления роботом предлагается использовать библиотеку bsp.py. Для того, чтобы воспользоваться ей, ее нужно поместить в папку с вашим проектом и добавить ее в ваш код следующим образом:
```python
import bsp
from bsp import *
```
Рассмотрим все компоненты робота и то, как ими можно управлять, какие данные с них можно получить.
@ -336,16 +336,23 @@ H-мост состоит из четырех переключателей, ко
В библиотеке bsp.py реализован функционал, который позволит вам просто объявить объект-мотор, задать скорость и направление вращения:
```python
from bsp import *
m = motor()
speed = 10 # Скорость, по сути напрядение на моторе (0 .. 100)
m.forward(speed) # Ехать вперед со скоростью speed
time.sleep(1) # Задержка
m.backward(speed) # Ехать назад со скоростью speed
time.sleep(1)
m.left(speed) # Крутиться вправо со скоростью speed
time.sleep(1)
m.right(speed) # Крутиться влево со скоростью speed
time.sleep(1)
m.stop() # Остановиться
m.setMotor(10, 20) # Выставить скорость (ШИМ) 10 на левом колесе, и 20 на правом.
# Скорость может быть от -100 до 100, знак определяет направление
time.sleep(1)
```
### Взаимодействие с пьезодинамиком (buzzer)
@ -359,9 +366,13 @@ m.setMotor(10, 20) # Выставить скорость (ШИМ) 10 на ле
Взаимодействие с пьезодинамиком с помощью библиотеки bsp.py реализовано следующим образом:
```python
from bsp import *
b = beep()
b.on() # Включить пищалку
time.sleep(1) # Задержка
b.off() # Выключить пищалку, пищит до тех пор пока не выключите
time.sleep(1)
```
### Джойстик
@ -386,6 +397,8 @@ j.check_d() # Вернет единицу если нажата D
Рассмотрим пример взаимодействия с джойстиком с помощью bsp.py:
```python
from bsp import *
j = joystick()
b = beep()
while True: # В бесконечном цикле проверяем нажата ли кнопка
@ -417,6 +430,8 @@ key = IR.getkey() # Присваиваем переменной key номер
Пример использования - программа которая выводит код нажатой кнопки:
```python
from bsp import *
ir = ir_controll()
while True:
key = ir.getkey()
@ -443,6 +458,8 @@ r = b.check_r() # Вернет 1 если препятствие зафик
Пример кода для работы с инфракрасными датчиками. В консоль выводится информация о сенсорах, которые фиксируют объект:
```python
from bsp import *
b = ir_bumper()
while True:
if b.check_l():
@ -479,6 +496,8 @@ k = u.dist() # Вернет расстояние до объекта, с
Пример кода который будет выводить расстояние до объекта до тех пор, пока не будет нажато сочетание клавиш ```Ctrl+C```:
```python
from bsp import *
u = us_sensor()
try:
while True:
@ -527,6 +546,8 @@ sudo python3 -m pip install --force-reinstall adafruit-blinka
Для примера попробуем установить разные цвета на диоды:
```python
from bsp import *
r = rgb_led()
r.color(0, 255, 255, 255)
r.color(1, 0, 0, 255)
@ -537,6 +558,8 @@ r.color(3, 255, 0, 0)
Такого же эффекта можно добиться если указать не яркость каждого отдельного цвета, а применить название соответствующего цвета.
```python
from bsp import *
r = rgb_led()
r.color(0, "White")
r.color(1, "Blue")
@ -562,6 +585,8 @@ r.color(3, "Red")
Для отслеживания линии в нижней части робота есть 5 оптических датчиков. Для примера можно просто считать с них значения:
```python
from bsp import *
l = line_sensor()
while True:
print(l.AnalogRead())
@ -584,6 +609,7 @@ c.setCameraAngle(30, 90)
Пример программы, которая двигает камерой вправо и влево, а также вверх и низ:
```python
from bsp import *
c = CameraAngle()
while True:
@ -596,12 +622,12 @@ while True:
time.sleep(0.02)
```
# Примеры простых программ
# Пример простой программы
Для примера работы с роботом реализуем программу движения по линии с помощью датчиков линии. Данная программа позволит двигаться роботу по замкнутому контуру, который можно получить распечатав страницы 2,2,2,2,3,3,3,3,11 из документа с элементами трассы (документ linefollowtiles.pdf в папке docs).
```python
from bsp import rgb_led, line_sensor, motor
from bsp import *
m = motor()
r = rgb_led()

Loading…
Cancel
Save