instructables-logo

instructables VHDL motora ātruma kontrole nosaka virzienu un ātrumu kreisā un labā ātruma regulators

instructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Left-and-Right-Speed-Controller-PRODUCT

PIEZĪME: Šī lapa ir daļa no lielākas versijas. Lūdzu, sāciet ŠEIT, lai jūs saprastu, kur tālāk norādītais iekļaujas plašākā projektā

Beigāsview

Motora ātruma un virziena kontrole ir viena no divām galvenajām nodaļām fotodetektora robotā, otrs ir fotodetektoru jeb gaismas detektoru nodaļa. Kamēr fotodetektoru nodaļa koncentrējas uz robota redzi, motora ātruma un virziena kontroles nodaļa koncentrējas uz robota kustību. Motora ātruma un virziena kontrole apstrādā datus, kas iegūti no fotodetektora nodaļas, un dod fizisku izvadi motora kustības veidā.

Šīs nodaļas mērķis ir kontrolēt gaismas meklētāja robota gan kreisā, gan labā motora ātrumu un virzienu. Lai noteiktu šīs vērtības, jums būs nepieciešams kameras uzņemtās gaismas izmērs un pozīcija, kas apstrādāta ar slieksni. Jums būs nepieciešams arī izmērītais ātrums katram motoram. No šīm ieejām varēsiet izvadīt PWM (impulsa platuma modulācijas) vērtību katram motoram.

Lai to panāktu, jums būs jāizveido šie VHDL moduļi (saite arī zemāk):

  1. Kontrole
  2. Kļūdas aprēķins
  3. Binārā konvertēšana
  4.  Gaismas avota trūkums

Šīs nodaļas VHDL kodu varat apskatīt šeit.

Izejmateriāli
Mēs iesakām kodēt ar ISE Design Suite 14.7, jo to var izmantot arī koda testēšanai VHDL. Tomēr, lai augšupielādētu kodu sistēmā BASYS 3, jums būs jāinstalē Vivado (versija 2015.4 vai 2016.4) un jāieraksta ierobežojums ar paplašinājumu .xdc.instructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Kreisais-un-Labais-ātruma kontrolieris-1.att.

VHDL motora ātruma kontrole: virziena un ātruma noteikšana, kreisais un labais ātruma regulators: 1.

INSTRUKCIJAS SOLIS

1. darbība: vadība
Lai saprastu, kā kontrolēt gaismas meklētāja robota uzvedību, mēs izskaidrosim vēlamo robota uzvedību, ieraugot gaismas avotu. Šī darbība tiks kontrolēta atbilstoši gaismas avota novietojumam un izmēram.instructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Left-and-Right-Speed-Controller-

Izmantotais algoritms ir analogs RC robota kontrolierim ar vienu sviru, ko var pagriezt pa kreisi vai pa labi, un otru sviru, kuru var pagriezt uz priekšu vai atpakaļ.

Lai meklētu gaismu, šim robotam jāpārvietojas taisnā līnijā, ja gaismas avota pozīcija atrodas tieši robota priekšā. Lai to izdarītu, jums ir nepieciešams vienāds ātrums gan kreisajam, gan labajam motoram. Ja gaisma atrodas robota kreisajā pusē, vēlaties, lai labais motors kustētos ātrāk nekā kreisais, lai robots varētu pagriezties pa kreisi pret gaismu. Un otrādi, ja gaisma atrodas robota labajā pusē, jūs vēlaties, lai kreisais motors kustētos ātrāk nekā labais motors, lai robots varētu pagriezties pa labi pret gaismu. Tas ir līdzīgs RC kontrollera kreisajai svirai, kur varat kontrolēt, vai vēlaties pārvietot robotu pa kreisi, pa labi vai taisni.

Pēc tam vēlaties, lai robots virzītos uz priekšu, ja gaismas avots atrodas tālu (mazs gaismas avots), vai pārvietotos atpakaļ, ja noteiktais gaismas avots ir pārāk tuvu (liels gaismas avots). Jūs arī vēlaties, lai jo tālāk robots atrodas no gaismas avota, jo ātrāk robots pārvietojas. Tas ir līdzīgs RC kontrollera labās puses svirai, kurā varat kontrolēt, vai vēlaties virzīties uz priekšu vai atpakaļ un cik ātri vēlaties to pārvietot.

