instructables VHDL Контрола на брзината на моторот Одлучете ја насоката и брзината лево и десно Контролор за брзина
ЗАБЕЛЕШКА: Оваа страница е еден дел од поголема градба. Погрижете се да започнете ТУКА, за да разберете каде следното се вклопува во поголемиот проект
Во текот наview
Контролата на брзината и насоката на моторот е една од двете главни поделби во роботот со фотодетектор, другата е поделбата на фотодетектор или светлосен детектор. Додека одделот за фотодетектор се фокусира на видот на роботот, одделот за контрола на брзината и насоката на моторот се фокусира на движењето на роботот. Податоците за контрола на брзината и насоката на моторот се дадени од поделбата на фотодетекторот и даваат физички излез во форма на движење на моторот.
Целта на оваа поделба е да се контролира брзината и насоката и на левиот и на десниот мотор на роботот кој бара светлина. За да ги одредите овие вредности, ќе ви требаат големината и положбата на светлината што била снимена од камерата и обработена со праг. Ќе ви треба и измерената брзина на секој од моторите. Од овие влезови, ќе можете да ја дадете вредноста на PWM (Модулација на ширина на пулс) за секој од моторите.
За да го постигнете ова, ќе треба да ги направите овие VHDL модули (исто така поврзани подолу):
- Контролата
- Пресметката на грешката
- Бинарната конверзија
- Отсуството на извор на светлина
Можете да го погледнете VHDL кодот за оваа поделба овде.
Залихи
Препорачуваме да кодирате со ISE Design Suite 14.7 бидејќи може да се користи и за тестирање на кодот во VHDL. Меѓутоа, за да го поставите кодот во BASYS 3, ќе треба да го инсталирате Vivado (вер. 2015.4 или 2016.4) и да го напишете ограничувањето со наставката .xdc.
Контрола на брзината на моторот VHDL: Одлучете ја насоката и брзината, левата и десната контролер на брзина: страница 1
ЧЕКОР ЗА УПАТСТВО
Чекор 1: Контрола
За да разбереме како да го контролираме однесувањето на роботот што бара светлина, ќе го објасниме саканото однесување на роботот кога ќе види извор на светлина. Ова однесување ќе се контролира според положбата и големината на изворот на светлина.
Алгоритмот што се користи е аналоген на RC-робот контролер, со една рачка што може да се сврти лево или десно, и друга рачка што може да се сврти напред или назад.
За да барате светлина, сакате овој робот да се движи во права линија ако позицијата на изворот на светлина е точно пред роботот. За да го направите тоа, сакате иста брзина и на левиот и на десниот мотор. Ако светлото се наоѓа на левата страна на роботот, сакате десниот мотор да се движи побрзо од левиот мотор за да може роботот да се сврти налево кон светлото. Спротивно на тоа, ако светлото се наоѓа на десната страна на роботот, сакате левиот мотор да се движи побрзо од десниот мотор за да може роботот да се сврти надесно кон светлото. Ова е аналогно на левата рачка на RC контролерот, каде што можете да контролирате дали сакате да го поместите роботот лево, десно или директно.
Потоа, сакате роботот да се движи напред ако изворот на светлина е далеку (мал извор на светлина) или да се движи наназад ако откриениот извор на светлина е премногу блиску (голем извор на светлина). Исто така, сакате колку подалеку роботот е од изворот на светлина, толку побрзо роботот се движи. Ова е аналогно на десната рачка на RC контролерот, каде што можете да контролирате дали сакате да се движите напред или назад и колку брзо сакате да се движи.
Потоа можете да изведете математичка формула за брзината на секој од моторите и го избираме опсегот на брзина помеѓу -255 до 255. Негативната вредност значи дека моторот ќе се сврти наназад, додека позитивната вредност значи дека моторот ќе се сврти нанапред.
Тоа е основниот алгоритам за движење на овој робот. За да дознаете повеќе за овој модул, кликнете овде.
Чекор 2: Пресметка на грешка
Бидејќи веќе ја имате целната брзина и насока за моторите, сакате да ја земете предвид и измерената брзина и насока на моторите. Ако ја достигнал целта за брзина, сакаме моторот да се движи исклучиво според неговиот моментум. Ако не е така, сакаме да додадеме поголема брзина на моторот. Во Контролната теорија, ова е познато како систем за контрола на повратни информации во затворена јамка.
За да дознаете повеќе за овој модул, кликнете овде.
Чекор 3: Бинарна конверзија
Од претходните пресметки, веќе го знаете дејството потребно за секој од моторите. Сепак, пресметките се прават со користење на потпишан бинар. Целта на овој модул е да ги претвори овие потпишани вредности во вредност што може да се прочита од генераторот PWM, а тоа се насоката (или во насока на стрелките на часовникот или спротивно од стрелките на часовникот) и брзината (се движи помеѓу 0 и 255). Исто така, бидејќи повратната информација од моторот се мери во неозначено бинарно, потребен е друг модул за конвертирање на неозначените вредности (насока и брзина) во потпишана вредност што може да се пресмета со модулот за пресметување на грешки. За да дознаете повеќе за овој модул, кликнете овде.
Чекор 4: Отсуство на извор на светлина
Направивте робот кој се движи за да бара светлина кога роботот ќе открие светлина. Но, што се случува кога роботот не детектира светлина? Целта на овој модул е да диктира што да се прави кога е присутна таква состојба.
Најлесен начин да се бара извор на светлина е роботот да се ротира на своето место. По ротирање одреден број секунди, ако роботот сè уште не нашол извор на светлина, сакате роботот да престане да се движи, за да заштеди енергија. По уште еден одреден број секунди, роботот треба повторно да се ротира на своето место за да ја бара светлината. За да дознаете повеќе за овој модул, кликнете овде.
Чекор 5: Како функционира
За ова објаснување можете да се повикате на сликата погоре. Како што беше споменато на почетокот на оваа инструкција, ќе ви требаат влезовите „големина“ и „позиција“ од поделбата на праговите. За да бидете сигурни дека овие влезови се валидни (на прample, кога ќе примите големина = 0, големината е навистина нула затоа што камерата не детектира светлина, а не затоа што камерата сè уште се иницијализираше) ќе ви треба и некој вид индикатор, кој го нарекуваме „ПРЕДГОТВЕН“. Овие податоци ќе бидат обработени од контролата (Ctrl. vhd) за да се одреди целната брзина на секој мотор (9 бита, потпишани).
За постабилен излез на моторот, сакате да користите повратни информации во систем со затворена јамка. За ова се потребни влезови „насока“ и „брзина“ на секој мотор од одделот за мерење на брзината на моторот. Бидејќи сакате да ги вклучите овие влезови во вашите пресметки, ќе мора да ги претворите овие непотпишани вредности во 9-битни потпишани бинарни. Ова го прави непотпишаниот кон потпишан бинарен конвертор (US2S.vhd).
Она што го прави пресметката на грешката (грешка. vhd) е одземање на измерената брзина од целната брзина за да се одреди дејството за секој мотор. Ова значи дека кога и двете имаат иста вредност, одземањето станува нула и моторот ќе се движи исклучиво според својот моментум. Можете исто така да додадете фактор на множење за да може роботот побрзо да ја достигне целната брзина.
Бидејќи на контролорот на моторот му се потребни брзината и насоката на секој мотор, мора да ги преведете потпишаните вредности на дејството во две посебни неозначени вредности: брзина (1 бит) и насока (8 бита). Ова го прави бинарниот конвертор од потпишан во неозначен (S2US.vhd) и ќе стане влез во одделот за контрола на моторот.
Додадовме и модул за да одредиме што да правиме кога светлината не е откриена (без бројач на светлина. Bhd). Бидејќи овој модул во основа е бројач, ќе брои колку време му треба на роботот или да ротира или да остане на своето место. Ова ќе обезбеди роботот да ја „гледа“ својата околина наместо само она што е пред него, и да ја зачува енергијата на батеријата кога нема вистински достапен извор на светлина.
Чекор 6: Комбинирајте го Files
Да се комбинираат files, треба да ги поврзете сигналите од секој модул. За да го направите тоа, треба да направите нов модул од највисоко ниво file. Вметнете ги влезовите и излезите на претходните модули како компоненти, додајте сигнали за конекциите и доделете ја секоја порта на соодветниот пар. Можете да се повикате на врските на илустрацијата погоре и да го погледнете кодот овде.
Чекор 7: Тестирајте го
Откако ќе завршите со целиот код, треба да знаете дали вашиот код работи пред да го поставите на таблата, особено затоа што делови од кодот може да се направени од различни луѓе. Ова бара тест бенч, каде што ќе внесете лажни вредности и ќе видите дали кодот се однесува како што сакаме да се однесува. Можете да започнете со тестирање на секој модул, и ако сите тие работат правилно, тогаш можете да го тестирате модулот од највисоко ниво.
Чекор 8: Пробајте го на хардверот
Откако вашиот код е тестиран на вашиот компјутер, можете да го тестирате кодот на вистинскиот хардвер. Треба да го направите ограничувањето file на Вивадо (.xdc file за BASYS 3) да контролира кои влезови и излези одат во кои порти.
ВАЖЕН СОВЕТ: Научивме на потешкиот начин дека електричните компоненти може да имаат максимална вредност на струја или волуменtagес. Не заборавајте да се повикате на листот со податоци за вредностите. За PMOD HB5, задолжително поставете ја јачината на звукотtage од изворот на енергија на 12 волти (бидејќи ова е потребната јачина на звукtage за моторот), а струјата е толку мала колку што е потребно за моторот да се движи.
Чекор 9: Комбинирајте го со други делови
Ако претходните чекори беа успешни, комбинирајте го кодот со другите групи за конечниот код да се постави во роботот. Тогаш, Voila! Успешно направивте робот кој бара светлина.
Чекор 10: Соработници
Од лево кон десно:
- Антониус Грегориус Дивен Ривалди
- Феликс Вигуна
- Николас Сањаја
- Ричард Медјанто
Многу убаво: Контрола на брзината на моторот VHDL: Одлучете ја насоката и брзината, левата и десната контролер на брзина: страница 6
Ви благодариме за реviewing! Овој проект е всушност само еден дел од класниот проект (Робот што бара светлина со табла BASYS 3 и камера OV7670), така што наскоро ќе ја додадам врската до инструкциите за часот!
Прекрасно: Со нетрпение очекувам да видам сè заедно.
Документи / ресурси
![]() |
instructables VHDL Контрола на брзината на моторот Одлучете ја насоката и брзината лево и десно Контролор за брзина [pdf] Инструкции VHDL Контрола на брзината на моторот за одлучување за насока и брзина Контролор за брзина лево и десно, VHDL брзина на моторот, Контрола за одлучување насока и брзина на лево и десно контролер на брзина |