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 *