Showing posts with label General. Show all posts
Showing posts with label General. Show all posts

Thursday, 1 July 2010

4x4 Metrix Keypad

Matrix Keypad (4x4, 3x4, 3x3 ) ေတြကို ေနရာစံုမွာ သံုးၾကပါတယ္။ ဖုန္း ေတြရဲ့ ေတြ အျဖစ္၊ ေတြရဲ့ ေတြအျဖစ္ သံုးၾကပါတယ္။ ခုေျပာခ်င္တာက ဒီေကာင္ေလးရဲ့ တည္ေဆာက္ပံုနဲ႔ Matrix Keypad ရဲ့ သေဘာတရားပါ။ ႐ိုး႐ိုးေလး ေတြးၾကည့္လိုက္ရင္ 16 Keys (4x4) ကို scan လုပ္ဖို႔အတြက္ Input pin ၁၆ ခု လိုပါတယ္။ Input (whole 8 bits port) ေတြ အဲ့ေလာက္အမ်ားႀကီး မသံုးႏိုင္ေတာ့တဲ့အခါ Software controlled matrix Keypad ကို သံုးၾကပါတယ္။

ေအာက္က ပံုေတြမွာ Schematic ေကာ Keypad ပံုစံေတြပါ ျပထားပါတယ္။ Software controlled logic ကေတာ့ ..
၁။ ၄ လိုင္းစီ (4 Outputs and 4 Inputs) ထားပါ။ Row, Column ႀကိဳက္သလို ထားလို႔ရပါတယ္။
၂။ Output ၁ လိုင္းစီကေန logic (High/ Low) ေပးပါ။ ၁ လိုင္းေပးတိုင္း Input 4 lines လံုးကို scan ပါ။ ၁ လိုင္းမိတာနဲ႔ ထြက္ပစ္လိုက္ပါ။
ဥပမာ - Output 1 and Input 1 ဆိုရင္ Row 1, Col 1 ဆိုေတာ့ “Key 1"။
Output 2 and Input 3 ဆိုရင္ Row 2, Col 3 ဆိုေတာ့ “Key 6"။ အဲလိုနည္းစနစ္နဲ႔ ေရးသြားပါတယ္။
၃။ Key Bonce ကို ေျဖာက္ခ်င္ယင္ေတာ့ ၂ ခါျပန္ scan လုပ္ၿပီး တူတယ္ဆိုမွ အဲ့ဒီ Key ကို ယူပါ။ ေအာက္မွာ နမူနာ source code ထဲ့ေပးထားပါတယ္။


#include //Include file for 8051
#define keyport P2 //keypad connected to P2
#define col1 P2_0 //column 1
#define col2 P2_1 //column 2
#define col3 P2_2 //column 3
#define col4 P2_3 //column 4
#define TRUE 1 //some defines
#define FALSE 0

/*
+---------------------------------------+
| Prototype: void key_init(void); |
| Return Type: void |
| Arguments: None |
| Description: Initialize ports and |
| Keypad. |
+---------------------------------------+
*/
void key_init(){
keyport &=0x0F; //make Rows as o/p and cols are i/p
}

/*
+-----------------------------------------------+
| Prototype: unsigned char get_key(void); |
| Return Type: unsigned char |
| Arguments: None |
| Description: To read key from the keypad |
+-----------------------------------------------+
*/
unsigned char get_key(){
unsigned char i,k,key=0;
k=1;
for(i=0;i<4;i++){>
keyport &=~(0x80>>i); //to make rows low 1 by 1
if(!col1){ //check if key1 is pressed
key = k+0; //set key number
while(!col1); //wait for release
return key; //return key number
}
if(!col2){ //check if key2 is pressed
key = k+1; //set key number
while(!col2); //wait for release
return key; //return key number
}
if(!col3){ //check if key3 is pressed
key = k+2; //set key number
while(!col3); //wait for release
return key; //return key number
}
if(!col4){ //check if key4 is pressed
key = k+3; //set key number
while(!col4); //wait for release
return key; //return key number
}
k+=4; //next row key number
keyport |= 0x80>>i; //make the row high again
}
return FALSE; //return false if no key pressed
}

Tuesday, 22 June 2010

