Saturday, April 21, 2012

Robotics ගැන පුංචි හැඳින්වීමක්

මුලින්ම කියන්නම් මේ බ්ලොග් එක පටන්ගත්ත හේතුව. මම රොබොටික්ස් කියන්නෙ මොකක්ද කියලවත් දැනගත්තෙ මීට මාස අටකට නවයකට උඩදි. ඒත් යාළුවො කට්ටියක් එක්ක තරඟ වගයක් ගැන දැනගන්න ලැබිල ඒවට සහභාගී වෙන්න. අපිට උදව් කරන්න ගොඩක් අය හිටිය. ඒත් සමහර දේවල් ඉගෙනගන්න යද්දි අපිට ඒව කරගන්න බැරි වෙච්ච වෙලාවල් තියනව. අපි නොදැන හිටිය සමහර කරුණු නිසා නැගිටින්න බැරි විදියට වැටුණු අවස්ථා පවා තියනව. ඒ දේ තව කෙනෙකුට වෙන්න නොදෙන එක තමයි මූලිකම අරමුණ. ඒත් එක්කම රොබොටික්ස් වලට ආස අයට මුල ඉඳන්ම ලිපි පෙලක් ලියන්න.

රොබොටික්ස් කියන්නෙ මොකක්ද කියල සරලවම කීවොත් (අපි තේරුම් ගත්ත විදියට) බාහිර පරිසරයෙන් ලැබෙන සංවේදන, දුරස්ථ පාලකයකින් වගේ ලැබෙන උපදෙස් වගේ දේවල් වලට අනුව තීරණ අරන් මොකක් හරි කාර්යක් ඉටු කරන එක. උදාහරණයකට ගත්තොත් සෙල්ලම් කාර් එකක් තියනව. ඒක ඉස්සරහට යද්දි මොකක් හරි බාධකයක් තියනවනම් බාධකය මග ඇරගෙන යනව.
උඩ තියන පිංතූරයෙ තියන විදියට කාර් එක(එහෙම හිතන්න :P) ඉස්සරහට යනව. වම් පැත්තෙ බාධකයක් තියනව. දකුණු පැත්තට හරවගෙන යනව. මේ දේ කරන්න මොකක් හරි සංවේදකයකින් සංවේදනයක් ලැබෙන්න ඕනෙ බාධකයක් තියනවද, තියෙන්නෙ මෙන පැත්තෙද කියල අඳුනගන්න. ඊට පස්සෙ ලැබෙන සංවේදනයට අනුව තීරණය කරන්න ඕනෙ ඉදිරියට යනවද? හරවනවද?ආපස්සට එනවද? නැත්නම් නවතිනවද කියල. මේ තීරණේ ගන්න එක්කො කාරෙකට හැකියාවක් තියෙන්න ඕනෙ එහෙම නැත්නම් සංවේදක වලින් ලැබෙන දත්ත කවුරු හරි කෙනෙක් ගාවට හරි නැතිනම් මොකක් හරි වෙන පරිපතයකට හරි සම්ප්‍රේශනය(transmit) කරල ඒ පරිපතය හරි පුද්ගලයා හරි ගන්න තීරණයකට අනුව කාර් එක දක්වන ප්‍රතිචාරය මොකක්ද කියල දුරස්ත පාලන(Remote controlling) ක්‍රමයකින් කාර් එකට දැනුම් දෙන්න ඕනෙ. 

මෙතනදි කරන්න තියන සරලම දේ කාර් එකටම මේ තීරණය ගැනීමේ හැකියාව ලබා දෙන එක. ඒක යාන්ත්‍රික ක්‍රමයක් වෙන්න පුළුවන් (ලීවර් ස්විච් දෙකක් දෙපැත්තෙ හයි කරල බාධකයක හැප්පුනාම හැප්පුන ලීවර ස්විච් එකට විරුද්ධ පැත්තෙ මෝටරය නතර කරවල වගේ). එහෙම නැත්නම් සංවේදක වලින් ලැබෙන දත්ත ඉලෙක්ට්‍රොනික් පරිපතයකට දීල ඒකෙන් තීරණ ගන්නත් පුළුවන්. ඉලෙක්ට්‍රොනික් පරිපතය උනත් ක්‍රම කීපයකට හදන්න පුළුවන්. 

බාධකයක් තියනවද නැද්ද කියල අඳුනගන්න සංවේදකයක් දාල(LED + LDR වගේ) ට්‍රාන්සිස්ටර් දෙකකින් වගේ බාධකය තියන පැත්තට විරුද්ධ පැත්තෙ මෝටරය නතර කරවල කරන්න පුළුවන්. ඒත් මේ ක්‍රමයෙ අවාසියකට තියෙන්නෙ ගොඩක් හොඳින් තීරණයක් ගන්න බැරි එක. ගොඩක් වෙලාවට පුළුවන් ඔප්ෂන් දෙකක්, තැනක් වගේ පොඩි ගානක්. 

