Мазмұны:

SnappyXO дәл қозғалатын робот: 6 қадам
SnappyXO дәл қозғалатын робот: 6 қадам
Anonim
SnappyXO дәл қозғалатын робот
SnappyXO дәл қозғалатын робот

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 қуаты:

Қозғалтқыштың қуат көзі сіз қолданатын қозғалтқыштарға сәйкес келуі керек. SnappyXO жиынтығы үшін қозғалтқыш қуаты үшін 4АА батареялары және Arduino қуаты үшін 9В батареялары қолданылады. Олардың барлығының ортақ 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); // 90 CW Twist

кешіктіру (2000);

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

кешіктіру (2000);

TARGET_TWIST_OMEGA -да бұрыштық жылдамдықты шынымен бұру үшін KI_TW -ті де реттеу керек екенін ескеріңіз, өйткені пропорционалды контроллер ешқашан нақты мақсатқа жетпейді. Дегенмен, дәл бұрыштық жылдамдықпен бұрылу қажет емес. Бұрыштық жылдамдық жеткілікті баяу болуы керек.

6 -қадам: Бұл қалай жұмыс істейді

Егер сіз оның қалай жұмыс істейтінін білгіңіз келсе, оқыңыз.

Алға жылжу түзу жолда таза іздеу алгоритмін қолдана отырып түзу сақталады. Pure Pursuit туралы толығырақ:

Айналмалы PID контроллері бұрылу бұрышының жылдамдығын TARGET_TWIST_OMEGA деңгейінде сақтауға тырысады. Назар аударыңыз, бұл бұрыштық жылдамдық дөңгелектердің емес, бүкіл роботтың бұрыштық жылдамдығы. Тек бір PID контроллері қолданылады және шығыс - сол және оң қозғалтқыштардың PWM жазу жылдамдығы. Бұрышты есептеу үшін өлі есеп жасалады. Бұрыш қателік шегіне жеткенде робот тоқтайды.

Ұсынылған: