instructables-merki

instructables VHDL Mótor hraðastýring Ákvarða stefnu og hraða vinstri og hægri hraðastýringu

instructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-High-Speed-Controller-PRODUCT

ATH: Þessi síða er einn hluti af stærri byggingu. Vinsamlegast vertu viss um að þú byrjar HÉR, svo þú skiljir hvar eftirfarandi passar inn í stærra verkefninu

Yfirview

Mótorhraða- og stefnustýring er ein af tveimur aðaldeildum ljósnemavélmennisins, hin er ljósnemarinn eða ljósnemardeildin. Á meðan ljósnemadeildin einbeitir sér að sjón vélmennisins, einbeitir hraða- og stefnustýringardeild hreyfilsins á hreyfingu vélmennisins. Mótorhraða- og stefnustýringarferlisgögnin gefin frá ljósnemadeild og gefa líkamlegt úttak í formi hreyfingar hreyfingar.

Tilgangur þessarar skiptingar er að stjórna hraða og stefnu bæði vinstri og hægri mótors ljósleitar vélmennisins. Til að ákveða þessi gildi þarftu stærð og staðsetningu ljóssins sem myndavélin hafði tekið og unnið með þröskuldi. Þú þarft einnig mældan hraða á hverjum mótor. Frá þessum inntakum muntu geta gefið út PWM (Pulse-Width Modulation) gildi fyrir hvern mótor.

Til að ná þessu þarftu að búa til þessar VHDL einingar (einnig tengdar hér að neðan):

  1. Stjórnin
  2. Villuútreikningurinn
  3. Tvíundarviðskiptin
  4.  Skortur á ljósgjafa

Þú getur skoðað VHDL kóðann fyrir þessa deild hér.

Birgðir
Við mælum með að kóða með ISE Design Suite 14.7 þar sem það er einnig hægt að nota til að prófa kóðann í VHDL. Hins vegar, til að hlaða kóðanum inn í BASYS 3, þarftu að setja upp Vivado (ver. 2015.4 eða 2016.4) og skrifa þvingunina með .xdc endingunni.instructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-Right-Speed-Controller-mynd-1

VHDL mótorhraðastýring: Ákveða stefnu og hraða, vinstri og hægri hraðastýringu: Page 1

LEIÐBEININGARSKREP

Skref 1: Stjórnin
Til að skilja hvernig á að stjórna hegðun ljósleitar vélmennisins munum við útskýra æskilega hegðun vélmennisins þegar það sér ljósgjafa. Þessari hegðun verður stjórnað í samræmi við staðsetningu og stærð ljósgjafans.instructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-High-Speed-Controller-

Reikniritið sem notað er er hliðstætt RC vélmennastýringu, með einni stöng sem hægt er að snúa til vinstri eða hægri, og annarri stöng sem hægt er að snúa fram eða aftur.

Til að leita ljóss viltu að þetta vélmenni hreyfi sig í beinni línu ef staðsetning ljósgjafans er beint fyrir framan vélmennið. Til að gera það, þú vilt sama hraða á bæði vinstri og hægri mótor. Ef ljósið er staðsett vinstra megin við vélmennið, viltu að hægri mótorinn hreyfist hraðar en vinstri mótorinn þannig að vélmennið geti snúið til vinstri í átt að ljósinu. Hins vegar, ef ljósið er staðsett hægra megin á vélmenni, viltu að vinstri mótor hreyfist hraðar en hægri mótor þannig að vélmenni geti snúið til hægri í átt að ljósinu. Þetta er hliðstætt vinstri handfangi RC stýringar, þar sem þú getur stjórnað hvort þú vilt færa vélmennið til vinstri, hægri eða beint.

Síðan viltu að vélmennið færist fram á við ef ljósgjafinn er langt í burtu (lítill ljósgjafi) eða færist aftur á bak ef ljósgjafinn er of nálægt (stór ljósgjafi). Þú vilt líka að því lengra sem vélmennið er frá ljósgjafanum, því hraðar hreyfist vélmennið. Þetta er hliðstætt hægri handfangi RC stýringar, þar sem þú getur stjórnað hvort þú vilt fara fram eða aftur og hversu hratt þú vilt að hann hreyfist.

Þú getur síðan dregið út stærðfræðilega formúlu fyrir hraða hvers mótora og við veljum hraðasviðið á milli -255 til 255. Neikvætt gildi þýðir að mótorinn snýst afturábak, en jákvætt gildi þýðir að mótorinn snýst áfram.

Það er grunnalgrímið fyrir hreyfingu þessa vélmenni. Til að læra meira um þessa einingu, smelltu hér.

Skref 2: Villuútreikningurinn
Þar sem þú hefur nú þegar markhraða og stefnu fyrir mótorana, viltu líka taka tillit til mældans hraða og stefnu mótoranna. Ef það hefur náð hraðamarkmiðinu viljum við að mótorinn hreyfist eingöngu á skriðþunga sínum. Ef það hefur ekki gert það viljum við bæta meiri hraða við mótorinn. Í stjórnunarkenningunni er þetta þekkt sem lokað lykkja viðbragðsstýringarkerfi.

Til að læra meira um þessa einingu, smelltu hér.instructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-Right-Speed-Controller-mynd-2

Skref 3: Tvöfaldur viðskipta
Frá fyrri útreikningum hefur þú þegar vitað hvaða aðgerð þarf fyrir hvern mótor. Hins vegar eru útreikningarnir gerðir með því að nota táknað tvíundir. Tilgangurinn með þessari einingu er að umbreyta þessum merktu gildum í gildi sem hægt er að lesa af PWM rafallnum, sem eru stefnu (annaðhvort réttsælis eða rangsælis) og hraða (á bilinu 0 til 255). Einnig, þar sem endurgjöf frá mótornum er mæld í tvíundir án formerkis, þarf aðra einingu til að umbreyta ómerktu gildunum (stefnu og hraða) í táknað gildi sem hægt er að reikna út með villureikningseiningunni. Til að læra meira um þessa einingu, smelltu hér.

Skref 4: Fjarvera ljósgjafa
Þú hefur búið til vélmenni sem hreyfist til að leita ljóss þegar vélmenni greinir ljós. En hvað gerist þegar vélmennið skynjar ekki ljós? Tilgangurinn með þessari einingu er að segja til um hvað á að gera þegar slíkt ástand er til staðar.

Auðveldasta leiðin til og ljósgjafa til að leita er að vélmennið snúist á sínum stað. Eftir að hafa snúist í ákveðinn fjölda sekúndna, ef vélmennið hefur enn ekki fundið ljósgjafa, viltu að vélmennið hætti að hreyfa sig, til að spara orku. Eftir annan ákveðinn fjölda sekúndna ætti vélmennið að snúast á sinn stað aftur til að leita ljóssins. Til að læra meira um þessa einingu, smelltu hér.

Skref 5: Hvernig það virkar
Þú getur vísað til myndarinnar hér að ofan fyrir þessa skýringu. Eins og getið er um í upphafi þessarar leiðbeiningar, þarftu inntak „stærð“ og „staða“ frá þröskuldsdeildinni. Til að ganga úr skugga um að þessi aðföng væru gild (tdample, þegar þú færð stærð = 0, stærð er sannarlega núll vegna þess að myndavélin skynjar ekki ljós, og ekki vegna þess að myndavélin var enn að frumstilla) þú þarft líka einhvers konar vísir, sem við köllum „READY“. Þessi gögn verða unnin af stjórninni (Ctrl. vhd) til að ákvarða markhraða hvers mótor (9 bitar, undirritaður).

Fyrir stöðugri framleiðsla á mótornum viltu nota endurgjöf í lokuðu lykkjukerfi. Þetta krefst inntaks"stefnu" og "hraða" hvers mótors frá mótorhraðamælingardeild. Þar sem þú vilt taka þessi inntak með í útreikninga þína, verður þú að umbreyta þessum ómerktu gildum í 9-bita tvíundir með formerkjum. Þetta er gert með því að óundirritaður í tvíundarbreytir (US2S.vhd).

Það sem villureikningurinn (villa. vhd) gerir er að draga mældan hraða frá markhraðanum til að ákvarða virknina fyrir hvern mótor. Þetta þýðir að þegar báðir hafa sama gildi verður frádrátturinn núll og mótorinn hreyfist eingöngu á skriðþunga sínum. Þú getur líka bætt við margföldunarstuðli svo vélmennið gæti náð markmiðshraðanum hraðar.

Þar sem mótorstýringin þarf hraða og stefnu hvers mótors, verður þú að þýða táknuð gildi aðgerðarinnar í tvö aðskilin ómerkt gildi: hraða (1 bita) og stefnu (8 bita). Þetta er gert með tvíundirbreyti (S2US.vhd) með tákni til ómerkts og mun verða inntak í mótorstýringardeild.

Við bættum líka við einingu til að ákvarða hvað á að gera þegar ljós greinist ekki (enginn ljósteljari. Bhd). Þar sem þessi eining er í grundvallaratriðum teljari, mun hún telja hversu lengi vélmennið þarf annað hvort að snúast eða vera á sínum stað. Þetta mun tryggja að vélmennið „sjái“ umhverfi sitt frekar en bara það sem er fyrir framan það og sparar rafhlöðuna þegar enginn ljósgjafi er raunverulega tiltækur.instructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-Right-Speed-Controller-mynd-3

Skref 6: Sameina Files
Til að sameina files, þú þarft að tengja merki frá hverri einingu. Til að gera það þarftu að búa til nýja efri stigseiningu file. Settu inn og úttak fyrri eininga inn sem íhluti, bættu við merkjum fyrir tengingarnar og úthlutaðu hverri tengi við samsvarandi par. Þú getur vísað til tenginganna á myndinni hér að ofan og skoðað kóðann hér.instructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-Right-Speed-Controller-mynd-4

Skref 7: Prófaðu það
Eftir að þú hefur lokið við allan kóðann þarftu að vita hvort kóðinn þinn virkar áður en þú hleður honum upp á borðið, sérstaklega þar sem hlutar kóðans gætu verið gerðir af mismunandi fólki. Þetta krefst prófunarbekks, þar sem þú munt setja inn dummy gildi og sjá hvort kóðinn hegðar sér eins og við viljum að hann hagi sér. Þú getur hvílt þig, byrjaðu á því að prófa hverja einingu og ef þær virka allar rétt geturðu síðan prófað aðaleininguna.

Skref 8: Prófaðu það á vélbúnaðinum
Eftir að kóðinn þinn hefur verið prófaður á tölvunni þinni geturðu prófað kóðann á raunverulegum vélbúnaði. Þú verður að setja þvingunina file á Vivado (.xdc file fyrir BASYS 3) til að stjórna hvaða inntak og úttak fara í hvaða tengi.

MIKILVÆGT Ábending: Við lærðum á erfiðan hátt að rafmagnsíhlutir gætu haft hámarksgildi straums eða rúmmálstages. Vertu viss um að vísa til gagnablaðsins fyrir gildin. Fyrir PMOD HB5, vertu viss um að stilla voltage frá aflgjafanum við 12 volt (þar sem þetta er nauðsynleg binditage fyrir mótorinn), og straumurinn eins lítill og þarf til að mótorinn hreyfast.

Skref 9: Sameina það með öðrum hlutum
Ef fyrri skrefin heppnuðust skaltu sameina kóðann við hina hópana til að loka kóðanum verði hlaðið inn í vélmennið. Þá, voila! Þú hefur tekist að búa til ljósleitandi vélmenni.

Skref 10: Framlagsaðilar
Frá vinstri til hægri:

  • Antonius Gregorius Deaven Rivaldi
  • Felix Wiguna
  • Nicholas Sanjaya
  • Richard Medyantoinstructables-VHDL-Motor-Speed-Control-Decide-Stirection-and-Speed-Left-and-Right-Speed-Controller-mynd-6

Mjög flott: VHDL mótorhraðastýring: Ákveða stefnu og hraða, vinstri og hægri hraðastýringu: Page 6
Þakka þér fyrir afturviewing! Þetta verkefni er í raun aðeins einn hluti af bekkjarverkefni (Light Seeking Robot með BASYS 3 borði og OV7670 myndavél), svo ég mun bæta hlekknum við kennsluefni bekkjarins fljótlega!

Æðislegt: Ég hlakka til að sjá allt sett saman.

Skjöl / auðlindir

instructables VHDL Mótor hraðastýring Ákvarða stefnu og hraða vinstri og hægri hraðastýringu [pdfLeiðbeiningar
VHDL mótorhraðastýring ákvarða stefnu og hraða vinstri og hægri hraðastýringu, VHDL mótorhraða, stjórna ákvörðun um stefnu og hraða vinstri og hægri hraðastýringu

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *