Arduino Guide

What is Arduino?
Arduino Project ကုိ ၂၀၀၅ခုႏွစ္မွာ ေက်ာင္းသားမ်ားအတြက္ ရည္ရြယ္ၿပီး အီတလီႏုိင္ငံရွိ Interaction Design Institute မွ စတင္ခဲ့ပါတယ္။ Arduino ဆုိတာက Open Source Prototyping Platform ေပၚမွာ အေျခခံတဲ့၊ အသံုးျပဳရလြယ္ကူတဲ့ Microcontroller တစ္မ်ိဳးျဖစ္ပါတယ္။ သူ႔ကုိ အသံုးျပဳၿပီး Sensor ေတြ၊ LED ေတြ၊ Motor ေတြကို ထိန္းခ်ဳပ္ႏုိင္ပါတယ္။ ဆက္စပ္ၿပီးေတာ့ Bluetooth module, Wifi module, GSM shield, Ethernet shield ကဲ့သုိ႔ေသာ Shield ေတြ၊ module ေတြ ထပ္ခ်ိတ္ၿပီး wireless control project ေတြ ျပဳလုပ္ႏုိင္ပါတယ္။ Robotic Project, 3D printing, Home Automation, Green House ကဲ့သုိ႔ေသာ Project မ်ိဳးေတြ ေျမာက္မ်ားစြာကုိ ျပဳလုပ္ႏုိင္ပါတယ္။ Arduino အမ်ိဳးအစားေပါင္း ေျမာက္မ်ားစြာရွိပါတယ္။ www.arduino.cc မွာ သြားေရာက္ေလ့လာႏုိင္ပါတယ္။ Arduino အမ်ိဳးအစားေပၚမူတည္ၿပီး သူ႔မွာပါဝင္တဲ့ GPIO pin အေရအတြက္၊ Processor, CPU speed တုိ႔ ကြာျခားသြားမွာ ျဖစ္ပါတယ္။

Arduino boards
Why Arduino?
Arduino board ေတြဟာ ေဈးႏႈန္းသက္သာျခင္း၊ Cross Platform ျဖစ္ျခင္း၊ board ဟာ အသံုးျပဳရလြယ္ကူၿပီး ကုိယ့္ Project အတြက္ လုိအပ္တဲ့ Program ေတြကုိလည္း Programming အေျခခံရွိသူတုိင္း လြယ္ကူ႐ိုးရွင္းစြာ ဖန္တီးႏုိင္ျခင္းတုိ႔အျပင္၊ Open Source ျဖစ္တဲ့အတြက္ board design ေတြကုိ ထပ္မံၿပီး modify ျပဳလုပ္ႏုိင္ျခင္းတုိ႔ေၾကာင့္ Arduino board ဟာ အားသာခ်က္မ်ားစြာ ရွိေနပါတယ္။ အခုအခ်ိန္မွာဆုိရင္ ျပည္တြင္းမွာလည္း Arduino နဲ႔ သူ႔အတြက္ ဆက္စပ္ပစၥည္းေတြကုိ လြယ္ကူစြာ ဝယ္ယူလုိ႔ရေနပါၿပီ။ Online ေပၚမွာလည္း Project ေတြ၊ Tutorial ေတြ မ်ားစြာကို ေလ့လာလုိ႔ ရပါတယ္။ ေက်ာင္းသား/သူေတြအေနနဲ႔ ေက်ာင္းProject ေတြကုိ လြယ္ကူစြာ ျပဳလုပ္ႏုိင္လာတဲ့အျပင္၊ Home Automation ကဲ့သုိ႔ ကုိယ့္အိမ္သံုးဖုိ႔အတြက္ Project မ်ိဳးေတြလည္း အခက္အခဲမရွိ ျပဳလုပ္ႏုိင္လာပါတယ္။
Intro to Arduino Uno

