Monday, 25 February 2008

Very Bad News .....

ရတနာပံုေစ်းက ကၽြန္ေတာ့္သူငယ္ခ်င္းေတြ၊ လုပ္ေဖၚကိုင္ဖက္ေတြ ရွိေနေသးတဲ့ေနရာႀကီးပါ။ MICT park, SkyWalk Shopping Mall, MCC (Mdy), Offices, ... ေတြရွိတဲ့ေနရာေပါ့။ ကၽြန္ေတာ္ကိုယ္တိုင္လည္း အဲဒီေနရာမွာ အၾကာႀကီးေနခဲ့တာပဲ။ သံေယာဇဥ္အရမ္းရွိပါတယ္။ အခုမီးေလာင္သြားၿပီတဲ့။ အရမ္းကို စိတ္မေကာင္းျဖစ္မိပါတယ္။ အားလံုးကိုလည္းသနားတယ္၊ ၀မ္းနည္းတယ္ဗ်ာ။

Sunday, 24 February 2008

Noise Filtering Program (Demo) with LabView

LabView နဲ႔ DSP Signal Processing ရဲ႕နမူနာေလးတည္ေဆာက္ပံုပါ။ Program Flow ကေတာ့ Signal (Sine Wave)ကို Input အျဖစ္လက္ခံတယ္ White Noise Signal နဲ႔ေရာတယ္။ ေနာက္အဲဒီ Signal ကို FIR filter နဲ႔ Filtering ျပန္လုပ္တယ္။ ေနာက္ Signal ေတြထုတ္တယ္။ Input Signal ကေတာ့ Virtual ေပါ့။ DSP သေဘာတရားေတာ့ နည္းနည္းနားလည္မွ ဒီဥပမာကို သိမွာပါ။ Signal Generator, White noise Components ေတြက Clone ေတြပါ။ ျပင္လို႔မရႏိုင္ပါဘူး။


Thursday, 21 February 2008

Programming With LabVIEW (3) (Creating and Using SubVI)

ဒီ LabVIEW အေၾကာင္းကို ကၽြန္ေတာ္ရပ္ထားခဲ့တာၾကာပါၿပီ။ LabVIEW က တစ္ျခား Programming Language ေတြလိုပဲ Function ေတြသံုးလို႔ရပါတယ္။ ဒီမွာက်ေတာ့ SubVI လို႔ေခၚပါတယ္။ သူ႔ကိုတည္ေဆာက္ရတာ မခက္ပါဘူး။ ဒါေပမယ့္ တစ္ခ်က္ႏွစ္ခ်က္ ေလာက္ေတာ့ သိဖို႔လိုပါတယ္။

ပထမအဆင့္အေနနဲ႔ ကိုယ္သံုးခ်င္တဲ့ VI ကိုတည္ေဆာက္ရပါတယ္။ အဲဒါကပံုမွန္ LabVIEW program ေရးတဲ့အတိုင္းပါပဲ။ ေအာက္မွာနမူနာအေနနဲ႔ Fahrenheit ကေန Celsius Degree ေျပာင္းတဲ့ program ေလးကိုေပးထားပါတယ္။

