- Installing WSL
- Setup Docker
- Using Poky Container
- Yocto build
- Beaglebone Black
- Raspberry Pi
- Adding a CustomLayer
- Using wxWidgets
- Creating an Image Recipe
- Making an SDK
Cool Emerald
Our thoughts and memories...
Saturday, January 24, 2026
Custom Linux Image Build Using Yocto on WSL
ကိုယ်သုံးမယ့် Single Board Computer (SBC) က အထူးပြုလုပ်ထားတဲ့ ဟာ့ဒ်ဝဲတွေ နဲ့ ချိတ်ဆက်ထားရင်၊ သူနဲ့ လိုက်ဖက်မယ့် Linux image ကို Yocto သုံးပြီး ပြုလုပ်တာက
စိတ်တိုင်းကျရနိုင်သလို၊ နောက်လည်းအလွယ်တကူ ပြန်လုပ်လို့ရတဲ့ အပြင်၊ ပေါ့ပါးသေးငယ်တဲ့ အတွက် ပိုကောင်းပါတယ်။
Linux image ကို build လုပ်ဖို့အတွက် environment ပြင်ဆင်ရတာ အချိန်ကုန်သက်သာ ချင်ရင် WSL နဲ့ Yocto Docker container ကို ပေါင်းပြီး သုံးလို့ရပါတယ်။
Thursday, June 5, 2025
Exploring Edge AI with NXP's FRDM-MCXN947
Read this article in English
Auckland မှာ တလောက ကျင်းပတဲ့ NXP ရဲ့ NXP technology day ကို သွားဖြစ် လိုက်သေးတယ်။ သူတို့ရဲ့ နောက်ဆုံးပေါ် microcontroller တွေ၊ i.MX microprocessor တွေနဲ့ semiconductor technologies တွေ အဓိက ပြတာ။ NXP က ထိပ်သီး Dutch semiconductor ကုမ္ပဏီ တစ်ခု။ ပြီးတော့ automotive ၊ industrial ၊ IoT applications နဲ့ ဆိုင်တာတွေ အများဆုံး ထုတ်တယ်။ လက်ဟောင်း Philips နဲ့ Freescale ရဲ့ Kinetis MCU architecture တွေကို ပေါင်းစပ် လိုက်တဲ့ သူ့ ရဲ့ နောက်ဆုံးထွက် MCX microcontroller တွေထဲက MCXN947 ကိုတော့ တော်တော် သဘောကျတယ်။ ပါဝါ အစားနည်းပြီး၊ လုပ်ဆောင်မှု မြင့်မားတယ်။ နောက်ပြီး NPU ဆိုတဲ့ neural processing unit ပါတော့ on-device AI processing တွေ လုပ်ဆောင်နိုင် တယ်တဲ့။ Edge computing တွေ ပို ခေတ်စား လာတဲ့ အချိန်၊ ဒီလို energy-efficient ဖြစ်ပြီး၊ real-time AI ရတဲ့ hardware သေးသေး တွေက တော် တော် စိတ်ဝင်စား ဖို့ ကောင်းတယ်။
Auckland မှာ တလောက ကျင်းပတဲ့ NXP ရဲ့ NXP technology day ကို သွားဖြစ် လိုက်သေးတယ်။ သူတို့ရဲ့ နောက်ဆုံးပေါ် microcontroller တွေ၊ i.MX microprocessor တွေနဲ့ semiconductor technologies တွေ အဓိက ပြတာ။ NXP က ထိပ်သီး Dutch semiconductor ကုမ္ပဏီ တစ်ခု။ ပြီးတော့ automotive ၊ industrial ၊ IoT applications နဲ့ ဆိုင်တာတွေ အများဆုံး ထုတ်တယ်။ လက်ဟောင်း Philips နဲ့ Freescale ရဲ့ Kinetis MCU architecture တွေကို ပေါင်းစပ် လိုက်တဲ့ သူ့ ရဲ့ နောက်ဆုံးထွက် MCX microcontroller တွေထဲက MCXN947 ကိုတော့ တော်တော် သဘောကျတယ်။ ပါဝါ အစားနည်းပြီး၊ လုပ်ဆောင်မှု မြင့်မားတယ်။ နောက်ပြီး NPU ဆိုတဲ့ neural processing unit ပါတော့ on-device AI processing တွေ လုပ်ဆောင်နိုင် တယ်တဲ့။ Edge computing တွေ ပို ခေတ်စား လာတဲ့ အချိန်၊ ဒီလို energy-efficient ဖြစ်ပြီး၊ real-time AI ရတဲ့ hardware သေးသေး တွေက တော် တော် စိတ်ဝင်စား ဖို့ ကောင်းတယ်။
- Hardware လိုအပ်ချက်
- Software လိုအပ်ချက်
- Classification ပရောဂျက် တည်ဆောက်ခြင်း
- Model ကို အသုံးချခြင်း
- MCUXpresso IDE
- Data Logging
- Anomaly Detection
Thursday, January 30, 2020
Multithreading with wxWidgets
C++ program တွေမှာ wxWidgets ကို သုံးပြီး multithreading လုပ်ဆောင်မှု တွေ ပြုလုပ် တဲ့အကြောင်း ဆွေးနွေး ပါမယ်။
ဆွေးနွေးမယ့် နမူနာ ပုံစံ အမျိုးမျိုး က
တို့ ဖြစ်ပါတယ်။
အခြေခံ multithreading နမူနာ နဲ့ သူ့ကို run လိုက်လို့ ရလာတဲ့ ရလဒ် ကို အောက်က link နဲ့ ပုံမှာ ပြထားပါတယ်။
https://github.com/yan9a/wxwidgets/blob/master/thread/thread1/thread1.cpp
https://github.com/yan9a/wxwidgets/blob/master/thread/th-simple/th-simple.cpp
ဆိုတဲ့ ပရိုဂရမ် လေးကို ဆွေးနွေး ပါမယ်။ ပရိုဂရမ် မှာ start ၊ stop ၊ pause နဲ့ resume ဆိုတဲ့ button လေးခု ကို အရင် ထည့် ပါမယ်။ Start button က thread အသစ် တစ်ခု ကို ဖန်တီး ပြီး၊ စတင် ဖို့ပါ။ Stop က နောက်ဆုံး ဖန်တီး လိုက်တဲ့ thread ကို ရှာပြီး ဖျက်ပေး ပါလိမ့်မယ်။ Pause က နောက်ဆုံး စတင် တဲ့ thread ကို ရှာပြီး ခေတ္တရပ် (pause) လုပ်ပေး ပါတယ်။ Resume က အရင်ဆုံး paused လုပ်ခဲ့ တဲ့ thread ကို ရှာပြီး၊ ပြန် run ပေးဖို့ ပါ။
တို့ ဖြစ်ပါတယ်။
အခြေခံ multithreading နမူနာ နဲ့ သူ့ကို run လိုက်လို့ ရလာတဲ့ ရလဒ် ကို အောက်က link နဲ့ ပုံမှာ ပြထားပါတယ်။
https://github.com/yan9a/wxwidgets/blob/master/thread/thread1/thread1.cpp
Simple Multithreading Example
ရိုးရှင်း တဲ့ multithreading နမူနာ အနေနဲ့https://github.com/yan9a/wxwidgets/blob/master/thread/th-simple/th-simple.cpp
ဆိုတဲ့ ပရိုဂရမ် လေးကို ဆွေးနွေး ပါမယ်။ ပရိုဂရမ် မှာ start ၊ stop ၊ pause နဲ့ resume ဆိုတဲ့ button လေးခု ကို အရင် ထည့် ပါမယ်။ Start button က thread အသစ် တစ်ခု ကို ဖန်တီး ပြီး၊ စတင် ဖို့ပါ။ Stop က နောက်ဆုံး ဖန်တီး လိုက်တဲ့ thread ကို ရှာပြီး ဖျက်ပေး ပါလိမ့်မယ်။ Pause က နောက်ဆုံး စတင် တဲ့ thread ကို ရှာပြီး ခေတ္တရပ် (pause) လုပ်ပေး ပါတယ်။ Resume က အရင်ဆုံး paused လုပ်ခဲ့ တဲ့ thread ကို ရှာပြီး၊ ပြန် run ပေးဖို့ ပါ။
Friday, December 28, 2018
Curve Plotting with C++
C++ program တွေမှာ curve plotting လုပ်ဖို့ လိုလာရင် သုံးလို့ ရမယ့် နည်းလမ်း တချို့ကို
ဆွေးနွေး ချင်ပါတယ်။ သုံးကြည့်မယ့် tools တွေက
တို့ ဖြစ်ပါတယ်။
Install လုပ်ပြီး တဲ့ အခါ gnuplot ကို အောက်ပါ အတိုင်း စနိုင် ပါတယ်။
ပြီးတဲ့ အခါ လက်ရှိ ဗားရှင်း စတဲ့ အချက်အလက် တွေပေါ်လာ ပြီးတဲ့ အခါ gnuplot ရဲ့ prompt ကို ရောက်သွား ပါမယ်။ နမူနာ အနေနဲ့ sin(x) ကို plot လုပ်ကြည့်ပြီး၊ cos2(x) ကို ပါ အောက်က အတိုင်း ထပ် plot လုပ်ကြည့် လိုက်ရင် Figure. 1 မှာ ပြထား သလို တွေ့ရ ပါလိမ့်မယ် [Mig18]။ Gnuplot ကနေ ထွက်ဖို့ အတွက် q ကို ရိုက်ထည့် နိုင် ပါတယ်။
တို့ ဖြစ်ပါတယ်။
Gnuplot
Gnuplot ကို Ubuntu ပေါ်မှာ install လုပ်ဖို့ အတွက် အောက်က command တွေကို သုံးနိုင် ပါတယ်။$ sudo apt update $ sudo apt install gnuplot
Install လုပ်ပြီး တဲ့ အခါ gnuplot ကို အောက်ပါ အတိုင်း စနိုင် ပါတယ်။
$ gnuplot
ပြီးတဲ့ အခါ လက်ရှိ ဗားရှင်း စတဲ့ အချက်အလက် တွေပေါ်လာ ပြီးတဲ့ အခါ gnuplot ရဲ့ prompt ကို ရောက်သွား ပါမယ်။ နမူနာ အနေနဲ့ sin(x) ကို plot လုပ်ကြည့်ပြီး၊ cos2(x) ကို ပါ အောက်က အတိုင်း ထပ် plot လုပ်ကြည့် လိုက်ရင် Figure. 1 မှာ ပြထား သလို တွေ့ရ ပါလိမ့်မယ် [Mig18]။ Gnuplot ကနေ ထွက်ဖို့ အတွက် q ကို ရိုက်ထည့် နိုင် ပါတယ်။
> plot sin(x) > replot cos(x)**2 > q
Friday, November 23, 2018
Using Parallel Port on Linux with C++
Linux ပေါ်မှာ Paraller port ကို digital input output တွေ အနေနဲ့ အသုံးပြု ဖို့
[Lin15a,Coo08a] C++ class နဲ့ နမူနာ ပရိုဂရမ် တွေကို အောက်က link မှာ တွေ့နိုင် ပါတယ်။
https://github.com/yan9a/parallel-port
https://github.com/yan9a/parallel-port
Thursday, November 22, 2018
MySQL Connector/ODBC 8.0 on Linux
Microsoft ရဲ့ MsSQL server ကို ODBC driver သုံးပြီး C++ နဲ့ သုံးခဲ့ သလိုပဲ Oracle ရဲ့
MySQL server ကို လည်း MySQL Connector/ODBC 8.0 driver ကို တပ်ဆင်ပြီး အသုံးပြု နိုင်ပါတယ်။
ကောင်းတဲ့ အချက်က တော့ C++ program တွေကို ဘာမှ ပြောင်းစရာ မလိုပဲ DSN ကို ပဲ ပြောင်းပြီး
သုံးလိုက် ရုံပါပဲ။
SBC အမျိုးမျိုး၊ Platforms အမျိုးမျိုးမှာ သုံးချင်တာမို့ MySQL Connector/ODBC 8.0 ကို source ကနေ build လုပ်ပြီး တပ်ဆင် အသုံးပြု တဲ့ အကြောင်း ဆွေးနွေး ပါမယ်။ စစခြင်း အောက်က tools တွေကို စက်ထဲမှာ တပ်ဆင်ထားဖို့ လိုပါတယ်။
SBC အမျိုးမျိုး၊ Platforms အမျိုးမျိုးမှာ သုံးချင်တာမို့ MySQL Connector/ODBC 8.0 ကို source ကနေ build လုပ်ပြီး တပ်ဆင် အသုံးပြု တဲ့ အကြောင်း ဆွေးနွေး ပါမယ်။ စစခြင်း အောက်က tools တွေကို စက်ထဲမှာ တပ်ဆင်ထားဖို့ လိုပါတယ်။
sudo apt install mysql-client libmysqlclient-dev sudo apt install unixodbc unixodbc-dev sudo apt install libgtk-3-dev cmake sudo apt install libssl-dev
Friday, October 5, 2018
Using MS SQL Server from C++ with wxWidgets
MS SQL server ကို ODBC API နဲ့ C++ ပရိုဂရမ် ရေးပြီး ဆက်သွယ် အသုံးပြု တဲ့ အကြောင်း ဆွေးနွေး ပါမယ်
[Eas18]။
အဲဒီနောက် Class module တစ်ခု ဖန်တီးပြီး wxWidgets GUI application တွေမှာ SQL server တွေကို
သုံးတဲ့ နမူနာ တစ်ခုကို ဆက်လက် ဖော်ပြ ပါမယ်။ Unix နဲ့ Linux စက်တွေ အတွက်တော့ အောက်က လင့်ခ်
Using Microsoft SQL Server from Linux Machines with ODBC & FreeTDS
(http://coolemerald.blogspot.com/2018/10/using-microsoft-sql-server-from-linux.html)
မှာ ဖော်ပြ ထားတဲ့ အတိုင်း FreeTDS နဲ့ ODBC ကို တပ်ဆင် ထားဖို့ လို ပါတယ်။
Using Microsoft SQL Server from Linux Machines with ODBC & FreeTDS
(http://coolemerald.blogspot.com/2018/10/using-microsoft-sql-server-from-linux.html)
မှာ ဖော်ပြ ထားတဲ့ အတိုင်း FreeTDS နဲ့ ODBC ကို တပ်ဆင် ထားဖို့ လို ပါတယ်။
Using Microsoft SQL Server from Linux Machines with ODBC & FreeTDS
FreeTDS က Unix နဲ့ Linux စက်တွေ အတွက် Microsoft SQL Server နဲ့ Sybase databases တွေကို
ဆက်သွယ် အသုံးပြု ရတဲ့ လိုင်ဘရီ တွေ ဖြစ်ပါတယ် [Fre16]။
FreeTDS C libraries တွေက free, opensource ဖြစ်ပြီး GNU LGPL လိုင်စင် ဖြစ်ပါတယ်။
ဒီ အပိုင်း မှာ Windows စက် တစ်ခု ခု မှာရှိတဲ့ mixed mode authentication နဲ့ တပ်ဆင် ထားတဲ့
MS SQL server ကို Linux စက် ကနေ FreeTDS နဲ့ ဆက်သွယ် အသုံးပြု တဲ့ အကြောင်း ဆွေးနွေး ပါမယ်။
MS SQL server က TCP/IP နဲ့ remote ဆက်သွယ်မှု ကို ခွင့်ပြု ထားပြီး၊ username နဲ့ password ကို အသုံးပြုပြီး ဆက်သွယ် နိုင်ဖို့ လိုပါတယ်။
MS SQL server က Microsoft နဲ့ Sybase တို့ ပူးပေါင်း ဆောက်ရွက်မှု ကနေ မွေးဖွား လာတာ ဖြစ်ပါ တယ်။ ဒါကြောင့် သူ့တို့ ရဲ့ SQL server တွေက ဆင်တူ ကြပြီး၊ client တွေက နေလှမ်း ဆက်သွယ် အသုံးပြု တဲ့ communication protocol က စ ထပ်တူ နီးပါး တူညီ ပါတယ်။ အဲဒီ protocol ကို Tabular Data Stream (TDS) လို့ ခေါ်ပါတယ်။ TDS ကို open source အနေနဲ့ implementation လုပ်တဲ့ project ကို Brian Bruns စတင်ခဲ့ ပြီး၊ FreeTDS လို့ နာမည် ပေးခဲ့ တာပါ။
MS SQL server က Microsoft နဲ့ Sybase တို့ ပူးပေါင်း ဆောက်ရွက်မှု ကနေ မွေးဖွား လာတာ ဖြစ်ပါ တယ်။ ဒါကြောင့် သူ့တို့ ရဲ့ SQL server တွေက ဆင်တူ ကြပြီး၊ client တွေက နေလှမ်း ဆက်သွယ် အသုံးပြု တဲ့ communication protocol က စ ထပ်တူ နီးပါး တူညီ ပါတယ်။ အဲဒီ protocol ကို Tabular Data Stream (TDS) လို့ ခေါ်ပါတယ်။ TDS ကို open source အနေနဲ့ implementation လုပ်တဲ့ project ကို Brian Bruns စတင်ခဲ့ ပြီး၊ FreeTDS လို့ နာမည် ပေးခဲ့ တာပါ။
Thursday, October 4, 2018
MySQL Connector C++ 8.0 with wxWidgets
MySQL Connector C++ 8.0 ကို wxWidgets နဲ့ တွဲသုံး တဲ့ နမူနာ တစ်ခု ကို ဖော်ပြ ချင် ပါတယ်။
wxWidgets ထည့်သွင်း အသုံးပြုပုံ နဲ့ MySQL server, MySQL Connector C++ 8.0 တို့ တပ်ဆင် အသုံးပြု ပုံ
အသေး စိတ်တွေ ကို အောက်က လင့်ခ် တွေမှာ ဖော်ပြ ထားတဲ့ အရင်ပို့စ် တွေ မှာ တွေ့နိုင် ပါတယ်။
ceMySQL.h Cross-platform C++ programming with wxWidgets
Using MySQL Database with C++ on Various Platforms Including ARM Single Board Computers
အဲဒီ အတွက် ဆက်သွယ် အသုံးပြု မယ့် MySQL server မှာ mytest ဆိုတဲ့ database နဲ့၊ အထဲမှာ mytable ဆိုတဲ့ table ကို Figure 1 မှာ ပြထား တဲ့ အတိုင်း MySQL Workbench နဲ့ ဖန်တီး ထားလိုက် ပါမယ်။
ceMySQL.h Cross-platform C++ programming with wxWidgets
Using MySQL Database with C++ on Various Platforms Including ARM Single Board Computers
အဲဒီ အတွက် ဆက်သွယ် အသုံးပြု မယ့် MySQL server မှာ mytest ဆိုတဲ့ database နဲ့၊ အထဲမှာ mytable ဆိုတဲ့ table ကို Figure 1 မှာ ပြထား တဲ့ အတိုင်း MySQL Workbench နဲ့ ဖန်တီး ထားလိုက် ပါမယ်။
Wednesday, September 19, 2018
Safe and easy DIY Home Energy Monitor Using Current Transformer with Arduino, Raspberry Pi, or Beaglebone Black
အိမ်မှာ ရှိတဲ့ လျှပ်စစ် အသုံး အဆောင် တွေရဲ့ စွမ်းအင် အသုံး ပြုမှု ကို စီစစ် တိုင်းတာ ဖို့ အတွက်
ရိုးရှင်း ပြီး၊ အခြေခံ ကျတဲ့ energy monitor တစ်ခု ကို လုပ်ကြည့် ပါမယ်။
တိုင်းတာ အသုံး ပြုတဲ့ နည်း အများကြီး ရှိပေ မယ့် သင်ယူ လေ့လာမှု အတွက် အထောက် အကူ ဖြစ်ဖို့ ရော၊
အန္တရာယ် ကင်းဖို့ အတွက်ပါ သင့်တော်မှု ရှိမယ် ထင်တဲ့ YHDC Current Transformer SCT-013-000
[YHD18]
ကို သုံးဖို့ ရွေးချယ် လိုက်ပါ တယ်။
သူက split-core ဖြစ်ပြီး တိုင်းတာ ချင်တဲ့ ဗို့အား မြင့် ဝါယာ လိုင်း တွေကို ဘာမှ ဖြုတ် စရာ မလိုပဲ ဝါယာ ပေါ်ကို ပတ်ပြီး
ကလစ် တပ်လိုက် ဖို့ပဲ လိုတာမို့ non-invasive ဖြစ်ပြီး၊ အန္တရာယ် လည်းကင်း၊ အသုံးပြုဖို့လည်း လွယ်ကူ ပါတယ်။
အဲဒီ လို ပတ်တဲ့ အခါ Figure 1 ရဲ့ ညာဖက် ဆုံးမှာ ပြထား သလို ဝါယာ တစ်စ ကိုပဲ ပတ်ရ မှာဖြစ် ပါတယ်။
Figure 1. (ဘယ်ဘက်) SCT-013 က split core ဖြစ်တဲ့ အတွက် ကလစ်ကို ဖွင့်ပြီး ဝါယာ ပေါ်ကို အလွယ် တကူ တပ်ဆင်နိုင် ပါတယ်။ (အလယ်) ဝါယာ အကုန်လုံးကို ပတ်လိုက်ရင် အဝင် နဲ့ အထွက် ပြန်ကြေပြီး core ထဲမှာ ဖြတ်စီး တဲ့ စုစုပေါင်း current က သုည ဖြစ်သွား တဲ့ အတွက် တိုင်းလို့ မရ ပါဘူး။ (ညာဖက်) ဝါယာ တစ်စ ကို ပဲ core ထဲမှာ ပတ်ဖို့ လိုပါတယ်။
Figure 1. (ဘယ်ဘက်) SCT-013 က split core ဖြစ်တဲ့ အတွက် ကလစ်ကို ဖွင့်ပြီး ဝါယာ ပေါ်ကို အလွယ် တကူ တပ်ဆင်နိုင် ပါတယ်။ (အလယ်) ဝါယာ အကုန်လုံးကို ပတ်လိုက်ရင် အဝင် နဲ့ အထွက် ပြန်ကြေပြီး core ထဲမှာ ဖြတ်စီး တဲ့ စုစုပေါင်း current က သုည ဖြစ်သွား တဲ့ အတွက် တိုင်းလို့ မရ ပါဘူး။ (ညာဖက်) ဝါယာ တစ်စ ကို ပဲ core ထဲမှာ ပတ်ဖို့ လိုပါတယ်။
Subscribe to:
Comments (Atom)