Arduino Uno
နမူနာအျဖစ္ေျပာျပေပးမယ့္ Arduino board ကေတာ့ Arduino Uno ျဖစ္ပါတယ္။ ၎ရဲ႕အေရးႀကီးအစိတ္အပုိင္းေတြကေတာ့ USB connector ျဖစ္ပါတယ္။ ကုိယ့္ကြန္ပ်ဴတာနဲ႔ Arduino board ကုိ ခ်ိတ္ဆက္ၿပီး Program မ်ား ထည့္သြင္းရန္အတြက္ ျဖစ္ပါတယ္။ ကြန္ပ်ဴတာႏွင့္ ခ်ိတ္ဆက္ထားပါက Arduino board မွာ ပါဝါဝင္ေနၿပီ ျဖစ္တဲ့အတြက္ Arduino ကုိ သီးသန္႔ပါဝါ ထပ္ေပးမထားရပါ။ သီးသန္႔ပါဝါထပ္ေပးမိပါက အခန္႔မသင့္လွ်င္ ကြန္ပ်ဴတာသို႔ ပါဝါျပန္ဝင္ၿပီး ကြန္ပ်ဴတာေကာ၊ board ပါ ေလာင္တတ္၍ ျဖစ္ပါတယ္။
Arduino board ဟာ electronic device တစ္ခုျဖစ္တဲ့အတြက္ ပါဝါေပးရန္ လုိအပ္ပါတယ္။ Project ေတြ လုပ္တဲ့အခါ ကြန္ပ်ဴတာမွာ USB ႀကိဳးနဲ႔ အၿမဲတမ္းခ်ိတ္ဆက္ထားမွာ မဟုတ္တဲ့အတြက္ Arduino ကုိ AC adapter တစ္ခု အသံုးျပဳၿပီး ပါဝါေပးရမွာ ျဖစ္ပါတယ္။ တခ်ိဳ႕ AC adapter ေတြမွာ Jack pin အမ်ိဳးအစား မ်ိဳးစံုပါဝင္တဲ့အျပင္ Voltage ကုိလည္း လုိသေလာက္ခ်ိန္လုိ႔ရပါတယ္။ adapter ကုိ Arduino ရဲ႕ Power Jack မွာ တပ္ပါ၊ 9Volts ပါဝါေပးပါ၊ ေပးလုိ႔ရတဲ့ voltage range ကေတာ့ 7V မွ 12V အထိ ျဖစ္ပါတယ္။ အခုလုိ ျပင္ပ ပါဝါေပးထားခ်ိန္မွာ ကြန္ပ်ဴတာနဲ႔ ခ်ိတ္ဆက္မထားရပါ။

AC adapter
အခုဆုိရင္ Arduino board ကုိ ပါဝါေပးလုိ႔ရတဲ့ နည္း ၂နည္းကုိ သိသြားပါၿပီ။ သို႔ေပမယ့္ တခ်ိဳ႕ project ေတြကုိ portable ျဖစ္လုိတဲ့အခါမွာ အထက္ပါနည္း၂နည္းလံုးနဲ႔ အဆင္မေျပေတာ့ပါဘူး။ 9V battery, 6V battery ကဲ့သုိ႔ေသာ portable power supply ေပးခ်င္တယ္ဆုိရင္ Vin နဲ႔ GND လုိ႔ label တပ္ထားတဲ့ Pin ေပါက္မ်ားမွာ ခ်ိတ္ဆက္ႏုိင္ပါတယ္။ ထုိ႔အတူ Arduino board ရဲ႕ 3V3 နဲ႔ 5V Pin မ်ားမွ ျပင္ပ device ေတြကုိ ပါဝါ ျပန္ေပးလုိ႔ ရပါေသးတယ္။ GND pin ကေတာ့ တစ္ဘုတ္လံုးမ်ာ ၃ေပါက္ ပါဝင္ပါတယ္။
Analog input pin မ်ားကေတာ့ A0 မွ A5 အထိ ၆pin ပါဝင္ပါတယ္။ temperature sensor ကဲ့သုိ႔ေသာ analog sensor မ်ားကုိ ခ်ိတ္ဆက္အသံုးျပဳႏုိင္ပါတယ္။ ၎ pin မ်ားမွ sensor data မ်ားကုိ ရယူၿပီး 0 ႏွင့္ 1023 အတြင္းရွိ ကိန္းဂဏာန္းမ်ားအျဖစ္သုိ႔ ေျပာင္းလဲေပးပါတယ္။
Digital IO pin မ်ားကေတာ့ D0 မွ D13 အထိ ၁၄ pin ပါဝင္ၿပီး digital input, output တုိ႔ကုိ ျပဳလုပ္ႏုိင္ပါတယ္။ ဒီ Pin မ်ားအတြင္းမွာမွ (D3, D4, D6, D9, D10, D11) ၆pin ဟာ analog output pin မ်ားအျဖစ္လည္း အလုပ္လုပ္ေပးႏုိင္ပါေသးတယ္။ ဂဏာန္းတန္ဖုိးအေနနဲ႔ေတာ့ 0 မွ 255 အထိသာ analog voltage အျဖစ္သုိ႔ ေျပာင္းလဲေပးႏုိင္ပါတယ္။
ဒီ Pin ေတြ အားလံုးဟာ microcontroller ဆီသုိ႔ ဆက္သြယ္ခ်ိတ္ဆက္ထားပါတယ္။ microcontroller ေတြဟာ ATmega328 or ATmega168 8bit microcontroller ေတြျဖစ္ၾကပါတယ္။
ကုိယ့္ Project ကုိ run ေနခ်ိန္အတြင္း reset button ကုိ ႏွိပ္လုိက္ပါက Program ဟာ အစမွ ျပန္လည္ အလုပ္လုပ္မွာ ျဖစ္ပါတယ္။ အခုေဖာ္ျပခ်က္ေတြဟာ Arduino Uno ေပၚမ်ာ အေျခခံၿပီး ေဖာ္ျပထားတာ ျဖစ္ေပမယ့္ အျခား Arduino board အမ်ိဳးအစားမ်ားမွာလည္း အတူတူပင္ျဖစ္ပါတယ္။ Arduino Mega မွာဆုိရင္ input, output pin မ်ားစြာ ပါဝင္လာမွာ ျဖစ္ပါတယ္။ Arduino nano ရဲ႕ design ကေတာ့ bread board (Project board) ေပၚမွာ စုိက္ၿပီး အသံုးျပဳႏုိင္ေအာင္ ျပဳလုပ္ထားတာျဖစ္တဲ့အတြက္ begineer မ်ားအေနနဲ႔ တတ္ႏိုင္မယ္ဆုိရင္ Standard ျဖစ္တဲ့ Uno board ကုိသာ အသံုးျပဳေစလုိပါတယ္။

Arduino Nano on bread board.
How do I use Arduino?
Arduino IDE
Arduino board သုိ႔ Program ထည့္သြင္းရန္အတြက္ Arduino IDE (Integrated Development Environment) လုိအပ္ပါတယ္။ Arduino IDE ဟာ Java နဲ႔ ေရးထားတာ ျဖစ္ၿပီးေတာ့ cross platform application ျဖစ္ပါတယ္။ cross platform ျဖစ္တယ္ဆုိတာကေတာ့ မည္သည့္ Operating System မွာမဆုိ အလုပ္လုပ္ႏုိင္တယ္လုိ႔ ဆုိလုိတာပါ။ Arduino IDE ကုိ Window အတြက္မွာသာမက၊ Linux နဲ႔ Mac OS တုိ႔မွာလည္း အသံုးျပဳႏုိင္ၿပီး၊ မည္သည့္ OS မွာမဆုိ compatible ျဖစ္ပါတယ္။ IDE ကုိ www.arduino.cc/en/Main/Software မွာ ေဒါင္းလုပ္ရယူႏုိင္ပါတယ္။ Windows OS အသံုးျပဳသူေတြ အတြက္ကေတာ့ Arduino websie မွာ ေဒါင္းလုပ္ရယူရန္ လုိအပ္ၿပီး Ubuntu OS အသံုးျပဳသူမ်ားကေတာ့ Ubuntu Software Center မွာ Arduino လုိ႔ ႐ိုက္ရွာၿပီး install ျပဳလုပ္ႏုိင္ပါတယ္။ Arduino Program ေတြကုိ C နဲ႔ ေရးသားရမွာျဖစ္ပါတယ္။ C ဆုိေပမယ့္ C Programming language အစစ္မဟုတ္ပါဘူး၊ Arduino အတြက္ ျပဳျပင္ေျပာင္းလဲထားတာျဖစ္ပါတယ္။ Arduino အတြက္ ေရးထားတဲ့ Program သုိ႔မဟုတ္ Code ေတြကုိ Sketch လုိ႔ ေခၚပါတယ္။
 qqq