အဲလိုတည္ေဆာက္လို႔ၿပီးသြားတဲ့အခါ အဲဒီ VI ကို SubVI အျဖစ္တစ္ျခား VI မွာထည့္သံုးလို႔ရေအာင္ setting လုပ္ေပးရပါတယ္။ အဲဒါကေတာ့ ညာဘက္အေပၚေဒါင့္မွာ Icon ေလးကို Right click လုပ္လိုက္ရင္ Pattern ထဲမွာ အထက္က မွာပါတဲ့ Patterns ကိုေရြးရပါတယ္။ pattern ေရြးတဲ့ေနရာမွာ ဘယ္၊ ညာ block ႏွစ္ျခမ္းရွိတဲ့ထဲက ဘယ္ဘက္က အျခမ္းက Input (Passed Value) ျဖစ္ၿပီး၊ ညာဘက္က အျခမ္းက Output (Return) ျဖစ္ပါတယ္။ 1 Input, 1 Output ရွိတဲ့အတြက္ တစ္ကြက္စီပဲျဖစ္ေနတာပါ။ 2 Inputs ဆိုရင္ ဘယ္ဘက္အျခမ္းမွာ ၂ ကြက္ျဖစ္ရပါမယ္။ ပံုမွန္က အျဖဴေရာင္ေတြပါ။ ၿပီးရင္ Input Control ကိုေရြး ဘယ္ဘက္အကြက္ကို click လုပ္။ Output Indicator ကိုေရြး ညာဘက္အကြက္ကို click လုပ္ရင္ အထက္မွာပါတဲ့အတိုင္း လိမ္ေမာ္ေရာင္ေလးေတြ ျဖစ္လာမွာပါ။ အေရာင္ကိစၥကေတာ့ Integer ဆိုရင္ အျပာေရာင္၊ Float ဆိုရင္ လိမ္ေမာ္၊ Character ဆိုရင္ အစိမ္း၊ String ဆိုရင္ ပန္းေရာင္ပါ။ Array ဆိုရင္ line ထူပါတယ္။ Data Flow ေတြကလည္း အဲဒီအေရာင္ေတြ အတိုင္းပါပဲ။ ပံုေတြမွာၾကည့္လိုက္ပါ။

အဲဒီ SubVI ကိုအျခား VI မွာယူသံုးလုိက္တဲ့ ပံုေတြပါ။ C->F Icon ေလးက SubVI ရဲ႕ Icon ပါ။ က်န္တာေတြကေတာ့ အရင္တစ္ခါေရးခဲ့သလို ေနရာခ်။ Flow line ေတြလိုက္ဆက္ေပး။ ၿပီးရင္ လို႔ရပါၿပီ။ ေနာက္ထပ္ Post ေတြမွာ Tools, Instruments, Components ေတြကိုနဲနဲျခင္းထည့္ေျပာသြားပါမယ္။ အဓိကျဖစ္တတ္တဲ့ Error ေတြကေတာ့ မတူတဲ့ Data Type အခ်င္းခ်င္း Data Flow ခ်ိတ္မိတာပါပဲ။

Tuesday, 19 February 2008

Classification of USB Chips and Microcontrollers

USD (Universal Serial Bus) ေတြကို က်ယ္က်ယ္ျပန္႔ျပန္႔သံုးလာတာ ၁၀ ႏွစ္ေက်ာ္ေလာက္ရွိပါၿပီ။ USB ေတြကိုအသံုးျပဳေနေပမယ့္ တစ္ျခား Port (COM, LPT) ေတြကိုအခုထိဘာေၾကာင့္ သံုးေနရသလဲဆိုေတာ့ Machine ေတြနဲ႔ခ်ိတ္ဆက္တဲ့ေနရာမွာ COM, LPT ေတြက USB ထက္ပိုၿပီး အဆင္ေျပေနေသးတာေၾကာင့္ပါ။ ေစ်းကြက္မွာ USB Chip ေတြကို အသံုးျပဳတဲ့ပံုစံေပၚမူတည္ၿပီး Category အမ်ိဳးမ်ိဳးခြဲျခားထားပါတယ္။
  1. Microcontrollers with built-in USB interface
  2. Microcontrollers with USB Emulated program
  3. USB converters or USB bridges
  4. Hub Controllers
  5. Host Controllers
  6. Dual role controllers, OTG (On-The-Go)
  7. USB Transceivers, USB Switches

ေတြလို႔ခြဲျခားထားပါတယ္။

1. Microcontrollers with built-in USB interfaceသူက MCU ထဲမွာ ပါၿပီးသားျဖစ္တဲ့အတြက္ အျခား Chip ေတြထက္ပိုျမန္ပါတယ္။ Full-Speed ရတယ္လို႔ေျပာလို႔ရပါတယ္။ က်န္တဲ့ Chip ေတြက အခုေလာက္မျမန္ပါဘူး။ ဒါေပမယ့္ ေစ်းႀကီးတယ္၊ Customise လုပ္လို႔မရဘူး။