ආයෙ පුළුවන් ලොජික් ගේට් තියන IC(7400 වගේ) පාවිච්චි කරල(ට්‍රාන්සිස්ටර් වලින්ම ලොජික් ගේට් හදාගන වැඩේ කරන්න පුළුවන් උනත් ඒක ටිකක් කරදරයි). මේ විදියට අපි කරන්නෙ මුලින්ම ඉන්පුට්, අවුට්පුට් වලට අදාලව වෙන්න ඕනෙ ලොජිකල් ඔපරේෂන් ටික එකින් එක බූලීන් ඇල්ජිබ්‍රා වලින් ලියාගන්න එක. ඊට පස්සෙ කානෝ මැප් පාවිච්චි කරල ඒව සිම්ප්ලිෆයි කරගන්නව. පස්සෙ කානෝ මැප් එකේ රිසල්ට් එකට ලොජික් ගේට් පාවිච්චි කරල සර්කිට් එක හදාගන්නව.මේ විදියට ටිකක් හොඳට තීරණ ගන්න පුළුවන් මුල් විදි වලට වඩා. වාසියකට තියෙන්නෙ ඉගෙනගන්න ලොඩක් ලේසියිමේ ක්‍රමය. අනික රොබෝ කෙනෙක් ඇතුලෙ තීරණ ගනිද්දි වෙන්නෙ මොකක්ද කියල හොඳ අවබෝධයක් එනව. අවාසිය තියෙන්නෙ IC ටිකක් වැඩි ප්‍රමාඛයක් පාවිච්චි කරන්න වෙන එක. ඒත් එක්කම සර්කිට් එක සංකීර්ණ වෙනව, ඉඩ යනව උනත් වැඩියි. අනික මොකක්හරි වෙනසක් කරන්න උනාම සර්කිට් එකේ වයරින් වෙනස් කරලම කරන්න ඕනෙ නිසා ටිකක් කරදරයි. 

 අනිත් ක්‍රමය තමයි මයික්‍රොකන්ට්‍රෝලරයක් හරි මයික්‍රොප්‍රොසෙසරයක් හරි පාවිච්චි කරන එක. මේ අතරින් ටිකක් ලොකු වැඩ වලට තමයි මයික්‍රොප්‍රොසෙසර් නම් පාවිච්චි කරන්නෙ. වේගය වගේ ගුණාංග මයික්‍රොක්ට්‍රෝලරයට වඩා මයික්‍රොප්‍රොසෙසරයක ගොඩක් වැඩියි. මයික්‍රොක්ට්‍රෝලරයක තියන වැදගත්ම ගුණාංගය තමයි අපිට ඕනෙ දේ කරගන්න ප්‍රෝග්‍රෑම්කරගන්න තියන හැකියාව. ඒත් එක්කම රැම් එකක්(ප්‍රෝග්‍රෑම් එකේ වේරියබල් තියාගන්න), Flash memory එකක්(ප්‍රෝග්‍රෑම් එක ගබඩා කරන්න), EEPROM memory එකක්(මැකෙන් නැතිව තියාගන්න ඕනෙ දත්ත තියාගන්න හරියට නිකං හාඩ් ඩික්ස් එකේ වගේ). ඉන්පුට් අවුට්පුට් දෙන්න ලබාගන්න පිටතට තියන පින් වලට අදාලව IO ports තියනව. අපිට තියෙන්නෙ ඕනෙ විදියට ඉන්පුට් ටික දීල අවුට්පුට් එක වෙන්න ඕනෙ කොහොමද කියල ප්‍රෝග්‍රෑම් එකක් ලියල මයික්‍රොක්ට්‍රෝලරයට බර්න් කරල දාන එක විතරයි (ඒකටත් කලින් විදියටම කානෝ මැප් අපිනම් ගහගන්නව සමහර වෙලාවට. එතකොට ප්‍රෝග්‍රෑම් එක වැඩිය සංකීර්ණ වෙන්නෙ නෑ.). මේ ක්‍රමයෙදි වාසි විදියට වයරින් වෙනස් කරන්නෙ නැතිව තීරණ ගන්න විදිය වෙනස් කරන්න පුළුවන් වීම, අඩු ඉඩක් අඩු ජව පරිභෝජනයක් තිබීම වගේ දේවල් හඳුන්වන්න පුළුවන්.

ඉදිරි ලිපි වලින් මයික්‍රොක්ට්‍රෝලර ප්‍රෝග්‍රෑම් කිරීම ගැනයි, සංවේදක පාවච්චිය වගේ දේවලුයි ගැන ලියන්න බලාපොරොත්තු වෙනව. ඒත් එක්කම ලොජික් ගේට් පාවිච්චි කරල සර්කිට් ඩිසයින් කරන එකත්. හැඳින්වීම වගේම පලවෙනි ලිපිය මෙතනින් නවත්නව. ඉදිරි ලිපි වලින් හමුවෙමු.

2 comments:

  1. නියමයි මචන්
    මේ වගේ මාතෘකාවක් ගැන සිංහලෙන් ලියැවුනු දේ ගොඩක් අඩුයි

    ReplyDelete
  2. නියමයි දිගටම ලියන්න.... (මේ word verifications තමයි කරදරේ)

    ReplyDelete