Как программировать моторный контроллер PicoCon

Как программировать моторный контроллер 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 <= 100

    • reverse(speed): Устанавливает оба мотора на реверс со скоростью speed. 0 <= speed <= 100

    • spinLeft(speed): Устанавливает моторы на вращение в противоположных направлениях со скоростью speed. 0 <= speed <= 100

    • spinRight(speed): Устанавливает моторы на вращение в противоположных направлениях со скоростью speed. 0 <= speed <= 100

    • turnForward(leftSpeed, rightSpeed): Движение вперёд по дуге за счёт установки различных скоростей. 0 <= leftSpeed, rightSpeed <= 100

    • turnReverse(leftSpeed, rightSpeed): Движение назад по дуге за счёт установки различных скоростей. 0 <= leftSpeed, rightSpeed <= 100

  • Чтобы использовать эти функции, вам нужно указывать перед ними имя модуля — picocon.

  • Вам нужно вызвать функцию init() в начале вашей программы для настройки всех входных и выходных пинов:

picocon.init()
  • Вы должны вызвать функцию cleanup() в конце, чтобы вернуть все входные и выходные пины в исходное состояние:

picocon.cleanup()
  • Между ними вы можете делать всё, что угодно, например, чтобы робот двигался вперёд на средней скорости:

picocon.forward(50)
  • Чтобы быстро вращаться влево:

picocon.spinLeft(100)

Загрузка библиотеки и примеров

  1. Убедитесь, что Raspberry Pi подключён к интернету

  2. В окне терминала на вашем Raspberry Pi введите следующие строки точно так:

wget http://4tronix.co.uk/picocon.sh -O picocon.sh
bash picocon.sh
  1. Это создаст новую папку на вашем Raspberry Pi с именем picocon

  2. Перейдите в эту папку, и затем вы можете запускать примеры следующим образом:

sudo python picoTest01.py
  1. picotest01.py просто выполняет движение вперёд, назад, вращение вправо и влево в цикле. Нажмите Ctrl-C для выхода

  2. picotest02.py делает то же самое, но с использованием библиотеки (посмотрите, насколько проще становится код)

  3. picotest03.py использует клавиши со стрелками на вашей клавиатуре для управления роботом. Вы также можете использовать . или , для увеличения и уменьшения скорости робота. Также используйте пробел для остановки.