2. Microcontrollers with USB Emulated programသူက USB ကို Software နဲ႔ထိန္းခ်ဳပ္လို႔ရေအာင္ သက္ဆိုင္တဲ့ Register ေတြ၊ Bufferေတြ ထည့္ေပးထားပါတယ္။ ပထမတစ္မ်ိဳးထက္ေႏွးပါတယ္။ Controller Software ကိုေရးေပးဖို႔လိုပါတယ္။ Driver သေဘာမ်ိဳးေပါ့။ ေရးရတဲ့ Software ကေတာ့ခက္ပါတယ္။

3. USB converters or USB bridges

ဒီမွာ အမ်ိဳးအစားေတြထပ္ခြဲလို႔ရပါတယ္။

- USB to Serial (COM) bridge

- USB to Parallel (LPT) bridge

- USB to Synchronous (I2C, SPI, JTAG)

- USB to Multimedia (IDE, Flash Disk, CD Drive)

ေတြပါ။

Software ေရးရတာက ဒုတိယတစ္ခုထက္စာရင္လြယ္ပါတယ္။ Library ေတြလုပ္ထားၿပီး ထပ္ခါတလဲလဲ သံုးလို႔ရပါတယ္။ ၾကားခံအေနနဲ႔ Converter တစ္မ်ိဳးမ်ိဳးေတာ့လိုတာေပါ့။ အသံုးအမ်ားဆံုး Chip ပါ။ ကၽြန္ေတာ္အခုသံုးေနတာက ဒီလိုမ်ိဳးပံုစံနဲ႔ပါ။ အရင္ Post ေတြမွာလည္းပါဘူးပါတယ္။ Library (Source Code) ေတြကိုလည္းထပ္တင္ေပးပါ့မယ္။

4. Hub Controllers
USB port အမ်ားႀကီးကို port တစ္ခုထဲမွာေပါင္းေပးတဲ့ Chip ပါ။ ေရးထားတဲ့ Software ေတြက Hard-Code ေတြျဖစ္ၿပီး ျပင္လို႔မရႏိုင္ပါဘူး။ External Peripheral Device ေတြအေနနဲ႔ ေတြ႕ရေလ့ရွိပါတယ္။

5. Host Controllers
PC Motherboard ေတြမွာသံုးပါတယ္။ PCI-USB, PCI-E-USB အစရွိသျဖင့္ သံုးပါတယ္။ Host to Host Controller လို႔လည္းေျပာၾကပါတယ္။ အဓိကအသံုးျပဳေလ့ရွိတဲ့ေနရာက 2 PC ကို USB port နဲ႔ခ်ိတ္တဲ့ေနရာမွာ သံုးပါတယ္။

6. Dual role controllers, OTG (On-The-Go)
သူက Master or Slave device ေတြအျဖစ္သံုးလို႔ရပါတယ္။ Phillip Company က ထုတ္ခဲ့တဲ့ ပါ။

7. USB Transceivers, USB Switches
Additional Devices ျဖစ္ပါတယ္။ Over-Voltage protection ေတြအတြက္သံုးေလ့ရွိပါတယ္။

Monday, 18 February 2008

Examples of Texas Instruments (MSP-430)

TI MSP-430 ရဲ႕ ဥမာေလးေတြပါ။ ေပ်ာက္သြားမွာစိုးလို႔ တင္ထားတဲ့သေဘာပါ။ C Language နဲ႔ေရးထားတဲ့ MSP-430 Components (Timer, ADC, WatchDog Timer, Ports) ေတြနဲ႔ပါတ္သတ္တဲ့ ဥပမာေလးေတြပါ။

SolidWorks Basics - Video Tutorial (1)

KPZ ဆိုတဲ့ညီမေလးရဲ႕ (ကၽြန္ေတာ့္ထက္ငယ္လိမ့္မယ္ ထင္လို႔ပါ) ဘေလာ့ဂ္ကို ဖတ္ၿပီးေတာ့ အၾကံရလာလို႔ပါ။ ဒီ Software ကစိတ္၀င္စားစရာေကာင္းပါတယ္။ သူက ေတြအတြက္ အဓိကထုတ္ထားတယ္ ဆိုေပမယ့္ အျခားလုပ္ငန္းေတြမွာလည္း သံုးပါတယ္။ ဆြဲပံုအဆင့္ဆင့္ေတြကို ျမန္မာလိုျပန္ေရးရင္ အရမ္းရွည္မွာစိုးလို႔ Video Tutorial ေလးေတြေပးလိုက္တာပါ။ အလြန္႐ိုးရွင္းပါတယ္။ Download လုပ္ၿပီီး ၾကည့္ရင္ကို နားလည္ႏိုင္ပါတယ္။ ကၽြန္ေတာ္က AutoCAD ကိုမတတ္ပါဘူး။ ဒါေပမယ့္ SolidWorks က 3D base Software ဆိုေတာ့စိတ္၀င္စားလို႔ ေလ့လာၿပီး လုပ္ၾကည့္ထားတာပါ။ ကၽြန္ေတာ့္အလုပ္က Testing Machine Box/ Panel ေလးတစ္ခုကို ဆြဲၾကည့္ထားတာပါ။ ေအာက္မွာေပးထားတဲ့ Video Tutorial ေလးေတြကို ၾကည့္ၿပီး လုပ္ၾကည့္ထားတာပါ။

Basic - အေျခခံေလးေတြကိုရွင္းျပထားတာပါ နမူနာ ေလ့က်င့္ခန္းေလးတစ္ခုပါပါတယ္။

Interface – SolidWorks Setting ေလးေတြကို ရွင္းျပထားတာပါ။

Tangent Arc - အခံုးပါတဲ့ အစိတ္အပိုင္းေလးေတြဆြဲတာပါ။

More on Extrusion - အဆင့္ဆင့္ ထုထည္လုပ္ပံုေလးေတြပါ။

Sample hole - Surface ေတြေပၚမွာ အေပါက္ေဖာက္ေတြေဖာက္ပံုကို ရွင္းထားတာပါ။

ဒါေပမယ့္ အစိတ္အပိုင္းေတြကို Assembly လုပ္ဖို႔ေတာ့ လိုပါလိမ့္မယ္။ အဲဒီအပိုင္းကို Post တစ္ခုအေနနဲ႔ သပ္သပ္တင္ပါ့မယ္။ Mechinical Drawing ရဲ႕ အေျခခံေတြကို မသိလို႔ Technical Terms ေလးေတြ အသံုးအႏႈံးေလးေတြမွားေနရင္ ခြင့္လႊတ္ပါ။

Friday, 15 February 2008

Accessing Data from AD7715

ADC (Analog to Digital Converter) အေၾကာင္းကို ကၽြန္ေတာ္ Post တစ္ခါေရးဘူးပါတယ္။ ဒါကအဲဒါရဲ႕ေနာက္ဆက္တြဲပါ။ ADC ကေနၿပီးေတာ့ Data ေတြကိုဖတ္တဲ့ ပံုစံပါ။ ဖတ္တဲ့ေနရာမွာ အဓိကအေနနဲ႔ အဆင့္ ၃ ဆင့္ပဲရွိပါတယ္။
၁။ ADC Initialisation
၂။ Send Read Command to ADC
၃။ Read back the Reply Value (Read 2 bytes)
ဆိုၿပီးရွိပါတယ္။ အေသးစိတ္အဆင့္ေတြကို ေအာက္မွာ Flow Chart နဲ႔ျပထားေပးပါတယ္။

သူက MCU နဲ႔ဆက္သြယ္တဲ့ေနရာမွာ SPI Communication Protocol ကိုသံုးပါတယ္။ Clock နဲ႔ Chip Select signal ကို MCU ကေနေပးပါတယ္။ Value ဖတ္တဲ့ေနရာမွာ 16 bit ရွိတဲ့အတြက္ 8-bit Low/High byte ဆိုၿပီးႏွစ္ခါျပန္ဖတ္ရပါတယ္။ ၿပီးမွ 16-bit value အေနနဲ႔ျပန္ေပါင္းေပးၿပီး တန္ဖိုးကို ယူရပါတယ္။ ADC ကို Command ေတြလွမ္းေပးျခင္းအားျဖင့္ အလုပ္လုပ္တာပါ။ Flow Chart မွာ Hexa Command ေတြပါထည့္ေရးထားပါတယ္။


