all about Raspberry Pi

all about Raspberry Pi

2020, Feb 21    

ဒေါက်တာ ရန်နိုင်အေး၏ အမှာစာ

ဒီနေ့ခေတ်မှာ ကွန်ပျူတာ ပရိုဂရမ် ရေးသားမှုကလည်း မရှိမဖြစ် တတ်မြောက်ဖို့ လိုအပ်တဲ့ ကျွမ်းကျင်မှုတစ်ခုလို့ ပြောရလောက်အောင် အရေးကြီးလာပါပြီ။ တချို့ နိုင်ငံတွေမှာလည်း မူလတန်း ကျောင်းတွေမှာကတည်းက ကုဒ်ရေးသားမှုကို ထည့်သွင်း သင်ကြားလာကြပါတယ်။ ပရိုဂရမ် ရေးသားတဲ့အခါမှာ အသုံးပြုကြတဲ့ Programming Language တွေ အမြောက်အများ ရှိတဲ့ထဲက ခေတ်အစားဆုံးလို့ ပြောလို့ရတဲ့ Language တွေထဲမှာ Python ပါဝင်ပါတယ်။ နောက်တစ်ခါ Internet of Things လို့ ခေါ်တဲ့ ပစ္စည်း ကိရိယာတွေကို ချိတ်ဆက် အသုံးပြုမှု ခေတ်စားလာတဲ့အတွက် အီလက်ထရောနစ် ပစ္စည်းကိရိယာတွေကို တွဲသုံးလေ့ရှိတဲ့ Embedded System တွေကလည်း ပိုမို အရေးပါလာပါတယ်။

ဒီ All About Raspberry Pi စာအုပ်က Single Board Computer တစ်ခုဖြစ်တဲ့ Raspberry Pi ကို Python အသုံးပြုပြီး၊ အီလက်ထရောနစ် ပစ္စည်းကိရိယာတွေနဲ့ တွဲဖက် အသုံးချတဲ့ အကြောင်းပါ ဝေဝေဆာဆာ ရေးသားထားတာမို့ ကွန်ပျူတာ ပညာရပ်၊ အီလက်ထရောနစ် ပညာရပ်တွေကို လေ့လာဆည်းပူးနေသူတွေ အတွက် စိတ်ဝင်စားဖို့ ကောင်းပြီး၊ တော်တော်လည်း အသုံးကျမယ့် စာအုပ်ကောင်း တစ်အုပ် ဖြစ်မယ်လို့ ယုံကြည်ပါတယ်။ ရေးသားထားတဲ့ အထဲမှာ လည်း အာရုံခံကိရိယာတွေ အသုံးပြုမှုက အစ၊ Display ကိရိယာတွေ အသုံးပြုမှု အကြောင်း၊ Internet of Things နဲ့ Bluetooth အသုံးပြုမှုပါ မကျန် တော်တော် ပြည့်စုံအောင် ပါဝင်တာမို့ စာရေးသူရဲ့ အားထုတ်မှုနဲ့ စေတနာကို လေးစား ချီးကျူးမိပါတယ်။

ဒေါက်တာ ရန်နိုင်အေး
Nanyang Technological University, Singapore
၁၁၊ ဖေဖော်ဝါရီ၊ ၂၀၂၀


ဆရာချစ်ကိုကိုဝင်း၏ အမှာစာ

ဤ All About Raspberry Pi စာအုပ်သည် Raspberry Pi ကို အခြေခံမှစတင်၍ လေ့လာလိုသူ လူငယ်များအတွက် Linux Command Line များမှအစ Hardware များနှင့် ချိတ်ဆက် အသုံးပြုပုံ၊ Web Server များ တည်‌ဆောက်အသုံးပြုပုံအထိ အသေးစိတ် ရေးသားဖော်ပြထားသောကြောင့် ကိုယ်တိုင် Raspberry Pi Project ‌များ ပြုလုပ်လိုသူများအတွက် အထူးပင်သင့်တော်ပါသည်။

