Как программировать моторный контроллер PicoCon
Есть два способа программировать/использовать ваш новый моторный контроллер PicoCon:
1. Базовое программное обеспечение на Python
Каждый мотор напрямую управляется двумя пинами, каждый из которых приводит в движение одну сторону мотора
Чтобы мотор вращался вперёд, вы устанавливаете один пин в высокий уровень, а другой — в низкий
Чтобы мотор вращался назад, вы устанавливаете первый пин в низкий уровень, а второй — в высокий
Чтобы робот двигался вперёд, оба мотора должны быть установлены на движение вперёд
Аналогично, чтобы двигаться назад, оба мотора должны быть установлены на реверс
Если вы установите левый мотор на движение вперёд, а правый мотор — на движение назад, робот будет вращаться вправо
Физические пины для левого мотора — 19 и 21
Физические пины для правого мотора — 24 и 26
Чтобы левый мотор вращался вперёд, установите pin19 в высокий уровень, а pin21 — в низкий. Вы можете сделать это в Python с помощью:
GPIO.output(19, 1) # pin 19 — левый мотор A
GPIO.output(21, 1) # pin 21 — левый мотор B
Это рассмотрено в полной программе на Python picoTest01.py, описанной ниже.
2. Использование поставляемой библиотеки Python
Вам нужно импортировать библиотеку в начале вашей программы на Python:
import picocon
Затем вы можете использовать заранее определённые функции для управления моторами:
init(). Инициализирует пины GPIO, выключает моторы и т.д.cleanup(). Выключает все моторы и возвращает GPIO к стандартным значениямstop(): Останавливает оба мотораforward(speed): Устанавливает оба мотора на движение вперёд со скоростью speed. 0 <= speed <= 100reverse(speed): Устанавливает оба мотора на реверс со скоростью speed. 0 <= speed <= 100spinLeft(speed): Устанавливает моторы на вращение в противоположных направлениях со скоростью speed. 0 <= speed <= 100spinRight(speed): Устанавливает моторы на вращение в противоположных направлениях со скоростью speed. 0 <= speed <= 100turnForward(leftSpeed, rightSpeed): Движение вперёд по дуге за счёт установки различных скоростей. 0 <= leftSpeed, rightSpeed <= 100turnReverse(leftSpeed, rightSpeed): Движение назад по дуге за счёт установки различных скоростей. 0 <= leftSpeed, rightSpeed <= 100
Чтобы использовать эти функции, вам нужно указывать перед ними имя модуля — picocon.
Вам нужно вызвать функцию
init()в начале вашей программы для настройки всех входных и выходных пинов:
picocon.init()
Вы должны вызвать функцию
cleanup()в конце, чтобы вернуть все входные и выходные пины в исходное состояние:
picocon.cleanup()
Между ними вы можете делать всё, что угодно, например, чтобы робот двигался вперёд на средней скорости:
picocon.forward(50)
Чтобы быстро вращаться влево:
picocon.spinLeft(100)
Загрузка библиотеки и примеров
Убедитесь, что Raspberry Pi подключён к интернету
В окне терминала на вашем Raspberry Pi введите следующие строки точно так:
wget http://4tronix.co.uk/picocon.sh -O picocon.sh
bash picocon.sh
Это создаст новую папку на вашем Raspberry Pi с именем picocon
Перейдите в эту папку, и затем вы можете запускать примеры следующим образом:
sudo python picoTest01.py
picotest01.py просто выполняет движение вперёд, назад, вращение вправо и влево в цикле. Нажмите Ctrl-C для выхода
picotest02.py делает то же самое, но с использованием библиотеки (посмотрите, насколько проще становится код)
picotest03.py использует клавиши со стрелками на вашей клавиатуре для управления роботом. Вы также можете использовать
.или,для увеличения и уменьшения скорости робота. Также используйте пробел для остановки.