Thursday, 14 February 2008

RF (Radio Frequency) with XBee (ZigBee)

Wireless Device ေတြကို အသံုးျပဳၾကတဲ့ေနရာေတြ အမ်ားႀကီးပါ။ Medium ေတြလည္းအမ်ားႀကီးပါ။ ဥပမာ Infra Red, RF (Radio Frequency) ေတြေပါ့။ ကၽြန္ေတာ္အခုေျပာမွာက RF ပါ။ သူမွာ System ေတြထပ္ရွိပါတယ္။ ေအာက္မွာ ဇယားနဲ႔ ႏႈိင္းယွဥ္ျပထားပါတယ္။ ကၽြန္ေတာ္က အဲဒီထဲကေန ZigBee နဲ႔ပါတ္သတ္တဲ့ Devices, IC ေလးေတြကို ေရးသြားမွာပါ။

XBee
XBee ဆိုတာက RF သံုးလို႔ရတဲ့ IC ပါ။ MaxStream Company’s product ပါ။
သူ႔ကိုတစ္ျခား MCU တစ္ခုနဲတြဲၿပီးသံုးေလ့ရွိပါတယ္ ေအာက္မွာ PIC MCU နဲ႔ XBee ခ်ိတ္ဆက္အသံုးျပဳထားတဲ့ Daughter Board ပံုကိုျပထားပါတယ္။ Computer နဲ႔ဆက္ၿပီးသံုးခ်င္ရင္ XBee Demonstration Board ကိုသံုးရင္လည္းရပါတယ္။ COM (Serial) port ကိုသံုးၿပီးခ်ိတ္ဆက္ပါတယ္။

XBee daughter board

XBee daughter board (layout)

XBee daughter board attached with PIC MCU

XBee Demonstration Board

XBee Development Kit

Internal Data Flow Diagram

Wednesday, 13 February 2008

Hexa Code <-> Assembly Code <-> C Code

ဒီ Post ကေတာ့ နဲနဲမ်က္စိလည္မယ္ထင္ပါတယ္။ ကၽြန္ေတာ္ၾကံဳခဲ့ရတဲ့ အျဖစ္အပ်က္ေလးပါ။ Software တစ္ခုေပါ့ အဲဒါကကၽြန္ေတာ့ဆီမွာရွိတဲ့ ေနာက္ဆံုးဆိုတဲ့ Source Code ကလည္း ေနာက္ဆံုးဟုတ္မဟုတ္ မေသခ်ာတဲ့အခါမွာ Microprocessor ထဲကေန Hexa Codes ကိုျပန္ယူ။ Assembly Code ေျပာင္း ေနာက္ C Code ကိုျပန္ေျပာင္း ေနာက္ၿပီး C Code ကိုျပင္ ၿပီးေတာ့မွ Microprocessor ထဲကိုျပန္ၿပီး Download လုပ္လုိက္ရတဲ့ အေျခအေနပါ။ Hex Code ကိုဖတ္တဲ့ေနရာမွာ ဥပမာေျပာရရင္ 02 04 65 53 က Assembly ဆိုရင္ LJMP 0465H ANL ပါ C ဆိုရင္ #include “GBA.h”။ တစ္ကယ္ေတာ့ Function Call ပါပဲ။ ဒါေပမယ့္အဲဒါ အေသမဟုတ္ပါဘူး။ Complier Type ေပၚမူတည္ၿပီး Code Conversion ေျပာင္းလဲမႈရွိပါတယ္။ နမူနာ Program တစ္ခုကိုအရင္ေျပာင္းၾကည့္ၿပီးမွ တစ္ကယ္ကိုလုပ္မည့္ Software ကိုေျပာင္းမွ အဆင္ေျပမွာပါ။ မွန္ဖို႔ရာခိုင္ႏႈန္း အလြန္းနည္းပါတယ္။ မရႏိုင္ဘူးလို႔ေျပာတာ ပုိေကာင္းပါတယ္။ ကၽြန္ေတာ္ကိုယ္တိုင္လည္း မေသခ်ာလို႔ တစ္ျခားနည္းေျပာင္းသံုးရပါတယ္။