ချစ်ကိုကိုဝင်း
Ubuntu Myanmar LoCo Team
၄၊ ဖေဖော်ဝါရီ၊ ၂၀၂၀


Testimonial of Ko Tho Hi

ဒီစာအုပ်ကို B.E Electronics, B.Sc Computer Science , B.E Mechatronics , B.E IT စသဖြင့် ကျောင်းသားတွေ အထောက်အကူ အနေနဲ့ ဖတ်လို့အဆင်ပြေပါတယ်။ Electronics အခြေခံ၊ Linux distro တစ်ခုခု အခြေခံရှိရင် ဖတ်ရ ပိုအဆင်ပြေပါမယ်။ ဖတ်မယ်ဆိုရင် တစ်ခန်းချင်း အေးဆေးသာဖတ်ပါ။ နားလည်မှ ကျန်တာ ဆက်ဖတ်ပါ။ ဒါမှမဟုတ် ကိုယ်လိုတဲ့ အပိုင်းကိုပဲ သပ်သပ်ဖတ်လည်း ရပါတယ်။ နမူနာ ပရောဂျက်တိုင်း လိုက်မလုပ်ဖြစ်ရင်တောင် အနည်းဆုံး တစ်ခုတော့ စမ်းကြည့်နိုင်ပါလိမ့်မယ်။ ကိုယ့်ကျောင်းမှာ သုံးမည့် ပရောဂျက်ရဲ့ တစ်စိတ်တစ်ပိုင်းအနေနဲ့ သေချာပေါက် အသုံးဝင်မှာတွေ ပါပါတယ်။ code တွေကို ဖတ်တဲ့အခါ အမြန်ဖတ်တာထက် ပရောဂျက်တခုကို သေချာနားလည်တဲ့အထိ ဖတ်တာ အရင် လုပ်စေချင်ပါတယ်။ Source Code တွေကတော့ ပေးထားပါလိမ့်မယ်။ ဒီအတိုင်း လိုက်လုပ်တာထက် ဖြေရှင်းပြချက်ကို သေချာနားလည်ပြီး လိုက်လုပ်တာ ပိုကောင်းပါတယ်။ မရင်းနှီးတဲ့သူ အနေနဲ့ စိတ်ရှည်ပြီး ဖတ်ကြည့်ပေးပါ။ ဒါက ကျွန်တော့်ရဲ့testimonial အနေနဲ့ပါ။

သိုဟိုင်း
Ubuntu Myanmar LoCo Team
၁၉၊ ဖေဖော်ဝါရီ၊ ၂၀၂၀


စာရေးသူ၏ အမှာစာ

“Raspberry Pi ကို စတင်ဖန်တီးဖြစ်ခဲ့တဲ့ ၂၀၀၈ ခုနှစ်တွေတုန်းက ကင်းဘရစ် တက္ကသိုလ်မှာ ရှိတဲ့ ကျောင်းသားလူငယ်တွေ Computer Science ကို လက်တွေ့ အသုံးချနိုင်ဖို့ Raspberry Pi အရေအတွက် ၁၀၀၀ လောက်ပဲ ထောက်ပံ့ပေးဖြစ် မယ်လို့ ကျွန်တော်တို့ မျှော်လင့်ခဲ့ကြပါတယ်။ ဒါပေမယ့် ၂၀၁၉ခုနှစ် ဖေဖော်ဝါရီ လကုန်မှာ Raspberry Pi အရေအတွက် ၂၅သန်း ရောင်းချခဲ့ပြီးပါပြီ” လို့ Raspberry Pi ရဲ့ Founder ဖြစ်တဲ့ Eben Upton က ဆိုပါတယ်။ ဒီအရေအတွက် က စတင်ထွက်ရှိခဲ့တဲ့ Model 1B ကစလို့ 3B+ အထိ အမျိုးအစား အားလုံးပေါင်း ရဲ့ အရေအတွက်သာ ဖြစ်ပြီး Pi Camera လို accessories တွေ မပါဝင်ပါဘူး။

BeagleBone, Banana Pi, Orange Pi တို့ကဲ့သို့ အမျိုးမျိုးသော Single Board Computer တွေ ထွက်ရှိတဲ့အထဲမှာ Raspberry Pi က Community Supporting အကောင်းဆုံးဖြစ်ပြီး စွမ်းဆောင်ရည်လည်း မြင့်မားလို့ ကမ္ဘာတစ်ဝှမ်းမှာ ကျယ် ပြန့်စွာ အသုံးပြုနေကြပါပြီ။ ပြည်တွင်းမှာလည်း အီလက်ထရောနစ် ဝါသနာရှင် တွေအပြင် ကွန်ပျူတာတက္ကသိုလ်နဲ့ နည်းပညာတက္ကသိုလ် အသီးသီးက ကျောင်း သား၊ ကျောင်းသူတွေရဲ့ Project တွေ၊ Thesis တွေကြားမှာ ဝင်ရောက် နေရာယူ လာပြီ ဖြစ်ပါတယ်။ Single Board Microcontroller တစ်ခုဖြစ်တဲ့ Arduino ကို ရင်းနှီးကြပေမယ့် Raspberry Pi ကို စိမ်းနေသူများအတွက် ရည်ရွယ်ပြီး သင်ယူရ လွယ်ကူတဲ့ Python Programming Language နဲ့ လေ့လာနိုင်အောင် ဒီစာအုပ်ကို ရေးသား ထုတ်ဝေလိုက်ရခြင်း ဖြစ်ပါတယ်။

ဒီစာအုပ်မှာ အခန်း(၁၁) ခန်း ပါရှိပြီး စတင်လေ့လာသူတွေအတွက် Raspberry Pi နဲ့ ပတ်သက်တဲ့ အခြေခံပြင်ဆင်မှုတွေကို အခန်း(၁) နဲ့ (၂) မှာ ဖော်ပြ ပေးထားပါတယ်။ အခန်း(၃) နဲ့ (၄) မှာတော့ GPIO အသုံးပြုပုံ အခြေခံတွေနဲ့ သတိထားရမယ့် အချက်တွေ၊ Motor ကဲ့သို့ ပစ္စည်းတွေနဲ့ ချိတ်ဆက်အသုံးပြုပုံတွေ ကို ဖော်ပြပေးထားပါတယ်။ အခန်း(၅) မှာ Communication Interface တွေကို ဖော်ပြပေးထားပြီး interface တစ်ခုချင်းစီကို Arduino နဲ့ ချိတ်ဆက်အသုံးပြုတဲ့ နမူနာ Project တွေ ရေးသားပေးထားပါတယ်။ Project တွေ ပြုလုပ်တဲ့အခါ အသုံးများတဲ့ အမျိုးမျိုးသော Display တွေ၊ Sensor တွေ အသုံးပြုပုံကို အခန်း(၆) နဲ့ (၇) မှာ ဖတ်ရှုလေ့လာနိုင်ပြီး၊ အခန်း(၈) (၉) (၁၀) မှာတော့ Web Server များ တည်ဆောက်အသုံးပြုပုံ၊ IoT (Internet of Things) မှာ အသုံးချနိုင်တဲ့ Platform အမျိုးမျိုး၊ Bluetooth ချိတ်ဆက် အသုံးပြုပုံများကို ဖော်ပြပေးထားပါတယ်။ နောက်ဆုံးအခန်းဖြစ်တဲ့ အခန်း(၁၁) မှာ Camera တပ်ဆင်အသုံးပြုခြင်းနဲ့ အတူ Image Processing အတွက် OpenCV ကိုပါ မိတ်ဆက်ဖော်ပြပေးထားပါတယ်။

Raspberry Pi မှာ အသုံးပြုမယ့် Operating System အနေနဲ့ Debian Linux ကို အခြေပြု တည်ဆောက်ထားတဲ့ Raspbian OS ကိုပဲ အသုံးပြုသွားမှာဖြစ်လို့ Linux နဲ့ အကျွမ်းတဝင် မရှိသေးသူတွေ အတွက်လည်း အခြေခံ Linux Command တွေကို ဒီစာအုပ်မှာ ဖော်ပြပေးထားပါတယ်။ Raspberry Pi နဲ့ ချိတ်ဆက်ပြီး အသုံးပြုမယ့် ကွန်ပျူတာမှာ Microsoft Windows အသုံးပြုသူတွေ အတွက်လည်း အဆင်ပြေအောင် ရေးသား ဖော်ပြပေးထားပေမယ့် အချို့ အခန်းတွေကို လက်တွေ့ လေ့လာစမ်းသပ်နိုင်အောင် Ubuntu OS ကို ရွေးချယ် အသုံးပြုကြဖို့ အကြံပြု လိုပါတယ်။ Ubuntu ဟာလည်း Debian based OS တစ်ခု ဖြစ်တာကြောင့် စာအုပ်မှာ ဖော်ပြထားတဲ့ Linux command တွေကို ပြန်လည် အသုံးချနိုင်မှာ ဖြစ်ပါတယ်။

အမြဲတမ်း version အသစ်တွေ ထွက်ရှိနေတဲ့ Software တွေ၊ image ဖိုင်တွေကို နောက်ဆုံးထွက် update တွေ download ရယူ အသုံးပြုနိုင်စေဖို့နဲ့၊ Source Code တွေကိုလည်း Open Source ဖြစ်စေဖို့ လက်တွေ့ စမ်းသပ်ရာမှာ လိုအပ်တဲ့ Software တွေ၊ Code တွေအတွက် CD, DVD တွေ ထည့်ပေးမထားပါဘူး။ စာအုပ်ထဲမှာ ဖော်ပြထားတဲ့ Source Code တွေကို Code Hosting Platform တစ်ခု ဖြစ်တဲ့ Github မှာ တင်ပေးထားပြီး ထပ်တိုး Program တွေ update တွေ ရှိခဲ့ရင်လည်း အောက်ဖော်ပြပါ Github repository မှာ ပေါင်းထည့်ပေးသွားမှာ ဖြစ်ပါတယ်။

https://github.com/kogyikaunghtet/allaboutRpi

Source Code တွေကို အထက်ပါ လင့်ခ်ကနေ Download ရယူထားပြီးမှ ဖတ်ရှု စမ်းသပ်ကြစေလိုပါတယ်။ Raspberry Pi နဲ့ ပတ်သက်တဲ့ သိသင့်သိထိုက်တာ အားလုံးချုံငုံမိအောင် ရေးသားဖော်ပြပေးထားပေမယ့် အီလက်ထရောနစ် အခြေခံ၊ Linux အခြေခံအနည်းငယ် ရှိသူတွေနဲ့ Arduino ကို အသုံးပြုဖူးထားသူတွေ အတွက် ဒီစာအုပ်ကို ဖတ်ရှုရတာ ပိုမို အဆင်ပြေပါလိမ့်မယ်။

နိဂုံးချုပ်အနေနဲ့ ပြောလိုတာကတော့ ဒီစာအုပ်က ကျွန်တော့်ရဲ့ ပထမဆုံးစာအုပ် ဖြစ်တဲ့အတွက် လိုအပ်ချက်များနဲ့ စာလုံးပေါင်းသတ်ပုံအမှားများ ရှိခဲ့ရင် ပြင်ဆင် ဖတ်ရှုပေးဖို့ မေတ္တာရပ်ခံလိုပါတယ်။ ကျွန်တော် တတ်သိသမျှကို ပြန်လည်ဝေမျှနိုင်အောင် မွေးဖွားပေးခဲ့တဲ့ ကျေးဇူးရှင်မိဘနှစ်ပါးနဲ့ ပညာသင်ကြားပေးခဲ့ကြတဲ့ ဆရာ/ဆရာမများ၊ စာအုပ်ဖြစ်မြောက်အောင် အဖက်ဖက်မှ ဝိုင်းဝန်းကူညီပေးခဲ့ကြသူများ အားလုံးကို ကျေးဇူးတင် ဂါရဝပြုအပ်ပါတယ်။

ကောင်းထက်ထွန်း
Phoewa Science

မာတိကာ

  • အခန်း(၁)
  • မိတ်ဆက်
  • အခန်း(၂)
  • Network ချိတ်ဆက်ခြင်း
    • ၂.၁ Wifi ချိတ်ဆက်ခြင်း
    • ၂.၂ Wired Network ချိတ်ဆက်ခြင်း
    • ၂.၃ IP Address စစ်ဆေးခြင်း
    • ၂.၄ Static IP Address သတ်မှတ်ခြင်း
    • ၂.၅ Raspberry Pi Network Name ကို ပြုပြင်ခြင်း
    • ၂.၆ SSH ဖြင့် ချိတ်ဆက် အသုံးပြုခြင်း
    • ၂.၇ VNC ဖြင့် ဆက်သွယ်ခြင်း
    • ၂.၈ SFTP ဖြင့် ဖိုင်များ ပေးပို့ရယူခြင်း
    • ၂.၉ NAS Server တည်ဆောက်ခြင်း
    • ၂.၁၀ Sublime Text အား SSH ပေါ်မှတဆင့် ချိတ်ဆက် အသုံးပြုခြင်း
  • အခန်း(၃)
  • GPIO အခြေခံများ
    • ၃.၁ sysfs Mode ဖြင့် GPIO များအား ထိန်းချုပ်ခြင်း
    • ၃.၁.၁ sysfs interface အား Python တွင် အသုံးပြုခြင်း
    • ၃.၂ WiringPi Library သုံး၍ GPIO များအား ထိန်းချုပ်ခြင်း
    • ၃.၂.၁ wiringPi pinMode setup အား Python တွင် အသုံးပြုခြင်း
    • ၃.၂.၂ BCM pinMode setup အား Python တွင် အသုံးပြုခြင်း
    • ၃.၂.၃ Digital Input တန်ဖိုးများ ဖတ်ခြင်း
    • ၃.၂.၄ wiringPi GPIO command များအား Terminal တွင် အသုံးပြုခြင်း
    • ၃.၃ Bash Script File တွင် GPIO command များ အသုံးပြုခြင်း
    • ၃.၄ RPi.GPIO Library သုံး၍ GPIO များအား ထိန်းချုပ်ခြင်း
    • ၃.၄.၁ Digital Input/Output စမ်းသပ်ခြင်း
    • ၃.၄.၂ PWM Output ထုတ်ခြင်း
    • ၃.၅ Safe Shutdown Button တပ်ဆင်ခြင်း
  • အခန်း(၄)
  • Hardware များနှင့် ချိတ်ဆက်ခြင်း
    • ၄.၁ Relay အသုံးပြုခြင်း
    • ၄.၂ TIP122 ဖြင့် High Power DC Device များအား ထိန်းချုပ်ခြင်း
    • ၄.၃ 4x4 Matrix Keypad အသုံးပြုခြင်း
    • ၄.၄ L298N Motor Driver အသုံးပြုခြင်း
    • ၄.၅ Line Follower Robot ပြုလုပ်ခြင်း
    • ၄.၆ Servo Motor အသုံးပြုခြင်း
  • အခန်း(၅)
  • Communication Interface များ
    • ၅.၁ UART အသုံးပြုခြင်း
    • ၅.၁.၁ Arduino နှင့် UART အသုံးပြု ဆက်သွယ်ခြင်း
    • ၅.၁.၂ SIM900A GSM Module အသုံးပြုခြင်း
    • ၅.၂ SPI အသုံးပြုခြင်း
    • ၅.၂.၁ Arduino နှင့် SPI အသုံးပြု ဆက်သွယ်ခြင်း
    • ၅.၂.၂ MCP3008 ADC IC အသုံးပြုခြင်း
    • ၅.၂.၃ SPI နှင့် UART ၂ခု တွဲဖက်အသုံးပြုခြင်း
    • ၅.၃ I2C အသုံးပြုခြင်း
    • ၅.၃.၁ Arduino နှင့် I2C အသုံးပြု ဆက်သွယ်ခြင်း
    • ၅.၃.၂ PCA9685 Servo Driver အသုံးပြုခြင်း
  • အခန်း(၆)
  • Display များ အသုံးပြုခြင်း
    • ၆.၁ LCD (Liquid Crystal Display) အသုံးပြုခြင်း
    • ၆.၁.၁ I2C Expander Module တပ်ဆင်အသုံးပြုခြင်း
    • ၆.၂ OLED (Organic Light Emitting Diode) Display အသုံးပြုခြင်း
    • ၆.၂.၁ I2C interface OLED display အသုံးပြုခြင်း
    • ၆.၂.၂ SPI interface OLED display အသုံးပြုခြင်း
    • ၆.၃ E-Paper, E-Ink Display အသုံးပြုခြင်း
  • အခန်း(၇)
  • Sensor များ အသုံးပြုခြင်း
    • ၇.၁ DHT11 Temperature and Humidity Sensor
    • ၇.၂ DS18B20 1-Wire Temperature Sensor
    • ၇.၃ RC522 RFID Card Sensor Module
    • ၇.၄ TCS3200 Color Sensor
    • ၇.၅ HC-SR04 Ultrasonic Distance Sensor
    • ၇.၆ Rotary Encoder
  • အခန်း(၈)
  • Web Server တည်ဆောက်ခြင်း
    • ၈.၁ Apache Web Server တည်ဆောက်ခြင်း
    • ၈.၁.၁ HTML, CSS, Javascript
    • ၈.၁.၂ CGI (Common Gateway Interface)
    • ၈.၁.၃ Apache Directory Setting
    • ၈.၁.၄ LED မီး အဖွင့်အပိတ် ပြုလုပ်ခြင်း
    • ၈.၁.၅ Python ဖြင့် CGI script ရေးသားခြင်း
    • ၈.၂ Nginx Web Server တည်ဆောက်ခြင်း
    • ၈.၃ Flask Micro Web Framework တည်ဆောက်ခြင်း
  • အခန်း(၉)
  • IoT (Internet of Things)
    • ၉.၁ Thingspeak IoT Platform
    • ၉.၂ Remote.it
  • အခန်း(၁၀)
  • Bluetooth ချိတ်ဆက်အသုံးပြုခြင်း
    • ၁၀.၁ Pair and Connect ပြုလုပ်ခြင်း
    • ၁၀.၂ လိုအပ်သော Extension Module Package များ ထည့်သွင်းခြင်း
    • ၁၀.၃ Python တွင် RFCOMM ဖြင့် ချိတ်ဆက်အသုံးပြုခြင်း
    • ၁၀.၄ Python တွင် L2CAP ဖြင့် ချိတ်ဆက်အသုံးပြုခြင်း
    • ၁၀.၅ Service Discovery Protocol (SDP) အသုံးပြုခြင်း
    • ၁၀.၆ Bluetooth Audio Streaming ပြုလုပ်ခြင်း
    • ၁၀.၇ Bluetooth Based Wireless Sensor Network တစ်ခု ပြုလုပ်ခြင်း
    • ၁၀.၈ Arduino နှင့် ချိတ်ဆက်ပြီး Bluetooth Control Robot ပြုလုပ်ခြင်း
  • အခန်း(၁၁)
  • Camera အသုံးပြုခြင်း
    • ၁၁.၁ Camera အား Python ဖြင့် အသုံးပြုခြင်း
    • ၁၁.၂ Raspberry Pi Camera Web Interface
    • ၁၁.၃ OpenCV (Open Source Computer Vision)
    • ၁၁.၃.၁ OpenCV install ပြုလုပ်ခြင်း
    • ၁၁.၃.၂ Face, Eye, Nose, Smile Detection
    • ၁၁.၃.၃ Detection from Streaming Video
    • ၁၁.၃.၄ Detection from Still Image