instructables-логотип

Instrutables VHDL Мотор ылдамдыгын башкаруу Багытын жана ылдамдыкты сол жана оң ылдамдыкты контролдоону чечет

instructables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-ылдамдык-сол-жана-оң-жылдамдык-контроллер-ПРОДУКЦИЯ

ЭСКЕРТҮҮ: Бул барак чоңураак курулуштун бир бөлүгү. Төмөнкүлөрдүн чоңураак долбоордун кайсы жерине туура келерин түшүнүү үчүн, бул жерден баштаңыз

Бүттүview

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

Бул бөлүмдүн максаты жарык издеген роботтун сол жана оң кыймылдаткычынын ылдамдыгын жана багытын башкаруу. Бул баалуулуктарды аныктоо үчүн сизге камера тартып алган жана босого аркылуу иштетилген жарыктын өлчөмү жана орду керек болот. Сиз ошондой эле моторлордун ар биринде өлчөнгөн ылдамдык керек болот. Бул киргизүүлөрдөн сиз кыймылдаткычтардын ар бири үчүн PWM (импульстуу кеңдик модуляциясы) маанисин чыгара аласыз.

Буга жетүү үчүн сиз VHDL модулдарын жасашыңыз керек (төмөндө да шилтемеленген):

  1. контролдоо
  2. Ката эсептөө
  3. бинардык конверсия
  4.  жарык булагынын жоктугу

Бул бөлүмдүн VHDL кодун бул жерден көрө аласыз.

Жабдуулар
ISE Design Suite 14.7 менен коддоону сунуштайбыз, анткени аны VHDLде кодду сыноо үчүн да колдонсо болот. Бирок, кодду BASYS 3ке жүктөө үчүн Vivado (2015.4 же 2016.4 версиясы) орнотуп, .xdc кеңейтүүсү менен чектөөнү жазышыңыз керек.instrutables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-Ылдамдык-Сол-жана-Оң-Ылдамдык-контроллер-fig-1

VHDL мотор ылдамдыгын көзөмөлдөө: багытты жана ылдамдыкты чечиңиз, сол жана оң ылдамдык контроллери: 1-бет

КӨРСӨТМӨ КАДАМ

1-кадам: Башкаруу
Жарыкты издеген роботтун жүрүм-турумун кантип көзөмөлдөө керектигин түшүнүү үчүн, робот жарык булагын көргөндө анын каалаган жүрүм-турумун түшүндүрөбүз. Бул жүрүм-турум жарык булагынын абалына жана өлчөмүнө жараша көзөмөлдөнөт.instrutables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-Ылдамдык-Сол-жана-Оң-Ылдамдык-Controller-

Колдонулган алгоритм RC робот контроллерине окшош, анын бир рычагы солго же оңго, экинчиси алдыга же артка бурулушу мүмкүн.

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

Андан кийин, жарык булагы алыс болсо (кичинекей жарык булагы) роботтун алдыга жылышын же аныкталган жарык булагы өтө жакын болсо (чоң жарык булагы) артка жылышын каалайсыз. Сиз ошондой эле робот жарык булагынан канчалык алыс болсо, робот ошончолук тезирээк жылышын каалайсыз. Бул RC контроллерунун оң рычагына окшош, анда сиз алдыга же артка жылгыңыз келеби, жана анын канчалык ылдам жылышын каалайсызбы.

Андан кийин сиз кыймылдаткычтардын ар биринин ылдамдыгы үчүн математикалык формуланы чыгара аласыз жана биз ылдамдык диапазонун -255тен 255ке чейин тандайбыз. Терс маани мотор артка бурулат, ал эми оң маани мотор алдыга бурулат дегенди билдирет.

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

2-кадам: Ката эсептөө
Сизде кыймылдаткычтар үчүн максат ылдамдыгы жана багыты бар болгондуктан, моторлордун өлчөнгөн ылдамдыгын жана багытын да эске алгыңыз келет. Эгерде ал ылдамдык максатына жеткен болсо, анда биз кыймылдаткыч өзүнүн импульсу боюнча гана кыймылдашын каалайбыз. Эгерде ал жок болсо, биз моторго көбүрөөк ылдамдык кошкубуз келет. Башкаруу теориясында бул жабык циклдик кайтарым байланышты башкаруу системасы катары белгилүү.

Бул модул жөнүндө көбүрөөк билүү үчүн бул жерди басыңыз.instrutables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-Ылдамдык-Сол-жана-Оң-Ылдамдык-контроллер-fig-2