Pēc tam varat iegūt matemātisko formulu katra motora ātrumam, un mēs izvēlamies ātruma diapazonu no -255 līdz 255. Negatīvā vērtība nozīmē, ka motors griezīsies atpakaļ, bet pozitīva vērtība nozīmē, ka motors griezīsies uz priekšu.

Tas ir šī robota kustības pamata algoritms. Lai uzzinātu vairāk par šo moduli, noklikšķiniet šeit.

2. darbība: kļūdu aprēķins
Tā kā jums jau ir dzinēju mērķa ātrums un virziens, vēlaties ņemt vērā arī motoru izmērīto ātrumu un virzienu. Ja tas ir sasniedzis ātruma mērķi, mēs vēlamies, lai motors kustas tikai ar savu impulsu. Ja tā nav, mēs vēlamies motoram palielināt ātrumu. Vadības teorijā to sauc par slēgta cikla atgriezeniskās saites vadības sistēmu.

Lai uzzinātu vairāk par šo moduli, noklikšķiniet šeit.instructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Kreisais-un-Labais-ātruma kontrolieris-2.att.

3. solis: Binārā konvertēšana
No iepriekšējiem aprēķiniem jūs jau zinājāt, kādas darbības jāveic katram motoram. Tomēr aprēķini tiek veikti, izmantojot parakstītu bināru. Šī moduļa mērķis ir pārvērst šīs parakstītās vērtības vērtībās, kuras var nolasīt PWM ģenerators, kas ir virziens (pulksteņrādītāja virzienā vai pretēji pulksteņrādītāja virzienam) un ātrums (no 0 līdz 255). Turklāt, tā kā atgriezeniskā saite no motora tiek mērīta neparakstītā binārā veidā, ir nepieciešams vēl viens modulis, lai neparakstītās vērtības (virzienu un ātrumu) pārvērstu zīmētās vērtībās, ko var aprēķināt kļūdu aprēķina modulis. Lai uzzinātu vairāk par šo moduli, noklikšķiniet šeit.

4. solis: Gaismas avota neesamība
Jūs esat izveidojis robotu, kas pārvietojas, lai meklētu gaismu, kad robots uztver gaismu. Bet kas notiek, ja robots nekonstatē gaismu? Šī moduļa mērķis ir noteikt, kā rīkoties, ja pastāv šāds stāvoklis.

Vienkāršākais veids, kā meklēt gaismas avotu, ir robotam griezties vietā. Ja robots joprojām nav atradis gaismas avotu pēc rotācijas uz noteiktu sekunžu skaitu, jūs vēlaties, lai robots pārtrauktu kustību, lai taupītu enerģiju. Pēc cita iestatīta sekunžu skaita robotam atkal jāgriežas vietā, lai meklētu gaismu. Lai uzzinātu vairāk par šo moduli, noklikšķiniet šeit.

5. darbība. Kā tas darbojas
Lai iegūtu šo skaidrojumu, varat skatīt iepriekš redzamo attēlu. Kā minēts šīs pamācības sākumā, sliekšņa sadalījumā būs nepieciešami ievades dati “izmērs” un “pozīcija”. Lai pārliecinātos, ka šīs ievades ir derīgas (piemēram,ample, ja saņemat izmēru = 0, izmērs ir patiesi nulle, jo kamera nekonstatē gaismu, nevis tāpēc, ka kamera vēl inicializēja), jums būs nepieciešams arī sava veida indikators, ko mēs saucam par “READY”. Šos datus apstrādās vadība (Ctrl. vhd), lai noteiktu katra motora mērķa ātrumu (9 biti, parakstīts).

Lai nodrošinātu stabilāku motora izvadi, vēlaties izmantot atgriezenisko saiti slēgtā cikla sistēmā. Šim nolūkam ir jāievada katra motora “virziens” un “ātrums” no motora ātruma mērīšanas nodaļas. Tā kā jūs vēlaties iekļaut šīs ievades savos aprēķinos, jums būs jāpārvērš šīs neparakstītās vērtības 9 bitu binārā formātā. To veic neparakstītais uz parakstītais binārais pārveidotājs (US2S.vhd).

Kļūdas aprēķins (error. vhd) ir izmērītā ātruma atņemšana no mērķa ātruma, lai noteiktu katra motora darbību. Tas nozīmē, ka, ja abiem ir vienāda vērtība, atņemšana kļūst par nulli un motors pārvietosies tikai ar savu impulsu. Varat arī pievienot reizināšanas koeficientu, lai robots ātrāk sasniegtu mērķa ātrumu.

Tā kā motora kontrollerim ir nepieciešams katra motora ātrums un virziens, darbības ar zīmi vērtības ir jāpārvērš divās atsevišķās neparakstītās vērtībās: ātrums (1 bits) un virziens (8 biti). To veic binārais pārveidotājs ar parakstu uz neparakstītu (S2US.vhd), un tas kļūs par ievadi motora vadības nodaļai.

Mēs arī pievienojām moduli, lai noteiktu, kā rīkoties, ja gaisma netiek uztverta (nav gaismas skaitītāja. Bhd). Tā kā šis modulis būtībā ir skaitītājs, tas uzskaitīs, cik ilgi robotam ir jāgriežas vai jāpaliek vietā. Tas nodrošinās, ka robots “redz” savu vidi, nevis tikai to, kas atrodas tā priekšā, un taupīs akumulatora enerģiju, ja nav īsti pieejams neviens gaismas avots.instructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Kreisais-un-Labais-ātruma kontrolieris-3.att.

6. darbība: apvienojiet Files
Lai apvienotu files, jums ir jāsavieno signāli no katra moduļa. Lai to izdarītu, jums ir jāizveido jauns augstākā līmeņa modulis file. Ievietojiet iepriekšējo moduļu ieejas un izejas kā komponentus, pievienojiet signālus savienojumiem un piešķiriet katru portu attiecīgajam pārim. Varat atsaukties uz iepriekš redzamajā attēlā redzamajiem savienojumiem un apskatīt kodu šeit.instructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Kreisais-un-Labais-ātruma kontrolieris-4.att.

7. darbība: pārbaudiet to
Kad esat pabeidzis visu kodu, jums ir jāzina, vai kods darbojas, pirms to augšupielādējat dēlī, jo īpaši tāpēc, ka koda daļas var būt izveidojuši dažādi cilvēki. Tam nepieciešams testbends, kurā ievadīsit fiktīvas vērtības un redzēsit, vai kods darbojas tā, kā mēs to vēlamies. Varat sākt, pārbaudot katru moduli, un, ja tie visi darbojas pareizi, varat pārbaudīt augstākā līmeņa moduli.

8. darbība. Izmēģiniet to aparatūrā
Kad kods ir pārbaudīts datorā, varat pārbaudīt kodu reālajā aparatūrā. Jums ir jāievieš ierobežojums file vietnē Vivado (.xdc file BASYS 3), lai kontrolētu, kuras ieejas un izejas tiek nosūtītas uz kuriem portiem.

SVARĪGS PADOMS: Mēs uzzinājām, ka elektriskajiem komponentiem var būt maksimālā strāvas vai tilpuma vērtībatages. Noteikti skatiet vērtības datu lapā. PMOD HB5 noteikti iestatiet voltage no strāvas avota pie 12 voltiem (jo tas ir nepieciešamais tilpumstage motoram), un strāva tik maza, cik nepieciešams motora kustībai.

9. darbība: apvienojiet to ar citām detaļām
Ja iepriekšējās darbības bija veiksmīgas, apvienojiet kodu ar citām grupām, lai gala kods tiktu augšupielādēts robotā. Tad, voila! Jūs esat veiksmīgi izveidojis gaismas meklētāju robotu.

10. darbība. Līdzstrādnieki
No kreisās puses uz labo:

  • Antonijs Gregors Deavens Rivaldi
  • Fēlikss Viguna
  • Nikolass Sandžaja
  • Ričards Medjanoinstructables-VHDL-Motor-Speed-Control-Decide-Dirrection-and-Speed-Kreisais-un-Labais-ātruma kontrolieris-6.att.

Ļoti labi: VHDL motora ātruma kontrole: virziena un ātruma noteikšana, kreisais un labais ātruma regulators: 6.
Paldies par reviewing! Šis projekts faktiski ir tikai viena daļa no klases projekta (Gaismas meklētājs robots ar BASYS 3 plati un OV7670 kameru), tāpēc drīzumā pievienošu saiti uz klases pamācību!

Lieliski: Ar nepacietību gaidu, kad varēs redzēt visu kopā.

Dokumenti / Resursi

instructables VHDL motora ātruma kontrole nosaka virzienu un ātrumu kreisā un labā ātruma regulators [pdfNorādījumi
VHDL motora ātruma kontrole nosaka virzienu un ātrumu kreisais un labais ātruma regulators, VHDL motora ātruma regulators, regulē virzienu un ātrumu kreisā un labā ātruma regulators

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *