ការត្រួតពិនិត្យល្បឿនម៉ូតូ VHDL ដែលអាចណែនាំបាន សម្រេចចិត្តទិសដៅ និងល្បឿនឆ្វេង និងស្តាំ ឧបករណ៍បញ្ជាល្បឿន
ចំណាំ៖ ទំព័រនេះគឺជាផ្នែកមួយនៃការបង្កើតធំជាងនេះ។ សូមប្រាកដថាអ្នកចាប់ផ្តើមនៅទីនេះ ដូច្នេះអ្នកយល់ថាតើចំណុចខាងក្រោមសមនឹងកន្លែងណាក្នុងគម្រោងធំជាងនេះ។
ជាងview
ល្បឿនម៉ូទ័រ និងការគ្រប់គ្រងទិសដៅ គឺជាផ្នែកមួយក្នុងចំនោមផ្នែកសំខាន់ពីរនៅក្នុងមនុស្សយន្ត photodetector ហើយមួយទៀតគឺផ្នែក photodetector ឬ light detector ។ ខណៈពេលដែលផ្នែក photodetector ផ្តោតលើចក្ខុវិស័យរបស់មនុស្សយន្តនោះ ផ្នែកគ្រប់គ្រងល្បឿនម៉ូទ័រ និងទិសដៅផ្តោតលើចលនារបស់មនុស្សយន្ត។ ទិន្នន័យដំណើរការត្រួតពិនិត្យល្បឿនម៉ូទ័រ និងទិសដៅដែលបានផ្តល់ឱ្យពីផ្នែក photodetector និងផ្តល់នូវលទ្ធផលរាងកាយក្នុងទម្រង់នៃចលនាម៉ូទ័រ។
គោលបំណងនៃការបែងចែកនេះគឺដើម្បីគ្រប់គ្រងល្បឿន និងទិសដៅនៃម៉ូទ័រខាងឆ្វេង និងខាងស្តាំរបស់មនុស្សយន្តដែលស្វែងរកពន្លឺ។ ដើម្បីសម្រេចតម្លៃទាំងនេះ អ្នកនឹងត្រូវការទំហំ និងទីតាំងនៃពន្លឺដែលត្រូវបានថតដោយកាមេរ៉ា ហើយដំណើរការដោយកម្រិតពន្លឺ។ អ្នកក៏នឹងត្រូវការល្បឿនវាស់នៅលើម៉ូទ័រនីមួយៗផងដែរ។ ពីធាតុបញ្ចូលទាំងនេះ អ្នកនឹងអាចបញ្ចេញតម្លៃ PWM (Pulse-Width Modulation) សម្រាប់ម៉ូទ័រនីមួយៗ។
ដើម្បីសម្រេចបាននូវចំណុចនេះ អ្នកនឹងត្រូវបង្កើតម៉ូឌុល VHDL ទាំងនេះ (មានតំណភ្ជាប់ខាងក្រោមផងដែរ)៖
- ការត្រួតពិនិត្យ
- ការគណនាកំហុស
- ការបម្លែងប្រព័ន្ធគោលពីរ
- អវត្ដមាននៃប្រភពពន្លឺ
អ្នកអាចមើលកូដ VHDL សម្រាប់ផ្នែកនេះនៅទីនេះ។
ការផ្គត់ផ្គង់
យើងសូមណែនាំឱ្យសរសេរកូដជាមួយ ISE Design Suite 14.7 ព្រោះវាក៏អាចប្រើដើម្បីសាកល្បងកូដនៅក្នុង VHDL ផងដែរ។ ទោះយ៉ាងណាក៏ដោយ ដើម្បីបញ្ចូលកូដទៅក្នុង BASYS 3 អ្នកនឹងត្រូវដំឡើង Vivado (ver. 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 ប៊ីត។ នេះត្រូវបានធ្វើដោយ unsigned ទៅកម្មវិធីបម្លែងប្រព័ន្ធគោលពីរដែលបានចុះហត្ថលេខា (US2S.vhd) ។
អ្វីដែលការគណនាកំហុស (កំហុស។ vhd) ធ្វើគឺដកល្បឿនវាស់ពីល្បឿនគោលដៅដើម្បីកំណត់សកម្មភាពសម្រាប់ម៉ូទ័រនីមួយៗ។ នេះមានន័យថានៅពេលដែលទាំងពីរមានតម្លៃដូចគ្នា ដកនឹងក្លាយទៅជាសូន្យ ហើយម៉ូទ័រនឹងផ្លាស់ទីតែលើសន្ទុះរបស់វា។ អ្នកក៏អាចបន្ថែមកត្តានៃការគុណ ដូច្នេះមនុស្សយន្តអាចឈានដល់ល្បឿនគោលដៅលឿនជាងមុន។
ដោយសារឧបករណ៍បញ្ជាម៉ូទ័រត្រូវការល្បឿន និងទិសដៅនៃម៉ូទ័រនីមួយៗ អ្នកត្រូវបកប្រែតម្លៃដែលបានចុះហត្ថលេខានៃសកម្មភាពទៅជាតម្លៃដែលមិនបានចុះហត្ថលេខាដាច់ដោយឡែកពីរ៖ ល្បឿន (1 ប៊ីត) និងទិសដៅ (8 ប៊ីត) ។ នេះត្រូវបានធ្វើដោយកម្មវិធីបម្លែងប្រព័ន្ធគោលពីរដែលបានចុះហត្ថលេខាទៅមិនចុះហត្ថលេខា (S2US.vhd) ហើយនឹងក្លាយជាធាតុបញ្ចូលទៅក្នុងផ្នែកគ្រប់គ្រងម៉ូទ័រ។
យើងក៏បានបន្ថែមម៉ូឌុលមួយដើម្បីកំណត់នូវអ្វីដែលត្រូវធ្វើនៅពេលដែលពន្លឺមិនត្រូវបានរកឃើញ (មិនមានឧបករណ៍រាប់ពន្លឺ។ Bhd) ។ ដោយសារម៉ូឌុលនេះជាមូលដ្ឋានរាប់ វានឹងរាប់រយៈពេលដែលមនុស្សយន្តត្រូវការបង្វិល ឬនៅនឹងកន្លែង។ នេះនឹងធានាថាមនុស្សយន្ត "មើលឃើញ" បរិយាកាសរបស់វា ជាជាងអ្វីដែលនៅពីមុខវា ហើយរក្សាថាមពលថ្ម នៅពេលដែលមិនមានប្រភពពន្លឺពិតប្រាកដ។
ជំហានទី 6: ផ្សំ Files
ដើម្បីបញ្ចូលគ្នា files អ្នកត្រូវភ្ជាប់សញ្ញាពីម៉ូឌុលនីមួយៗ។ ដើម្បីធ្វើដូច្នេះ អ្នកត្រូវតែបង្កើតម៉ូឌុលកម្រិតកំពូលថ្មីមួយ file. បញ្ចូលធាតុចូល និងលទ្ធផលរបស់ម៉ូឌុលមុនជាសមាសធាតុ បន្ថែមសញ្ញាសម្រាប់ការតភ្ជាប់ និងកំណត់ច្រកនីមួយៗទៅគូដែលត្រូវគ្នា។ អ្នកអាចយោងទៅលើការតភ្ជាប់នៅលើរូបភាពខាងលើ ហើយមើលកូដនៅទីនេះ។
ជំហានទី 7: សាកល្បងវា។
បន្ទាប់ពីអ្នកបានបញ្ចប់លេខកូដទាំងមូលហើយ អ្នកត្រូវដឹងថាតើលេខកូដរបស់អ្នកដំណើរការឬអត់ មុនពេលអ្នកបង្ហោះវាទៅក្នុងក្តារ ជាពិសេសដោយសារផ្នែកខ្លះនៃកូដអាចត្រូវបានធ្វើឡើងដោយមនុស្សផ្សេងគ្នា។ នេះតម្រូវឱ្យមាន testbench ដែលអ្នកនឹងបញ្ចូលតម្លៃអត់ចេះសោះ ហើយមើលថាតើកូដមានឥរិយាបទដូចដែលយើងចង់ឱ្យវាប្រព្រឹត្តដែរឬទេ។ អ្នកអាចចាប់ផ្តើមសម្រាកដោយសាកល្បងម៉ូឌុលនីមួយៗ ហើយប្រសិនបើពួកវាទាំងអស់ដំណើរការបានត្រឹមត្រូវនោះ អ្នកអាចសាកល្បងម៉ូឌុលកម្រិតកំពូលបាន។
ជំហានទី 8: សាកល្បងវានៅលើ Hardware
បន្ទាប់ពីលេខកូដរបស់អ្នកត្រូវបានសាកល្បងនៅលើកុំព្យូទ័ររបស់អ្នក អ្នកអាចសាកល្បងកូដនៅលើ hardware ពិតប្រាកដ។ អ្នកត្រូវតែបង្កើតឧបសគ្គ file នៅលើ Vivado (.xdc file សម្រាប់ BASYS 3) ដើម្បីគ្រប់គ្រងថាតើធាតុចូល និងទិន្នផលទៅច្រកណា។
ជំនួយសំខាន់: យើងបានរៀនពីវិធីពិបាកដែលសមាសធាតុអគ្គិសនីអាចមានតម្លៃអតិបរមានៃចរន្ត ឬវ៉ុលtages. ត្រូវប្រាកដថាយោងទៅតារាងទិន្នន័យសម្រាប់តម្លៃ។ សម្រាប់ PMOD HB5 ត្រូវប្រាកដថាកំណត់វ៉ុលtage ពីប្រភពថាមពលនៅ 12 វ៉ុល (នេះជាវ៉ុលដែលត្រូវការtage សម្រាប់ម៉ូទ័រ) និងចរន្តតិចតួចតាមតម្រូវការសម្រាប់ម៉ូទ័រផ្លាស់ទី។
ជំហានទី 9: ផ្សំវាជាមួយផ្នែកផ្សេងទៀត។
ប្រសិនបើជំហានមុនបានជោគជ័យ សូមបញ្ចូលកូដជាមួយក្រុមផ្សេងទៀត ដើម្បីបញ្ចូលកូដចុងក្រោយទៅក្នុងមនុស្សយន្ត។ អីឡូវ! អ្នកបានបង្កើតមនុស្សយន្តស្វែងរកពន្លឺដោយជោគជ័យ។
ជំហានទី 10: អ្នករួមចំណែក
ពីឆ្វេងទៅស្តាំ៖
- លោក Antonius Gregorius Deaven Rivaldi
- Felix Wiguna
- Nicholas Sanjaya
- លោក Richard Medyanto
ល្អណាស់: ការគ្រប់គ្រងល្បឿនម៉ូតូ VHDL៖ សម្រេចចិត្តទិសដៅ និងល្បឿន ការគ្រប់គ្រងល្បឿនឆ្វេង និងស្តាំ៖ ទំព័រ 6
សូមអរគុណសម្រាប់ការឡើងវិញviewing! គម្រោងនេះគឺពិតជាផ្នែកមួយនៃគម្រោងថ្នាក់ (Light Seeking Robot with BASYS 3 board និង OV7670 camera) ដូច្នេះខ្ញុំនឹងបន្ថែមតំណភ្ជាប់ទៅថ្នាក់រៀនក្នុងពេលឆាប់ៗនេះ!
អស្ចារ្យ៖ ខ្ញុំទន្ទឹងរង់ចាំមើលអ្វីៗទាំងអស់រួមគ្នា។
ឯកសារ/ធនធាន
![]() |
ការត្រួតពិនិត្យល្បឿនម៉ូតូ VHDL ដែលអាចណែនាំបាន សម្រេចចិត្តទិសដៅ និងល្បឿនឆ្វេង និងស្តាំ ឧបករណ៍បញ្ជាល្បឿន [pdf] សេចក្តីណែនាំ ការត្រួតពិនិត្យល្បឿនម៉ូតូ VHDL សម្រេចចិត្តទិសដៅ និងល្បឿន ឆ្វេង និងស្តាំ ឧបករណ៍បញ្ជាល្បឿន VHDL ម៉ូទ័រ គ្រប់គ្រងការសម្រេចទិសដៅ និងល្បឿនឧបករណ៍បញ្ជាល្បឿនឆ្វេង និងស្តាំ |