MMC (Multi Media Card), SD (Secure Digital) card မ်ားႏွင့္ Sector Read/ Write Method

MMC ေတြကေတာ့ ဟိုးအရင္တုန္းက သံုးတဲ့ Memory ကဒ္အမ်ိဳးအစားေတြပါ။ SD ေတြကေတာ့ ခုေနာက္ပိုင္း သံုးလာတဲ့အမ်ိဳးအစားပါ။ အဲဒီ ကဒ္ေတြထဲကို Data Organize လုပ္တဲ့ ပံုစံ ၂ မ်ိဳးရွိပါတယ္။ တစ္မ်ိဳးက File Handling Metond နဲ႔ ေနာက္တစ္မ်ိဳးက Sector Method ပါ။

File Handling ပံုစံကေတာ့ USB flash drive ေတြအတြက္သံုးတဲ့ VDIP Module (က်ေတာ္ တစ္ခါ ေရးဘူးပါတယ္) ေတြမွာ သံုးတဲ့ပံုစံအတိုင္းပါပဲ။ File Create, Delete, Append နည္းစနစ္ေတြပါပဲ။ PC software ေတြနဲ႔ အတူတူပါပဲ။

Sector Method ကေတာ့ sector အလိုက္ေရးပါတယ္။ sector တစ္ခုကို 512 bytes ပါပါတယ္။ sector နံပါတ္အလုိက္ ေရးသြားတာပါပဲ။ ဥပမာ - sector နံပါတ္ ၅၀ ကို 'E' အကၡရာေတြအကုန္ျဖည့္မယ္ဆိုပါေတာ့။ ၿပီးေတာ့ ျပန္ဖတ္မယ္ ဆိုပါေတာ့ (MicroC ရဲ့ library ကို သံုးၿပီးေရးမယ္ဆို ေအာက္ပါအတိုင္း ေရး႐ံုပါပဲ)
for(i = 0; i <= 511; i++) data [i] = 'E';
tmp = Sd_Write_Sector (50, data);
tmp = Sd_Read_Sector (50, data);

သံုးတဲ့ Protocol က SPI protocol ပါ။ (MMC, SD card ေတြက SPI ပဲသံုးေလ့ ရွိၾကပါတယ္)

Wednesday, 10 March 2010

TLC5925 LED Driver

ဒီေကာင္ေလးက CPU Output port ေတြ မေလာက္ေတာ့တဲ့အခါမွာ သံုးေလ့ရွိတာပါ။ အဓိကက LED ေတြကို ေမာင္းဖို႔အတြက္ဆိုေပမယ့္ အျခား Digital I/O ေတြကိုပါထုတ္ေပးလို႔ရပါတယ္။ ျပႆနာက Current source ျဖစ္တဲ့အတြက္ R-EXT value ကိုေသခ်ာတြက္ၿပီးမွ ထဲ့ရတဲ့ကိြဳင္ေပါ့။ ဘာေၾကာင့္လည္းဆိုေတာ့ I/O ေတြရဲ့ behavior (LED, CLK, C-Sel, ..) ေတြမတူတဲ့အခါမ်ိဳးမွာ resistant value တြက္ရခက္တဲ့အတြက္ပါ။ သူက 8 bit data ကို 1 bit ျခင္းတြန္းထုတ္ေပး႐ံုပါပဲ။ အဲဒီေတာ့ IC ကိုအလုပ္လုပ္ေစဖို႔ CLK အတြက္ 1 pin ၊ SDI အတြက္ 1 pin ပဲလိုပါတယ္။ ေအာက္မွာ Pin diagram နဲ႔ Connection ပံုေလးေတြ ျပထားပါတယ္။


Sunday, 7 March 2010

Winradio (Software define radio receiver)

ဒီေကာင္က ခုေနာက္ပိုင္း ကၽြန္ေတာ္စတင္ေလ့လာေနဆဲ ပစၥည္းေလးပါ။ သူက မတူတဲ့ Radio Frequency Band ေတြကို Hardware ေျပာင္းစရာမလိုပဲနဲ႔ ဖမ္းလို႔ရပါတယ္။ ေနာက္ၿပီး သူ႔ရဲ့အားသာခ်က္က Radio Frequency ေတြကို Monitor လုပ္လို႔ရတာပါပဲ။ Program routine ေလးေတြလည္း ေရးလို႔ရတယ္။ တစ္ကယ္ေတာ့ အလုပ္လုပ္ပံုက Spectrum Analyzer နဲ႔ အတူတူပါပဲ။ Analyzer က Short range (RFID reader ေတြအတြက္ ေကာင္းတယ္) မွာပဲ သံုးလို႔ရၿပီးေတာ့။ ဒီေကာင္ကေတာ့ Long range အတြက္ပါ (RFID reader ေတြအတြက္ေတာ့ အဆင္မေျပႏိုင္ပါ)။ ကၽြန္ေတာ္ စမ္းေနတာက G305e Model ပါ။

Radio Frequency band ေတြနဲ႔ ပါတ္သတ္ၿပီး ၿပီးခဲ့တဲ့ Post မွာ ဇယားေလးနဲ႔ ျပထားပါတယ္။

မူရင္း ၀က္ဘ္ဆိုက္ကေတာ့ - http://www.winradio.com/


Winradio (Receiver Hardware)


Winradio (User Interface)

Tuesday, 23 February 2010

GPS Module Interface Commands

GPS (Global Positioning System) ကေတာ့ လူတိုင္းၾကားဖူး သိဖူးပီးသားပါ။ ေျပာခ်င္တာက အဲ့ GPS Module ေတြနဲ႔ ဆက္သြယ္ တဲ့အခါမွာ လိုအပ္တာေလးေတြပါ။ မ်ားေသာအားျဖင့္ Serial COM ေလးနဲ႔ပါပဲ။ Baud Rate ကေတာ့ နဲနဲ ျမင့္တယ္လို႔ေျပာလို႔ရတယ္ ပံုမွန္ GPRS, Modem နဲ႔စာရင္ေပါ့။ သူက NMEA (National Marine Electronics Association) ဆိုတဲ့အဖြဲ႔အစည္းက သံုးတဲ့ ေတြပဲသံုးတယ္ဗ်ာ။ ဥပမာ - GGA ဆိုတဲ့ Command ကို ေပးလိုက္ရင္ GPS ရဲ့ Data အားလံုးကို ျပန္ေပးတယ္။ Reply က ေအာက္မွာျပထားသလိုေပါ့။ Time, Latitude, Longitude, Altitude, .... ေတြပါတယ္။

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

လင့္ခ္ကေတာ့ NMEA Data ။ ေအာက္ကပံုက ေလးတစ္ခုရဲ့ပံုပါ။ Antenna ေတာ့ ထပ္တပ္ရတယ္။ ၿပီးေတာ့ အမိုးေအာက္မွာဆိုရင္ Data ေတြကမမွန္ပါဘူး။

Thursday, 18 February 2010

Multi-Chip and Single Chip solutions

Embedded Application ေတြကို Mass production ထုတ္လုပ္တဲ့အခါမွာ Single Chip solution ကို သံုးၾကပါတယ္။ သေဘာတရားကေတာ့ ကိုယ္လုပ္ခ်င္တဲ့ လုပ္ငန္း ၂ခုကို Chip တစ္ခုထဲမွာ ေပါင္းၿပီးထဲ့လိုက္တဲ့သေဘာပါ။

ဥပမာ - Freescale က Energy meter ကိုထုတ္တဲ့ေနရာမွာ အရင္က 2 Chip solution ကို သံုးပါတယ္။ E-Meter အတြက္ ADC နဲ႔ဆိုင္တဲ့ Chip တစ္လံုးနဲ႔ Data collection, calculation, user interface ေတြအတြက္ MCU တစ္လံုးကို ခြဲၿပီးသံုးပါတယ္။ သေဘာကေတာ့ သူတို႔အရင္ ရွိၿပီးသား IC ေတြကို ယူသံုးလိုက္တဲ့သေဘာပါ။ R & D အဆင့္ေလာက္ေပါ့။ ေနာက္ပိုင္းက်ေတာ့ ခုန E-meter အဆင္ေျပသြားတဲ့ အခါ အဲ့ ၂ လံုးကို ေပါင္းလိုက္ၿပီးေတာ့ Chip တစ္ခုတည္းမွာ Embedded ထဲ့လိုက္တယ္။ Single chip solution ကိုေျပာင္းပစ္လိုက္တယ္။

