Мазмуну:

SnappyXO Precise Mover роботу: 6 кадам
SnappyXO Precise Mover роботу: 6 кадам

Video: SnappyXO Precise Mover роботу: 6 кадам

Video: SnappyXO Precise Mover роботу: 6 кадам
Video: SnappyXO mini two-wheel drive robot 2024, Ноябрь
Anonim
SnappyXO Precise Mover роботу
SnappyXO Precise Mover роботу

PrecisionMovement Arduino китепканасын колдонуп, Arduino роботуңузду белгиленген аралыкка түз буруңуз же белгиленген бурчка буруңуз.

Роботту бурап жатканда сүрүлүүнү азайтуу үчүн тоголотуучу тоголок же эквиваленти керек.

www.pololu.com/product/954

Сиз роботко белгиленген аралыкка алдыга кетүүнү же белгиленген бурчка бурулууну айта аласыз. Программа өзүнүн позициясын өлүү эсеп менен аныктайт. Позицияны баалоо дөңгөлөктүн ылдамдыгына гана таянгандыктан, тайып кетүү олуттуу ката кетирет. Роботтун конструктору тайып кетүү коркунучун азайтуу үчүн этият болушу керек.

Бул SnappyXO роботу менен иштөө үчүн сыналган.

1 -кадам: Үйрөткүчтүн жайгашкан жери өзгөртүлдү

Окутуучу төмөнкү баракчага жылдырылды. Бул окуу куралы мындан ары сакталбайт.

sites.google.com/stonybrook.edu/premo

2 -кадам: SnappyXO дифференциалдуу роботту түзүңүз

Биз колдоно турган PreciseMovement китепканасы дифференциалдуу роботтор менен гана шайкеш келет. Сиз башка 2 дөңгөлөктүү роботторду колдонууну тандай аласыз.

3 -кадам: Электрониканы туташтырыңыз

Электрониканы туташтырыңыз
Электрониканы туташтырыңыз

Стандарттык SnappyXO оптикалык коддогуч үчүн:

D0 (коддогучтун чыгышы) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Мотор жана Arduino Power:

Мотордун энергия булагы сиз колдонгон моторлорго шайкеш келиши керек. SnappyXO комплектинде 4AA батареялары мотор кубаты үчүн жана 9V батарея Arduino кубаты үчүн колдонулат. Алардын бардыгынын жалпы GND бар экенине ишениңиз.

4 -кадам: PreciseMovement Arduino китепканасын орнотуңуз

Жүктөө:

github.com/jaean123/PreciseMovement-library/releases

Arduino китепканасын кантип орнотсо болот:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

5 -кадам: Код

Arduino коду:

create.arduino.cc/editor/weenloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

Бул параметрлер тууралоону талап кылат. Коддо сунушталган башка параметрлер жакшыраак иштеши үчүн туураланышы мүмкүн.

  • Мотор казыктарын текшерип, ARDUINO PINS астына коюңуз.
  • LENGTH жана RADIUS орнотуңуз.

    • УЗУНЛУК - сол дөңгөлөктөн оң дөңгөлөккө чейинки аралык.
    • RADIUS - дөңгөлөктүн радиусу.
  • PULSES_PER_REV коюңуз, бул кодердин бир дөңгөлөктүн айлануусу үчүн импульсинин саны.

    • Көңүл буруңуз, бул коддоочу дөңгөлөк валынан түз окуу үчүн туташпаса, бир мотор валынын айлануусу үчүн коддогучтун импульсунун санынан айырмаланат.
    • PULSES_PER_REV = (мотор валынын бир айлануусуна импульс) x (тиш катышы)
  • Эгер робот алдыга жылгандан кийин ашыкча атылып жатканын көрүп калсаңыз STOP_LENGTH коюңуз.

    Робот болжолдуу позиция максаттан STOP_LENGTH алыс болгондо токтойт. Ошентип, STOP_LENGTH - роботтун токтошу үчүн зарыл болгон болжолдуу аралык

  • PID параметрлери

    KP_FW: Бул алдыга жылуунун пропорционалдуу компоненти. Робот түз кетмейинче муну көбөйтүңүз. Эгер сиз муну жөнгө салуу менен түз бара албасаңыз, анда аппараттык аппарат күнөөлүү болушу мүмкүн. (мис. дөңгөлөктүн туура эмес жайгашуусу ж. б.)

    KP_TW: Бул PID бурулуш кыймылынын пропорционалдуу компоненти. Жөн эле төмөн баадан баштаңыз жана муну бурулуш ылдамдыгы же бурулуш учурунда роботтун бурчтук ылдамдыгы жетишерлик тез болгонго чейин көбөйтүңүз, бирок ашыкча чуркоо пайда кылбайт. Байкоо жүргүзүү үчүн, роботту цикл функциясына төмөнкүлөрдү киргизүү менен 0дон 90го чейин жана артка алмаштыра аласыз

KP_FW жөндөө үчүн муну циклге коюңуз:

mover.forward (99999);

KP_TW жөндөө үчүн 0дөн 90го чейин алмаштыруу үчүн муну циклге коюңуз:

mover.twist (90); // Twist 90 CW

кечигүү (2000);

mover.twist (-90) // Twist 90 CCW

кечигүү (2000);

Эске алыңыз, TARGET_TWIST_OMEGAдагы бурчтук ылдамдыкты чындап буруш үчүн, KI_TW дагы жөнгө салынышы керек, анткени пропорционалдуу контролер так максатка такыр отурбайт. Бирок, бул так бурчтук ылдамдыкта бурулуунун кажети жок. Бурчтук ылдамдык жетишерлик жай болушу керек.

6 -кадам: Бул кантип иштейт

Эгер анын кантип иштээри кызык болсо, окуңуз.

Алдыга жылуу түз сызык жолунда таза умтулуу алгоритмин колдонуп түз сакталат. Таза Pursuit боюнча:

Буралма PID контроллери бурулуш ылдамдыгын TARGET_TWIST_OMEGA сактоого аракет кылат. Бул бурчтук ылдамдык дөңгөлөктөрдүн эмес, бүт роботтун бурчтук ылдамдыгы экенин эске алыңыз. Бир гана PID контроллери колдонулат жана чыгаруу сол жана оң моторлордун PWM жазуу ылдамдыгы. Өлгөн эсептөө бурчту эсептөө үчүн жасалат. Бурч ката чегине жеткенде, робот токтойт.

Сунушталууда: