Coreldraw සිංහලෙන් - Graphic Design සහ Coreldraw පිළිබද මුලික හැදින්විම.

1:04 PM 0
හැමෝම පිලිගන්නවා අද ඉදලා අපේ සොෆ්ට්වෙයාලන්තය Page එකේ ආරම්භ වෙන Coreldraw පාඩම් මාලාවට. මේ Lesson serious එක video විදිහට තමයි කරන්නේ. මේක කරන්නේ අපේ page එකට අලුත්නි එකතු වුනු Lakshan Harsha සහෝදරයා.


මෙක තමයි මගේ පළවෙනි POST එක.. හැමදාම code ඒක්ක ඔට්ටු ෙවන අපේ  කොල්ලෝ  කෙල්ලෝ ටික ඒක්කහු කරගෙන පොඩි අාර්ට්ලි වැඩක් කරන්නයි මගේ idea ඒක. ඉස්සරහට මේ blog ඒකත් ඒක්ක set වෙලා ඔයාලට Graphic design ගැන  තෙරෙන සින්හලෙන්ම කියලා දෙන්නයි මගේ idea ඒක තියෙන්නේ. මං ඉස්සරහට අපේ මේ blog ඒකෙ ඉන්න කස්ටියට Photoshop Illustrator Coreldraw Indesign Lightroom වගේ හැම software ඒකක් ගැනම කතා කරන්න හිතාගෙන ඉන්නවා. software ඒකක් open කරපු ගමන් design ඒකක් හදනවට වඩා මේ හැම software ඒකක් ගැනම හොද knowledge ඒකක් ඒන විදියටයි මං මේ Tutorial හදලා තියෙන්නේ ඒහෙනම් අපි අද ඉදන් බෙලි කපන්න අත පය ගලනවන්න ඉගෙන ගමු. අාාාා කට්ටිය ඒකපාරට බය උනාද බය වෙන්න ඒපා අැත්තට බෙලි කපන්න නෙමේ අපි ඉස්සරහට කතා කරමු කොහොමද හොද designer කෙනෙක් වෙන්නෙ කියලා. අපි අද මුලින්ම කතා කරමු Graphic Design කියන්නේ මොකක්ද කියලා. මෙ video ඒක බලලා අඩු පාඩු කියන්නකෝ කස්ටිය. පළෙවනි ඒක නිසා අවුල් තියනවනම් මං සමාව ඉල්ලනවා මුලින්ම. ඒෙහෙනම් කොල්ලනෙ ලක්ෂාන්  කොල්ලා කැපුනා උබලා මට ෂාන් කියලම කියහල්ලකෝ..

Arduino පාඩම 13 - Code කරන්නේ නැතුව Arduino PC App හදන හැටි.

11:27 AM 6

මම මේ පාර article එකෙන් කතා කරන්න යන්නේ Arduino එක PC එකත් එක්ක සම්බන්ධ කරන program එකක් හදා ගන්න හැටි ගැන. මීට කලින් පාඩමක මම මේක කරන හැටි ගැන සඳහන් කලා නමුත් ඒ පාඩමේ මම කතා කලේ VB.net හරි C#.net යොදාගෙන ඒ විදිහට program එකක් ලියන හැටි ගැනයි. එහෙමත් නැත්නම් වෙන මොකක් හරි language එකක් use කරලා තමයි program එක ලියන්න වෙන්නේ.

නමුත් මම මේ පාර කියලා දෙන්නේ PC එකේ ඉදලා arduino එක control කරන්න පුලුවන් computer program එකක් කිසිම computer language එකක් use නොකර හදාගන්නේ කොහොමද කියන එක ගැනයි. 

මෙතනදී මම උදාහරණයක් විදිහට කියලා දෙන්න හදන්නේ RGB LED එකක පාට වෙනස් කරන්න පුලුවන් program එකක් code කරන්නේ නැතුව හදාගන්නේ කොහොමද කියන ගැනයි.

මේක කරන්න මම පාවිච්චි කරන්නේ App Make කියන software එක. මේ software එක 100% ක්ම මගේම නිර්මාණයක්. මේකෙ තවත් විශේෂත්වයක් තියෙනවා ඒ තමයි program එකට ගැලපෙන Arduino serial data code කොටස  එක auto generate වෙනවා. මේක ඇත්තටම අලුත් වැඩක්. මම දන්න තරමින් මේ වගේ software එකක් වෙන නෑ. 



මේ software එක මම Arduino වලට හදපු  aulternative IDE එක වන Codino IDE එක 2nd version එකත් එක්ක ලැබෙන software එකක්. App Make එක install කරග්න්න Codino IDE v2 setup එක download කරලා install කරගන්න ඔනේ. install කරගත්තට පස්සේ

Download setup here : http://codino.businesscatalyst.com/

Start > All Programs > Codino > Codino IDE > App Make
Desktop > App Make
Codino IDE > Tools > App Make

වගේ ඕනම ක්‍රමයකට App Make open කරගන්න පුලුවන්. 

PC Program එක සෑදීම.

මේකට මුලින්ම App Make open කරගන්න ඕනේ. open කරගත්තට පස්සේ පහල තියෙනවා වගේ interface එකක් දකින්න පුලුවන්.

 ඊට පස්සේ කරන්න තියෙන්නේ  new project උඩ click කරලා Window settings window එක ලබා ගන්න එකයි. එතනදී project එකට කැමති නමක් දීලා Done කරහම App එකේ main window එක desgin කරන අවස්තාවට යන්න පුලුවන්.

එතනින් එහාට කරන්න තියෙන්නෙ බොහොම සුළු දේවල් ටිකක්. ඒ දේවල් ටික පහල තියෙන video එකේ තියෙනවා.

කාගාව හරි RGB LED එකක් නැත් නම් ඒ වෙනුවට Red, Green, Blue LED 3 ක් use කරන්න පුලුවන්. එතකොට circuit එක පහල විදිහට තමයි එන්නේ.


වැඩ අවසන් කිරීම.

දැන් video එකේ විදිහට කරහට පසේ program එකේ exe file එක ගන්න ඕනෙනේ ඒකට කරන්න තියෙනේ පොඩි දෙයක්. program එක run කරාට පස්සේ අව්ලක් නැතුව වැඩ කරනවනම් 
Action > Make EXE  click කරහම ඇති. ඊට පස්සේ exe file එක save වෙන්න ඕනේ folder එක select කරහම exe file එක ඒ folder එකේ save වෙනවා.



මෙහෙම save කරහම file දෙකක් create වෙනවා. මේ හදපු වෙන computer එකක run කරන්න ඕනෙ නම් මේ file 2 ක විතරක් copy කරහම ඇති.

මේ විදිහට RGB LED විතරක් නෙමෙයි, Servo motor, Fan, Relay, Fan, Light, Displays වගේ ගොඩක් දේවල් control කරන්න පුලුවන් තවත් program ගොඩක් code නොකර හදා ගන්න පුලුවන්.

software එක හොදයි කියල හිතෙනවන codino page එකත් like කරන්න. http://facebook.com/codino

මේ ගැන තවත් විස්තර හා videos  http://codino.businesscatalyst.com/ හරහා ලබා ගන්න පුලුවන්.

මේ article එක හොදයි නම් share කරන්න අමතක කරන්නත් එපා. මොනව හරි නොතේරෙන දෙයක් තියෙනවනම් comment එකක් දාලා අහන්න.


Arduino පාඩම 12 - EEPROM එකේ Data save කරන්නේ මෙහෙමයි.

5:30 PM 10

අපිට Arduino එක්ක වැඩ කරන කොට සමහර දේවල් save කරගන්න උවමනා වෙනවා. Arduino එකට power එක දීලා තියෙන වෙලාවට විතරක් data එක save කරගෙන තියාගන්න ඕනේ උනාම අපි variable use කරනවා. නමුත් Arduino එක power එක off කරහම මේ data මැකිලා යනවා.
අපිට Power එක off කරපු වෙලාවට මැකිලා යන්නේ නැතුව data save කරලා තියගන්න ඕනෙ උනහම වෙනත් ක්‍රම පාවිච්චි කරන්න වෙනවා. උදාහරණයක් විදිහට කිව්වොත් EEPROM, SD Card, Pen Drive වගේ ඒවා  යොදාගන්න පුලුවන්.
මම මේ පාර පාඩමෙන් කියලා දෙන්නේ Ardunio වල තියෙන EEPROM එක use කරලා data save කරන්නේ කොහොමද කියන එක ගැනයි. Arduino board වල තියෙන Micro Controller එක අනුව මේ EEPROM එකේ තියෙන ඉඩ ප්‍රමාණය වෙනස් වෙනවා. පහලින් තියෙන්නේ විවිධ Arduino board වල තියෙන EEPROM size එකයි.

   - Arduno Duemilanove: 512b EEPROM storage.
    - Arduino Uno, Mini, Pro Mini, Nano:        1kb EEPROM storage. (Atmega 328 based boards)
    - Arduino Mega:       4kb EEPROM storage.

කොහොම උනත් මේ EEPROM එක පාවිච්චි කරන්න කලින් ඒකේ තියෙන සීමා හා සැකැස්ම ගැන පොඩ්ඩක් දැනගෙන ඉන්න ඕනේ.

EEPROM හි සැකැස්ම.

මම මෙතනදී කතා කරන්න බලාපොරොත්තු වෙන්නේ Arduino UNO හි ඇති EEPROM එක ගැනයි. නමුත් මේක Atmega 328 based වෙලා තියෙන Pro Mini, Nano වගේ board වලටත් අදාලයි. 
ඒ වගේම අනිත් ඕනෑම Arduino board  එකකටත් වලංගුයි. වෙනසකට තියෙන්නේ EEPROM එකේ size එක විතරයි.

Arduino UNO board එකක 1024 Bytes (= 1KB) ක EEPROM එකක් තියෙනවා. අපි data save කරන්නේ මේ එක byte එකක තමයි. මේ එක byte එකකට එහි පිටීමට අදාලව Byte address එකක් තියෙනවා. අපි data save කරන කොට ඒ data save කරන්නේ මොන byte එකේද කියලා හදුවලා දෙන්නේ මේ address එකේ උදව්වෙන්. 

ඒ වගේම තමයි අපිට මේ byte එකක් තුල ගබඩා කරන්න පුලුවන් වෙන්නේ 0 ඉදලා 255 දක්වා වෙන සංඛ්‍යාත්මක අගයන් විතරයි. ඒ කියන්නේ මේකේ වචන save කරන්න බෑ ඉලක්කම් විතරයි.

EEPROM  Data Write/Read

 මේ සඳහා යොදා ගන්න Keyword 2 ක් තියෙනවා. එකක් data write කරන්න අනික data read කරන්න.

 EEPROM.write(addr, val);

data write කරන්නේ මේ keyword එකෙන් තමයි. මෙතන addr කියලා තියෙන්නේ data write කිරීමට බලාපොරොත්තුවෙන Byte එකට හිමි address එකයි. val කියලා තියෙන්නේ write කරන value එකයි . මෙතන 0-255 වෙන අගයක් ලියන්න පුලුවන්.

EEPROM.read(address);

data read  කරන්නේ මේ keyword එකෙන් තමයි. මෙතන address කියලා තියෙන්නේ data read කිරීමට බලාපොරොත්තුවෙන Byte එකට හිමි address එකයි

මේක වැඩ කරන හැටි තේරුම්  ගන්න මුලින්ම මේ code එක ලියලා බලන්න. මෙතනදී මම කරලා තියෙන්නේ 1, 2 හා 3 කියන Byte වලට 128, 12 හා 0 කියන value write කරලා ඊට පස්සේ ඒ values read කරලා serial monitor එකේ print කරන එකයි.

#include <EEPROM.h>
void setup(){
    Serial.begin(9600);
    Serial.println(EEPROM.length());  
    //Write values
    EEPROM.write(1,128);
    EEPROM.write(2,12);
    EEPROM.write(3,0);
    //Read values
    Serial.println(EEPROM.read(1));
    Serial.println(EEPROM.read(2));
    Serial.println(EEPROM.read(3));
}

මම මෙතනදී මුලින්ම EEPROM library එක include කරගෙන තියෙනවා. 3 වෙනි පෙලියෙන් serial communication එක start කරලා තියෙනවා.

4 පේලියෙන් කරලා තියෙන්නේ EEPROM එකේ කොච්චර byte ප්‍රමාණයක් තියෙනවද කියන එක serial monitor එකේ print කරන එක.

6,7,8 පේලි වලින් කරලා තියෙන්නේ 1,2,3 කියන byte වල පිලිවලින් ඒ byte වලට 128,12,0 කියන values write කරලා තියෙනවා.

10,11,12 පේලි වලින් කරලා තියෙන්නේ 1,2,3 කියන byte වල තියෙන value එකින් එක serial monitor එකේ print කරන එකයි.

එක පාරක් මේ code එක upload කරලා arduino එකේ power off කරලා අයෙත් arduino එක PC එකට connect කරලා 6,7,8 පේලි delete කරලා code එක අයේ upload කරන්න. ඊර පස්සේ serial monitor එක ආයෙත් open කරලා බලන්න්. 128, 12, 0 කියන values අයේ ප්‍රින්ට් වේවි.



EEPROM Update.

EEPROM එකේ තියෙන එක byte එකක data write කරන්න පුලුවන් වාර ගණනක් තියෙනවා ඒ කියන්නේ මේ එක byte එකක data write කරන්න පුලුවන් 100,000 වතාවක් විතරයි. ඒ වගේම මේ එක data write එකකට 3.3 ms (3.3 මිලි තත්පර) කාලයක් වැයවෙනවා.

මේ කාරනා දෙකම මග හැර ගන්න අපිට මේ update keyword එක use කරන්න පුලුවන්. 

EEPROM.update(addr, val);

මෙතන addr කියලා තියෙන්නේ data update කිරීමට බලාපොරොත්තුවෙන Byte එකට හිමි address එකයි. val කියලා තියෙන්නේ write කරන value එකයි . මෙතන 0-255 වෙන අගයක් ලියන්න පුලුවන්.

#include <EEPROM.h>
void setup(){
    Serial.begin(9600);
    Serial.println(EEPROM.length());  
    //Write values
    EEPROM.update(1,255);
    EEPROM.update(2,25);
    EEPROM.update(3,1);
    //Read values
    Serial.println(EEPROM.read(1));
    Serial.println(EEPROM.read(2));
    Serial.println(EEPROM.read(3));
}

මේකටත් තියෙන්නේ කලින් පැහදිලි කිරීමම තමයි. වෙනසකට තියෙන්නේ data write කිරීම වෙනුවට data update කිරීමයි.
Ardunio සදහාම නිර්මාණය කෙරුනු ලංකාවේ පලවෙනි Alternative IDE එක මෙතනින් download කරගන්න.

article එක හොදයි නම් comment එකක් දාගෙනම යන්න !
article එක හොදයි නම් අනිත් අයටත් බල්න්න share කරන්න. අපේ page එකටත් like කරන්න අමතක කරන්න එපා.

WPF VB.Net පාඩම 13 - Message box වලින් වැඩ ගන්නේ මෙහෙමයි.

7:45 AM 3

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ කොහොමද message box භාවිතා කරලා අපි හදන computer program එක භාවිත කරන user ට පණිවිඩයක් දෙන්නේ, user ගෙන් ප්‍රශ්නයක් අහලා උත්තරයක් ගන්න වගේ දේවල කොහොමද කරගන්නේ කියලා.

මේ කරන්න අපි වෙනම window ලබාගන්න ඕනෙ නෑ. මේ වගේ වැඩ කරග්න්න විශේෂ class library එකක් visual studio වැඩසටහන තුලින්ම අපිට සපයනවා. මෙතැන ඉදලා ඉස්සරහට විස්තර කරනේ මේ message box වලින් වැඩ කරන්නෙ කොහොමද කියන එක ගැනයි.

Message Box එකක පොදු ආකෘතිය.

හැම දෙයකටම වගේ message box එකකටත් පොදු ආකෘතියක් තියෙනවා. පහල තියෙන Code එක තමයි අපි බහුලව භාවිතා කරන පොදු ආකෘතිය. ඒ වගේම තමයි පහල රූපයේ තියෙන්නේ message box එකක user interface එකේ භාහිර පෙනුම හා එහි විවිධ කොටස්.

MessageBox.Show(Title, Content, MessageBoxButton, MessageBoxImage)

Message Box එකක් පෙන්වීම.

මේ කරන්න මුලින්ම අලුත් WPF application project එකක් open කරගෙන ලැබෙන MainWindow එකට අලුති button එකක් අරගෙන button එකේ content එකට කැමති නමක් යොදා ගන්න මම නම් යොදාගෙන තියෙන්නේ Show Message Box කියලා.

ඊට පස්සේ button එක්කේ Click event එක තුලදී පහලින් තියෙන code එක ලියන්න.

MessageBox.Show("Title","Content",MessageBoxButton.OK,MessageBoxImage.Information)



මෙතන Title එකයි content කියන එකටයි තමන් කැමති නමක් දෙන්න uපුලුවන් උනත් ඒවා දෙන්න ඕනේ String format එකෙන්, ඒ කියන්නේ පෙරලි කොමා ඇතුලේ.

ඒ වගේම තමයි Button style කියන Ok වෙනුවට වෙනත් style එකක් උනත් යොදා ගන්න පුලුවන්. Image  එකටත් එහෙම තමයි.

මේ විදිහට වෙන තියෙන style මොනවාද කියලා බලගන්න තියෙන හොදම විදිහ තමයි. MessageBoxButton කියලා type කරලා තිත තියපුවහම එන list එක කියවලා බලන එක

දැන් F5 ඔබලා program එක Run කරලා button එක click කරපු වහම පහලින් තියෙනවා වගේ Message Box එකක් දකින්න ලැබේවි.

වැදගත්.

අපි කලින් වගේ code එකක් ලියලා Message Box එකක්  show කරගත්තහම පස්සේ මතක තියාගන්න ඕනේ වැදගත් තියෙනවා. ඒ තමයි Message Box එකක් show කරහට පස්සේ Message Box එක close කරනකන් Message Box එක show කරන එකට අදාල code එකට පහලින් තියෙන code කිසිම එකක් වැඩ කරන්නෙ නෑ කියන එක.

තව දුරටත් උදාහරණයකින් කියනවනම් පහලින් තියෙන code එක බලන්න. එතන් දී මම පළවෙනි පේලියේ Message Box එකක්  show කරලා දෙවැනි පේලියේ button එකේ Content එක වෙනස් කරලා තියෙනවා.


නමුත් program එක run කරහම ලැmබුන Message Box එක close කරන කන් දෙවැනි පේලියේ තියෙන code එක වැඩ කරන්නේ නෑ.

Message Box එකකින් ලැබෙන පිළිතුර අනුව වැඩ කිරීම.

ඔයාලා දැකල ඇති සමහර software වලදී Message Box හරහා විවිධ ප්‍රශ්න අහලා එතනදී අපි ලබා දෙන උත්තරය අනුව ක්‍රියා කරනවා. මම කියන්න යන්නේත් ඒ විදිහට ප්‍රශ්න අහලා ලබා දෙන උත්තරය අනුව ඉදිරිය ක්‍රියත්මකවෙන ආකාරයේ program එකක් හදන හැටියි.
ඒකට button එකක් අරගෙන button එකේ click event එකේ පහලින් තියෙන code එක ලියන්න.

Select Case MessageBox.Show("Are you ok ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question)
            Case MessageBoxResult.Yes
                MessageBox.Show("You are ok. That's good")
            Case MessageBoxResult.No
                MessageBox.Show("Oh no !")
End Select

ඔය නිල් පාට පේලිය තනි පේලියට ලියන්න ඕනේ.

Code එක පැහැදිලි කිරීම.

මම මෙතන කරලා  තියෙනේ button එක click කලහම Message Box එකක් හරහා User ගෙන්  Are you ok ?"  විදිහට  ප්‍රශ්නයක් අහනවා.
මෙතනදී මම select-case එක භවිත කරලා user ලබාදෙන උත්තරය මොකක්ද කියලා බලනවා.
user Yes කියලා ලබා දුන්නොත් You are ok. That's good කියන message box එක පෙන්වනවා

No කියලා ලබා දුන්නොත් Oh no !" කියන message box එක පෙන්වනවා.

මෙතනදී ඔයාලා මතක තියගන්න ඕනේ තව දෙයක් තියෙනවා. ඒ තමයි හැම වෙලේම Title, Button style හා Image/Icon එක මොකක්ද කියලා ලබා නොදීම උනත් message box එකක් පෙන්නන්න පුලුවන් කියන එක.

ලිපිය හොදයි නම comment එකක් දාලා තව කෙනෙකුට බලන්න share කරන්න.

Arduino පාඩම 11 - 7 Segment Display භාවිතය.

8:25 PM 2

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ SSD එහෙමත් නැත්නම් 7 Segment Display (සප්ත කන්ඩ දර්ශක) Arduino එකත් එක්ක පාවිච්චි කරන්නේ කොහොමද කියන එක ගැනයි. SSD එකක් කියන්නේ output module එකක්. සාමාන්‍යයෙන් LCD එකකට වඩා අවධානය ගන්න ඕනේ අවස්ථාවල මේ SSD පාවිච්චි කරනවා. මම මෙතනදී කියලා දෙන්නේ ඉලක්කම් විතරක් පෙන්නන SSD  ගැනයි. නමුත් ඉංග්‍රීසි අක්ෂර පෙන්නන්න පුලුවන් Segment Display ත් තියෙනවා.

SSD හැදින්වීම

SSD එකක් හැදිලා තියෙන්නේ වෙන වෙනම පාලනය කරන්න පුලුවන් LED 8 කින් මේ 8 න් 7 ක්ම පාවිච්චි වෙන්නේ අංකයක් දර්ශනය කරන්නයි. ඉතුරු LED එක තියෙන්නේ දශම තිත සදහා යි. ඒවගේම තමයි අපි SSD එකක් මිලදී ගන්න කොට ප්‍රධාන වශයෙන් සැලකිලිමත් වියයුතු කරුන නම් Common පින් එකයි. මෙය ආකාර දෙකකට තියෙනවා. ඒ කියන්නේ common anode (පොදු අග්‍රය + ) හා common cathode (පොදු අග්‍රය -) වශයෙන් වර්ග දෙකක් වෙනවා. පහලින් තියෙන්නේ SSD එකක දල සැකැස්මයි.

සාමාන්‍යයෙන් SSD එකක් කියන්නෙ එක ඉලක්කමක් විතරක් පෙන්නන්න පුලුවන් තනි unit එකකට.  මේ එක unit  එකකට segment  එකක් කියල කියනවා. කොහොම උනත් හුගක් අවස්තා වල අපිට එක ඉලක්කමකට වඩා පෙන්නන්න ඕන අවස්ථා තියෙනවා. එතකොට අපි SSD කිහිපයක් එකතු කරලා හදලා තියෙන SSD unit එකක් ගන්න ඕනේ.

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ අංක 4 ක් පෙන්නන්න පුලුවන් SSD unit එකකින් වැඩකරන හැටි ගැනයි. මේ වගේ SSD එකකට කියන්නේ 4-digit SSD කියලයි. සාමාන්‍යයෙන් මේ 4-digit SSD එකක්ත් common pin එකට අමතරව සැලකිලිමත් වෙන්න ඕනේ තව දෙයක් තියෙනවා. ඒ කියන්නේ pin ගණන ගැනයි. 4-digit SSD එකක් 12 pin හා 16 pin වශයෙන් වර්ග 2 ක් තියෙනවා මම මෙතන්දී කතා කරන්නේ 4-digit 12 pin common cathode seven segment display ගැනයි. පහලින් තියෙන්නෙ 4-digit SSD එකක් පෙනුම හා පින් පිහිටලා තියෙන හැටියි.


SSD Driver IC

මෙතනදී මම SSD Driver IC එකක් පාවිච්චි කරලා තියෙනවා. මේකට බහුලව යොදාගන්න IC 2 ක් තියෙනවා MAX7219, MAX7221. මම මෙතනදී ගන්නේ MAX 7219 කියන IC එක. මේ IC එකට එකවර අංක 8 තියෙන Display එකක් හසුරුවන්න උනත් පුලුවන්. ලංකවේ මේ IC එක රු.180/- විතර වෙනවා.
පහලින් තියෙන්නේ මේ IC එකේ පින් OUT එක.

Components

Arduino board
Max7219 Chip
4-digit 7-segment LED display (common cathode)
40KΩ resistor
10μF capacitor
100nF capacitor

Circuit Diagram


Arduino Code

#include <SPI.h>

const int slaveSelect= 10; //pin used to enable the active slave

const int numberofDigits= 2;

const int maxCount= 99;

int number=0;

void setup()
{
Serial.begin(9600);
SPI.begin(); //initialize SPI
pinMode(slaveSelect, OUTPUT);
pinMode(slaveSelect, LOW); //select Slave

//prepare the 7219 to display 7-segment data
sendCommand (12,1); //normal mode (default is shutdown mode)
sendCommand (15,0); //Display test off
sendCommand (10,8); //set medium intensity (range is 0-15)
sendCommand (11, numberofDigits); //7219 digit scan limit command
sendCommand (9, 255); //decode command, use standard 7-segment digits
digitalWrite(slaveSelect, HIGH); //deselect slave
}

void loop(){
//display a number from serial port terminated by end of line character
if(Serial.available())
{
char ch= Serial.read();
if (ch == '\n')
{
displayNumber(number);
number=0;
}
else
number= (number * 10) + ch - '0';
}
}

//function to display up to 4 digits on a 7-segment display
void displayNumber (int number)
{
for (int i=0; i < numberofDigits; i++)
{
byte character= number % 10; //get the value of the rightmost digit
if (number == 0 && i > 0)
character = 0xf;
sendCommand(numberofDigits-i, character);
number= number/10;
}
}

void sendCommand(int command, int value)
{
digitalWrite(slaveSelect, LOW); //chip select is active low
SPI.transfer(command);
SPI.transfer(value);
digitalWrite(slaveSelect,HIGH);
}

original source code & diagram by : learningaboutelectronics.com/
Code එක upload කරලා Serial monitor එකේ 0 ත් 9999 ත් අතර අගයක් ගහල බලන්න.
මේ ක්‍රමයට අමතරව තව පහසු ක්‍රමයක් තියෙනවා. මෙච්චර code ලියන්න ඕනෙත් නෑ. පහලින් තියෙන link එකෙන් ඒ ගැන වැඩිදුර දැනගන්න පුලුවන්.
http://embedded-lab.com/blog/new-version-of-max7219-based-4-digit-serial-seven-segment-led-display/
Ardunio සදහාම නිර්මාණය කෙරුනු ලංකාවේ පලවෙනි Alternative IDE එක මෙතනින් download කරගන්න.

article එක හොදයි නම් අනිත් අයටත් බල්න්න share කරන්න. ඔයාලා හදපු project වල photo එකක් comment කරන්නත් අපේ එකේ post කරන්නත් අමතක කරන්න එපා.

Arduino පාඩම 10 - Arduino වලින් sound play කරන්නේ මෙහෙමයි.

9:50 AM 0


Arduino එක්ක සමහර වැඩ කරද්දී ඒ කරන දේවල් හරියට දැනගන්න අපිට LED වගේම වගේම beeps  වගේ sound paly කරන්න ඕනේ වෙනවා. ඒ වගේම තමන්ගේ නිර්මාණාත්මක හැකියව මත ඕගන් එකක් වගේ දෙයක් උනත් හදා ගන්න පුලුවන්. ඒක නිසා අද මම කියලා දෙන්නේ Arduino වලින් කොහොමද sound play (ස්වර) කරන්නේ කියලා.

ස්වර (notes) සහ සංඛ්‍යාත.

කොහොම උනත් Arduino වලට යන්න කලින් සංගීතයේ තියෙන ස්වර ටික ගැන පොඩි අදහසක් ගත්තොත් හොදයි කියලා හිතෙනවා. ඇත්තටම ස්වරයක් කියන්නේ නිශ්චිත සංඛ්‍යාතයක් තියෙන ශබ්ද තරංගයක්. සංගීතට අනුව මූලික ස්වර 7 ක් තියෙනවා පෙරදිග සංගීතයේදි නම් ස, රි, ග, ම, ප, ධ, නි විදිහටත් බටහිර සංගීතයේදි නම් C, D, E, F, G, A, B විදිහටත් මේවා නම් කරලා තියෙනවා. පහලින් තියෙන්නේ මේ සම්මත් ස්වර වලට අදාල සංඛ්‍යාත ටික හා ඒවාට අදාල Keyboard පිහිටුම් ටිකයි.
(පෙරදිග ස්වර ටික වැරදි නම් පොඩ්ඩක් කියන්න.)



පහලින් තියෙන්නේ මම ඒ විදිහට define කරගත්ත ස්වර ටික. මෙතන සප්තක 5 කට අදාල ස්වර තියෙනවා.
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932

ස්වරයක් Play කිරීම.

ඒක කරන්න පහල තියෙන විදිහට circuit එක හදාගන්න ඕනේ. මෙතන මම use කරලා තියෙන්නේ buzzer එකක්, කොහොම උනත් ඔයාලා ගාව buzzer එකක් නැත්නම් සාමාන්‍ය speaker  එකක් හරි headphone එකක් හරි use කරන්න පුලුවන් සද්දෙ මදිනම් පොඩි amp එකකට හයි කරලා බලන්න.



පහලින් තියෙන code එක upload කරන්න.
#define NOTE_C4  262
#define SP1 9 //define pin 9 as speaker pin

void setup(){
    pinMode(SP1,OUTPUT);
}
void loop(){
    tone(SP1,NOTE_C4);
    delay(50);
    noTone(SP1);
}

පලවෙනි පේලියෙන් ස සිවරයට අදාල සංඛ්‍යාතයත් 2 වෙනි පේලියෙන් speaker pin එකත් define කරගෙන තියෙනවා.
setup එක ඇතුලෙ speaker pin එක output pin එකක් විදිහට හදාගෙන තියෙනවා.
ඊට පස්සේ loop එක ඇතුලේ මම tone කියන keyword එක යොදාගෙන තියෙනවා. මේ පේලියෙන් තමයි sound එක play වෙන්නේ.
uකොහොම උනත් මේ tone keyword එක යොදා ගන්න පුලුවන් ආකාර දෙකක් තියෙනවා. ඒ දෙක තමයි.

tone(pin, frequency)
tone(pin, frequency, duration)

සාමාන්‍ය ස්වරයක් play කරගන්න ඕනෙ නම් use කරන්නඔ ඕනේ පලවෙනි keyword එක, නමුත් sound එක play වෙන කාලේ අඩු වැඩි කර ගන්න ඕනෙ නම් use කරන්න ඕනේ දෙවෙනි keyword එක. මෙතන  duration කියල තියෙන තැන sound එක පවතිoන්න ඕනේ කාලය මිලි තත්පර වලින් දෙන්න ඕනේ.
ඊට පස්සේ මම පොඩි delay එකක් තියලා noTone keyword එක use කරලා තියෙනවා. Arduino වලදී මොකක් හරි pin එකක් හරහා sound එකක් play කරාට පස්සේ අනිවාර්යෙන්ම noTone හරහා පින් එක නැවත් මුල් තත්වයට ගෙන්න ඕනේ.

ලිපිය හොදයි නම් share කරගෙනම යන්න

WPF VB.Net පාඩම 12 - Window කිහිපයක් සමඟ වැඩකරන හැටි.

9:37 AM 0


හුගක් වෙලාවට මොකක් හරි වැඩසටහනක් හදන්න ගියහම එක එක වැඩ කරගන්න window කිහිපයක් ඕනෙ වෙනවා මේ පාර මම කියල දෙන්නේ vb.net වලදී මේ විදිහට window කිහිපයක් සමඟ වැඩකරන හැටි ගැනයි.

පසුගිය පාඩම් ටිකට මෙතනින් යන්න.

අලුත් window ලබාගැනීම්.

මේකට මුලින්ම අලුත් WPF project එකක් open කරගන්න ඕනේ. ඊට පස්සේ එහෙම ලැබෙන Main Window එකට button එකක් add කරගෙන එකේ properties පහල තියෙන විදිහට හදාගන්න ඕනේ.

Button Name : btnShow Content : Show Window





ඊට පස්සේ කරන්න තියෙන්නේ අලුත් window ලබාගන්න එක ඒ කට solution explorer එකේ project name උඩ right click කරල ලැබෙන menu එකෙන් Add > New item වලට යන්න ඕනේ ඊට පස්සේ ලැබෙන්නෙ Add new item window එක ඒකෙන් Window (WPF) තෝරලා කැමති නමක් දීලා Add button එක click කරන්න. මම මෙතනදී MyNewWindow කියන නම තමයි දීලා තියෙන්නේ.

දැන් මේවිදිහට ගත්ත අලුත් window එකට label එකක් add කරගෙන ඒකේ content එක විදිහට කැමති දෙයක් ලියන්න. ඒ වගෙම label එකේ name එක විදිහට lblname සකසන්න.




මම දැන් කරන්න යන්නේ Main Window එකේදී අපි add කරගත් button එක click කරන කොට අපි අලුතින් ලබාගත්ත MyNewWindow කියන එක පේන විදිහට program එකක් ලියන එක.

ඒ කට මුලින්ම Main window එකට ගිහිල්ලා කලින් add කරගත්ත button එකේ click event එකේ පහල තියෙන code එක ලියන්න. click event එකට යන්න button එක උඩ double click කරලා හරි button එක select කරලා properties panel එකේ තියෙන අකුණු ලකුණ උඩ click කරලා ලැබෙන ලිස්ට් එකෙන් click කියන තැනට ඉස්සරහින් තියෙන text box එක උඩ double click කරලා හරි  පුලුවන්.
මේවිදිහට button එකේ click event එකට ගියාට පස්සේ event එක ඇතුලේ මේ කෝඩ් එක ලියන්න.

Dim myWindow As New MyNewWindow
myWindow.Show()

මෙතන MyNewWindow කියල තියෙන්නේ කලින් ලබාගත් window එකේ නමයි, ඒ වගේම මෙතන myWindow වෙනුවට තමන් කැමති නමක් දෙන්න පුලුවන්.

දැන් program එක run කරලා බලන්න. F5 එබුවත් හරි ඒකට. දැන Show Window කියන button එක ඔබන වාරයක් පාසා අලුත් window එකක් ලැබේවි.

මේ විදිහට window කිහිපයක් නැතුව හරියටම එක window එකක් විතරක් ගන්න ඕනෙනම් උඩ ලියපු code එක පහල තියෙන විදිහට වෙනස් කරන්න.

Dim myWindow As New MyNewWindow
myWindow.ShowDialog()

අලුතින් ලැබෙන window හි ඇති control හැසිරවීම

මේක තේරුම් ගන්න තියෙන හොදම විදිහ තමයි පොඩි program එකක් ලියන එක. මම මෙතනදී කරන්න යන්නෙ අලුතින් ලැබෙන window එක කීවෙනි අලුත් window එකද කියලා එකේ තියෙන label  එකේ display වෙන විදිහට program එකක් ලියන එක.

මුලින්ම Class MainWindow කියන පේලියට යටින් Dim count As Integer = 0 කියන code කොටස ලියන්න.

මෙතනදී මම count කියන නමින් integer වරගයේ variable එකක් හදාගෙන තියෙනවා. ඒවගේම ආරම්භයේ ඒකේ අගය 0 සමාන කරලා තියෙනවා. (variable ගැන දන්නේ නැත්නම් මෙතනින් ගිහින් බලන්න.)
ඊට පස්සේ කලින් වගේම button එකේ click event එකේ පහලින් තියෙන code එක ලියන්න්න.

Dim myWindow As New MyNewWindow
count += 1
myWindow.lblName.Content = "Window " & count
myWindow.Show()

මෙතන තියෙන count += 1 කියන පේලියෙන් කරන්නේ count කියන variable එකේ දැනට තියෙන අගයට 1 ක් එකතු කරනවා කියන එක. උදාහරණයක් විදිහට ඔයා button එක එක පාරක ක්ලික් කලොත් ඒකෙ අගය 1 වෙනවා තව පාරක් ක්ලික් කලොත් අගය 2 වෙනවා මේ විදිහට එක ක්ලික් කරන වාරයක් පාසා count varaible එකේ අගය එකකින් වැඩි වෙනවා.

myWindow.lblName.Content = "Window " & count පෙලියෙන් කරන්නේ දෙවෙනියට ලබාගත්ත window එකේ තියෙන label එකේ content එක වෙනස් කරන එක. & ලකුනෙන් කරන්නේ වචන 2 ක් එක පේලියට ලියන එකයි.

අන්තිම පේලියෙන් window එක පෙන්නනවා.

මේ පාර පාඩමට අදාල project file එක මෙතනින් download කරගන්න.
ලිපිය හොදයි නම comment එකක් දාලා තව කෙනෙකුට බලන්න share කරන්න.

ලංකාවේ මුල්ම Alternative Arduino IDE එක මෙන්න.

6:23 AM 7

satanderd Ardunio IDE එකේ තියෙන පහසුකම් වැඩි දියුණු කරලා එක එක Alternative IDE බිහිවෙලා තියෙනවා. එහෙම තියෙන එවායෙන් ගොඩක් ඒවා commercial software. අද මම කියන්න යන්නේ ඒ විදිහට හදපු Alternative Arduino IDE ගනයි. මේක 100% ක්ම මගේ නිර්මාණයක්. ඒ වගේම තමයි මේක 100% Free software එකක්. කැමතිනම් donate කරන්න පුලුවන්. මේකේ නම තමයි Codino (කෝඩිනෝ).

Codino Install කිරීම.

මේකෙන් වැඩ කරන්න MS .Net Framework 4.0 හරි ඊට පස්සේ ආපු අලුත් version එකක් හරි ඕනේ. ඔයාලා ගාව MS .Net Framework 4.0  නැත්නම් මෙතනින් download කරගන්න.
ඊට පස්සේ පහලින් තියෙන link එකෙන් ගිහිල්ලා software එක download කරගන්න.

Download codino from : http://codino.tk

setup file එක download කරගෙන install කරාට පස්සේ පොඩි settings වගයක් කරන්න ඕනේ. ඒකට software එක RUN කරලා File > Preferance > Arduino වලට ගිහිල්ලා Arduino main EXE path කියන තැනින් Arduino IDE එක තෝරලා දීලා OK කරන්න. එච්චරයි කරන්න තියෙන්නේ. දැන් ඉතින් තියෙන්නේ Code කරන්න තමයි.



අලුත් Arduino Project එකක් පටන් ගැනීම.

ඒකට Codino software එක RUN කරලා File > Create new Porject ගිහිල්ලා ලැබෙන window එකෙන් "Arduino sketch" තෝරලා කැමති නමක් දීලා Save වෙන්න ඕනේ Folder එකත් තෝරලා Create button එක ඔබන්න. ඊට පසේ Code කරන්නට් තමයි තියෙන්නේ.



Codino එකෙන් code කරන්න කලින් ඒකෙ තියෙන පහසුකම් ටික දැන ගන්න ඕනෙනේ. පහලින් තියෙන්නේ codino එකේට් තියෙන අලුත් features ටික.

Code Autocompete

ඔයාල Codino පාවිච්චි කරනවනම් කලින් වගේ code සම්පූර්ණයෙන් type කරන්න ඕනේ වෙන්නේ නෑ. Arduino වල තියෙන keyword එකක පලවෙනි අකුරු 2 type කරහම ඒ අකුරු 2න් පටන් ගන්න වචන list එකක් පහලය දිගහැරෙනවා. ඊට පස්සේ කරන්tන තියෙන්නේ Arrow key වලින් හරි වචනය select කරලා enter ඔබන්න විතරයි. මේක නිසා ගොඩක් කාලය ඉතුරු කරගන්න පුලුවන් වගේම දන්නේ නැති keywords එහෙමත් හොයා ගන්න පුලුවන්.

Serial Inspector

මේක Arduino IDE එකේ තිබුන Serial monitor, Serial plotter කියන 2 ම එකතු කරලා හදපු එකක්. මේකෙ තියෙන විශේෂත්වය තමයි Serial monitor, Serial plotter කියන 2 ම එකම Window එකකදී එකම වෙලාවකදී බලාගන්න පුලුවන්. ඒ වගේම USB cable එක ගලවන්නේ නැතුව Serial data එන එකයි යන එකයි නවත්තන්න පුලුවන්.


Object Explorer

Arduino එකෙන් ලොකු ලොකු program ලියන කොට අපිට class, voids ගොඩක් ඕනකරනවා. ඒ උනාට code එක ගොඩක් දිග වැඩි වෙනකොට මේවා තියෙන තැන් හරියටම හොයාගන්න අමාරුයි. ඒ කට විසඳුමක් විදිහට තමයි මේ Option එක ඉදිරිපත් කරලා තියෙන්නේ. මෙතන්දී ඔයාලා හදන class, void වගේ ඒවා Auto detec  කරගන්නවා. ඔයාට මොකක් හරි void එකකට යන්න ඕනෙ උනහම ඒකෙ නම උඩ click කලානම් ඇති.

Keyword Browser

Arduino programming වලට මො නතරම් දක්ෂයෙක් උනත් අමාරුවෙ වැටෙන තැනක් තමයි Arduino libraries වල keywords නොදන්න එක. Codino වල ඒකට විසදුමක් තියෙනව. ඒ තමයි Keyword Browser එක. මෙතනදි දැනට install කරලා තියෙන හැම Arduino library එකක්ම පෙන්නනවා. ඒකේ නම උඩ Double click කලහම library eඑකේ තියෙන හැම keyword එකක්ම පෙන්නනා. ඔනෙනම් examples උනත් බලාගන්න පුලුවන් මේකෙන්. Tools > Keyword Browser හරහා ගියාම මේක ලබාගන්න පුලුවන්.

Auto save option

කලින් Arduino එකෙන් වැඩ්කර කර ඉද්දී කරන්ට් ගියොත් එහෙමත් නැත්නම් මොකකහරි error එකක් නිසා computer එක off උනොත් එහෙම code එක save කරලා තිබ්බේ නැත්නම් ඔක්කොම ඉවරයි. එත් Codino use කරන කොට එහෙම වෙන්නේ නෑ. මොකද කියනවනම් Autosave option එක නිසා off උන computer එක ආයේ on කරලා ආයෙ Codino run කරන කොට කලින් වැඩකර කර හිටිය project ටික Recover කරගන්න පුලුවන්.

Bookmark

මෙකත් codino එකෙ තියෙන තවත් වැදගත් අංගයක්. ඔයා දිග program එකක් code කරනවනම් එක එක ලයින් වලට ඉක්මනින්ම යන්නමේ function එක use කරන්න පුලුවන්. කරන්න තියෙන්නේ Doucment එකේ bookmark කරන්න ඕනෙ line එක click කරලා ඉටපස්සේ එතනම Right click කරලා Add Bookmark select කරන්න විතරයි.

මේ වගේ තවත් ගොඩක් features තියෙනවා ඔක්කොම කියවන්න මේ link එකෙන් යන්න. http://codino.businesscatalyst.com/codino---features.html
වැඩේ හොදයි නම් post එක share/comment  කරන්න. ඒවගේම මතක ඇතුව codino facebook page එකටත් like කරන්න.