အားသာခ်က္က ေစ်းသက္သာသြားတယ္၊ ေနရာပိုထြက္လာတယ္၊ power consumption က်သြားတယ္။ လိုအပ္ခ်က္က Mass production ထုတ္မွအဆင္ေျပတယ္။ ေအာက္ကပံုကေတာ့ Multi chip and single chip solution ကို ယွဥ္ျပထားတဲ့ပံုပါ။ ဒီစကားအသံုးအႏႈန္းက သပ္သပ္ အလုပ္လုပ္ႏိုင္ေနတဲ့ Chip ၂ လံုးကို တစ္လံုးတည္းမွာ ေပါင္းၿပီး သံုးတဲ့အခါမွာ ေျပာေလ့ရွိၾကပါတယ္။

Tuesday, 16 February 2010

Felica (Sony) Card, Mifare ISO14443 A, B, C and CEPAS protocol

Singapore ရဲ့ public ကား၊ ရထားေတြမွာ ပိုက္ဆံေပးတဲ့စံနစ္မွာသံုးတဲ့ EZlink card အသစ္ (၂၀၀၉ စက္တင္ဘာမွ အၿပီးလဲေပးထားတဲ့ကဒ္) အမ်ိဳးအစားပါ။ ထုတ္လုပ္တဲ့ ကုန္ပနီက Sony ပါ။ အဲ့ဒါေၾကာင့္ အဲဒီကဒ္ကို ဖတ္တဲ့အခါ -

၁။ Sony ကထုတ္တဲ့ Protocol (Felica) ကိုအသံုးျပဳၿပီး ဖတ္ရပါတယ္။
၂။ ဒါေပမယ့္ ကဒ္အမ်ိဳးအစားက Mifare (B) or ISO 14443 B ပါ။ သေဘာက Mifare B ကဒ္အမ်ိဳးအစားဖတ္ႏိုင္တဲ့ Reader ေတြနဲ႔ပဲ ရပါလိမ့္မယ္။
၃။ CEPAS (Contactless ePurse Applications) ဆိုတာက Encryption method ပါ။ ဟက္ခ္ လုပ္ပိုင္ခြင့္မရွိပါ။

အဲဒီေတာ့ က်ေတာ္တို႔က အဲ့ဒီကဒ္ကို သံုးျပီး အလုပ္လုပ္တဲ့ System တစ္ခုဖန္တီးတဲ့အခါ အဲဒီကဒ္ရဲ့ နံပါတ္ကိုပဲ ဖတ္လို႔ရပါတယ္။ EZlink ကဒ္ေတြေပၚမွာ ေရးထားတယ္ နံပါတ္ ၁၆ လံုးေပါ့။ အထဲက တန္ဖိုးေတြကို ျပင္ခြင့္မရွိပါ။

EZlink ကဒ္ကို ဖတ္လို႔ရတဲ့ Reader ေတြ အမ်ားႀကီးရွိပါတယ္။ မွတ္ရမွာက Felica, ISO14443 A,B,C (C ကပါခ်င္မွပါပါ) ဆိုတဲ့စာေလးေတြ ပါမွ အဲဒီကဒ္ကို ဖတ္လို႔ရတယ္လို႔ သတ္မွတ္ရပါမယ္။
Sony (Felica) Card တည္ေဆာက္ထားပံုFelica Card Reader တစ္မ်ိဳး

Uni-directional And Bi-directional Energy Meter

Uni-directional energy meter ကေတာ့ ကမာၻမွာ (အထူးသျဖင့္ တ႐ုတ္ျပည္မွာ) အသံုးမ်ားၿပီးသား ပါ။ ရွင္းပါတယ္ ကိုယ္သံုးသေလာက္ ကိုယ္ရွင္းေပါ့။ သာမန္မီတာေတြနဲ႔ ကြာျခားခ်က္က တစ္လံုးခ်င္းကို လိုက္ဖတ္ေနစရာမလိုပဲ Group လိုက္ကို (wireless နည္းပညာတစ္ခုခု သံုးၿပီး) လိုက္ဖတ္သြားတဲ့ Digital Meter အမ်ိဳးအစားပါ။ Bi-directional engery meter ကအေနာက္ႏိုင္ငံေတြက စတင္ၿပီး ေခတ္စားေနတဲ့ စတိုင္လ္ေပါ့ဗ်ာ။

သေဘာတရားက Solar panel, Wind turbine ေတြကို အိမ္ေတြမွာတပ္ထားတယ္ (တစ္အိမ္လံုးေပါ့ဗ်ာ)။ ေန႔ပိုင္းဆိုရင္ electricity အသံုးနဲတဲ့အတြက္ (႐ံုးသြားၾကတာမ်ားသကိုး) အဲ့ဒီ solar, wind ေတြက ရတဲ့ စြမ္းအင္ကို အစိုးရ၊ ကုန္ပနီ ေတြကို ျပန္ေရာင္းတယ္ (Main power grids နဲ႔ တိုက္႐ိုက္ ခ်ိတ္ဆက္ထားေလ့ရွိတယ္)။ ညပိုင္းက်ေတာ့ အဲ့ဒီ grids ေတြကေန electricity ျပန္ဆြဲတယ္။ သေဘာက 2 ways ေပါ့ (အေရာင္းနဲ႔ အ၀ယ္)။

Bi-directional E-meter (ပံုစံက uni နဲ႔ အတူတူပါပဲ)

ေနာက္ပိုင္း solar, wind စတဲ့ renewable energy ေတြကို တစ္ႏိုင္တစ္ပိုင္ သံုးလာၾကရင္ bi-directional energy meter ေတြေခတ္စားလာလိမ့္မယ္ လို႔ယူဆရေၾကာင္းပါ။ စလံုးအေနနဲ႔ ျဖစ္ႏိုင္ေျခအေတာ္နဲပါတယ္။ ထိုစြမ္းအင္ေတြ ေပါမ်ားစြာရႏိုင္ေသာ ကၽြန္ေတာ္တို႔ ႏိုင္ငံမွာ (ဘယ္ေတာ့မွန္းမသိေသာ) တစ္ခ်ိန္ခ်ိန္မွာ ေခတ္စားလာလိမ့္မယ္၊ ေအာင္ျမင္လာလိမ့္မယ္လို႔ ေမွ်ာ္လင့္ရေၾကာင္းပါ။


Friday, 6 February 2009

Short Notes (3)

(1) Electrical အင္ဂ်င္နီယာ အမ်ားစုက Power နဲ႔ Ground ၾကားက Volt ကိုတိုင္းေလ့ရွိၿပီး၊ Electronic အင္ဂ်င္နီယာ အမ်ားစုက Reference နဲ႔ Ground ၾကားက Volt ကိုတိုင္းေလ့ရွိပါတယ္။ သေဘာကေတာ့ P - G က Power ေရာက္မေရာက္အတြက္ျဖစ္ၿပီးေတာ့ R - G ၾကားကေတာ့ Signal ေရာက္မေရာက္ကို တိုင္းတာပါ။ တစ္ခ်ိဳ႕ ပစၥည္းေတြ (ဥပမာ Sensor ေတြက ပါ၀ါေရာက္ေသာ္လည္း Signal မထြက္တာ ျဖစ္ႏိုင္ပါတယ္)။ အဲဒါေၾကာင့္ ၂ မ်ိဳးလံုးတိုင္းၿပီးမွ ေကာက္ခ်က္ခ်ပါ။

Tuesday, 27 January 2009

Command and Conqure Rad Alert (3)


ဒီ ဂိမ္းေဆာ့ေနလို႔ ပို႔စ္ေတြ ဆက္မတင္ျဖစ္တာပါ။

Tuesday, 20 January 2009

Digital Photography Dummies E-Books (Uploaded DUMMIES E-Books - 4)


ဓာတ္ပံု ၀ါသနာရွင္မ်ားအတြက္ ရွိေနတဲ့ Digital Photography စာအုပ္ေတြ တင္ေပးလိုက္တာပါ။

1. Digital Art Photography for Dummies
2. Digital Videos for Dummies

3. Digital Photography for Dummies

Part1, Part2,
Part3, Part4, Part5, Part6, Part7, Part8

Monday, 24 September 2007

Mandalay Winter

“အားေမ့” ကလည္း တက္ဂ္၊ ကိုယ္တိုင္ကလည္း ေရးခ်င္ေနေတာ့ ေရးရၿပီေပါ့။ ဒီ ပို႔စ္က ကၽြန္ေတာ့ရဲ႕ ပထမဆံုး Personal ပို႔စ္ျဖစ္မွာပါ။ မန္းေလးမွာ ေဆာင္းတြင္းက အရမ္းေပ်ာ္ဖို႔ေကာင္းပါတယ္။ ပြဲေတြလည္းမ်ား။ ေကြးလုိ႔လည္းေကာင္းတာကိုး။ အရင္ကေတာ့ မန္းေလးေတာင္ကို ေဆာင္းတြင္းနံနက္ေတြမွာ သူငယ္ခ်င္းေတြစုၿပီး တက္ၾကတယ္။ လူေတြလည္းအမ်ားႀကီးပဲ။ အရမ္းေပ်ာ္ဖို႔ေကာင္းတယ္။ ပထမဆံုးရက္က ေတာ္ေတာ္ေအးတယ္ဆိုၿပီး အေႏြးထည္၀တ္ခဲ့တာ ေတာင္အလယ္ေလာက္မွာပဲ လႊင့္ပစ္ခ်င္စိတ္ေပါက္ခဲ့တာေပါ့။ ေတာင္တက္ရင္းနဲ႔ ပူလာတာကိုး။ အဲဒီကျပန္ရင္ တစ္ခုခု၀င္စား။ အလုပ္သြားဖို႔ အခ်ိန္လိုေသးတယ္ဆိုရင္ ကၽြန္ေတာ္ကေတာ့ ျပန္အိပ္တာပဲ။ ေနာက္ က်ံဳးေဘးမွာဆို မနက္ေကာ ညေကာ လူအရမ္းစည္တာပဲ။ New Year Night ဆိုရင္က်ံဳးေဘးမွာ သၾကၤန္က်သလုိကို စည္တာ။ အင္း ... မန္းေလးမွာဆိုရင္ ဘယ္အခ်ိန္မဆို ေပ်ာ္ေနတာပါပဲေလ .....။

The Most Favourite FIVE posts

“ႏွစ္ကူး” ကေတာ့ Tag ထားတာၾကာပါၿပီ။ မအားလို႔ မေရးျဖစ္တာပါ။ အႀကိဳက္ဆံုး ၅ ခုကေတာ့ . . .
၁။ LabVIEW ဒါက အခုလတ္တေလာမွာ ကၽြန္ေတာ္ေလ့လာေနတဲ့ Programming Language အသစ္ပါ။ ဆက္ၿပီးေလ့လာရင္းနဲ႔ သိသမွ်ေလးေတြတင္သြားဦးမွာပါ။
၂။ Kailed Image Converter ကေတာ့ DOS Platform/ Non DOS Platform မွာ ပံုေလးေတြတင္လုိ႔ရလို႔ပါ။ ကၽြန္ေတာ္တို႔ Pascal/ C နဲ႔ Program ေတြစေရးတုန္းက အဲဒီလုိ ပံုေလးေတြထည့္ခ်င္ခဲ့တယ္ေလ။ ဒါေပမယ့္ ဘယ္လုိလုပ္ရမလဲ မသိခဲ့တာပါ။
၃။ ေနာက္တစ္ခုက RAID ပါ။ ကၽြန္ေတာ္ ဘာမွမသိပဲ စာအုပ္ဖတ္ၿပီး ရမ္းလုပ္တာ ရသြားလို႔ပါ။ အမွတ္တရေပါ့။
၄။ RS232 Posts ေတြကေတာ့ အျမဲတမ္းသံုးေနရတယ္ေလ။ ဒါေၾကာင့္ ဘယ္ေတာ့မွ မေမ့ဘူး။
၅။ ေနာက္ဆံုးတစ္ခုက OrCAD ကၽြန္ေတာ္ဆက္မေလ့လာျဖစ္ေသးတဲ့ Designing Software ပါ။ Electronics Major ေက်ာင္းသားတုိင္း ေလ့လာထားသင့္တဲ့ Software မို႔ပါ။