Arduino IDE (Blink Program)
အထက္ပါ Program ကေတာ့ Arduino IDE မွာ ပါဝင္တဲ့ LED Blink example sketch တစ္ခုျဖစ္ပါတယ္။ ၎ကုိ File>Examples>01.Basics>Blink မွာ ဖြင့္ႏုိင္ပါတယ္။ LED မီးလံုးေလးကုိ မွိတ္တုတ္ မွိတ္တုတ္ (Blink) ျဖစ္ေအာင္ လုပ္ေပးမယ့္ Program ျဖစ္ပါတယ္။
  • ပထမဦးစြာ LED ကုိ Arduino board ရဲ႕ digital pin 13 မွာ ခ်ိတ္ဆက္မွာျဖစ္တဲ့အတြက္ int (integer) constant အသံုးျပဳၿပီး pin 13 ကုိ ေၾကျငာပါတယ္။ led ဆုိတဲ့ variable name ဟာ Arduino board ရဲ႕ digital IO pin 13 ကုိ ရည္ညႊန္းပါတယ္။
  • Arduino Program တုိင္းမွာ void setup () ဆုိတဲ့ function တစ္ခု လုိအပ္ပါတယ္။ function တစ္ခုမွာ function header နဲ႔ statement body ဆုိတဲ့အပုိင္း၂ခု ပါဝင္ေနၿပီး function header မွာ ေအာက္ပါအတုိင္း အပုိင္း၃ပုိင္းပါဝင္ပါတယ္။ <return value type> <function name> '(' <list of parameters> ')' အခု function မွာ return value type ဟာ void ျဖစ္ၿပီး၊ function name က setup ျဖစ္ပါတယ္။ parameter list ကေတာ့ ဘာမွမပါ empty ျဖစ္ပါတယ္။ ကၽြန္ေတာ္တုိ႔ေၾကျငာခဲ့တဲ့ digital pin 13 ကုိ output pin အျဖစ္ ေျပာင္းလဲရန္အတြက္ pinMode() method ကုိ အသံုးျပဳပါတယ္။
  • ေနာက္ထပ္ function တစ္ခုကေတာ့ void loop() ျဖစ္ပါတယ္။ ၎ဟာ Arduino မွာ power ရေနသေ႐ြ႕ program ကုိ ထပ္ခါထပ္ခါ run ေစမွာျဖစ္ပါတယ္။ pin 13 မွာ တပ္ဆင္ထားတဲ့ LED ကုိ ပထမဦးစြာ မီးလင္းေစရန္အတြက္ digitalWrite() ကုိ အသံုးျပဳၿပီး pin 13 ကုိ HIGH state မွာ ရွိေနေစပါတယ္။ ဒီအခ်ိန္မွာ pin 13 ဟာ output 5volts ထြက္ၿပီး တပ္ဆင္ထားတဲ့ LED မီးလင္းလာမွာျဖစ္ပါတယ္။ ဆက္လက္ၿပီး pin 13 ကုိ LOW state အေျခအေနသတ္မွတ္ေပးထားခ်ိန္မွာ LED မီးၿငိမ္းမွာ ျဖစ္ပါတယ္။ ထုိအေျခအေန၂ရပ္ အတြင္းမွာ delay() function အသံုးျပဳၿပီး 1000 milliseconds သတ္မွတ္ေပးျခင္းျဖင့္ 1 second ျခားစီ မီးလင္း၊ မီးမွိတ္မွာ ျဖစ္ပါတယ္။ 500 သတ္မွတ္ေပးပါက milliseconds ျဖစ္တဲ့အတြက္ စကၠန္႔ဝက္ မီးလင္း၊ စကၠန္႔ဝက္ မီးမွိတ္မွာ ျဖစ္ပါတယ္။ ထိုအေျခအေနတုိ႔ကုိ looping ပတ္ျခင္းျဖင့္ LED ဟာ မွိတ္တုတ္မွိတ္တုတ္ blink ျဖစ္ေနမွာ ျဖစ္ပါတယ္။
  • Program အတြင္း left brace { တြန္႔ကြင္းအစဟာ function ထဲက statement ေတြကုိ စတင္ေျဖရွင္းရန္ ေၾကျငာတာျဖစ္ၿပီး right brace } တြန္႔ကြင္းအပိတ္ဟာ statement ေတြကုိ ေျဖရွင္းၿပီးေၾကာင္း ေၾကျငာတာျဖစ္ပါတယ္။ statement တစ္ခု ေရးၿပီးတုိင္းမွာ semicolon (;) နဲ႔ ပိတ္ေပးရပါမယ္။ ဒါမွသာ statement ၿပီးဆံုးေၾကာင္းကုိ compiler က သိမွာ ျဖစ္ပါတယ္။

