Microcontrollerဟာ memory/ timer/ input၊output ports/ clock frequency ေတြပါ၀င္ဖြဲ႔စည္းထားေသာ embedded system တစ္ခုျဖစ္ပါတယ္။ Microcontroller ေတြဟာ program ေရးသြင္းနုိင္ျပီး ယခုအခ်ိန္မွာ Automatic လုပ္ေဆာင္ခ်က္ေတြအေနနဲ႔ မ်ားစြာအသုံးျပဳေနပါျပီ။ အိမ္တစ္အိမ္အတြက္ ေရတင္ မီးအပိတ္အဖြင့္ တံခါးပိတ္ဖြင့္လုပ္ရန္အတြက္ပင္ ေထြေထြထူးထူးလုပ္ရန္မလုိအပ္ေတာ့ပဲ Microcontroller အသုံးျပဳ ပရုိဂရမ္ ေရးသြင္းထားျပီး ခ်ိန္ဆက္ရုံမွ်ျဖင့္ပင္ လူသားအေထာက္အကူျပဳအျဖစ္ မ်ားစြာအသုံးျပဳေနပါျပီ၊ ဒီဘက္နိုင္ငံေတြမွာ ေတာ့ဒီေလာက္ထိ တြင္တြင္က်ယ္က်ယ္ အသုံးမျပဳေသးပါဘူး။ Microcontroller ကို တစ္နည္းအားျဖင့္ a computer on a single chip လို႔ေခၚတယ္လုိ႔ေတာ့ၾကားဖူးပါတယ္။ Microcontroller ဟာ Microprocessor ကေန တိုးတက္ေျပာင္းလဲလာတာျဖစ္ပါတယ္။ ဒါဆို ကၽြန္ေတာ္သိသေလာက္ေလး Microcprocessor အေၾကာင္း အနည္းငယ္ေလာက္ထပ္ေျပာျပေပးမယ္ေနာ္ သိသေလာက္ေလးသာ ေျပာျပေပးထားတဲ့အတြက္ အမွားပါခဲ့ရင္ပဲ ျဖစ္ျဖစ္ လုိအပ္ခ်က္တစ္စုံတစ္ရာရွိခဲ့ပါကလဲ ခြင့္လႊတ္ေပးၾကပါရန္ ေတာင္းပန္အပ္ပါတယ္။ ကၽြန္ေတာ္သိေသာ Microprocessor ဟာ……. ကြန္ပ်ဴတာတစ္လုံးမွာ အဓိကအပို္င္းအျဖစ္ ပါ၀င္တဲ့ CPU (Central Processing Unit) အျဖစ္ နားလည္ထားပါတယ္။ Microprocessor ကို အျခားေသာ Computer ၏ အစိတ္အပိုင္းေတြျဖစ္တဲ့ Memory (RAM, ROM,Harddisk)ေတြ Input device/ Output device ေတြ႔နဲ႔ခ်ိန္ဆက္လိုက္ရင္ အေျခခံက်ေသာ ကြန္ပ်ဴတာ တစ္လုံးျဖစ္လာပါတယ္။ Computer ေတြ စတင္ေပၚလာတုန္းကဆိုရင္ memory ဆုိတာ KB (Kilobyte), MB (Megabyte) အဆင့္ေလာက္သာရွိခဲ့တာပါ။ အခုေတာ့ RAM (Read Access Memory) ေတာင္မွ GB (Gigabyte) အထိေတာင္ရွိေနပါျပီ၊ အျမင့္ဆုံးဆိုတာေတြလဲ လုိက္လုိ႔မမွီေတာ့ပါဘူး (ဟီးကိုယ္မွ ၀ယ္မသုံးနုိင္တာ)။ ပထမဆုံး ေပၚလာတဲ့ Microprocessor ဟာဆုိရင္ 4 bits ပဲရွိပါတယ္တဲ့ (ကၽြန္ေတာ္ဖတ္ဖူးထားတာေလးပါ သိသေလာက္ ေလးေပါ့ ေျပာၾကည့္တာ :P) အခုေတာ့ 8bits/ 16bits အျဖစ္တစ္ဆင့္ျခင္းတိုးတက္ေျပာင္းလဲလာတာ 64bits အထိေတာင္ေရာက္လာပါျပီ (128bits ေတာ့မေပၚေလာက္ေတာ့ဘူးလုိ႔ေတာ့ထင္ပါတယ္ :D)၊ Clock Frequency ဆုိရင္လဲ ဟိုးတုန္းက 5MHZ ေလာက္ထိပဲရွိခဲ့တာတဲ့ အခုေတာ့မ်ား 2.8GHz ထက္ေတာင္ ေက်ာ္ေနပါ ေပါ့လား။ တိုးတက္လာလုိက္တာမ်ား ျမန္ထွာလုိ႔ ဟီးးးးးး RAM ဆုိရင္လဲၾကည့္ဦး ကၽြန္ေတာ္တို႔ စျပီး ကြန္ပ်ဴတာသုံးခါစ တုန္းကဆုိရင္ 512MB ဆုိရင္ပဲ ေတာ္ေတာ္ေလးျမင့္ေနပါျပီ အခုေတာ့မ်ား 4GB တုိ႔ 8GB တုိ႔ေတာင္ျဖစ္ေနၾကျပီ လုိက္မမွီေတာ့ပါဘူး……. 😛 😛 ကၽြန္ေတာ္သတာေလးကို မွ်ေ၀ေပးသြားတာပါ အမွားပါခဲ့ရင္ ခြင့္လႊတ္ေပးၾကဖို႔ ေတာင္းဆုိအပ္ပါတယ္ လိုအပ္ခ်က္ေလးေတြရွိခဲ့ပါတယ္ ျဖည့္စြက္ေပးဖို႔ကိုလဲ ေလးစားစြာ ေတာင္းဆုိပါတယ္ Microcontroller ကေတာ့ clock frequency အမ်ားၾကီးမလုိအပ္သလုိ memory လဲ အမ်ားၾကီးမလုိအပ္ပါ ဘူး KB ေလာက္နဲ႔တင္လုံေလာက္ပါတယ္။ Microcontroller မွာ သုံးတဲ့ memory အမ်ဳိးအစားက Flash Memory ျဖစ္ပါတယ္တဲ့၊ Flach Memory ဆုိတာကို ကၽြန္ေတာ္သိသေလာက္ေျပာျပရမယ္ဆုိရင္ သူဟာ data တစ္ခါသြင္းထားရုံနဲ႔ ပါ၀ါေပးမထားလဲ ေပ်ာက္ပ်က္မသြားပဲ ပါ၀ါျပန္ေပးရုံမွ်ျဖင့္ ပုံမွန္အတိုင္းပဲ Data ေတြကို ထိန္းသိမ္းေပးထားတာလုိ႔ေတာ့ သိပါတယ္ … အတိအက်ေတာ့ သိပ္မသိပါဘူး (ဟီး သိသေလာက္ေလးေျပာၾကည့္ တာ လုိအပ္ခ်က္ရွိေနရင္ ျဖည့္စြက္ေပးၾကဖို႔ေတာင္းဆိုအပ္ပါတယ္ 😛 ) Microcontroller ေတြကို အလုိအေလွ်ာက္လုပ္ေဆာင္ခ်က္ေတြမွာ အသုံးျပဳပါတယ္ ဥပမာ- Traffic Light Control System ေတြ Mobile Phone ေတြ Home Security System ေတြမွာ သုံးၾကပါတယ္။ အသုံးျပဳတဲ့ နယ္ပယ္ေပၚမူတည္ျပီးေတာ့သာ Microcontroller ေတြဟာ အမ်ဳိးအစားကြဲျပားၾကပါတယ္.. ထုတ္လုပ္တဲ့ Company မတူညီတာေတြေၾကာင့္လဲ အမ်ဳိးအစားကြဲသြားတာပါ။ ဘယ္လုိပဲ ကြဲဲျပားကြဲျပား Microcontroller မွန္ရင္ အေျခခံလုပ္ေဆာင္ပုံျခင္း အားလုံးတူညီၾကပါတယ္။ တစ္ခ်ဳိေသာ Microcontroller ေတြဟာ ျပင္ပကေနျပီး Power နဲ႔ Clock ေတြေပးရန္လုိအပ္ျပီး အမ်ားစုကေတာ့ မလုိအပ္ေတာ့ပါဘူး။ Arduino ဆုိရင္ အားလုံးအျပည့္အစုံ ပါ၀င္ျပီးသားပါ Program ေရးသြင္းျပီး Power ခ်ိတ္ဆက္ရုံျဖင့္ program အတိုင္းလုပ္ေဆာင္နုိင္ပါျပီ။ Microcontroller တစ္ခုနဲ႔ တစ္ခုကေတာ့ CPU, Memory, Storage / GPIO Pin ပမာဏ နဲ႔ အမ်ဳိးအစားေတြလဲ မတူၾကပါဘူး၊ Microcontroller တစ္ခုဟာ ကၽြန္ေတာ္တုိ႔ေတြ ေရးသြင္းထားေသာ programအတုိင္း တိတိက်က် လုပ္ေဆာင္နုိင္ပါတယ္၊ program ကေနျပီးေတာ့ ခုိင္းေစခ်က္ေတြကို တစ္ခုခ်င္းဆီ လုိက္နာလုပ္ေဆာင္ၾကရပါတယ္။ Microcontroller ေတြကို Assembly Language ကိုသာအသုံးျပဳျပီး အမ်ားဆုံးေရးသားၾကပါတယ္၊ Assembly Language ကျမန္တယ္ဆုိေပမယ့္ သူ႔မွာ အားနည္းခ်က္ေလးေတြရွိေနပါတယ္၊ ေနာက္ျပီး Assembly Language နဲ႔ေရးထားတဲ့ Program တစ္ပုဒ္က တစ္ျခား Language ေတြထက္နားလည္ဖို႔ ပိုခက္ပါတယ္၊ High Level Language ေတြျဖစ္တဲ့ PASCAL တုိ႔ C တုိ႔နဲ႔လဲ Microcontroller ေတြကို program ေရးသြင္းနိုင္ပါတယ္.. Assembly Language ထက္လဲလြယ္ကူပါတယ္ ေရးသားဖို႔အတြက္လဲ မခက္ခဲပါဘူး။ Arduino ဆုိရင္ C Language ကိုပဲ အေျခခံျပီး ေရးသားရတာပါ၊ Microcontroller ေတြဟာ program ေရးထားတဲ့အတုိင္း လုပ္ေဆာင္ရတဲ့အတြက္ programမွာ ေရးထားတဲ့အတိုင္း အျပင္က data ေတြကုိ input အျဖစ္ယူမယ္ဆုိရင္ input အျဖစ္ရယူရျပီး၊ output အျဖစ္ျပန္ထုတ္မယ္လို႔ ေရးသားထားရင္လဲ output အျဖစ္ျပန္ထုတ္ေပးရပါတယ္။ ဥပမာ – Bluetooth ကေန ဖြင့္တာကို လက္ခံရရွိမယ္ဆုိရင္ အိမ္ကလွ်ပ္စစ္မီးေတြ ပြင့္မယ္ေပါ့.. ဒါုဆိရင္ Bluetooth ကေန ဖြင့္မယ္ဆုိတာကို input အျဖစ္လက္ခံရရွိမယ္ဆုိတာနဲ႔ program မွာ output ျပန္ထုတ္ေပးဖုိ႔အတြက္ေရးသားခဲ့မယ္ဆုိရင္ output အျဖစ္ လွ်ပ္စစ္မီးေတြကိုဖြင့္ေပးရပါေတာ့တယ္.. တစ္ေသြမတိမ္းလုိက္နာေဆာင္ရြက္ၾကရပါတယ္
ဒီမွာတင္ ကၽြန္ေတာ့္အသိေတြျပီးဆုံးသြားပါျပီ အားလုံးျပည့္ျပည့္စုံစုံမဟုတ္ေပမယ့္ တတ္နိုင္သမွ်ေတာ့ သိသေလာက္ေလး Sharing လုပ္ေပးထားတာပါ လုိအပ္ခ်က္မ်ား ရွိခဲ့ပါတယ္ ဒီ့အတြက္လဲ ကၽြန္ေတာ့္အား Feedback ေပးရန္အတြက္ [email protected] ကို mail ပို႔နိုင္ပါတယ္။ ေနာက္ထပ္ေရးသားတင္ျပေပးမွာကေတာ့ RAM ေတြ Memory ေတြအေၾကာင္းနဲ႔ အျခားေသာ ကၽြန္ေတာ္ သိသေလာက္ အေၾကာင္းအရာေလးေတြပါ အခ်ိန္အားျဖင့္ ေက်ာင္းတက္ေနတုန္း အားတဲ့အခ်ိန္ေလးေတြမွာ သိသေလာက္တတ္သေလာက္ေလး ခ်ေရးရတာျဖစ္တဲ့အတြက္ တတ္နိုင္သမွ် အျမန္ဆုံးျဖစ္ေအာင္ေတာ့ ေရးေပးပါ့မယ္ အမွားပါရင္ ခြင့္လႊတ္ေပးၾကဖုိ႔ေတာင္းဆိုအပ္ပါတယ္။ ေက်းဇူးတင္ပါတယ္