instructables VHDL Motor Speed Control Desisyon Direksyon ug Speed Left ug Right Speed Controller
NOTA: Kini nga panid usa ka bahin sa mas dako nga pagtukod. Palihog siguroha nga magsugod ka HERE, para masabtan nimo kung asa mohaom ang mosunod sulod sa mas dako nga proyekto
Tapos naview
Ang katulin sa motor ug pagkontrol sa direksyon mao ang usa sa duha ka nag-unang dibisyon sa robot nga photodetector, ang lain mao ang photodetector o light detector division. Samtang ang photodetector division naka-focus sa panan-aw sa robot, ang motor speed ug direction control division naka-focus sa lihok sa robot. Ang katulin sa motor ug datos sa proseso sa pagkontrol sa direksyon nga gihatag gikan sa dibisyon sa photodetector ug naghatag usa ka pisikal nga output sa porma sa paglihok sa motor.
Ang katuyoan niini nga dibisyon mao ang pagkontrolar sa katulin ug direksiyon sa wala ug tuo nga motor sa robot nga nangitag kahayag. Aron madesisyonan kini nga mga kantidad, kinahanglan nimo ang gidak-on ug posisyon sa suga nga nakuha sa camera ug giproseso pinaagi sa thresholding. Kinahanglan usab nimo ang gisukod nga katulin sa matag usa sa mga motor. Gikan niini nga mga input, mahimo nimong i-output ang kantidad nga PWM (Pulse-Width Modulation) alang sa matag usa sa mga motor.
Aron makab-ot kini, kinahanglan nimo nga buhaton kini nga mga VHDL modules (gisumpay usab sa ubos):
- Ang kontrol
- Ang pagkalkulo sa sayup
- Ang binary nga pagkakabig
- Ang pagkawala sa usa ka tinubdan sa kahayag
Mahimo nimong tan-awon ang VHDL code alang niini nga dibisyon dinhi.
Mga suplay
Girekomenda namon nga mag-code gamit ang ISE Design Suite 14.7 tungod kay mahimo usab kini gamiton sa pagsulay sa code sa VHDL. Bisan pa, aron ma-upload ang code sa BASYS 3, kinahanglan nimo nga i-install ang Vivado (ber. 2015.4 o 2016.4) ug isulat ang pagpugong sa .xdc extension.
VHDL Motor Speed Control: Desisyon sa Direksyon ug Speed, Wala ug Tuo nga Speed Controller: Pahina 1
LAKANG SA INSTRUKSYON
Lakang 1: Ang Pagkontrol
Aron masabtan kon unsaon pagkontrolar ang kinaiya sa robot nga nangitag kahayag, atong ipasabot ang gusto nga kinaiya sa robot kon makakita kinig tinubdan sa kahayag. Kini nga kinaiya makontrol sumala sa posisyon ug gidak-on sa tinubdan sa kahayag.
Ang algorithm nga gigamit susama sa usa ka RC robot controller, nga adunay usa ka lever nga mahimong iliko sa wala o tuo, ug laing lever nga mahimong ibalik sa unahan o paatras.
Aron mangita og kahayag, gusto nimo nga kini nga robot molihok sa usa ka tul-id nga linya kung ang posisyon sa tinubdan sa kahayag anaa sa atubangan sa robot. Aron mahimo kana, gusto nimo ang parehas nga tulin sa wala ug tuo nga mga motor. Kung ang suga nahimutang sa wala nga bahin sa robot, gusto nimo nga ang tuo nga motor molihok nga mas paspas kaysa sa wala nga motor aron ang robot makaliko sa wala padulong sa suga. Sa laing bahin, kung ang suga nahimutang sa tuo nga bahin sa robot, gusto nimo nga ang wala nga motor molihok nga mas paspas kaysa sa tuo nga motor aron ang robot makaliko sa tuo padulong sa suga. Kini susama sa wala nga lever sa usa ka RC controller, diin makontrol nimo kung gusto nimo ibalhin ang robot sa wala, tuo, o tul-id.
Dayon, gusto nimo nga moabante ang robot kon layo ang tinubdan sa kahayag (gamay nga tinubdan sa kahayag), o paatras kon duol ra kaayo ang nakitang tinubdan sa kahayag (dakong tinubdan sa kahayag). Gusto usab nimo nga kung mas layo ang robot gikan sa tinubdan sa kahayag, mas paspas ang paglihok sa robot. Kaamgid kini sa tuo nga lever sa usa ka RC controller, diin makontrol nimo kung gusto nimo nga magpadayon o paatras, ug kung unsa ka paspas ang gusto nimo nga molihok.
Mahimo nimong makuha ang usa ka pormula sa matematika alang sa katulin sa matag usa sa mga motor, ug gipili namon ang range sa tulin tali sa -255 hangtod 255. Ang negatibo nga kantidad nagpasabut nga ang motor moliko paatras, samtang ang usa ka positibo nga kantidad nagpasabut nga ang motor moliko sa unahan.
Mao kana ang sukaranan nga algorithm alang sa paglihok niini nga robot. Aron makakat-on pa bahin niini nga module, i-klik dinhi.
Lakang 2: Ang Error Calculation
Tungod kay naa na nimo ang katulin ug direksyon sa katuyoan alang sa mga motor, gusto usab nimo nga tagdon ang gisukod nga katulin ug direksyon sa mga motor. Kung nakab-ot na niini ang tumong sa tulin, gusto namon nga ang motor molihok lamang sa iyang momentum. Kung wala pa, gusto namon nga dugangan ang katulin sa motor. Sa Control theory, nailhan kini nga closed-loop feedback control system.
Aron makakat-on pa bahin niini nga module, i-klik dinhi.
Lakang 3: Ang Binary Conversion
Gikan sa nangaging mga kalkulasyon, nahibal-an na nimo ang aksyon nga gikinahanglan alang sa matag usa sa mga motor. Bisan pa, ang mga kalkulasyon gihimo gamit ang gipirmahan nga binary. Ang katuyoan niini nga modyul mao ang pag-convert niini nga mga gipirmahan nga mga bili ngadto sa usa ka bili nga mabasa sa PWM generator, nga mao ang direksyon (mao sa clockwise o counter-clockwise) ug ang gikusgon (gikan sa 0 ngadto sa 255). Usab, tungod kay ang feedback gikan sa motor gisukod sa unsigned binary, lain nga module ang gikinahanglan aron mabag-o ang wala mapirmahan nga mga kantidad (direksyon ug katulin) ngadto sa usa ka pinirmahan nga bili nga mahimong kalkulado sa module sa pagkalkula sa sayup. Aron makakat-on pa bahin niini nga module, i-klik dinhi.
Lakang 4: Ang Kawala sa Tinubdan sa Kahayag
Naghimo ka usa ka robot nga molihok aron mangita og kahayag kung ang kahayag makit-an sa robot. Apan unsa ang mahitabo kung ang robot dili makamatikod sa kahayag? Ang katuyoan niini nga modyul mao ang pagdiktar kung unsa ang buhaton kung adunay ingon nga kahimtang.
Ang pinakasayon nga paagi ug usa ka tinubdan sa kahayag nga pangitaon mao ang pag-rotate sa robot sa lugar. Human sa pagtuyok sa usa ka set nga gidaghanon sa mga segundos, kung ang robot wala gihapon makakita og kahayag nga tinubdan, gusto nimo nga ang robot mohunong sa paglihok, aron makadaginot sa kuryente. Human sa laing set nga gidaghanon sa mga segundo, ang robot kinahanglang motuyok pag-usab sa dapit aron mangita sa kahayag. Aron makakat-on pa bahin niini nga module, i-klik dinhi.
Lakang 5: Giunsa Kini Pagtrabaho
Mahimo nimong i-refer ang litrato sa ibabaw alang niini nga katin-awan. Sama sa gihisgutan sa pagsugod niini nga pagtudlo, kinahanglan nimo ang mga input nga "gidak-on" ug "posisyon" gikan sa thresholding division. Aron masiguro nga kini nga mga input balido (alang sa example, kung makadawat ka og gidak-on = 0, ang gidak-on tinuod nga zero tungod kay ang camera dili makamatikod sa kahayag, ug dili tungod kay ang camera nag-initialize pa) magkinahanglan ka usab og usa ka matang sa indicator, nga gitawag nato nga "ANDAM". Kini nga mga datos iproseso sa kontrol (Ctrl. vhd) aron mahibal-an ang katulin sa tumong sa matag motor (9 bits, gipirmahan).
Para sa mas lig-on nga output sa motor, gusto nimong gamiton ang feedback sa closed-loop system. Nagkinahanglan kini sa mga input "direksyon" ug "speed" sa matag motor gikan sa motor speed measurement division. Tungod kay gusto nimo nga ilakip kini nga mga input sa imong mga kalkulasyon, kinahanglan nimo nga i-convert kini nga mga wala’y pirma nga kantidad sa 9-bit nga gipirmahan nga binary. Gihimo kini sa wala mapirmahan sa gipirmahan nga binary converter (US2S.vhd).
Ang gibuhat sa kalkulasyon sa sayup (error. vhd) mao ang pag-ubos sa gisukod nga katulin gikan sa katulin sa tumong aron mahibal-an ang aksyon sa matag motor. Kini nagpasabot nga kung ang duha adunay parehas nga kantidad, ang pagkunhod mahimong zero ug ang motor molihok lamang sa iyang momentum. Mahimo ka usab makadugang usa ka hinungdan sa pagpadaghan aron ang robot makaabut sa katulin sa katuyoan nga mas paspas.
Tungod kay ang motor controller nagkinahanglan sa katulin ug direksyon sa matag motor, kinahanglan nimo nga hubaron ang gipirmahan nga mga bili sa aksyon ngadto sa duha ka managlahing unsigned values: speed (1 bit) ug direksyon (8 bits). Gihimo kini sa signed-to-unsigned binary converter (S2US.vhd), ug mahimong mga input sa motor control division.
Nagdugang usab kami og module aron mahibal-an kung unsa ang buhaton kung dili makit-an ang kahayag (walay light counter. Bhd). Tungod kay kini nga module usa ka counter, kini mag-ihap kung unsa kadugay ang robot kinahanglan nga magtuyok o magpabilin sa lugar. Kini magsiguro nga ang robot "makakita" sa iyang palibot imbes nga kung unsa ang naa sa atubangan niini, ug makatipig sa gahum sa baterya kung wala’y tinuod nga gigikanan sa suga.
Lakang 6: Paghiusa sa Files
Aron makombinar ang files, kinahanglan nimo nga ikonektar ang mga signal gikan sa matag module. Aron mahimo kana, kinahanglan nimo nga maghimo usa ka bag-ong module sa taas nga lebel file. Isulod ang mga input ug output sa miaging modules isip mga component, idugang ang mga signal para sa mga koneksyon ug i-assign ang matag port sa katugbang nga pares. Mahimo nimong i-refer ang mga koneksyon sa ilustrasyon sa ibabaw, ug tan-awa ang code dinhi.
Lakang 7: Sulayi Kini
Human nimo mahuman ang tibuok code, kinahanglan nimong masayran kung mugana ba ang imong code sa dili pa nimo kini i-upload sa board, ilabi na kay ang mga bahin sa code mahimong gihimo sa lain-laing mga tawo. Nagkinahanglan kini og testbench, diin imong i-input ang mga dummy value ug tan-awon kung ang code naggawi sa paagi nga gusto namon nga kini molihok. Makapahuway ka magsugod pinaagi sa pagsulay sa matag module, ug kung sila tanan nagtrabaho sa husto, mahimo nimong sulayan ang top-level nga module.
Lakang 8: Sulayi Kini sa Hardware
Human masulayan ang imong code sa imong kompyuter, mahimo nimong sulayan ang code sa tinuod nga hardware. Kinahanglan nimong buhaton ang pagpugong file sa Vivado (.xdc file para sa BASYS 3) aron makontrol kung unsang mga input ug output ang moadto kung unsang mga pantalan.
IMPORTANTE NGA TIP: Natun-an namon ang lisud nga paagi nga ang mga sangkap sa kuryente mahimong adunay labing kataas nga kantidad sa karon o voltages. Siguruha nga mag-refer sa datasheet alang sa mga kantidad. Para sa PMOD HB5, siguruha nga ibutang ang voltage gikan sa tinubdan sa kuryente sa 12 volts (tungod kay kini ang gikinahanglan nga voltage alang sa motor), ug ang kasamtangan nga ingon ka gamay nga gikinahanglan alang sa motor sa paglihok.
Lakang 9: I-combine Kini sa Ubang mga Bahin
Kung malampuson ang nangaging mga lakang, isagol ang code sa ubang mga grupo para sa katapusan nga code nga ma-upload sa robot. Unya, voila! Malampuson ka nga nakahimo og robot nga nangita og kahayag.
Lakang 10: Mga kontribyutor
Gikan sa wala ngadto sa tuo:
- Antonius Gregorius Deaven Rivaldi
- Felix Wiguna
- Nicholas Sanjaya
- Richard Medyanto
Nindot kaayo: VHDL Motor Speed Control: Desisyon sa Direksyon ug Speed, Wala ug Tuo nga Speed Controller: Pahina 6
Salamat sa pag-usabviewing! Kini nga proyekto usa ra ka bahin sa usa ka proyekto sa klase (Light Seeking Robot nga adunay BASYS 3 board ug OV7670 camera), mao nga akong idugang ang link sa pagtudlo sa klase sa dili madugay!
Nindot: Naghinamhinam ko nga makita ang tanan nga magkahiusa.
Mga Dokumento / Mga Kapanguhaan
![]() |
instructables VHDL Motor Speed Control Desisyon Direksyon ug Speed Left ug Right Speed Controller [pdf] Mga instruksiyon VHDL Motor Speed Control Desisyon Direksyon ug Speed Wala ug Tuo Speed Controller, VHDL Motor Speed, Control Desisyon Direksyon ug Speed Left ug Right Speed Controller |