3-кадам: Бинардык конверсия
Мурунку эсептөөлөрдөн сиз кыймылдаткычтардын ар бири үчүн зарыл болгон иш-аракеттерди мурунтан эле билесиз. Бирок, эсептөөлөр кол коюлган бинардык колдонуу менен жүргүзүлөт. Бул модулдун максаты бул кол коюлган маанилерди багыт (саат жебеси боюнча же саат жебесине каршы) жана ылдамдык (0дөн 255ке чейин) болгон PWM генератору окуй турган мааниге айландыруу. Ошондой эле, кыймылдаткычтын пикири кол коюлбаган бинардык менен ченелгендиктен, кол коюлбаган маанилерди (багыт жана ылдамдык) ката эсептөө модулу тарабынан эсептелүүчү кол коюлган мааниге айландыруу үчүн дагы бир модул керек. Бул модул жөнүндө көбүрөөк билүү үчүн бул жерди басыңыз.

4-кадам: Жарык булагынын жоктугу
Сиз робот жарыкты тапканда жарыкты издөө үчүн кыймылдаган робот жасадыңыз. Бирок робот жарыкты байкабай калса эмне болот? Бул модулдун максаты - мындай шарт болгондо эмне кылуу керек экенин айтуу.

Жарыктын булагын издөөнүн эң оңой жолу - роботтун ордунда айлануусу. Белгиленген секунданын ичинде айлангандан кийин, робот дагы эле жарык булагын таба элек болсо, энергияны үнөмдөө үчүн роботтун кыймылын токтотушун каалайсыз. Дагы бир белгиленген секунддан кийин робот жарыкты издөө үчүн ордунда кайра айланышы керек. Бул модул жөнүндө көбүрөөк билүү үчүн бул жерди басыңыз.

5-кадам: Бул кантип иштейт
Бул түшүндүрмө үчүн жогорудагы сүрөткө кайрылсаңыз болот. Бул нускаманын башында айтылгандай, сизге босогону аныктоочу бөлүмдөн "өлчөм" жана "позиция" киргизүү керек болот. Бул киргизүүлөр жарактуу экенин текшерүү үчүн (мисалыample, сиз = 0 өлчөмүн алганыңызда, өлчөм чындап нөлгө барабар, анткени камера жарыкты аныктабайт, камера дагы эле инициализацияланып жаткандыктан эмес) сизге ошондой эле биз "ДАЯР" деп атаган кандайдыр бир көрсөткүч керек болот. Бул маалыматтар башкаруу (Ctrl. vhd) тарабынан иштетилет, ар бир мотордун максат ылдамдыгын аныктоо үчүн (9 бит, кол коюлган).

Мотордо туруктуураак чыгаруу үчүн, сиз жабык цикл системасында пикирди колдонгуңуз келет. Бул кыймылдаткычтын ылдамдыгын өлчөө бөлүмүнөн ар бир мотордун "багытын" жана "ылдамдыгын" киргизүүнү талап кылат. Сиз бул киргизүүлөрдү эсептөөлөрүңүзгө кошкуңуз келгендиктен, бул кол коюлбаган маанилерди 9-бит кол коюлган экиликке айландырышыңыз керек болот. Бул кол коюлган экилик конвертерге (US2S.vhd) кол коюлбаган тарабынан жасалат.

Ката эсептөө (ката. vhd) эмне кылат, ар бир мотор үчүн аракетти аныктоо үчүн максат ылдамдыгынан өлчөнгөн ылдамдыкты алып салуу. Бул экөө тең бирдей мааниге ээ болгондо, кемитүү нөлгө айланат жана мотор өзүнүн импульсу боюнча гана кыймылдайт дегенди билдирет. Ошондой эле, робот максаттуу ылдамдыкка тезирээк жетиши үчүн көбөйтүү коэффициентин кошо аласыз.

Мотор контроллерине ар бир кыймылдаткычтын ылдамдыгы жана багыты керек болгондуктан, иш-аракеттин кол коюлган маанилерин эки өзүнчө кол коюлбаган маанилерге которуу керек: ылдамдык (1 бит) жана багыт (8 бит). Бул кол коюлгандан кол коюлбаган бинардык конвертер (S2US.vhd) тарабынан аткарылат жана мотор башкаруу бөлүмүнө киргизүү болуп калат.

Жарык байкалбай калганда эмне кылуу керектигин аныктоо үчүн модулду да коштук (жарык эсептегич жок. Bhd). Бул модуль негизинен эсептегич болгондуктан, ал робот канча убакытка чейин айланып же ордунда турушу керектигин эсептейт. Бул робот алдында турганды эле эмес, анын айлана-чөйрөсүн “көрөрүн” камсыздайт жана жарык булагы жок болгондо батареянын кубатын үнөмдөйт.instrutables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-Ылдамдык-Сол-жана-Оң-Ылдамдык-контроллер-fig-3

6-кадам: бириктирүү Files
айкалыштыруу үчүн fileс, ар бир модулдан сигналдарды туташтыруу керек. Бул үчүн, сиз жаңы жогорку деңгээлдеги модулду жасашыңыз керек file. Мурунку модулдардын кириштерин жана чыгыштарын компоненттер катары салыңыз, туташуулар үчүн сигналдарды кошуңуз жана ар бир портту тиешелүү жупка дайындаңыз. Сиз жогорудагы иллюстрациядагы байланыштарга кайрылып, бул жерден кодду карасаңыз болот.instrutables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-Ылдамдык-Сол-жана-Оң-Ылдамдык-контроллер-fig-4

7-кадам: Аны сынап көрүңүз
Кодду толугу менен жазып бүткөндөн кийин, аны тактага жүктөөдөн мурун кодуңуздун иштешин билишиңиз керек, айрыкча коддун бөлүктөрү ар кандай адамдар тарабынан жасалышы мүмкүн. Бул үчүн testbench керек, анда сиз жасалма маанилерди киргизесиз жана код биз каалагандай иш алып бараарын көрөсүз. Ар бир модулду сынап көрүп, эс ала аласыз, эгер алардын баары туура иштесе, анда сиз жогорку деңгээлдеги модулду сынасаңыз болот.

8-кадам: Аны аппараттык камсыздоодо байкап көрүңүз
Кодуңуз компьютериңизде текшерилгенден кийин, кодду чыныгы аппараттык жабдыкта сынай аласыз. Сиз чектөө киргизишиңиз керек file Vivado боюнча (.xdc file BASYS үчүн 3) кайсы кириш жана чыгуулар кайсы портторго барарын көзөмөлдөө.

МААНИЛҮҮ КЕҢЕШ: Биз электрдик компоненттер токтун же көлөмдүн максималдуу маанисине ээ болушу мүмкүн экенин кыйын жол менен үйрөндүкtages. Баалар үчүн маалымат жадыбалына кайрылууну унутпаңыз. PMOD HB5 үчүн томду коюуну унутпаңызtage 12 вольттогу кубат булагынан (анткени бул талап кылынган томtagкыймылдаткыч үчүн e), ал эми ток кыймылдаткычтын кыймылы үчүн азыраак.

9-кадам: Аны башка бөлүктөр менен бириктириңиз
Мурунку кадамдар ийгиликтүү болсо, роботко жүктөлө турган акыркы код үчүн кодду башка топтор менен бириктириңиз. Анда, voila! Сиз жарыкты издеген роботту ийгиликтүү жасадыңыз.

10-кадам: салым кошуучулар
Солдон оңго:

  • Антониус Грегориус Дивен Ривалди
  • Феликс Вигуна
  • Николас Санджая
  • Ричард Медьянтоinstrutables-VHDL-Мотор-Ылдамдык-башкаруу-чечим-багыт-жана-Ылдамдык-Сол-жана-Оң-Ылдамдык-контроллер-fig-6

Абдан жакшы: VHDL мотор ылдамдыгын көзөмөлдөө: багытты жана ылдамдыкты чечиңиз, сол жана оң ылдамдык контроллери: 6-бет
кайра үчүн рахматviewing! Бул долбоор чындыгында класстык долбоордун бир гана бөлүгү (BASYS 3 тактасы жана OV7670 камерасы бар Light Search Robot), ошондуктан мен жакында класстын нускамасына шилтемени кошом!

Керемет: Мен бардыгын чогуу көрүүнү чыдамсыздык менен күтүп жатам.

Документтер / Ресурстар

Instrutables VHDL Мотор ылдамдыгын башкаруу Багытын жана ылдамдыкты сол жана оң ылдамдыкты контролдоону чечет [pdf] Instructions
VHDL кыймылдаткычтын ылдамдыгын башкаруу багытын жана ылдамдыгын Сол жана оң ылдамдыгын контролдоочу, VHDL мотор ылдамдыгын башкаруу, багытты жана ылдамдыкты сол жана оң ылдамдыкты башкаруу

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *