RPi ကို သုံးပြီး smart surveillance ကင်မရာ တစ်ခု ကို ကိုယ်တိုင် ပြုလုပ် ဖန်တီး ကြည့် ပါမယ်။
ပုံမှန် ဘာမှ ထူးခြားမှု မရှိတဲ့ အချိန်မှာ 5x speed နဲ့ နေ့စဉ်၊ ဒါမှ မဟုတ် နာရီ အလိုက် ဗွီဒီယို ဖိုင်တွေ ခွဲပြီး record လုပ်ပေး နိုင် အောင် လုပ်ပါမယ်။
ဖမ်းယူ ရရှိတဲ့ ပုံရိပ် တွေကို analysis လုပ်နေပြီး လူ့ ကိုယ်ခန္ဓာ တွေကို တွေ့တာ နဲ့ ပုံမှာ အစိမ်းရောင် စတုဂံ နဲ့ ဘောင်ခတ် ပြပြီး၊ ပုံမှန် speed နဲ့ ပြောင်းပြီး record လုပ် ပါမယ်။
Passive infrared sensor (PIR sensor) ကိုပါ သုံးပြီး sensor က လူရိပ် ကို အာရုံခံ မိရင် လည်း၊ ပုံရိပ် မှာ အနီရောင် indicator ပြပြီး၊ ပုံမှန် နှုန်းနဲ့ ပြောင်း record လုပ်နိုင် ပါမယ်။
ဒီ နမူနာ ပရိုဂရမ် မှာ လုပ်လို့ ရတဲ့ အကြောင်း ကုဒ် အကြမ်း ရေးကြည့် ရုံ ဖြစ်ပြီး၊ တစ်ခုခု ထူးခြားရင် ကိုယ့်ရဲ့ အီးမေးလ် ကို လှမ်းပို့ တာ၊
အိမ်က လူတွေ ရဲ့ မျက်နှာကို မှတ်မိတာ၊ သတ်မှတ် ထားတဲ့ အချိန် အပိုင်း အခြား အလိုက် လိုသလို record လုပ်တာ စတာ တွေကို
စိတ်ကူး ရှိရင် ရှိသလို ထပ်ဖြည့် နိုင် ပါတယ်။
Friday, March 9, 2018
Monday, January 22, 2018
UDP/TCP Socket Programming with wxWidgets
နိဒါန်း
wxWidgets နဲ့ UDP ၊ TCP တို့ကို သုံးပြီး network ပေါ်မှာ ဒေတာ အပြန် အလှန် ပေးပို့ ဆက်သွယ် တဲ့ အကြောင်း ဆွေးနွေး ချင် ပါတယ်။ အဲဒီ အတွက် wxWidgets ကို တပ်ဆင် ထားဖို့ လိုပါ တယ်။ သူ့ကို platform အမျိုးမျိုး အတွက် တပ်ဆင်တဲ့ အကြောင်း တွေကို အောက်က လင့်ခ် မှာ ဖတ်နိုင် ပါတယ်။အင်တာနက် စတဲ့ network တွေ ပေါ်မှာ TCP ဒါမှမဟုတ် UDP တွေသုံးပြီး စက်တစ်ခု နဲ့ တစ်ခု ဒေတာ တွေ အပြန်အလှန် ပို့ဖို့ အတွက် socket တွေကို အသုံးပြု နိုင် ပါတယ်။ ခေတ်ပေါ် operating system တွေ အားလုံးက socket layer ကို အထောက် အပံ့ ပေးကြ ပေမယ့် platform ပေါ်မူ တည်ပြီး socket ကို အသုံး ပြုရတဲ့ ပုံစံ တွေက အမျိုးမျိုး ကွဲပြား နိုင်ပါတယ်။ wxWidgets မှာ အောက်ခံ platform အတွက် ပူစရာ မလိုပဲ အလွယ် တကူ အသုံးပြုနိုင်တဲ့ socket class ပါ ပါတယ်။ အဲဒီ class ကို မတူညီတဲ့ ပုံစံ နည်းလမ်း အမျိုးမျိုး နဲ့ အသုံးပြုနိုင်ပြီး၊ အသုံးပြုပုံ နမူနာ တချို့ကို အောက်မှာ ဆက်ပြီး ဖော်ပြထား ပါတယ်။
Thursday, November 23, 2017
OpenCV with wxWidgets
နိဒါန်း
OpenCV ကို wxWidgets နဲ့ တွဲသုံး တဲ့ အကြောင်း ဆွေးနွေး ချင် ပါတယ်။ အဲဒီ အတွက် OpenCV နဲ့ wxWidgets တို့ကို တပ်ဆင် ထားဖို့ လိုပါ တယ်။ သူတို့ ကို platform အမျိုးမျိုး အတွက် တပ်ဆင်တဲ့ အကြောင်း တွေကို အောက်က လင့်ခ် တွေမှာ ဖတ်နိုင် ပါတယ်။- Cross-platform C++ programming with wxWidgets
- OpenCV on Linux using g++, CMake, Qt, Code::Blocks
- OpenCV on Windows Using Visual Studio
Linux
Linux နဲ့ terminal ပေါ်မှာ command ရိုက်ထည့် ပြီး build လုပ်တာ လွယ်ကူ ရိုးရှင်း ပါတယ်။ နမူနာ အနေနဲ့ wxcvsimple.cpp (online) ဆိုတဲ့ ရိုးရှင်း တဲ့ ပရိုဂရမ် လေး တစ်ခု ရေးကြည့် ပါမယ်။ ပရိုဂရမ် အစမှာ Application ရဲ့ OnInit() ဆိုတဲ့ method ထဲမှာwxInitAllImageHandlers();ဆိုတာကို ထည့်ပါမယ်။ အဲဒီနောက် MyFrame ဆိုတဲ့ wxFrame ရဲ့ derived class ထဲမှာ ပုံရိပ် တွေကို ဖော်ပြဖို့ wxStaticBitmap variable တွေကို ကြေငြာ လိုက် ပါမယ်။ MyFrame ရဲ့ constructor မှာ wxStaticBitmap တွေကို ဖန်တီးဖို့ အောက်က ကုဒ် ကို သုံးနိုင် ပါတယ်။
Monday, November 20, 2017
OpenCV on Linux using g++, CMake, Qt, Code::Blocks
- နိဒါန်း
- GCC ၊ CMake တို့ဖြင့် အသုံးပြုခြင်း
- Qt ဖြင့် အသုံးပြုခြင်း
- Code::Blocks ဖြင့်အသုံးပြုခြင်း
- အကိုးအကားများ
နိဒါန်း
OpenCV ကို Linux တွင် တပ်ဆင် ရန် ပထမ အဆင့် အနေနှင့် အောက်ပါ packages များ စက်ထဲ တွင် ရှိရန် လိုအပ် သည် [Ope17g]။- GCC 4.4.x or later
- CMake 2.6 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
Friday, October 27, 2017
Cross-platform C++ programming with wxWidgets
နိဒါန်း
wxWidgets က Windows ၊ Linux နဲ့ Mac OSX အစ ရှိတဲ့ ပလက်ဖောင်း အမျိုးမျိုး ပေါ်မှာ GUI applications တွေ ရေးဖို့ အတွက် C++ library ပါ။ သူနဲ့ GUI code တွေ ရေးပြီး ရင် ပလက်ဖောင်း အမျိုးမျိုး ပေါ်မှာ ကုဒ် ကို သိပ်ပြင် စရာ မလိုပဲ တန်းပြီး compile လုပ်၊ run လုပ်လို့ ရပါတယ်။wxWidgets က free လည်းပေး open source လည်း ဖြစ် တဲ့ software ပါ။ ကိုယ်ပိုင် ဆော့ဝဲ တွေ ထုတ်မယ် ဆိုရင် လည်း ဘာမှ ကန့်သတ်ချက် တွေ မရှိ ပါဘူး [wxW98]။ အဲဒါက Qt နဲ့ အဓိက ကွာခြားချက် ပါ။ Qt က LGPLv3 လိုင်စင် ကို free ပေးထားပြီး၊ ကိုယ်ပိုင် စီးပွားရေး အတွက် သုံးမယ် ဆိုရင် ကန့်သတ်ချက် တချို့ ရှိတာကြောင့် လိုင်စင် ဝယ်ဖို့ လိုကောင်း လိုနိုင် ပါတယ် [Qt17]။
Native platform ကို တတ်နိုင် သလောက် သုံးထား တာမို့ wxWidgets သုံးလို့ ရလာတဲ့ GUI တွေဟာ သုံးတဲ့ platform နဲ့ လိုက်ဖက်ပြီး ပင်ကို အမြင် အတိုင်း တသားထဲ ကျ တာကို ခံစား ရမှာပါ [wxW12]။ Standard C++ ကိုပဲ သုံးထားပြီး Qt တို့လို အထူး extension တွေ မသုံးထား တဲ့ အတွက် ရှုပ်ထွေးမှု နည်းတာ ကလည်း ကောင်းတဲ့ အချက် တစ်ခုပါ။
wxWidgets နဲ့ ရလာတဲ့ binary application တွေဟာ သေးငယ် ပေါ့ပါး တာမို့ embedded system တွေအတွက် အထူး သင့်တော် ပါတယ်။ နောက်တစ်ခါ library အရွယ်အစား တွေ ယှဉ်ရင်လည်း ဥပမာ အနေနဲ့ Qt library ကို တပ်ဆင်ရင် \(\approx 200\) MB လောက် အရွယ် ရှိပေမယ့် wxWidgets library က \(\approx 30\) MB လောက်ပဲ ယူပါတယ်။
wxWidgets က C++ အတွက် သာ မကပဲ python, perl, php, java, lua, lisp, erlang, eiffel, C# (.NET), BASIC, ruby နဲ့ javascript အတွက် တောင်မှ bindings [wxW15a] တွေ ရှိပါတယ်။ wxWidgets က တော်တော် ပြည့်စုံ ရင့်ကျက် တဲ့ GUI toolkits ဖြစ်ပြီး၊ utility classes လည်း အများကြီး ရှိတာမို့ ကောင်းမွန် သင့်တော် တဲ့ GUI toolkits အနေနဲ့ ညွှန်းဆို ချင်ပါတယ်။
wxWidgets ကို အသုံးပြုတဲ့ သူတွေ၊ အဖွဲ့အစည်းတွေ အများကြီး ရှိပြီး အဲဒီ အထဲမှာ လူသိများ တာတွေက NASA, AMD, Xerox, နဲ့ Open Source Applications Foundation (OSAF) တို့ ဖြစ်ပါတယ်။ ထင်ရှားတဲ့ wxWidgets applications တွေက AVG AntiVirus, Audacity, Filezilla, Code::Blocks, CodeLite တို့ ဖြစ်ပါတယ်။
Wednesday, September 13, 2017
Pixy
Arduino, Raspberry Pi, BeagleBone စတာ တွေနဲ့ Computer Vision အလွယ်တကူ တွဲသုံး ချင်ရင် Pixy (http://cmucam.org/projects/cmucam5) ဆိုတဲ့ Vision System လေး သုံးရတာ လွယ်ကူ အဆင်ပြေ ပါတယ်။
ကိုယ် detect လုပ်ချင် တဲ့ အရာ ဝတ္တု တွေရဲ့ အရောင် ကို သင်ပေး ပြီးတာနဲ့ သူတို့ ကို အာရုံခံ ပေးပြီး နေရာ၊ အရွယ် စတာ တွေကို UART, SPI, I2C အစရှိတဲ့ interface တွေ နေ ပို့ ပေးနိုင် ပါတယ်။
Thursday, August 3, 2017
KiCad အားစတင်အသုံးပြုခြင်း
KiCad ဆိုတဲ့ free software လေးက PCB ဆားကစ်ဘုတ်တွေ ဒီဇိုင်း လုပ်ဖို့ တော်တော် အဆင်ပြေတယ်။ အလကားပေးထားတာရယ်၊ ကန့်သတ်မှုတွေ မရှိပဲ စိတ်ကြိုက်သုံးနိုင်တာတွေရယ်ကိုတော်တော်သဘောကျမိတယ်။ စီးပွားဖြစ် အမြောက်အများထုတ်ရင် အသုံးဝင်တဲ့ BoM ၊ Gerber ဖိုင် လိုမျိုးတွေထုတ်ဖို့၊ ဒီဇိုင်းကို 3D မြင်ကွင်းနဲ့ ကြည့်ဖို့ တွေအတွက်ပါ ကိရိယာတွေပါတယ်။ Olimex တို့လို နာမည်ကြီး development ဆားကစ်ဘုတ် ပစ္စည်းကိရိယာ တွေလုပ်ရောင်းတဲ့ ကုမ္ပဏီတွေတောင် အခုနောက်ပိုင်း KiCad ကို ပြောင်းသုံးတယ်ဆိုပါတယ် [KiCad on Wikipedia]။
ကျွန်တော် ကိုယ်တိုင်လည်း ဆားကစ်ဘုတ် တချို့လုပ်ပြီး သုံးကြည့်တာ အားလုံး အဆင်ပြေတာ တွေ့ရတယ်။ ဒါနဲ့ ကိုယ်တိုင်သုံးကြည့်လို့ ရတဲ့ အတွေ့အကြုံ၊ နည်းလမ်းလေးတွေကို စုပြီး မှတ်ထားချင်တာနဲ့ ၊ သူ့ရဲ့ Getting Started guide နဲ့ပေါင်းစပ်ပြီး၊ ကောင်းမယ်ထင်တဲ့ နမူနာလေးတွေနဲ့ မြန်မာလို KiCad သုံးနည်းစာအုပ်လေး ရေးဖြစ်တယ်။ စိတ်ဝင်စားရင် အောက်ကလင့်ခ်မှာ ယူပြီး ဖတ်ကြည့်ပါဦး။
https://yan9a.github.io/KiCad/kicadmm.pdf
ကျွန်တော် ကိုယ်တိုင်လည်း ဆားကစ်ဘုတ် တချို့လုပ်ပြီး သုံးကြည့်တာ အားလုံး အဆင်ပြေတာ တွေ့ရတယ်။ ဒါနဲ့ ကိုယ်တိုင်သုံးကြည့်လို့ ရတဲ့ အတွေ့အကြုံ၊ နည်းလမ်းလေးတွေကို စုပြီး မှတ်ထားချင်တာနဲ့ ၊ သူ့ရဲ့ Getting Started guide နဲ့ပေါင်းစပ်ပြီး၊ ကောင်းမယ်ထင်တဲ့ နမူနာလေးတွေနဲ့ မြန်မာလို KiCad သုံးနည်းစာအုပ်လေး ရေးဖြစ်တယ်။ စိတ်ဝင်စားရင် အောက်ကလင့်ခ်မှာ ယူပြီး ဖတ်ကြည့်ပါဦး။
https://yan9a.github.io/KiCad/kicadmm.pdf
Tuesday, June 6, 2017
Flash content protection for LPC824
LPC824 low cost 32-bit ARM Cortex-M0 microcontroller လေးကို
OM13071 LPCXpresso824-MAX Development board သုံးပြီး evaluate လုပ်လို့ရတဲ့ အတွေ့အကြုံလေးကို ပြောချင်ပါတယ်။
Board မှာ သုံးထားတဲ့ MCU အမျိုးအစားက LPC824M201JHI33 ပါ။ အရွယ်အစား က 5 x 5 x 0.85 mm ပဲရှိတဲ့ 33 pins ပါတဲ့ HVQFN package ပါ။
သူ့အတွက် MCUXpresso Integrated Development Environment (IDE) ကို download လုပ်ပြီး၊ install လုပ်ပါမယ်။ အခြား လိုအပ်တဲ့ tools တွေကိုလည်း ဒီမှာ တွေ့နိုင်ပါတယ်။ MCUXpresso ကိုဖွင့် ပြီး workspace သတ်မှတ်ပြီးတဲ့ အခါ ဘယ်ဘက်အောက်နားက Quick Start Paner ထဲက Import projects from file system ... ဆိုတာကိုနှိပ်ပြီး Browse LPC open resources ကိုနှိပ်ပြီး နမူနာ တွေကို ယူနိုင်ပါတယ်။
သူ့အတွက် MCUXpresso Integrated Development Environment (IDE) ကို download လုပ်ပြီး၊ install လုပ်ပါမယ်။ အခြား လိုအပ်တဲ့ tools တွေကိုလည်း ဒီမှာ တွေ့နိုင်ပါတယ်။ MCUXpresso ကိုဖွင့် ပြီး workspace သတ်မှတ်ပြီးတဲ့ အခါ ဘယ်ဘက်အောက်နားက Quick Start Paner ထဲက Import projects from file system ... ဆိုတာကိုနှိပ်ပြီး Browse LPC open resources ကိုနှိပ်ပြီး နမူနာ တွေကို ယူနိုင်ပါတယ်။
Wednesday, May 31, 2017
Programming serial port in C++ with wxWidgets for Windows and Linux
Seriar Port ကိုအသုံးပြုနိုင်တဲ့၊ ကျနော်ဖန်တီးထားတဲ့ C++ class library လေးတစ်ခု အကြောင်း ပြောချင်ပါတယ်။
သူက cross-platform ဖြစ်ပြီး Windows ရော၊ Linux မှာပါ သုံးနိုင်ပါတယ်။
နမူနာ အနေနဲ့ ရိုးရှင်းတဲ့ C++ console program လေးတစ်ခုကို ဖော်ပြထားပြီး၊ GUI application အနေနဲ့ wxWidgets ကိုသုံးထားတဲ့ program ကိုပါ ဖော်ပြထားပါတယ်။
သူတို့ရဲ့ source code တွေကို အောက်က လင့်ခ် မှာ တွေ့နိုင်ပါတယ်။
https://github.com/yan9a/serial
https://github.com/yan9a/serial
Saturday, April 8, 2017
ပျော်ရွှင်မှုဆိုတာ
အိုင်ဖုန်းအသစ်ရတာပျော်စရာလား?
အိုင်ဖုန်း အသစ်ရတာကို ပျော်စရာ ဟုတ်မဟုတ် စဉ်းစားမိတော့ ပျော်စရာ ဆိုတာ ဘာလဲ၊ ပျော်စရာကို ဘယ်လိုသတ်မှတ်လဲ ဆိုတာကို ရှင်းရှင်းလင်းလင်းရှိဖို့ လိုပြန်ရော။ ပျော်တယ်ဆိုတာ ကောင်းကောင်းမွန်မွန် နေရတာ ဖြစ်နိုင်သလို၊ စိတ်ခံစားမှု တစ်ခုလည်း ဖြစ်နိုင်မယ်။ အဲ့နှစ်ခုက တစ်ထပ်ထည်း ကျချင်မှလည်းကျမယ်။ ကောင်းကောင်းမွန်မွန် နေနိုင်ပေမယ့် ရွှင်လန်းအားရမှု ရှိချင်မှ ရှိမယ်လေ။ သာယာမှုတွေပြည့်နေတဲ့ ဘဝကလည်း ကောင်းမွန်မွန်နေနိုင်တာ ဟုတ်ချင်မှဟုတ်မယ် မဟုတ်လား။
ပျော်ရတဲ့အကြောင်းများ
ပျော်ရတဲ့ အကြောင်းရင်းတွေက အနည်းဆုံး သုံးခုလောက်တော့ ရှိတယ်လို့ ဆိုကြတယ်။
* ဟိဒနဇင်(hedonism) ဆိုတဲ့ သာယာကြည်နူးဖွယ် တွေပြည့်နေတဲ့ အတွေ့အကြုံ၊
* ကိုယ့်ဘဝကိုယ် ရောင့်ရဲ ကျေနပ်တာ နဲ့
* ဖွံဖြိုးရရှိမှုဆိုင်ရာ ကျေနပ်အားရတာမျိုး တွေတဲ့။
Hedonistic နည်းကတော့ သာယာဖွယ် ခံစားမှု တွေနဲ့ ပျော်စရာရှာတာ။ ဘီစီ ၄၀၀ လောက်က အာရစ္စတစ်ပတ် (Aristippus) ဆိုတဲ့ လူကြီးနဲ့ သူ့မြေးတို့ ပြောခဲ့ကြဖူးတဲ့ အယူအဆပေါ့။
အိုင်ဖုန်း အသစ်ရတာကို ပျော်စရာ ဟုတ်မဟုတ် စဉ်းစားမိတော့ ပျော်စရာ ဆိုတာ ဘာလဲ၊ ပျော်စရာကို ဘယ်လိုသတ်မှတ်လဲ ဆိုတာကို ရှင်းရှင်းလင်းလင်းရှိဖို့ လိုပြန်ရော။ ပျော်တယ်ဆိုတာ ကောင်းကောင်းမွန်မွန် နေရတာ ဖြစ်နိုင်သလို၊ စိတ်ခံစားမှု တစ်ခုလည်း ဖြစ်နိုင်မယ်။ အဲ့နှစ်ခုက တစ်ထပ်ထည်း ကျချင်မှလည်းကျမယ်။ ကောင်းကောင်းမွန်မွန် နေနိုင်ပေမယ့် ရွှင်လန်းအားရမှု ရှိချင်မှ ရှိမယ်လေ။ သာယာမှုတွေပြည့်နေတဲ့ ဘဝကလည်း ကောင်းမွန်မွန်နေနိုင်တာ ဟုတ်ချင်မှဟုတ်မယ် မဟုတ်လား။
ပျော်ရတဲ့အကြောင်းများ
ပျော်ရတဲ့ အကြောင်းရင်းတွေက အနည်းဆုံး သုံးခုလောက်တော့ ရှိတယ်လို့ ဆိုကြတယ်။
* ဟိဒနဇင်(hedonism) ဆိုတဲ့ သာယာကြည်နူးဖွယ် တွေပြည့်နေတဲ့ အတွေ့အကြုံ၊
* ကိုယ့်ဘဝကိုယ် ရောင့်ရဲ ကျေနပ်တာ နဲ့
* ဖွံဖြိုးရရှိမှုဆိုင်ရာ ကျေနပ်အားရတာမျိုး တွေတဲ့။
Hedonistic နည်းကတော့ သာယာဖွယ် ခံစားမှု တွေနဲ့ ပျော်စရာရှာတာ။ ဘီစီ ၄၀၀ လောက်က အာရစ္စတစ်ပတ် (Aristippus) ဆိုတဲ့ လူကြီးနဲ့ သူ့မြေးတို့ ပြောခဲ့ကြဖူးတဲ့ အယူအဆပေါ့။
Subscribe to:
Posts (Atom)