Raspberry Pi ရဲ့ GPIO အကြောင်း

Raspberry Pi ဘာလဲဆိုတာတော့ မရှင်းပြတော့ပါဘူး။ ကျွန်တော်တို့ Ubuntu Myanmar LoCo Team ရဲ့ ဆေးထိုးကြမ်းချက်တွေကြောင့် တော်တော်များများ ရင်းနှီးပြီးသားဖြစ်နေပြီလို့ မျှော်လင့်ပါတယ်။ အခုရေးဖြစ်မယ့် အကြောင်းကတော့ RPi မှာပါလာတဲ့ GPIO ( General purpose input/output) pin လေးတွေကို ရင်းနှီးသွားအောင်ပါ။ RPi image file တွေကို ကူးယူပြီး SD card ထဲရိုက်ထည့်လိုက်ထဲက GPIO အတွက် နဂိုပါလာပြီးသား document နှင့် lib file တွေပါလာပါလိမ့်မယ်။ ဟိုအရင်တုန်းကတော့ OS သွင်းပြီးရင် သူတို့ကို ထပ်ထည့်ရတာမျိုးရှိတတ်ပေမယ့် အခုချိန်တွေမှာတော့ တခါတည်း ပါပြီးသားပါ။ ကိုယ်စက်ထဲ version ဘယ်လောက်ရှိပြီလဲ သိချင်ရင်တော့ အခုလိုစစ်ကြည့်နိုင်ပါတယ်။

find /usr | grep -i gpio

OS နှင့်အတူပါလာတဲ့ version ကတော့ 0.5.5 ဖြစ်နေပါမယ်။ ဒါကတော့ ကိုယ်ကူးထားတဲ့ OS version ပေါ်လည်းမူတည်နိုင်ပါတယ်။ ဒီ lib တွေကို အဆင့်ထပ်မြင့်လို့ရပါတယ်။ သူနဲ့ တပါတည်း python အတွက် လိုအပ်မယ်ထင်တာလေးကိုပါ အခုလိုထည့်သွင်းပါမယ်။

sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio

အခုလို python module လေးနဲ့ ထည့်သွင်းပြီးသွားပြီဆိုရင် အထက်က command အတိုင်းပြန်စစ်ကြည့်လိုက်ပါ။ version ပြောင်းလဲသွားတာတွေ့ရပါမယ်။ ယခုလက်ရှိ version ကတော့ 0.5.9 ပါ။ နောက်တမျိုး စစ်ကြည့်ချင်ရင်တော့ python နည်းနဲ့ စစ်ကြည့်တာပါ။ terminal ဖွင့်ပြီး အခုလို လိုက်လုပ်ကြည့်ပါ။

sudo python
Python 2.7.3 (default,Mar 18 2014,05:13:23)
[GCC 4.6.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>>import RPi.GPIO as GPIO
>>>GPIO.VERSION
‘0.5.9’
>>>>

စစ်ကြည့်ပြီးလို့ ထွက်ချင်ရင်တော့ CTRL+D နှိပ်လိုက်ရုံပါပဲ။ အခုလိုထွက်လာရင်တော့ စစ်ဆေးမှု အဆင်ပြေပါတယ်။ နောက်တမျိုးကတော့ အလွယ်တကူနောက်တခါစစ်ရင် အဆင်ပြေအောင် python script လေးလုပ်ထားတာမျိုးပါ။ အခုလို လုပ်လို့ရပါတယ်။ version.py ဆိုတဲ့ နာမည်နဲ့ ဖိုင်တခုလုပ်လိုက်ပြီး ကြိုက်တဲ့ text editor သုံးပြီး ဒီစာကြောင်းလေးတွေကူးထည့်ပေးလိုက်ရုံပါပဲ။

import RPi.GPIO as GPIO
a = GPIO.VERSION
print a

ပြီးရင်ဖိုင်ကို save လိုက်ပါ။ ပြန်ဖွင့်စစ်မယ်ဆိုရင်တော့ အခုလို command နဲ့ အခုလိုအဖြေထွက်လာပါလိမ့်မယ်။

sudo python version.py
0.5.9

အခုလို လိုအပ်တဲ့ software ပိုင်းကို ထည့်သွင်းပြီးရင်တော့ hardware ပိုင်းဘက်ကို လေ့လာကြည့်ရအောင်။ GPIO pin တွေကတော့ Rpi A & B model တွေက 26 pins ပါဝင်ပါတယ်။ Rpi A+,B+ နှင့် အခုနောင်ဆုံးထွက်မယ့် Rpi B2 တို့မှာတော့ 40 pins ပါဝင်ပါတယ်။ pin တွေကို စတင်ရေတွက်တဲ့အခါ sd card ရှိတဲ့ ဘက်က စတင်ရေတွက်ပါမယ်။ ပုံနဲ့တကွ ကြည့်လိုက်ပါ။ အခုပုံကတော့ model A & B အတွက်ပါ။

GPIOs

ရှင်းရှင်းလင်းလင်းထပ်မြင်ရအောင်နောက်တပုံကိုကြည့် ကြည့်ပါ။ နံပါတ်တွေကတော့ GPIO နံပါတ်တွေပါ။ ဒါတွေကအရေးကြီးပါတယ် coding ရေးတဲ့အခါမှာ ဒီနံပါတ်တွေကိုပဲ ထည့်သွင်းရပါတယ်။ အခုပုံမှာ ပြောချင်တာကတော့ pin 21 နှင့် 27 ဟာ အတူတူ ဖြစ်နေပါတယ်။ ထို့နည်းတူစွာ GPIO 0=2 ,GPIO 1=3 အတူတူပါ။ ဘာပဲဖြစ်ဖြစ်အဆင်ပြေပါတယ်။

learn_raspberry_pi_gpio-srm

ပါဝင်တဲ့ pin တွေအကြောင်းပြောရရင် True GPIO တွေက မီးလုံးလေးတွေ ဖွင့်တာပိတ်တာ စတဲ့ လုပ်ဆောင်ချက်တွေလုပ်နိုင်ပါတယ်။ I2C pin (GPIO 2 and 3 ) ကတော့ control pin ၂ချောင်းထဲ ပါတဲ့ module တွေနဲ့ ချိတ်ဆက်လို့ အဆင်ပြေပါတယ်။ SPI pin တွေကတော့ SPI devices တွေနဲ့ ချိတ်ဆက်ရင် အဆင်ပြေပါတယ်(GPIO 10,09,11,08,07) ။ I2C နဲ့ concept တူသော်လည်း မတူညီတဲ့ စံနဲ့ပါ။ နောင်တခုကတော့ serial ချိတ်ဆက် ဆက်သွယ်မှုအတွက် RX, TX pin (GPIO 14,15) တွေရှိပါတယ်။ တချို့ pin တွေကိုတော့ PWM (pulse Width Modulation) အတွက် နှင့် PPM (Pulse Position Modulation) တို့အတွက် သုံးနိုင်ပါတယ်။ ဒါတွေက servo motor တွေကို control လုပ်တဲ့သူတွေ သိကြပါတယ်။ ကျန်တဲ့ 3.3V , 5V , Ground တို့ကတော့ power ချိတ်ဆက်သုံးလိုလျှင်သုံးနိုင်အောင်ပါ။ သူတို့ကိုလည်း digital Input or Output အနေနဲ့လည်း သုံးနိုင်ပါတယ်။ အခုထပ်ပြချင်တဲ့ ပုံကတော့ Pins 40 ပါတဲ့ ပုံပါ။ ပုံမှာ pins တွေ ဘာအတွက် သုံးနိုင်တယ်ဆိုတာ အပေါ်က model တွေအတိုင်းရေးထားပါတယ်။ ကြည့်လိုက်ပါ။

rsz_rpi-gpio-pins

pin အရေအတွက် များလာတော့ hardware များနဲ့ ဆက်သွယ်လုပ်ဆောင်ရတာ ပိုအဆင်ပြေလာတာတွေ့ရပါမယ်။ ဘာတွေလုပ်ချင်သလဲဆိုတာကတော့ ကိုယ်ဆုံးဖြတ်တဲ့အပေါ်မူတည်ပါတယ်။ Rpi နဲ့ မိမိတို့ လုပ်ဆောင်ချင်တာများ အဆင်ပြေကြပါစေ။

Tho Hi

Leave a Reply

Your email address will not be published. Required fields are marked *