diff --git a/README.md b/README.md index 6e41db9..59447b2 100644 --- a/README.md +++ b/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()