engineer4myanmar မွာ ကၽြန္ေတာ္ ဘလူးဖီးနစ္ အမည္နဲ႔ ေရးသားထားသမွ် ေဆာင္းပါးမ်ား ကို MIT လိုင္စင္ ေအာက္မွာ အခမဲ႔ လြတ္လပ္စြာ ရယူ အသံုးျပဳႏိုင္ပါတယ္။

Pages

Download Android APK of Engineer for Myanmar blog

Android ဖုန္းမ်ားနဲ႔ အလြယ္တကူ ဖတ္ႏိုင္ဖို႔ ေအာက္ပါ လင္႔ကေန APK ရယူေပးၾကပါခင္ဗ်ာ
Download APK of Engineer for Myanmar blog

Saturday, August 1, 2015

အေရးေပၚ အေျခအေနတြင္ ေစ်းႏႈန္းသက္သာစြာႏွင္႔ အလြယ္တကူ တည္ေဆာက္ အသံုးျပဳႏိုင္ေသာ Foldable boat


အသံုးျပဳထားေသာ ေရလံု Corrugated ပလတ္စတစ္ (CoroPlast) သည္ ေလးေပ×ရွစ္ေပ တစ္စလွ်င္ ေဒၚလာ ၃၀ သာ ကုန္က်သျဖင္႔ အလြန္ေစ်းႏႈန္းသက္သာသည္႔ ေလွအမ်ိဳးအစား ျဖစ္သည္။

အသံုးျပဳပံုႏွင္႔ တည္ေဆာက္ပံု နည္းစနစ္
ေခါက္ႏိုင္သိမ္းႏိုင္ေသာ ေလွမ်ားသည္ ပလတ္စတစ္ျပား တစ္ျပားတည္းကိုသာ အဓိက အသံုးျပဳထားသျဖင္႔ ေရေၾကာင္းအတားအဆီးမ်ားကို အလြယ္တကူ ေက်ာ္လႊားႏိုင္ၿပီး ေသးငယ္ ေပါ႔ပါးသေလာက္ စိတ္ခ်ယံုၾကည္စြာ စီးနင္းႏိုင္သည္႔အျပင္ အလြယ္တကူ ျပန္လည္ ေခါက္သိမ္းကာ အႀကိမ္ႀကိမ္ ျပန္လည္ အသံုးခ်ႏိုင္စြမ္းလည္း ရွိပါသည္။
ဖြဲ႕စည္းတည္ေဆာက္ထားမႈအေသးစိတ္အခ်က္အလက္မ်ား(System Specifications)
ေအာက္ပါအတိုင္း ျဖစ္ပါသည္-
(က) ေလွ၏ အဓိက အစိတ္အပိုင္းကို CoroPlast ပလတ္စတစ္ျပား တစ္ျပားတည္းျဖင္႔ တည္ေဆာက္ထားပါသည္။ ေခါက္ယူမည္႔ လိုင္းေၾကာင္းမ်ားကို ပထမဦးစြာ စာရြက္ေပၚတြင္ ဒီဇိုင္းျပဳလုပ္၍ ျပည္႔စံုသည္႔အခါတြင္ အခ်ိဳးကိုက္ ပလတ္စတစ္ျပားေပၚသို႔ ကူးယူေရးဆြဲရပါသည္။
(ခ) ထိုသို႔ ဒီဇိုင္းျပဳလုပ္ရာတြင္ ေလွဝမ္းခိုင္မာေတာင္႔တင္းမႈ ရွိေစရန္ အထူးဂရုျပဳေရးဆြဲရမည္ ျဖစ္ပါသည္။
(ဂ) ဒီဇိုင္းျပဳလုပ္ထားသည္႔ ေခါက္ရိုးမ်ားအတိုင္း အလြယ္တကူ ခ်ိဳးႏိုင္ေစရန္ အသြားလံုးသည္႔ ေပတံကဲ႔သို႔ေသာ အရာျဖင္႔ အသာအယာ ခ်ိဳးယူရမည္ ျဖစ္ပါသည္။ ထို႔ေနာက္ ေလွ၏ ထိပ္ႏွစ္ဘက္ ေတာင္႔တင္းမႈရွိေစရန္ ပံုတြင္ ျပထားသည္႔အတိုင္း ေခါက္ယူကာ ကလစ္မ်ားျဖင္႔ ယာယီထိန္းေပးထားရန္ လိုအပ္ပါသည္။
(ဃ) ေလွဝမ္းတြင္ ေတာင္႔တင္းမႈရွိေစရန္ အထပ္သား သို႔မဟုတ္ ထင္းရႈးျပားျဖင္႔ ခံ၍ထားရပါမည္။
(င) ေလွထိပ္ႏွစ္ဘက္ႏွင္႔ ေဘးေဘာင္မ်ားကို ေတာင္႔တင္းမႈရွိေစရန္ သစ္သားျပားမ်ားကို ဝါရွာမ်ား ဝက္အူရစ္မ်ားျဖင္႔ ထိန္း၍ ပံုပါအတိုင္း တပ္ဆင္ေပးရန္ လိုအပ္ပါသည္။
(စ) ေဘးေဘာင္ႏွစ္ဘက္ကို ပံုပါအတိုင္း ဒီဇိုင္းျပဳလုပ္ထားသည္႔ သစ္သားေဒါက္မ်ား ခံေပးျခင္းအားျဖင္႔ ေလွတစ္စင္းကို ရရွိမည္ ျဖစ္ပါသည္။
 မွီျငမ္းအင္တာနက္ဝက္ဆိုဒ္မ်ား
http://forum.trailersailor.com






             




Friday, July 3, 2015

GNU gcc in Windows (Student Guide) with Sublime Text Editor and MinGW


စတင္ေလ႔လာကာစ ေက်ာင္းသားမ်ားကိုသာ ရည္ရြယ္ပါတယ္...
  1. MinGW (gcc for windows) ကို ေအာက္ပါ လိပ္စာကေန ရယူလိုက္ပါ။ install လုပ္ပါ။ http://sourceforge.net/projects/mingw/files/latest/download
  2. C:\MinGW\bin ကို path ထဲ ထည္႔ေပးပါ။ My Computer ကို Right Click ႏွိပ္ၿပီး Properties ကို ေရြးခ်ယ္ပါ။ ေအာက္ပါ အဆင္႔မ်ားအတိုင္း ထည္႔သြင္းေပးပါ။
  3. Sublime Text 2 ကို အခမဲ႔ ရယူလိုက္ပါ။   http://www.sublimetext.com/2
  4.  gcc ကို အသံုးျပဳၿပီး compile ျပဳလုပ္ႏိုင္ဖို႔ Build System အသစ္တစ္ခုကို ေအာက္ပါအတိုင္း ဖန္တီးလိုက္ပါ။ Tools>Build System>New Build System    
  5. ေအာက္ပါ စာသားမ်ားကို copy လုပ္ၿပီး paste လုပ္ေပးလိုက္ပါ။ 
  6. {
      "cmd" : ["gcc", "-Wall","-ansi", "-pedantic-errors", "$file_name", "-o", "${file_base_name}.exe","&&","start","cmd","/k","$file_base_name"],
        "selector" : "source.c",
          "shell":true,
            "working_dir" : "$file_path"
              }
            1. နာမည္ တစ္ခုေပးၿပီး Save လုပ္လိုက္ပါ။ ဥပမာ - MyGccSublime-settings
            2. Tools>Build System>MyGccSublime-settings ကို ေရြးခ်ယ္ေပးလိုက္ပါ။
            3. ယခုအခါ Tools>Build ကို သံုးၿပီး ပရိုဂရမ္ကို RUN လို႔ ရၿပီ ျဖစ္ပါတယ္။ 
            ေလ႔လာသူအေပါင္း ရႊင္လန္းခ်မ္းေျမ႕ၾကပါေစ ခင္ဗ်ာ။


            Wednesday, June 3, 2015

            Unix/Linux ေပၚမွာ C programming ေရးၾကရေအာင္ (၁)


            C programming language အေၾကာင္းကို မေျပာခင္မွာ UNIX operating system အေၾကာင္းကို ေျပာျပခ်င္ပါတယ္။ UNIX ကို တစ္ဦး တစ္ေယာက္ တစ္ကုမၸဏီေကာင္း ေရးသားခဲ႔တာမဟုတ္ဘဲ အဖြဲ႕အမ်ား စုစည္းေရးသားခဲ႔တာ ျဖစ္ပါတယ္။ ဒါေၾကာင္႔ အၾကံဥာဏ္ေကာင္းမ်ားစြာ စုစည္း ပါဝင္ေနတာ ျဖစ္ပါတယ္။ ဒါေပမယ္႔ UNIX မူကြဲမ်ားစြာ ျဖစ္ေပၚလာၿပီး ၄င္းတို႔ အားလံုးမွာ အလုပ္လုပ္တဲ႔ software ေတြ ေရးသားဖို႔ ခက္ခဲလာတဲ႔အတြက္ standard တစ္ခု ျဖစ္ေပၚလာဖို႔အထိ တြန္းအားေတြ ျဖစ္လာခဲ႔ရပါတယ္။ 
            UNIX ရဲ႕ ပထမဆံုး version ကို (AT&T တယ္လီဖုန္း ကုမၸဏီရဲ႕ ဌာနခြဲတစ္ခုျဖစ္တဲ႔ Bell Lab မွာ လုပ္ကိုင္ေနတဲ႔) Ken Thompson က 1969 ခုႏွစ္မွာ ေရးသား ခဲ႔ပါတယ္။ အဲဒီႏွစ္မွာပဲ (Linus Torvalds ကို ေမြးဖြားခဲ႔တာပါ)။ Digital PDP-7 မီနီကြန္ပ်ဴတာ အတြက္ assembley language ကို အသံုးျပဳၿပီး ေရးသားခဲ႔တာ ျဖစ္ပါတယ္။ UNIX ဟာ AT&T နဲ႔ MIT တို႔ ပူးတြဲလုပ္ေဆာင္ခဲ႔တဲ႔ MULTICS (Multiplexed Information and Computing Service) operating system ထဲက tree-structured file system၊ shell နဲ႔ file တည္ေဆာက္ပံု စတာေတြကို အေျခခံခဲ႔ပါတယ္။ 
            1970 မွာ ပိုၿပီး စြမ္းရည္ျမင္႔လာတဲ႔ PDP-11 ကြန္ပ်ဴတာ အတြက္ UNIX ကို assembly language ကို သံုးၿပီး ျပန္ေရးခဲ႔ပါတယ္။ မၾကာခင္မွာ Thompson ရဲ႕  Bell Lab က လုပ္ေဖာ္ကိုင္ဖက္ တစ္ဦးျဖစ္တဲ႔ Dennis Ritchie က C programming language ကို ဒီဇိုင္းေရးဆြဲခဲ႔ပါတယ္။ ၄င္း ဘာသာစကားဟာလဲ BCPL ကိ္ု မွီးထားတဲ႔ Thompson ရဲ႕ B programming language ကို အေျခခံထားတာပဲ ျဖစ္ပါတယ္။ 1973 ကိုေရာက္တဲ႔ အခ်ိန္မွာေတာ႔ C language ဟာ UNIX kernel ကို အစအဆံုးနီးပါး ျပန္ေရးလို႔ ရေလာက္ေအာင္ ျပည္႔စံုလာပါတယ္။ ဒါေၾကာင္႔ C language ကို သံုးၿပီး ျဖစ္ႏိုင္သမွ် hardware architectures ေတြ အတြက္ UNIX ကို ေရးသားခဲ႔ၾကပါတယ္။ 
            Operating System တစ္ခုကို ေရးဖို႔ ဒီဇိုင္းျပဳလုပ္ တီထြင္ထားတဲ႔ ျဖစ္တဲ႔အတြက္ C language ဟာ powerful ျဖစ္တဲ႔ ကြန္ပ်ဴတာ ဘာသာစကား တစ္ခုပဲ ျဖစ္ပါတယ္။ ဒါေၾကာင္႔ C နဲ႔ ၄င္းကေန ဆင္းသက္လာတဲ႔ C++ တို႔ကို system programming languages ေတြအေနနဲ႔ ယေန႔အခ်ိန္အထိ က်ယ္က်ယ္ျပန္႔ျပန္႔ အသံုးျပဳေနၾကတာပဲ ျဖစ္ပါတယ္။ C ကို အသံုးျပဳ ေရးသားထားတဲ႔ ပရိုဂရမ္မ်ားဟာ အရြယ္အစား ေသးငယ္ၿပီး စြမ္းရည္ျမင္႔မားၾကပါတယ္။ 
            အဲဒီအခ်ိန္တုန္းက AT&T ဟာ အေမရိကန္ တယ္လီဖုန္း စနစ္ကို လက္ဝါးႀကီးအုပ္မႈနဲ႔ အစိုးရက ပိတ္ဆို႔မႈကို ခံေနရခ်ိန္ ျဖစ္ပါတယ္။ ဒါေၾကာင္႔ software ေရာင္းခ်ခြင္႔ ပိတ္ပင္ခံထားရၿပီး UNIX ကိုလည္း မေရာင္းႏိုင္ခဲ႔ပါဘူး။ ဒါေၾကာင္႔ တကၠသိုလ္ေတြကို မဆိုစေလာက္ ျဖန္႔ခ်ီခ ရယူၿပီး လိုင္စင္ခ်ေပးခဲ႔ပါတယ္။ အဲဒီထဲမွာ စာရြက္စာတမ္းေတြနဲ႔ (အဲဒီအခ်ိန္က လိုင္း ၁၀၀၀၀ ခန္႔ရွိတဲ႔) kernel source code ေတြပါ ပါဝင္ပါတယ္။ အက်ိဳးဆက္ အေနနဲ႔ တကၠသိုလ္ေတြက ကြန္ပ်ဴတာ ေက်ာင္းသားေတြအမ်ားအျပားဟာ UNIX ကို သင္ၾကားခြင္႔ရတဲ႔ အျပင္ kernel source code ေတြက တဆင္႔ အမ်ားႀကီး ေလ႔လာစမ္းသပ္ႏိုင္ခဲ႔ၾကပါတယ္။ ေနာင္တစ္ခ်ိန္မွာ အဲဒီေက်ာင္းသားေတြထဲက startup ကုမၸဏီေတြ တည္ေထာင္ၾကၿပီး ေစ်းႏႈန္းသက္သာတဲ႔ ကြန္ပ်ဴတာ ေတြကို UNIX operating system တင္ၿပီး ေရာင္းခ်ခဲ႔ၾကပါတယ္။  
            ကၽြန္ေတာ္ ေမြးတဲ႔ႏွစ္ (၁၉၇၈ခုႏွစ္) မွာေတာ႔ C ကို တီထြင္သူေတြ ျဖစ္တဲ႔ Kernighan နဲ႔ Ritchie တို႔ဟာ "The C Programming Language" စာအုပ္ကို စတင္ေရးသား ထုတ္ေဝခဲ႔ပါတယ္။ 

            ဆက္ရန္.....

            Monday, March 23, 2015

            Raspberry Pi - Headless အသံုး​ျ​ပဳ​န​ည​္းမ်ား

                 Raspberry Pi ကို ေ​မာ​္​နီ​တာ၊ ကီး​ဘု​တ​္၊ ေ​မာက္စ​္ မ်ား တပ္ဆ​င​္​၍ အသံုး​မျ​ပဳ​ဘဲ နက္ဝက္မွ တ​ဆ​င​္​႔ ခ်ိတ္ဆ​က​္​ၿ​ပီး အသံုး​ျ​ပဳ​ျ​ခ​င​္း​ကို headless အသံုး​ျ​ပဳ​ျ​ခ​င​္း​ဟု ေ​ခ​ၚ​ပါ​သ​ည​္။ Raspberry Pi ကို update, upgrade ျ​ပဳ​လုပ္ဖို​႔​နဲ​႔ အျ​ခား​လို​အပ္တဲ​႔ softwares ေ​တြ​ကို install ျ​ပဳ​လုပ္ဖို​႔​အတြက္ဆို​ရ​င​္ Raspberry Pi ကို အင္တာ​နက္နဲ​႔ ခ်ိတ္ဆက္ထား​ဖို​႔ လို​အပ္ပါ​မ​ယ​္။ အမ်ား​စု​အေ​န​နဲ​႔ ဒီ​အလု​ပ​္ေ​တြ​ကို အင္တာ​နက္ဆိုင္လို ေ​န​ရာမ်ိ​ဳး​ကေ​န​ပဲ ျ​ပဳ​လု​ပ​္ႏိုင္မွာ ျ​ဖစ္ပါ​တ​ယ​္။ ဒါ​ေ​ၾ​ကာ​င​္​႔ အင္တာ​နက္ဆိုင္အ​တြ​င​္း​မွာ Raspberry Pi ကို ပါ​ဝါ နဲ​႔ နက္ဝ​က​္​ႀ​ကိ​ဳး ႏွစ္ခု​တ​ည​္းခ်ိတ္ဆ​က​္​ၿ​ပီး အသံုး​ျ​ပဳႏ​ိုင္ဖို​႔ လို​အပ္ပါ​တ​ယ​္။ ဒီ​န​ည​္း​ဟာ အၿ​မဲ​တ​မ​္း အသံုး​တ​ည​္​႔ေ​န​မွာ​ပဲ ျ​ဖစ္ပါ​တ​ယ​္။ ကို​ယ​္​႔​အိမ္မွာ ကိုယ္အ​သံုး​ျ​ပဳ​မယ္ဆို​လဲ ဒီ​န​ည​္း​နဲ​႔ အသံုး​ျ​ပဳ​ျ​ခ​င​္း​က ပို​အဆ​င​္ေျ​ပ​ပါ​တ​ယ​္။ PC နဲ​႔ သာ​မက၊ laptop, Android Smart Phone, Apple iPhone, iPad စ​တာ​ေ​တြ​နဲ​႔​လဲ ခ်ိတ္ဆ​က​္ အသံုး​ျ​ပဳ ႏိုင္ပါ​တ​ယ​္။   
            ကြန္ပ်ဴ​တာ​မွ​တ​ဆ​င​္​႔ Raspberry Pi အား Headless ခ်ိတ္ဆက္န​ည​္း
                 က​ၽြ​န​္ေ​တာ​္​႔​အေ​နျ​ဖ​င​္​႔ Raspberry Pi ကို headless အသံုး​ျ​ပဳ​ရန္အ​တြ​က​္ ပထမ​ဆံုး ကြန္ပ်ဴ​တာ SSH မွ တ​ဆ​င​္​႔ ဝ​င​္ေ​ရာ​က​္ အသံုး​ျ​ပဳ​မ​ည​္ ျ​ဖစ္ပါ​သ​ည​္။ ကြန္ပ်ဴ​တာ​မွ တ​ဆ​င​္​႔ SSH ျ​ဖ​င​္​႔ ခ်ိတ္ဆ​က​္ ႏိုင္ရ​န​္ Raspberry Pi ၏ ip address ကို သိ​ထား​ဖို​႔ လို​ပါ​တ​ယ​္။ ၎​ကို Advanced Port Scanner v1.3 ကို အသံုး​ျ​ပဳ​၍ ရွာ​ေ​ဖြ​မ​ည​္ျ​ဖစ္ပါ​သ​ည​္။ အင္တာ​နက္တြ​င​္ အခ​မဲ​႔ ရ​ယူႏ​ို​င​္​ၿ​ပီး SoftPerfect Network Scanner ကဲ​႔​သို​႔ေ​သာ အျ​ခား Network scanner မ်ား​ကို အသံုး​ျ​ပဳ​၍​လ​ည​္း ရွာ​ေ​ဖြႏ​ိုင္ပါ​သ​ည​္။ Advanced Port Scanner ၏ အား​သာခ်က္မွာ Network ထဲ​တြ​င​္ ေ​ပ​ၚ​လာ​ေ​သာ ip address မ်ား​၏ ပြ​င​္​႔ေ​န​သ​ည​္​႔ ports မ်ား​ကို သိ​ရွိႏ​ို​င​္ျ​ခ​င​္း​ပ​င​္ ျ​ဖစ္ပါ​သ​ည​္။ Raspberry Pi အေ​နျ​ဖ​င​္​႔ SSH port (22) ပြ​င​္​႔ေ​နေသာ ip address မ်ား​ထဲ​မွ တစ္ခု​ခု​ပ​င​္ ျ​ဖ​စ​္ႏိုင္ပါ​သ​ည​္။ (မ်ား​ေ​သာ​အား​ျ​ဖ​င​္​႔ အျ​ခား ip မ်ား​တြ​င​္ SSH port (22) ဖြ​င​္​႔​ထား​ေ​လ​႔ မ​ရွိ​ပါ)
                 နက္ဝက္တြင္ ခ်ိတ္ထားသည္႔ Rpi ၏ ip address ကို ရွာေဖြရန္ Router ၏ ip range ကို ပုံတြင္ ျပထားသည္႔အတိုင္း (1) ႏွင္႔ (2) တြင္ ထည္႔သြင္းေပးပါ။ (3) Scan ကို ႏွိပ္၍ ခဏေစာင္႔လိုက္လွ်င္ နက္ဝက္အတြင္း ရွိေသာ ip address မ်ားႏွင္႔ ၄င္းတို႔၏ ပြင္႔ေနေသာ port မ်ား ကို ျပသေပးမည္ ျဖစ္ပါသည္။ Open ports မ်ားထဲမွ 22 Open (ssh) ကို ရွာ၍ ေတြ႕လွ်င္ Raspberry Pi ကို ရွာေတြ႔ၿပီျဖစ္၍ ip address ကို မွတ္သားထားပါ။ 

                 Raspberry Pi ကို SSH ျဖင္႔ ခ်ိတ္ဆက္ႏိုင္ရန္ အင္တာနက္တြင္ အခမဲ႔ ရယူႏိုင္ေသာ PuTTY ေဆာ႔ဖ္ဝဲလ္ကို အသံုးျပဳမည္ ျဖစ္ပါသည္။


                 ပထမဦးစြာ Host Name (or IP address) ေနရာတြင္ မိမိ ခ်ိတ္ဆက္လိုသည္႔ Raspberry Pi ၏ ip address ကို ထည္႔သြင္းေပးပါ။ ထို႔ေနာက္ ဆက္သြယ္မႈ စတင္ရန္ Open ကို ႏွိပ္လိုက္ပါ။ Raspberry Pi ၏ ip address မွန္လွ်င္ ေအာက္ပါပံုအတိုင္း Login ျပဳလုပ္ႏိုင္ၿပီ ျဖစ္ပါသည္။ 

                 Raspberry Pi ၏ default Login မွာ pi ျဖစ္ၿပီး password မွာ raspberry ျဖစ္ပါသည္။ ေအာက္ပါအတိုင္း ထည္႔သြင္းေပးလိုက္ပါ။ 
                  pi@raspberrypi ~ $ ဟူေသာ prompt ကို ေတြ႕ရမည္ ျဖစ္သည္။ ၄င္းတို႔အနက္ pi သည္ username ျဖစ္ၿပီး ~ သည္ user ၏ directory ကို ရည္ညႊန္းျခင္း ျဖစ္သည္။ ပိုမိုေသခ်ာေစရန္ current directory ကို ျပေသာ pwd ဆိုသည္႔ command ကို သံုးၾကည္႔ပါ။ /home/pi ဟု ျပသေပးမည္ျဖစ္သည္။ 

            Changing password
            Raspberry Pi ရဲ႕ default user name က pi ျဖစ္ၿပီး စကားဝွက္က raspberry ျဖစ္တယ္ဆိုတာ အားလံုး သိၾကၿပီး ျဖစ္ပါတယ္။ စတင္ အသံုးျပဳၿပီဆိုတာနဲ႔ မိမိ Rpi ကို လံုၿခံဳမႈ ရွိေစရန္ စကားဝွက္ကို ခ်က္ခ်င္း ေျပာင္းလဲေပးသင္႔ပါတယ္။ ဒီလိုေျပာင္းလဲဖို႔အတြက္ passwd command ကို ေအာက္ပါအတိုင္း အသံုးျပဳႏိုင္ပါတယ္။


                 (current) UNIX password: ဆိုတဲ႔ ေနရာမွာ လက္ရွိ စကားဝွက္ကို ထည္႔သြင္းေပးရမွာ ျဖစ္ၿပီး Enter new UNIX password: နဲ႔ Retype new UNIX password: ဆိုတဲ႔ ေနရာမွာေတာ႔ မိမိ ျပင္ဆင္ ထည္႔သြင္းလိုတဲ႔ စကားဝွက္ အသစ္ကို ထည္႔သြင္းရမွာပါ။ စကားဝွက္ေတြ ရိုက္ထည္႔တာကို ေမာ္နီတာေပၚမွာ ျပသေပးမွာ မဟုတ္ပါဘူး။ ဒါေၾကာင္႔ တစ္လံုးခ်င္း ေသေသခ်ာခ်ာ ရိုက္ေပးဖို႔ လိုပါ႔မယ္။
            Update ျပဳလုပ္ျခင္း
            ပထမဦးဆံုး အသံုးျပဳမယ္႔ Rpi တိုင္းကို update နဲ႔ upgrade မျဖစ္မေန ျပဳလုပ္ေပးရမွာ ျဖစ္ပါတယ္။ အဲဒီလို ျပဳလုပ္ဖို႔ အတြက္ time zone ကို အရင္ သတ္မွတ္ေပးရပါမယ္။


                 60. Rangoon ဆိုတာ ကၽြန္ေတာ္တို႔ ေရြးေပးရမယ္႔ Time Zone ပါ။ အဲဒါက ေနာက္ဆံုးနားမွာ ရွိပါတယ္။ Enter ကို တစ္ခ်က္ခ်င္း ရိုက္ၿပီး ေနာက္ဆံုး စာမ်က္ႏွာ အထိေရာက္ေအာင္သြားပါ။ ေအာက္မွာ ေဖၚျပထားတဲ႔ ေနရာကို ေရာက္ရင္ ရပ္ၿပီး 60 ကို ရိုက္ထည္႔ေပးၿပီး Enter ေခါက္ေပးလိုက္ပါ။
                 Update ျပဳလုပ္ဖို႔အတြက္ေတာ႔ sudo apt-get update လို႔ ရိုက္ထည္႔ေပးရမွာ ျဖစ္ၿပီး upgrade အတြက္ sudo apt-get upgrade လို႔ ရိုက္ထည္႔ေပးရပါမယ္။ အဲဒီ လို လုပ္ဖို႔ အင္တာနက္နဲ႔ ခ်ိတ္ဆက္ထားဖို႔ လိုပါမယ္။ အခ်ိန္အေတာ္ၾကာလဲ ေစာင္႔ရတတ္ပါတယ္။
                 Update နဲ႔ upgrade ေတြ ျပဳလုပ္ၿပီးၿပီဆိုရင္ ေန႔၊ ရက္၊ နာရီေတြ ျပင္ဆင္ရပါေတာ႔မယ္။ လက္ရွိ ေန႔စြဲကို သိရွိႏိုင္ဖို႔ နဲ႔ ျပင္ဆင္ႏိုင္ဖို႔ date command ကို ေအာက္ပါအတိုင္း အသံုးျပဳႏိုင္ပါတယ္။ 

            Raspberry Pi Configuration
                 မျဖစ္မေန ျပဳလုပ္ရမည္႔ Configureation မ်ားကို sudo raspi-config command အသံုးျပဳ၍ ေအာက္ပါအတိုင္း လုပ္ေဆာင္ႏိုင္သည္။


                 ပထမဦးစြာ SD card ၏ capacity ကို အျပည္႔အဝ အသံုးခ်ႏိုင္ေစရန္ 1 Expand Filesystem အား ေရြးခ်ယ္ေပးလိုက္ပါ။ ထို႔သို႔ ေရြးခ်ယ္ေပးလိုက္သည္ႏွင္႔ ေနာက္တစ္ႀကိမ္ reboot လုပ္အၿပီးတြင္ SD card ၏ အရြယ္အစားအတိုင္း Filesystem က်ယ္ျပန္႔သြားမည္ ျဖစ္ပါသည္။ 
            စကားဝွက္ကို ေျပာင္းလဲရန္အတြက္ 2 Change User Password ကို ေရြးခ်ယ္ႏိုင္ပါသည္။ သို႔မဟုတ္ အထက္တြင္ ေဖၚျပခဲ႔ေသာ passwd command နည္းလမ္းကိုလည္း အသံုးျပဳႏိုင္ပါသည္။
            3 Enable Boot to Desktop/Scratch ကိုမူ မျဖစ္မေန ေရြးခ်ယ္ေပးသင္႔ပါသည္။ ေရြးခ်ယ္မႈ အစီအစဥ္သည္ Raspberry Pi ကို မိမိတို႔ အသံုးခ်မည္႔ အေျခအေနေပၚ မူတည္၍ စဥ္းစားေရြးခ်ယ္ရမည္ ျဖစ္ပါသည္။ boot option မ်ားမွာ ေအာက္ပါအတိုင္း ျဖစ္ပါသည္ - 
            1 Console Text console, requiring login (default)
            2 Desktop Log in as user 'pi' at the graphical desktop
            3 Scratch Start the Scratch programming environment upon boot

                 Console ကို ေရြးခ်ယ္ပါက login ျပဳလုပ္ရန္ လိုအပ္ၿပီး command မ်ားျဖင္႔သာ အသံုးျပဳႏိုင္မည္ ျဖစ္သည္။ အားသာခ်က္မွာ ျမန္ဆန္စြာ လုပ္ေဆာင္ႏိုင္စြမ္းရွိၿပီး headless အသံုးျပဳမည္ဆိုပါက ေရြးခ်ယ္သင္႔ပါသည္။ 
                 Desktop ကို ေရြးခ်ယ္ပါက user 'pi' အေနျဖင္႔ အလိုအေလ်ာက္ login ျပဳလုပ္သြားမည္ ျဖစ္ၿပီး Graphical User Interface ျဖင္႔ အသံုးျပဳႏိုင္မည္ ျဖစ္သည္။ အားနည္းခ်က္မွာ အသံုးျပဳရ အနည္းငယ္ ေႏွးေကြး ႏိုင္ပါသည္။ ယခုမွ စတင္ အသံုးျပဳသူမ်ားအေနျဖင္႔ ေရြးခ်ယ္ေပးသင္႔ပါသည္။
                 Scratch Scratch programming ေရးသားရန္ အသင္႔အေနအထားျဖင္႔ ပြင္႔လာမည္ျဖစ္သည္။ အဆိုပါ option ကို အထူးသျဖင္႔ ကေလးငယ္မ်ားအား Scratch programming သင္ၾကားေပးရာတြင္ လြယ္ကူလွ်င္ျမန္ေစရန္ ေရြးခ်ယ္ႏိုင္ပါသည္။ 
                 4 Internationalisation Options ကေတာ႔ တစ္ခါ ေရြးခ်ယ္ထားၿပီးရင္ ထပ္မံ ျပင္ဆင္စရာ မလိုေတာ႔ပါဘူး။ ေအာက္ပါပံုအတိုင္း option သံုးခု ရွိပါတယ္။
            I1 Change Locale
            I2 Change Timezone
            I3 Change Keyboard Layout 
                 အဲဒီ option ေတြထဲမွာ I2 Change Timezone ကို အထက္မွာ ေဖာ္ျပထားခဲ႔တဲ႔ sudo dpkg-reconfigure tzdata အစားလဲ အသံုးျပဳႏိုင္ပါတယ္။ က်န္တဲ႔ option ႏွစ္ခုကိုေတာ႔ မလိုအပ္ရင္ မေျပာင္းလဲဘဲ ထားႏိုင္ပါတယ္။ 
                 5 Enable Camera ကေတာ႔ Raspberry Pi နဲ႔ ကင္မရာ တြဲဖက္ သံုးဖို႔အတြက္ လိုအပ္လာမယ္ဆိုရင္ Enable ျပဳလုပ္ေပးဖို႔ ျဖစ္ပါတယ္။
                 6 Add to Rastrack ကေတာ႔ မိမိတို႔ Raspberry Pi ကို Pi Map မွာ မွတ္ပံုတင္ထားဖို႔ အေပ်ာ္သေဘာ သံုးႏိုင္ပါတယ္။ 
                 7 Overclock Options ကေတာ႔ မိမိတို႔ Raspberry Pi ကို သတ္မွတ္ခ်က္ထက္ ပိုၿပီး ျမန္ျမန္သံုးခ်င္တဲ႔အခါ ျပင္ဆင္ႏိုင္ပါတယ္။ ေအာက္မွာ ေဖၚျပထားတဲ႔ထဲက Median ကို ေရြးခ်ယ္သင္႔ပါတယ္။ Overclocking လုပ္တာဟာ Raspberry Pi ကို ပူလာေစမယ္ဆိုရင္ သတိထားသင္႔ပါတယ္။

            8 Advanced Options ကေတာ႔ A1 ကေန A7 အထိ ေနာက္ထပ္ ခုႏွစ္မ်ိဳး ထပ္မံ ပါရွိပါတယ္။ 
            A1 Overscan - ေမာ္နီတာမွာ အမဲစင္းေတြ ျမင္ေနရရင္ ခ်ိန္ညွိဖို႔ အသံုးျပဳႏိုင္ပါတယ္။
            A2 Hostname - Network ထဲမွာ အသံုးျပဳမယ္႔ Raspberry Pi ရဲ႕  နာမည္ကို သတ္မွတ္ေပးဖို႔ အသံုးျပဳႏိုင္ပါတယ္။ အမည္ေပးရာမွာ a to z, 0 to 9 နဲ႔ hyphen (-) တို႔ကိုသာ အသံုးျပဳရမွာ ျဖစ္ၿပီး case-insensitive ျဖစ္တဲ႔အတြက္ စာလံုးအႀကီးအေသး ကြာျခားမႈ မရွိပါဘူး။ Hyphen (-) ကို သံုးတဲ႔ေနရာမွာလဲ အစ နဲ႔ အဆံုးမွာ သံုးခြင္႔မျပဳပါဘူး။ အျခား သေကၤတေတြ နဲ႔ space ေတြကို အသံုးျပဳခြင္႔ မျပဳပါဘူး။ 

            Hostname ကို အျခားနည္းလမ္း အသံုးျပဳ၍လည္း ျပင္ဆင္ႏိုင္ပါသည္။ ထိုသို႔ျပဳလုပ္ရန္ /etc/hostname ဟူေသာ configuration file ကို sudo nano /etc/hostname command ျဖင္႔ ဖြင္႔ကာ မိမိေပးလိုေသာ အမည္ကို အစားထိုး သိမ္းဆည္းလိုက္ရမည္ ျဖစ္ပါသည္။ ထို႔ေနာက္ sudo /etc/init.d/hostname.sh start ဟူေသာ command ျဖင္႔ startup script အား run ေပးလိုက္ျခင္းျဖင္႔ ျပင္ဆင္မႈမ်ားကို အတည္တက် ျဖစ္သြားေစမည္ ျဖစ္သည္။
            A3 Memory Split - ကၽြန္ေတာ္တို႔အေနျဖင္႔ Raspberry Pi ေပၚတြင္ Memory အား GPU အတြက္ မည္မွ် ခြဲေဝေပးမည္ ဆိုသည္ကို သတ္မွတ္ေပးရန္ လိုအပ္လာမည္ ျဖစ္ပါသည္။ လိုအပ္ခ်က္အေပၚ မူတည္၍ ခြဲေဝေပးရမည္ ျဖစ္ၿပီး SSH ကို အဓိက သံုးမည္ဆိုပါက Memory အားအတတ္ႏိုင္ဆံုး အနည္းဆံုး ခြဲေဝေပးသင္႔ပါသည္။
            A4 SSH - ၎သည္ default အေနျဖင္႔ Enable ေပးထားျခင္းျဖစ္ၿပီး SSH အသံုးမျပဳလိုသည္႔ အခ်ိန္တြင္ ပိုမိုလံုျခံဳမႈ ရွိေစရန္ Disable ေပးထားႏိုင္ေပသည္။
            A5 SPI - PiFace ကို အသံုးျပဳသည္႔ အခါမ်ိဳးတြင္ လိုအပ္ပါက SPI kernel module အား အလိုအေလ်ာက္ loading ျပဳလုပ္ေပးႏိုင္ရန္ Enable ျပဳလုပ္ေပးႏိုင္ပါသည္။
            A6 Audio - အသံနဲ႔ ပက္သက္ၿပီး HDMI ကေန ဒါမွမဟုတ္ 3.5mm jack ကေန အသံထုတ္ေပးဖို႔ကို ေရြးခ်ယ္ေပးႏိုင္ပါတယ္။ မေသခ်ာရင္ 0 Auto မွာ ထားလိုက္ပါ။

            A7 Update ကေတာ႔ raspi-config ကိုယ္တိုင္ကို update ျပဳလုပ္ဖို႔ လိုအပ္တဲ႔ အခါမွာ အသံုးျပဳႏိုင္ပါတယ္။
            အထက္ပါ option ေတြကို အခ်ိန္မေရြး ျပန္လည္ ျပင္ဆင္ႏိုင္ပါတယ္။ raspi-config ကို ျပန္လည္ေခၚယူလိုက္ရံုပဲ ျဖစ္ပါတယ္။
            Raspberry Pi -  Static IP address ျဖစ္ေအာင္ ျပဳလုပ္နည္း
            Note: Raspberry Pi ၏ network setting မ်ားကို /etc/network folder ထဲရွိ interfaces ဆိုေသာ text ဖိုင္ထဲတြင္ သိမ္းဆည္းထားပါသည္။ မိမိတို႔ ျပဳျပင္လိုေသာ network setting မ်ားကို အဆိုပါ ဖိုင္ထဲတြင္ ျပင္ဆင္ေရးသားႏိုင္ပါသည္။ သို႔ေသာ္ သတိထားရမည္႔ အခ်က္မွာ ျပင္ဆင္မႈမ်ား မျပဳလုပ္မီ အဆိုပါ မူရင္း interfaces ဖိုင္ကို ပြားယူထားရန္ျဖစ္ပါသည္။
            ထိုသို႔ ျပဳလုပ္ရန္အတြက္ ပထမဦးစြာ /etc/network ေနရာသို႔ ေရာက္ေအာင္ သြားရပါမည္။

            ထို႔ေနာက္ ls command ကို သံုးၿပီး အဆိုပါ folder အတြင္းရွိ ဖိုင္မ်ားကို ၾကည္႔ပါ။
            interfaces ဟူေသာ ဖိုင္သည္ ကၽြန္ေတာ္တို႔ ျပင္ဆင္ရမည္႔ ဖိုင္ျဖစ္ပါသည္။ interfaces1 သည္ မူရင္းဖိုင္အား ပြားယူထားလိုက္ျခင္း ျဖစ္ပါသည္။ ထိုသို႔ ပြားယူရန္ sudo cp interfaces interfaces1 ဟူေသာ command ကို အသံုးျပဳထားျခင္း ျဖစ္ပါသည္။ ျပင္ဆင္လိုသည္႔ interfaces ဟူေသာ ဖိုင္ကို ဖြင္႔ရန္ sudo nano interfaces ဟူေသာ command ကို သံုးပါ။ ေအာက္ပါအတိုင္း ျမင္ရမည္ ျဖစ္သည္ -

            Ctrl + X ကို ႏွိပ္၍ ထြက္လိုက္ပါ။
            အထက္ပါပံုတြင္ အနီေရာင္မ်ဥ္းသားထားေသာ iface eth0 inet dhcp သည္ ကၽြန္ေတာ္တို႔ လက္ရွိသံုးေနေသာ Ethernet အား router မွ DHCP ျဖင္႔ အလိုအေလ်ာက္ register ျပဳလုပ္ေပးေသာ IP ကို ရယူ အသံုးျပဳရန္ သတ္မွတ္ေပးထားျခင္း ျဖစ္သည္။ အဆိုပါ စာေၾကာင္းကို ျပင္ဆင္ေပးရန္ လိုအပ္ပါသည္။ ပထမဦးစြာ လိုအပ္ေသာ သတင္းအခ်က္အလက္မ်ားကို စုေဆာင္းရမည္ ျဖစ္ပါသည္။ ifconfig ကို အသံုးျပဳပါ။

            အထက္ပါပံုတြင္ HWaddr b8:27:eb:6f:26:2d သည္ ကၽြန္ေတာ္ လက္ရွိ အသံုးျပဳေနသည္႔ Raspberry Pi ၏ Hardware Address သုိ႔မဟုတ္ MAC Address ျဖစ္ပါသည္။
            addr:192.168.1.2 သည္ Router ၏ DHCP မွ ခ်ေပးထားေသာ IP Address ျဖစ္ပါသည္။ ၎ကို မိမိတို႔ အလိုရွိေသာ IP Address ျဖင္႔ အစားထိုး ေျပာင္းလဲရမည္ ျဖစ္ပါသည္။ ထိုသို႔ ေျပာင္းလဲရာတြင္ ေနာက္ဆံုးအလံုးကိုသာ ေျပာင္းလဲရမည္ျဖစ္ၿပီး 1 မွ 255 အၾကားတြင္သာ ထားရွိရမည္ ျဖစ္ပါသည္။ ထို႔ျပင္ အျခားကြန္ပ်ဴတာမ်ားႏွင္႔ IP Address တူညီမႈ မရွိေစရန္ ႀကိဳတင္ စာရင္းျပဳစု စဥ္းစားထားဖို႔ လိုအပ္မည္ျဖစ္ပါသည္။ မ်ားေသာအားျဖင္႔ 1 သည္ server တစ္ခုခု၏ IP Address ျဖစ္ႏိုင္ေခ်ရွိသလို CPE မ်ား အသံုးျပဳထားပါက 254 သည္ CPE ၏ IP Address ျဖစ္ႏိုင္ပါသည္။ ထို႔ျပင္ Router အမ်ားစုတြင္ default အေနျဖင္႔ DHCP တြင္ IP Address ကို 100 ႏွင္႔ 255 အၾကား ခ်ထားေပးရန္ သတ္မွတ္ထားေလ႔ ရွိပါသည္။ ထို႔ေၾကာင္႔ static ip ေပးရာတြင္ 100 ေအာက္ရွိ အျခား server မ်ားႏွင္႔ လြတ္ကင္းမည္႔ IP Address ကို သတ္မွတ္ေပးထားရန္ အေရးႀကီးပါသည္။
            Bcast - 192.168.1.255 သည္ Broadcast IP Range ျဖစ္ၿပီး မွတ္သားထားရန္ လိုအပ္ပါသည္။
            Mask - 255.255.255.0 သည္ Subnet Mask Address ျဖစ္ၿပီး မွတ္သားထားရမည္ ျဖစ္ပါသည္။
            ထို႔ေနာက္ လိုအပ္ေနေသးေသာ အခ်က္အလက္အခ်ိဳ႕  ထပ္မံရယူႏိုင္ရန္ netstat -nr ဟူေသာ command ကို အသံုးျပဳပါမည္။


            အထက္ပါပံုတြင္ ကၽြန္ေတာ္တို႔အတြက္ လိုအပ္လာမည္႔ Destination ႏွင္႔ Gateway ႏွစ္ခုကို မွတ္သားထားရပါမည္။
            Destination : 192.168.1.0
            Gateway    : 192.168.1.1
            အထက္ပါ အခ်က္အလက္အားလံုးကို မွတ္စု စာအုပ္တြင္ ေရးမွတ္ထားရမည္ ျဖစ္ပါသည္။ Raspberry PI casing ေပၚတြင္လည္း ေရးမွတ္ထားသင္႔ပါသည္။ ထို႔ေနာက္ /etc/network/ folder အတြင္းရွိ interfaces ဖိုင္အတြင္း ဝင္ေရာက္ ျပင္ဆင္ရန္ sudo nano /etc/network/interfaces ဟူေသာ command ကို အသံုးျပဳမည္ ျဖစ္ပါသည္။
            ေအာက္ပါပံုတြင္ အနီေရာင္ ကြင္းခတ္ထားေသာ စာသားမ်ားသည္ static ip ရရွိေစရန္ ထည္႔သြင္း ျပဳျပင္ထားျခင္းပင္ ျဖစ္ပါသည္။
            address 192.168.1.2
            netmask 255.255.255.0
            network 192.168.1.0
            broadcast 192.168.1.255
            gateway 192.168.1.1

            Ctrl + X ကို ႏွိပ္ၿပီး ဖိုင္ကို Save လုပ္လိုက္ပါ။ ေနာက္တစ္ႀကိမ္ sudo reboot အၿပီးတြင္ IP Address မ်ားကို scan ျပဳလုပ္ရန္ မလိုအပ္ေတာ႔ဘဲ Raspberry Pi ၏ IP Address သည္ 192.168.1.2 ျဖစ္သြားမည္ ျဖစ္ပါသည္။ ပိုမို ေသခ်ာေစရန္ ifconfig command သံုး၍ IP Address အား စစ္ေဆးၾကည္႔ပါ။ ထို႔ေနာက္ Gateway Address 192.168.1.1 အား ping ျပဳလုပ္၍ အတည္ျပဳႏိုင္ပါသည္။
            Raspberry Pi ေပၚတြင္ TightVNCserver အား install ျပဳလုပ္ျခင္း
            ယခုအခါ  GUI ျဖင္႔ အသံုးျပဳႏိုင္ရန္အတြက္ tightvncserver ကို install ျပဳလုပ္ရမည္ ျဖစ္ပါသည္။ အသံုးျပဳရမည္႔ command မွာ sudo apt-get install tightvncserver ျဖစ္ပါသည္။
            ထို႔ေနာက္ tightvncserver ကို စတင္ရန္ အတြက္ sudo tightvncserver ဟူေသာ command ကို အသံုးျပဳရမည္ ျဖစ္ပါသည္။ ပထမဆံုးအႀကိမ္ စတင္အသံုးျပဳရာတြင္ Desktop အား access ျပဳလုပ္ရန္ စကားဝွက္ေတာင္းခံလာမည္ ျဖစ္ပါသည္။ စကားဝွက္သည္ စာလံုးေရ ၈ လံုးထက္ မေက်ာ္ရပါ။ View-only password သည္ မလိုအပ္သျဖင္႔ n ႏွိပ္ကာ ေက်ာ္သြားႏိုင္ပါသည္။ ယခုအခါ tightvncserver သည္ password သတ္မွတ္ေပးၿပီး ခ်ိတ္ဆက္အသံုးျပဳရန္ အသင္႔အေနအထားသို႔ ေရာက္ရွိလာၿပီ ျဖစ္ပါသည္။

            Start VNC automatically
            Raspberry Pi ပါဝါ ေပးလိုက္တာနဲ႔ အလိုအေလ်ာက္ tightvncserver ကို အလုပ္လုပ္ေစဖို႔ လိုအပ္ပါတယ္။ ဒါမွ မဟုတ္ရင္ အၿမဲတမ္း ssh ကေန sudo tightvncserver command ကို အၿမဲ run ေပးေနၾကရမွာပါ။ ဒါေၾကာင္႔ tightvncserver အတြက္ autorun ဖိုင္ တစ္ခု တည္ေဆာက္ပါမယ္။
            sudo nano /etc/init.d/tightvncserver

            ေပၚလာတဲ႔ nano editor ထဲမွာ ေအာက္ပါ ကုဒ္မ်ားကို ေရးထည္႔ေပးရပါမယ္။
            # First configure the user you want to run this under - this will generally be pi, unless you've created your own users
            export USER='pi'
            eval cd ~$USER

            # Check the state of the command - this'll either be start or stop
            case "$1" in
              start)
                # if it's start, then start vncserver using the details below
                su $USER -c '/usr/bin/vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565'
                echo "Starting vncserver for $USER "
                ;;
              stop)
                # if it's stop, then just kill the process
                pkill Xtightvnc
                echo "vncserver stopped"
                ;;
              *)
                echo "Usage: /etc/init.d/vncserver {start|stop}"
                exit 1
                ;;
            esac
            exit 0

            ၿပီးရင္ Ctrl+X ကိုႏွိပ္ၿပီး Y ကိုႏွိပ္ျခင္းျဖင္႔ startup file ကို သိမ္းဆည္းႏိုင္ပါၿပီ။
            ေနာက္တစ္ခုက အဲဒီ startup file ကို run လို႔ ရေအာင္ ေအာက္ပါ command သံုးၿပီး ျပင္ဆင္ေပးရပါမယ္။
            sudo chmod 755 /etc/init.d/tightvncserver
            အဲဒီဖိုင္ကို startup sequence ထဲ ထည္႔ဖို႔အတြက္ကေတာ႔ ေအာက္ပါ command ကို ေနာက္ဆံုး run ေပးရပါမယ္။
            sudo update-rc.d tightvncserver defaults
            အခုဆိုရင္ Raspiberry Pi စတက္တာနဲ႔ VNC Viewer ကေနတဆင္႔ ခ်ိတ္ဆက္ရန္ အသင္႔ ျဖစ္ေနပါၿပီ။
            Raspberry Pi ၏ tightvncserver ကို ကြန္ပ်ဴတာမွတဆင္႔ ဆက္သြယ္ ထိန္းခ်ဳပ္ အသံုးျပဳနည္း

            ကြန္ပ်ဴတာေပၚတြင္ tightvnc အား install ျပဳလုပ္ပါမည္။
            TightVNC ေဆာ႔ဖ္ဝဲသည္ windows ကြန္ပ်ဴတာေပၚတြင္ viewer သာမက server ပါ တင္ေပးျခင္း ျဖစ္ပါသည္။ ဆိုလိုသည္မွာ windows ကြန္ပ်ဴတာေပၚမွေန၍ Raspberry Pi အား ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္ အသံုးျပဳႏိုင္သလို ၎ကြန္ပ်ဴတာကိုလည္း အျခားကြန္ပ်ဴတာ တစ္လံုးေပၚမွ ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္အသံုးျပဳႏိုင္ေစရန္ ျပဳလုပ္ထားျခင္း ျဖစ္ပါသည္။ ေအာက္ေဖၚျပပါ ပံုသည္ ၎ကြန္ပ်ဴတာအား အျခားကြန္ပ်ဴတာမ်ားမွ ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္ အသံုးျပဳႏိုင္ေစရန္ server setting မ်ား ျပဳလုပ္ေပးရသည္႔ screen ပံုျဖစ္ပါသည္။

            အနီေရာင္ ျပထားေသာ ေနရာသည္ အျခားကြန္ပ်ဴတာမွ ခ်ိတ္ဆက္ရန္ လိုအပ္သည္႔ စကားဝွက္ထည္႔သြင္းရမည္႔ ေနရာ ျဖစ္ပါသည္။ အစိမ္းေရာင္ ျပထားသည္႔ ေနရာမွာ မသက္ဆိုင္သူမ်ားက server setting အား ဝင္ေရာက္ျပင္ဆင္ျခင္း မျပဳႏိုင္ေစရန္ administrative password ျပဳလုပ္ထားႏိုင္သည္႔ ေနရာပင္ ျဖစ္ပါသည္။ အကယ္၍ ၎ကြန္ပ်ဴတာသည္ Raspberry Pi အား ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္ အသံုးျပဳရန္အတြက္သာ ရည္ရြယ္ထားပါက ခရမ္းေရာင္ဝိုင္းျပထားေသာ Do not change ကို ေရြးခ်ယ္ေပးႏိုင္ပါသည္။
            Raspberry Pi ႏွင္႔ ခ်ိတ္ဆက္ထိန္းခ်ဳပ္ႏိုင္ရန္ ပံုတြင္ ျပထားသည္႔ TightVNC Viewer ကို ဖြင္႔ပါ။ Remote Host ေနရာတြင္ Raspberry Pi ၏ IP Address:1 ပံုစံ ရိုက္ထည္႔ပါ။ ဥပမာ - 192.168.1.2:1 ။ ထို႔ေနာက္ Connect ကို ႏွိပ္ပါ။ 
            ေအာက္ပါပံုကဲ႔သို႔ Vnc Authentication dialog box ေပၚလာမည္ျဖစ္ပါသည္။ Password ေနရာတြင္ tightvncserver ကို Raspiberry Pi တြင္ ပထမဆံုး run စဥ္က ေပးထားခဲ႔သည္႔ စကားဝွက္ကို ထည္႔သြင္းေပးပါ။
                 စကားဝွက္မွန္ကန္ပါက ကြန္ပ်ဴတာေပၚတြင္ Raspberry Pi ၏ Desktop ကို ပံုပါအတိုင္း ေတြ႔ျမင္ ထိန္းခ်ဳပ္ အသံုးျပဳႏိုင္ၿပီ ျဖစ္သည္။ 

            iOS သို႔မဟုတ္ Android devices မ်ားမွ တဆင္႔ Raspberry Pi အား ခ်ိတ္ဆက္နည္း
            Raspberry Pi ကို iOS devices ဒါမွမဟုတ္ Android devices ေတြကလည္း ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္ အသံုးျပဳႏိုင္ပါတယ္။ iPhone နဲ႔ ျဖစ္ေစ၊ iPad နဲ႔ျဖစ္ေစ Android Phone ေတြနဲ႔ Tablet ေတြနဲ႔ျဖစ္ေစ အသံုးျပဳနည္းမ်ားကို တင္ျပေပးသြားမွာပါ။
            iOS 8
            ပထမဆံုး မိမိတို႔ iPhone သို႔မဟုတ္ iPad ရဲ႕ App Store ကေန SSH နဲ႔ VNC server ေတြကို ခ်ိတ္ဆက္ႏိုင္ဖို႔ app ေတြ ရွာေဖြၿပီး install လုပ္ထားဖို႔ လိုပါမယ္။ လက္ရွိ ကၽြန္ေတာ္ အသံုးျပဳေနတဲ႔ app ေလးေတြကေတာ႔ SSH အတြက္ Serverauditor နဲ႔ VNC အတြက္ VNC Viewer app ေလးေတြပဲ ျဖစ္ပါတယ္။ Apple Application Store မွာ ေနာက္ထပ္ အခမဲ႔ရတဲ႔ networking apps ေလးေတြ အမ်ားအျပားရွိပါတယ္။ ေအာက္က ပံုမွာ app အခ်ိဳ႕ကို နမူနာ ျပေပးထားပါတယ္။

                 iOS8 မွာ ကၽြန္ေတာ္ အဓိက တြဲဘက္ အသံုးျပဳတဲ႔ app သံုးခုကေတာ႔ ေအာက္မွာ ေဖၚျပထားတဲ႔ Fing, Serverauditor နဲ႔ VNC Viewer တို႔ပဲ ျဖစ္ပါတယ္။ ၎တို႔ကို Application store မွာ အခမဲ႔ ရယူႏိုင္ပါတယ္။
            Fing
                 Fing ကေတာ႔ အေျခခံအက်ဆံုး app ျဖစ္ၿပီး အျခား app ေတြနဲ႔ပါ ခ်ိတ္ဆက္ၿပီး အလုပ္လုပ္ႏိုင္စြမ္းရွိပါတယ္။ ကၽြန္ေတာ္ အႀကိဳက္ဆံုးကေတာ႔ အနီေရာင္ ကြင္းခတ္ျပထားသလို IP Address နဲ႔အတူ Raspberry Pi Foundation ဆိုၿပီး ျပသေပးႏိုင္တာေၾကာင္႔ မိမိတို႔ Raspberry Pi ကို အလြယ္တကူ ရွာေဖြႏိုင္တာပဲ ျဖစ္ပါတယ္။ ေအာက္မွာ Fing ကေန Scan လုပ္ျပထားပါတယ္။

                 Raspberry Pi ကို ရွာေတြ႔တဲ႔အခါ click လုပ္လိုက္ပါ။ ေအာက္ပါ ပံုအတိုင္း ျမင္ရပါလိမ္႔မည္။
                 Scan Services မွာ 4 services ဆိုၿပီး ေပၚေနတာ ေတြ႕ရပါလိမ္႔မယ္။ Click ျပဳလုပ္လိုက္ပါ။ ေအာက္ပါပံုအတိုင္း ခ်ိတ္ဆက္ႏိုင္တဲ႔ Services အမ်ိဳးအစားမ်ားကို ျပသေပးမွာ ျဖစ္ပါတယ္။
                 အဲဒီ services ေလးမ်ိဳးအနက္ သံုးမ်ိဳးကို ခ်ိတ္ဆက္လို႔ရပါတယ္။ ဒီဥပမာမွာေတာ႔ 22 ssh နဲ႔ 5901 vnc-1 တို႔ကို ခ်ိတ္ဆက္ျပမွာ ျဖစ္ပါတယ္။ ျမားျပထားတဲ႔ ေနရာေတြကို click ျပဳလုပ္မယ္ဆိုရင္ သက္ဆိုင္ရာ app ေတြကို ခ်ိတ္ဆက္ႏိုင္တဲ႔ menu ေတြ ေပၚလာမွာ ျဖစ္ပါတယ္။ မိမိ install လုပ္ထားတဲ႔ app ကို ေရြးခ်ယ္ၿပီး ခ်ိတ္ဆက္ႏိုင္ပါတယ္ခင္ဗ်ာ။ ပထမဦးဆံုး ssh ကို ေရြးခ်ယ္မွာ ျဖစ္ပါတယ္။
                 ၄င္းမွာ menu ေလးမ်ိဳးရွိတဲ႔အနက္ Open with ssh ကို ေရြးခ်ယ္ေပးျခင္းအားျဖင္႔ Serverauditor ရဲ႕ Quick Connect အလိုလိုပြင္႔လာမွာ ျဖစ္ပါတယ္။ Serverauditor ကို Fing ကေန ခ်ိတ္ဆက္ေခၚယူျခင္း မျပဳဘဲ သီးသန္႔ေခၚယူ အသံုးျပဳႏိုင္ပါတယ္။
                 စကားဝွက္ထည္႔သြင္းေပးၿပီးရင္ Connect ျပဳလုပ္လို႔ရၿပီျဖစ္ပါတယ္။ စကားဝွက္ မွန္ကန္ခဲ႔လွ်င္ ေအာက္ပါပံုအတိုင္း Raspberry Pi ရဲ႕ command shell ေပၚလာမွာ ျဖစ္ပါတယ္။ အထက္မွာ ေဖၚျပထားခဲ႔တဲ႔ ကြန္ပ်ဴတာ အသံုးျပဳ ခ်ိတ္ဆက္စဥ္က process မ်ားအတိုင္း update လုပ္ျခင္းနဲ႔ tightvncserver အပါအဝင္ လိုအပ္တဲ႔ software မ်ား install ျပဳလုပ္ေပးရပါမယ္။
                 Raspberry Pi ကို VNC နဲ႔ ခ်ိတ္ဆက္ႏိုင္ဖို႔အတြက္ Fing ရဲ႕  5901 vnc-1 service ဆိုတာကို ေရြးခ်ယ္ေပးရမွာ ျဖစ္ပါတယ္။ ထိုအခါ ေအာက္ပါအတိုင္း vnc ကိုဖြင္႔ဖို႔ menu ႏွစ္ခုေပၚလာတဲ႔အခါမွာ Open with vnc ဆိုတာကို ေရြးခ်ယ္ေပးလိုက္ပါ။
                 VNC Viewer app ပြင္႔လာမွာ ျဖစ္ပါတယ္။ ဒါမွမဟုတ္ VNC Viewer app ကို သီးသန္႔ေခၚယူ အသံုးျပဳႏိုင္ပါေသးတယ္။ Confirmation dialog box မွာ OK ကို click ႏွိပ္ေပးလိုက္ပါ။
               VNC connection ဟာ Encryption ျပဳလုပ္မထားဘူး ဆိုတာကို သတိေပးတဲ႔ စာတန္းေတြ ေအာက္ပါအတိုင္း ေပၚလာပါလိမ္႔မယ္။
                 Connect ကိုသာ ေရြးခ်ယ္ေပးလိုက္ပါ။ VNC connection အတြက္ လိုအပ္တဲ႔ စကားဝွက္ကို ေတာင္းခံလာပါလိမ္႔မယ္။
                 စကားဝွက္ထည္႔သြင္းၿပီး Done ကို ႏွိပ္လိုက္ပါ။ စကားဝွက္ မွန္ကန္သြားလွ်င္ ေအာက္ပါအတိုင္း Raspberry Pi ကို ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္ အသံုးျပဳႏိုင္သြားၿပီ ျဖစ္ပါတယ္။

            Android OS
            APK FOR NETWORKING
                 SSH, VNC စတာေတြနဲ႔ ခ်ိတ္ဆက္ဖို႔ လိုအပ္တဲ႔ apk မ်ားကို Google play store ကေန ရယူလိုက္ပါ။


                 ပံုမွာျပထားတဲ႔ အတိုင္း apk အမ်ားအျပားကို အခမဲ႔ ရယူႏိုင္ပါတယ္။ ကၽြန္ေတာ္တို႔ အဓိက အသံုးျပဳမယ္႔ apk ႏွစ္ခုကေတာ႔ ConnectSSH နဲ႔ VNC Viewer ေတြပဲျဖစ္ပါတယ္။ ခ်ိတ္ဆက္ပံု ခ်ိတ္ဆက္နည္း ေတြက အထက္မွာ ရွင္းျပခဲ႔ၿပီးတဲ႔ iOS app ေတြနဲ႔ ဆင္တူၿပီး ေအာက္မွာ ပံုေတြနဲ႔ ရွင္းလင္း ျပသေပးထားပါတယ္။ အခုဆိုရင္ Android device ေတြမွာလည္း Raspberry Pi ကို SSH နဲ႔ ခ်ိတ္ဆက္ၿပီး အသံုးျပဳႏိုင္ၿပီ ျဖစ္ပါတယ္။ အထက္မွာ ေဖၚျပထားခဲ႔တဲ႔ ကြန္ပ်ဴတာ အသံုးျပဳ ခ်ိတ္ဆက္စဥ္က process မ်ားအတိုင္း update လုပ္ျခင္းနဲ႔ tightvncserver အပါအဝင္ လိုအပ္တဲ႔ software မ်ား install ျပဳလုပ္ေပးရပါမယ္။ အားလံုး ၿပီးစီးသြားတဲ႔ အခါမွာ VNC Viewer app ကေန ခ်ိတ္ဆက္ၿပီး ထိန္းခ်ဳပ္အသံုးျပဳႏိုင္ၿပီ ျဖစ္ပါတယ္။
            SSH ခ်ိတ္ဆက္ အသံုးျပဳပံု အဆင္႔ဆင္႔
            VNC ခ်ိတ္ဆက္ အသံုးျပဳပံု အဆင္႔ဆင္႔

             နိဂံုး
            Raspberry Pi တစ္လံုးအား network ကေနတဆင္႔ headless အသံုးျပဳပံုမ်ားကို အတတ္ႏိုင္ဆံုး ျပည္႔ျပည္႔စံုစံုျဖစ္ေအာင္ ႀကိဳးစားတင္ျပေပးထားပါတယ္။ Android ဖုန္းတစ္လံုး ဒါမွ မဟုတ္ iPhone တစ္လံုး ရွိရံုနဲ႔ Raspberry Pi ကို ခ်ိတ္ဆက္ ထိန္းခ်ဳပ္ အသံုးျပဳႏိုင္တာေၾကာင္႔ မျဖစ္မေန ေလ႔လာထားရမယ္႔ နည္းလမ္းေတြပဲ ျဖစ္ပါတယ္။ App ေတြကေတာ႔ အခ်ိန္နဲ႔ လိုက္ၿပီး ေျပာင္းလဲ တိုးတက္လာႏိုင္ပါတယ္။ Raspberry Pi အေနနဲ႔လဲ အမ်ားႀကီး တိုးတက္ ေျပာင္းလဲလာဦးမွာပါ။ ေနာင္တစ္ခ်ိန္မွာ Linux သာမက Windows ေတြကိုပါ Raspberry Pi ေပၚမွာ run ႏိုင္မွာ ျဖစ္ပါတယ္။ အသံုးျပဳပံု နည္းလမ္းေတြ အနည္းငယ္ ေျပာင္းလဲသြားႏိုင္ေပမယ္႔ ခ်ိတ္ဆက္ လုပ္ေဆာင္မႈ သေဘာသဘာဝေတြ ကေတာ႔ တူညီေနဦးမွာ ျဖစ္တယ္ဆိုတာ တင္ျပရင္ နိဂံုးခ်ဳပ္လိုက္ရပါတယ္။
            Dr. ေအာင္ဝင္းထြဋ္(BluePhoenix)
            21-3-2015
            ရည္ညႊန္းကိုးကားခ်က္မ်ား
            1. http://www.howtogeek.com/124849/how-to-remote-control-your-home-computer-from-anywhere-with-vnc/#
            2. http://www.noveldevices.co.uk/rp-hostname
            3. https://learn.adafruit.com/adafruit-raspberry-pi-lesson-7-remote-control-with-vnc/overview
            4. http://myraspberrypiexperience.blogspot.co.uk/2012/08/My%20Raspberry%20Pi%20Experience%20%20Start%20VNC%20automatically.html

            ေက်းဇူးတင္လႊာ
                  ဘာမွ မဟုတ္တဲ႔ ဒီေဆာင္းပါးေလးကို ေရးဖို႔အတြက္ လိုအပ္ခ်က္ေတြ အမ်ားႀကီး ရွိခဲ႔ပါတယ္။ ေက်းဇူး တင္ထိုက္သူေတြလည္း အမ်ားႀကီးပါပဲ။ အထူးသျဖင္႔ Raspberry Pi, Banana Pi ေတြကို ကူညီပံ႔ပိုးေပးခဲ႔တဲ႔ ညီေလး စည္သူေအာင္၊ ညီေလး ေနလင္းေက်ာ္၊ အကိုႀကီး ေအာင္ေဇာ္ဝင္း၊ အခက္အခဲရွိရင္ သိလိုသမွ်ကို ကူညီေျဖရွင္းေပးခဲ႔တဲ႔ Ubuntu Myanmar Loco Team မွ ကိုကိုရဲ၊ iOS ကို ေလ႔လာႏိုင္ဖို႔ iPad မ်ား ပံ႔ပိုး ကူညီေပးခဲ႔ၾကသူမ်ား၊ အမည္မေဖာ္ဘဲ Open Education အတြက္ စိတ္အား၊ လူအား၊ ေငြအားနဲ႔ ကူညီေထာက္ပံ႔ေပးေနသူမ်ား အားလံုးကို အထူးေက်းဇူးတင္ရွိပါေၾကာင္း ဒီေနရာကေန မွတ္တမ္းတင္ ဂုဏ္ျပဳအပ္ပါတယ္ ခင္ဗ်ာ။

            သင္ေသသြားေသာ္ သင္ဖြားေသာေျမ၊သင္တို႔ ေျမသည္၊ အေျခတိုးျမင္႔၊ က်န္ေကာင္းသင္႔၏...(ေဇာ္ဂ်ီ)