LED and Arduino Uno
အထက္ပါ example program ကုိ Arduino board သို႔ မထည့္သြင္းခင္ Arduino IDE မွာ ျပင္ဆင္ရန္အခ်က္ ၂ခ်က္ရွိပါတယ္။ Tools>Board သို႔သြားၿပီး ကုိယ္အသံုးျပဳတဲ့ Arduino ရဲ႕ အမ်ိဳးအစားကို ေရြးခ်ယ္ေပးရန္နဲ႔ Tools>Serial Port မွာ Arduino board ကုိ ခ်ိတ္ဆက္ထားတဲ့ port ကုိ ေရြးခ်ယ္ေပးရန္ ျဖစ္ပါတယ္။ Linux အသံုးျပဳသူမ်ားအတြက္ port မ်ားဟာ /dev/ttyUSB0, /dev/ttyUSB1 စသျဖင့္ ရွိေနပါမယ္။ Window OS မွာ driver မသိပါက www.arduined.eu/files/CH341SER.zip ဒီေနရာမွာ driver ကုိ download ဆြဲပါ။ ၿပီးလွ်င္ Window Device manager ရဲ႕ other devices မွာ ခ်ိတ္ဆက္ထားတဲ့ Arduino Uno ကုိ double click ၿပီး Update driver ကုိ ႏွိပ္ကာ down ထားတဲ့ driver ဖုိင္ကုိ ေရြးခ်ယ္ေပးလုိက္ပါ။ Port အေနနဲ႔ COM1, COM2 စသျဖင့္ ရွိေနပါလိမ့္မယ္။

Device Manager
ထိုအခ်က္ေတြ ေရြးခ်ယ္ၿပီးပါက IDE မွာ Program ကုိ compile အရင္ ျပဳလုပ္ၿပီး Upload button ကုိ ႏွိပ္ကာ Arduino board အတြင္း program ကုိ ထည့္သြင္းေပးရမွာ ျဖစ္ပါတယ္။ ခ်ိတ္ဆက္ထားတဲ့ LED မွိတ္တုတ္ မွိတ္တုတ္ ျဖစ္ၿပီး အလုပ္လုပ္လာတာကုိ ေတြ႕ရွိရမွာ ျဖစ္ပါတယ္။ ဆက္လက္ၿပီးေတာ့ led လုိ႔ သတ္မွတ္ခဲ့တဲ့ variable name ကုိ အမည္ေျပာင္းျခင္း၊ LED ခ်ိတ္ဆက္မယ့္ pin နံပါတ္ေျပာင္းျခင္း၊ delay မွာ LED pause မယ့္ မီလီစကၠန္႔ အခ်ိန္ေျပာင္းျခင္းတုိ႔ကုိ ျပဳလုပ္ၿပီး ထပ္မံ စမ္းသပ္ၾကည့္လုိ႔ရပါတယ္။

3 Responses

  1. Thank You So Much For Sharing.
  2. Please...write with unicode..I'm really interesting...but i can't read..please .

Leave a comment