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

5:30 PM 17 Comments

අපිට 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 5 Comments

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ කොහොමද 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 3 Comments

මම මේ පාර පාඩමෙන් කියලා දෙන්නේ 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 3 Comments


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 Add Comment


හුගක් වෙලාවට මොකක් හරි වැඩසටහනක් හදන්න ගියහම එක එක වැඩ කරගන්න 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 30 Comments

අද මම කියන්නෙ යන්නේ Codino IDE එකේ අලුත්ම version එක ගැනයි. Codino කියන්නෙ මොකක්ද කියලා කිව්වොත් Codino කියන්නේ Arduino IDE එක වෙනුවට භාවිතා කරන්න පුලුවන් Aulternative IDE එකක්, ඒ කියන්නේ දැන් තියෙන Arduino IDE එකේ තියෙන features වැඩි දියුණු කරලා හදපු IDE එකක්. ඒ වගේම Codino වල තවත් විශේෂත්වයක් තියෙනවා, ඒ තමයි මේ IDE එක 100% ක්ම මගේ නිර්මාණයක්, ඒ වගෙම තමයි මේක 100% free දෙන software එකක්, පුලුවන්නම් කීයක් හරි Donate කරන්න පුලුවන්.(web site එක continue කරන්න පුලුවන්නේ වෙන්නෙ ඔයලා දෙන donate වලීන් තමයි ඉතින්)
Codino  v3 එක මේ web site එකෙන් නොමිලේම download කාරගන්න පුලුවන්.

Download codino from : http://codinostudio.com/

භාවිතා කරන්නේ කොහොමද ?

මුලින්ම Codino download කරලා install කරගන්න. ඊට පස්සේ File > Settings ගිහිල්ලා Compiler tab එක් select කරන්න. ඊට පස්සේ Arduino main EXE කියන තැනට පහලින් තියෙන Browse button එක click කරලා Arduino IDE එක install කරපු තැන තියෙන arduino.exe තෝරලා open කරන්න. ඊට පස්සේ settings window එකේ තියෙන Done button එක click කරලා Codino එක Close කරල අයේ open කරන්න. දැන් ඔක්කොම හරි. දන් තියෙන්නෙ හිතේ හැටියට code කරන්නයි.

Codino Features

මීට කලින් relese කරපු version 2 ට වඩා වැඩි features ගණනාවක් Codino V3 එකේ ඇතුලත් කරලා තියෙනවා. පහලින් තියෙනවා Codino එකේ තියෙන අලුත් features මොනවද කියලා.

Code Auto Complete

Codino වල තියෙන ප්‍රධානම විශේෂත්වයක් තමයි මේ. මෙතනදී ඔයා මොකක් හරි වචනයක් type කරන කොට වචනයේ පළවෙනි අකුරු 2 type කරපු ගමන් ඒ කට ගැලපෙන වචන list එකක් එනවා, එතනින් ගැලපෙන වචනය තෝරලා enter කරන්න විතරයි ඕනේ. මේ option එක auto ම ඔය define කරපු variable වගේම ඔයා include කරගත්තු library වල තියෙන keywords හොයලා ඒකත් Auto complete list එකට එකතු කරනවා. ඒ නිසා සම්පූර්ණ වචනයම දැන් type කර කර ඉන්න ඕනෙ නෑ.

App Make

App make කියන්නෙ codino IDE එකේ තියෙන සුවිශේෂ tool එකක් මේකෙන් ඔයලාට Computer එකේ ඉදලා arduino board එක control කරන්න පුලුවන් software එකක් ඉතාම ලේසියෙන් හදගන්න පුලුවන්. ඒ වගේම App Make වලින් software හදන්න code කරන්න ඕනේ නෑ. මේ පහලින් තියෙන video එකේ තියෙන්නේ RGB LED එකක් control කරන software එකක් ලේසියෙන් හදාගන්නේ කොහොමද කියලා..

Object Explorer

මේකත් තව ප්‍රධාන විශේෂත්වයක්, මෙතනදි ඔයලා define කරපු variable, voids, function වගේ objects වෙනම list එකක් විදිහට පෙන්නනවා. ඔයාලා දිග programe එකක් ලියන කොට ඒ ඒ objects define කරපු තැන් හොය හොය ඉන්නේ නැතුව මේ list එකෙන් තෝරලා ඒ උඩ click කරහම auto code එක define කරපු තැනට document එක focus වෙනවා.

Library Browser

මේ function එකෙන් ඔයාලා computer එකේ install කරපු හැම Arduino library එකක්ම මෙතනදී බලගන්න පුලුවන්. ඒ වගේම ඒ ඒ library වල තියෙන keywords මොනවද කියලත් ඒ වයේ examples වගේම ඊට අමතරව library වල අමතර තොරතුරුත් මොනවද කියලා මෙතනදී බලගන්න පුලුවන්.

Serial Ploter/Serial Monitor

සාමාන්‍ය serial plotter/monitor එකට වඩා වැඩි පහසුකම් මේකෙ තියෙනවා.

Library Manager

වඩාත් පහසුවෙන් Library Install/Uninstall කරන්න පුලුවන් වෙන විදිහට මේක develop කරලා තියෙනවා.

RGB Color Selector

RGB LED/Color screen use කරන කොට ඕනෙ වෙන color vaibale පහසුවෙන් හදාගන්න මේක නිර්මාණය කරලා තියෙනවා.

Arduino පාඩම 09 - PC එකෙන් 4-pin RGB LED එකක් කොන්ට්‍රොල් කරමු.

6:56 PM 7 Comments


මම අද කියලා දෙන්නේ PC එකේ ඉදන් 4-pin RGB LED එකක් control කරනහ් හැටි. 4-pin RGB LED එකක නමේ තියෙන විදිහටම පින් 4 ක් තියෙනවා. මේ පින් 4 න් එකක් පොදු අග්‍රය වෙනවා. මේ RGB LED එකක් හැදිලා තියෙන්නේ. Red, Green, Blue color කියන LED 3කින්. ඉතුරු අග්‍ර 3 මේ LED 3 නේ ඉතුරු අග්‍රය. මේ පොදු අග්‍රය + හෝ - වෙන්න පුලුවන්. ඒක තීරණය වෙන්නේ ඔයා LED එක මිලදී ගන්න විදිහ අනුව. ප්‍රධාන වශයෙන් RGB LED එකක වර්ග 2 ක් තියෙනවා. Common anode හා common cathode තමයි ඒ වර්ග 2 ක.  Common anode එකක පොදු අග්‍රය +, common cathode එකක පොදූ අග්‍රය -. RGB LED එකක ක්‍රියාකාරිත්වය ගැන කතාකලොත් මේකේ එක එක අග්‍රවලට ලබාදෙන වෙනස් වෝල්ටීයතාව අනුව අපිට එක එක පාට ගන්න පුලුවන්. හරියට Photoshop එකේදී පාට තෝරනවා වගේ.

මෙතැනදී අපි කරන්න ඕන වැඩ 2 ක් තියෙනවා. ඒ තමයි arduino code එක ලියන එක හා අනිත් එක PC program එක ලියන එක. මම PC program එක ලියන්නේ VB.Net වලින්. අපි මුලින්ම arduino code එක ලියමු. මම මෙතැනදී Common anode හා common cathode කියන වර්ග 2 ටම arduino code එක ලියනවා. මුලින්ම අපි common cathode LED එකට code එක ලියමු.

Common cathode LED එකට arduino code එක ලියමු.

මේකට මුලින්ම පහලින් තියෙන විදිහට circuit එක හදාගන්න. 2.2 KOhm resistor එකක් තමයි දාලා තියෙන්නේ.



දැන් පහල තියෙන code එක arduino එකට upload කරන්න.



මම මෙතැනදී 2 පේලියෙන් Serial communication එක start කරලා තියෙනවා,  ඊළඟට 3,4,5 පේලිවලින් පිලිවලින් 9, 10, 11 කියන pin 3 න OUTPUT විදිහට setup කරගෙන තියෙනවා.

9 වෙනි පේලියෙන් if condition එක දාලා serial port එක හරහා data එනවද කියලා බලනවා. data එනවනම් if එක ඇතුලේ තියෙන දේවල් ටික ක්‍රියාත්මක වෙනවා. 11, 12, 13 වෙනි පේලිවලින් කරන්නේ r,g,b කියන නම් වලින් int variable 3 ක් හදාගෙන තියෙනවා. ඒවගේම Serial port එක හරහා එන data ඒ ඒ variable වලට වෙන වෙනම යොමුකරලා තියෙනවා.

15, 16, 17 පේලිවලින් ඒ ඒ  r,g,b කියන value එකට අදාලව 9, 10, 11 කියන pin වලින් voltage output කරලා තියෙනවා.

***වැදගත්***

මම මෙතනදී කියන්න ඕනේ වැදගත් දෙයක් තියෙනවා.

මම PC program එකෙන් Arduino එකට එවන්නේ යම් කිසි වර්ණයකට අදාල RGB value එක එක පේලියට. උදාහරණයක් විදිහට රෝස පාටට අදාල RGB value එක වෙන්නේ 215,15,200 යි.

ඒ කියන්නේ රතු - 215, කොළ - 15, නිල් - 200 කියන සංයෝජනයෙන් තමයි රෝස පාට හැදිලා තියෙන්නේ.  මෙම මේ RGB value එක 215,15,200 ආකරයට තනි පේලියක් විදිහට තමයි Arduino එකට යවන්නේ. නමුත් 11, 12, 13 වෙනි පේලි වලදී  ලියලා තියෙන code වලින් values ටික වෙනවෙනම හදුනාගන්නවා.
උදාහරණයක් විදිහට කලින් කියපු රෝස පාටට අදාල RGB value එක වෙන 215,15,200 කියන value set එක තනි පේලියක් විදිහට arduino එකට එවපුවහම 11, 12, 13 පේලිවලින් r = 215, g = 15, b = 200 විදිහට හදුනාගන්නවා.

Common anode LED එකට arduino code එක ලියමු.

මේකට මුලින්ම පහලින් තියෙන විදිහට circuit එක හදාගන්න. 2.2 KOhm resistor එකක් තමයි දාලා තියෙන්නේ.


දැන් පහල තියෙන code එක arduino එකට upload කරන්න.



මේ code එකත් කලින් code එක වගේම තමයි. වෙන්සකට තියෙන්නේ 15, 16, 17 පේලිවලදී r,g,b කියන variable වලින් ලැබෙන අගයන් 255 න් අඩුකරලා යොදගෙන tතියෙන එක. එහෙම කරන්නෙ Common anode RGB LED එකක පොදු අග්‍රය + නිසා සුදුසු විභව අන්තරයක් ගොඩනගා ගන්න ඕනෙ නිසයි.

PC program එක ලියමු.

මම මේක ලියන්නේ VB.Net වලින්, ඒකට Visual studio කියන software එක ඕනේ. මුලින්ම Visual studio open එක කරගෙන අලුත් VB.Net project එක ලබාගන්න.



දැන් පහල තියෙන විදිහට Software එකේ interface එක design කරගන්න.



ඊළඟට පහල තියෙන විදිහට Properties window එක භාවිත කරලා property හදාගන්න.

Button 1 : Text - Connect Name - btnCon
Button 2 : Text - Disonnect Name - btnDis Enabled - False
Button 3 : Text - Select Color Name - btnColor
Combo Box 1 : Name - cmbPort
Track Bar 1 : Name - tbRed Maximum - 255
Track Bar 2 : Name - tbGreen Maximum - 255
Track Bar 3 : Name - tbBlue Maximum - 255
Panel 1 : Name - pnlColor Background Color : Black

ඊට පස්සේ toolbox එකෙන් SerialPort එක තෝරලා ඒක උඩ double click කරලා form එකට add කරගන්න.



ඊළඟට form එකේ load event එක ඇතුලෙදි පහල තියෙන code එක ලියන්න. form එක උඩ double click කරලා form එකේ load event එකට ඇතුලු වෙන්න පුලුවන්.

මෙතනදී කෙරෙන්නේ Form එක Load වෙනකොටම Combo Box එකට Serial Port name ටික එකතු කරගන්න එක.

For Each i As String In My.Computer.Ports.SerialPortNames
           cmbPort.Items.Add(i)
Next

ඊළඟට connect කියලා add කරගෙන තියෙන button එකේ click ඉවෙන්ට් එකෙදී පහල කෝඩ් එක ලියන්න.

SerialPort1.PortName = cmbPort.Text
SerialPort1.Open()
cmbPort.Enabled = False
btnCon.Enabled = False
btnDis.Enabled = TrueTrue

ඊළඟට disconnect කියලා add කරගෙන තියෙන button එකේ click ඉවෙන්ට් එකෙදී පහල කෝඩ් එක ලියන්න.

SerialPort1.Close()
cmbPort.Enabled = True
btnDis.Enabled = False
btnCon.Enabled = True

ඊළඟට Trackbar වල scroll event ඇතුලෙ පහල තියෙන code එක ලියන්න. Trackbar උඩ double click කරලා scroll event එකට enter වෙන්න පුලුවන්.

pnlColor.BackColor = Color.FromArgb(tbRed.Value, tbGreen.Value, tbBlue.Value)
SerialPort1.Write(tbRed.Value & "," & tbGreen.Value & "," & tbBlue.Value)

පලවෙනි පේලියෙන් කරලා තියෙන්නේ panel එකේ background color එක වෙනස් කරන එක. දෙවෙනි පේලියෙන් කරලා තියෙන්නේ Trackbar value තනි පේලියක් විදිහට හදලා Serial port එකට යවන එකයි. Track bar 3 ටම ලියන්න ඕනේ මේ කෝඩ් එකම තමයි.

ඊට පස්සේ Select Color කියන button එක උඩ double click කරලා button එකේ click event එකේ පහල තියෙන කෝඩ් එක ලියන්න.

Dim colorDialog As New ColorDialog
If colorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
tbRed.Value = colorDialog.Color.R
tbGreen.Value = colorDialog.Color.G
tbBlue.Value = colorDialog.Color.B
pnlColor.BackColor = Color.FromArgb(tbRed.Value, tbGreen.Value, tbBlue.Value)
SerialPort1.Write(tbRed.Value & "," & tbGreen.Value & "," & tbBlue.Value)
End If

දැන program එක RUN කරන්න.

ක්‍රියාත්මක කිරීම.

මුලින්ම circuit එක හරියට හදලා Arduino  එක PC එකට connect කරන්න. ඊට පස්සේ Program එක run කරලා හරියට COM Port එකතෝරලා Connect Button එක ඔබන්න. ඊට පස්සේ Trackbar වෙනස් කරලා පාට හදන්න පුලුවන්.

Project Files ටික මෙතනින් Download  කරගන්න.

ලිපිය හොදනම්, ගැටලුවක් එහෙම තියෙනවනම්  comment එකක් දාගෙනම යන්න. share කරන්න අමතක කරන්නත් එපා. අපේ Page එකට Like එකකුත් දාන්න හොදේ.

WPF VB.Net පාඩම 11 - User settings save කරමු.

12:45 PM Add Comment

ඕනෑම Computer program එකක භාවිත වෙන දෙයක් තමයි User settings කියන්නේ. ඒ කියන්නේ මොකක්ද කියලා උදාහරණයකින් කිව්වොත් ගොඩක්  Computer program වල settings හදන්න ගියහම තියෙනවා Tik දාන්න, මොනව හරි option එකක් තෝරන්න Theme එකක් තෝරන්න වගේ දේවල්. එක පාරක් මේවා තෝරල Ok කරහම program එක close කරල අයෙත් open කරහම අපි කලින් හදපු settings නැවත ඒ විදිහටම තියෙන්නේ මේ User settings නිසා තමයි.

User interface එක සහ property සැකසීම.

අපි දැන් බලමු කොහොමද මේ User settings භාවිතා කරන්නේ කියලා. ඒකට මුලින්ම අලුත් WPF application එකක් open කරගන්න. ඊලඟට MainWindow එකට Label 3 ක්, Button 3 ක්, Textbox 2 ක් හා Checkbox එකක් එකතු කරගෙන පහල තියෙන විදිහට ඒවයේ property හදාගන්න.

Label 1 -> Content : Name
Label 2 -> Content : Age
Label 3 -> Content : Is Married
Textbox 1 -> Text : හිස්ව තබන්න. Name : txtName
Textbox 2 -> Text : හිස්ව තබන්න. Name : txtAge
Checkbox 1 -> Content : Yes Name : chkYes
Button 1 -> Content : Load Default Name : btnDefault
Button 2 -> Content : Save Name : btnSave
Button 3 -> Content : Load Name : btnLoad



User settings සැකසීම්

මේ සදහා මුලින්ම Solution explorer තුලදී Right click කර ලැබෙන මෙනුව තුලින් Properties හරහා ගොස් Properties ටැබ් එක ඕපන් කරගන්න ඕනේ. ඊට පස්සේ Properties යටතේ තියෙන settings  ටැබ් select කර අපි විසින් save කිරීමට බලාපොරොත්තුවෙන items ගනනට අදාලව හා එහි data type එකට අදාලව settings file එකෙහි element නිර්මාණය කරගත යුතුය.



මෙහි Name යන්න යටතේ Element එකෙහි නමත් Type යටතේ Element එකතුලදී save කිරීමට බලාපොරොත්තුවෙන data එකෙහි data type එකත් Value යටතේ save කරන data එකෙහි default value එකත් යෙදිය යුතුය.

පහත දැක්වෙන්නේ ඒ ආකාරයට සදාගත් element තුනකින් යුතු setting file එකයි.

මෙතනදී මම String element දෙකකුයි, boolean element එකකුයි හදාගෙන තියෙනවා. boolean element එක හදාගෙන තියෙන්නේ Checkbox එකට අදාල value එක save කරන්නයි.

User settings වැඩසටහන සමග සම්බන්ධ කිරීම.

ඒ සදහා මුලින්ම පහත code කොටස Class MainWindow යන්නට පහලින් ලිවිය යුතුය.

Dim Setting As New MySettings

මෙහි setting නම වෙනුවට වෙනත් කැමති නමක් වූවද යෙදිය හැක.

Setting load කිරීම.

ඒ සදහා Load button එකෙහි click event එක තුලදී පහත කෝඩ් කොටස ලිවිය යුතුය.

txtName.Text = Setting.Name
txtAge.Text = Setting.Age
chkYes.IsChecked = Setting.IsMarried

මෙහීදී පිළිවලින් Setting file එක තුල ඇති data textbox  දෙකට හා chekbox එකට යොමු කර ඇත.

Setting save කිරීම.

ඒ සදහා Save button එකෙහි click event එක තුලදී පහත කෝඩ් කොටස ලිවිය යුතුය.
Setting.Name = txtName.Text
Setting.Age = txtAge.Text
Setting.IsMarried = chkYes.IsChecked
Setting.Save()

මෙහීදී පිළිවලින් textbox දෙකේ හා checkbox එකෙහි ඇති data setting file එකෙහි අදාළ element වෙත යොමුකර ඇති අතර 4 පෙලියේ ඇති Setting.Save() මගින් එම data save කර ඇත.

Default Setting load කිරීම.

 යම් වැඩසටහනකදී settings තුල සිදුකල වෙනස් කම් නැවත මුල් තත්වයට ගෙන ඒම සඳහා Default button එකක් භාවිතා කල යුතුය. අනතුරුව  Load Default button එකෙහි click event එක තුලදී පහත කෝඩ් කොටස ලිවිය යුතුය.

Setting.Reset()
txtName.Text = Setting.Name
txtAge.Text = Setting.Age
chkYes.IsChecked = Setting.IsMarried
Setting.Save()

පළමු පේලියෙන් Settings file එක තුලට default value load කරගෙන ඇතිඅතර අනතුරුව
 Setting file එක තුල ඇති data textbox  දෙකට හා chekbox එකට යොමු කර ඇත. අවසාන පේලිය මගින් එම data save කර ඇත.


Settings file කිහිපයක් සමග වැඩ කිරීම.

Project එකක් තුලදී අපට එක settings file එකකට වඩා අවශ්‍ය වන අවස්ථා ඇත. එවිට අමතර Setting file ලබා ගත යුතුය. මෙසේ නව Setting file ලබා ගැනීමට Solution explorer තුලදී Right click කර ලැබෙන මෙනුව තුලින් Add -> New Item හරහා ගොස් New Item window එක ලබාගතයුතුය.

අනතුරුව New Item window එකෙහි වම් පස ඉහල කෙලවරේ ඇති Installed -> Common Items -> General  යටතේ ඇති  Setting File යන්න තෝරා පහලින් ඒ සඳහා නමක් ලබාදී Add යන්න ලබාදිය යුතුය.



 මෙලෙස ලබාගත් Setting file එක Solution explorer තුලදී දැකගත හැකි අතර ඒ මත Double click කිරීමෙන් ඒවෙත පිවිසිය හැකි අතර පෙර සේම element එකතු කරගත හැක.
මලෙස ලබා ගත් නව Setting File එක භාවිතා කිරීම ඉහත පරිදිම වේ.



Dim Setting As New MySettings

නමුත් මෙම පේලියේ ඇති MySettings යන්න වෙනුවට දෙවනුව ලබාගත් Setting File එකෙහි නම භාවිතා කල යුතුය.

දැන project folder එක වෙත ගොස් \bin\Debug වෙත ගොස් program එක Run කර ක්‍රියා කරන ආකාරය බැලිය හැක.

[Project එකට අදාල files තනි zip file එකක් විදිහට මෙතනින් downlaod කරගන්න.]
ලිපිය හොදනම්, ගැටලුවක් එහෙම තියෙනවනම්  comment එකක් දාගෙනම යන්න. share කරන්න අමතක කරන්නත් එපා. අපේ Page එකට Like එකකුත් දාන්න හොදේ.

Arduino පාඩම 8 - Arduino එක C# හෝ VB.net වැඩසටහනක් සමඟ සම්බන්ධ කරමු.

11:26 AM 2 Comments

මම අද පාඩමෙන් කියලා දෙන්නේ Arduino එක C# හෝ VB.net වැඩසටහනක් සමඟ සම්බන්ධ කරන ආකාරයයි. මම මෙතනදී C# හෝ VB.net එක්ක සම්බන්ධ කරන හැටි කියලා දුන්නට Arduino එක ඕනෑම programming language එකකින් ලියපු වැඩසටහනක් සමග සම්බන්ධ කරන්න පුලුවන්. Arduino එක C# හෝ VB.net වැඩසටහනක් සමඟ සම්බන්ධ කරනව කිව්වම ප්‍රධාන කාරණා 2 ක් තියෙනවා, ඒ කියන්නේ Program එකෙන් Arduino එකට data යැවීම හා Arduino එකෙන් Program එකට data යැවීමයි.

Arduino පහුගිය පාඩම් ටික මෙතනින් ගිහින් බලන්න.

VB.Net ගැන දන්නේ නැත්නම් මම VB.Net ගැන ලියන පාඩම් ටික මෙතනින් ගිහින් බලන්න.

Program එකෙන් Arduino එකට data යැවීම

මම මෙතනදී කරන්න යන්නේ C# හෝ VB.net වැඩසටහන මගින් arduino එකට සම්බන්ධ කරන LED එකක එළිය අඩු වැඩි කරන එක. මේ කට අපි මුලින්ම arduino එක පැත්තෙන් කරන්න ඕන වැඩ 2 ක් තියෙනවා. ඒ කියන්නේ circuit එක නිර්මාණය හා  arduino කෝඩ් ලියන එක. අපි මුලින්ම circuit එක නිර්මාණය කරගමු. පහල තියෙන්නේ ඒ circuit එක.


ඊළඟට තියෙන්නේ කෝඩ් ලියන එක. පහල තියෙන කෝඩ් එක ලියලා arduino එකට upload කරන්න.

void setup() {
Serial.begin(9600);
pinMode(9,OUTPUT);
}
void loop() {
  if(Serial.available()>0){
    analogWrite(9,Serial.parseInt());
  }
}

මෙතනදී මම PWM output support කරන pin එකක් වෙන 9 පින් එක යොදගෙන තියෙනවා LED එක control කරන්න. loop එක ඇතුලේදී if condition එක දාලා Serial communication හරහා data ඇවිල්ලද කියල බලනවා data තියෙනවනම් analogWrite function එක භාවිතා කරලා power  එක output කරනවා. Serial.parseInt() කියන කොටසෙන් කියවෙන්නේ Serial communication හරහා එන සංඛ්‍යාත්මක අගය ලබාගන්නවා කියන එක.

ඊළඟට කරන්න තියෙන්නේ program එක හදන එක මේක කරන්න Microsoft Visual Studio කියන වැඩසටහන භාවිතා කරන්න ඕනේ.

පහළ තියෙන්නේ මම ඒ විදිහට හදාගත් program එක. මේක මම C#.net හා VB.net කියන language 2 න්ම කෝඩ් කරලා තියෙනවා. ප්‍රොජෙක්ට් ෆයිල් එක download කරගන්න. ඊට පස්සේ Visual Studio වැඩ සටහටන හරහා project file එක open කරගන්න. Code ටික comment දාලා පැහැදිලි කරලා තියෙනවා.

Program එකෙන් Arduino එකට data යැවීමට අදාල project zip file එක මෙතනින් download කරගන්න. Program එකේ exe ෆයිල් එක >bin > debug > කියන folder එක ඇතුලේ තියෙනවා.

දැන් Program එක Run කරලා COM port එක තෝරලා ඒකෙ තියෙන Slider එක වෙනස් කරල බල්න්න. LED එකේ එළිය අඩු වැඩි වෙනවා.


Arduino එකෙන් Program එකට data යැවීම.

මම මෙතනදී කරන්න යන්නේ Arduino එකට Variable resistor එකක් හයි කරලා resistor එකේ value එක Vb.Net වලින් ලියපු program එකකට යවලා program එකෙන් resistor එකේ value එක dispaly කරන එක. මේකට මුලින්ම පහලින් තියෙන විදිහට circuit එක හදාගන්න.

ඊට පස්සේ පහලින් තියෙන කෝඩ් එක Arduino එකට upload කරන්න.

void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(A0));
}

2 වෙනි පේලියෙන් මම 9600 baudrate සහිතව Serial communication එක start කරලා තියෙනවා. 5 වෙනි පේලියේ Serial.println(analogRead(A0)); කොටසෙන් කරන්නේ A0 කියන analog pin එකට හයි කරලා තියෙන Variable resistor එකේ value එක read කරලා ඒ අගය පේලියක් විදිහට print කරන එකයි.

දැන් අපි ඊළඟට කරන්න ඕනේ program එක හදාගන්න එක. පහළ තියෙන්නේ මම ඒ විදිහට හදාගත්

program එක. මේක මම VB.net වලින් කෝඩ් කරලා තියෙනවා.ප්‍රොජෙක්ට් ෆයිල් එක download කරගන්න. ඊට පස්සේ Visual Studio වැඩ සටහටන හරහා project file එක open කරගන්න. Code ටික comment දාලා පැහැදිලි කරලා තියෙනවා.

Program එකෙන් Arduino එකට data යැවීමට අදාල project zip file එක මෙතනින් download කරගන්න. Program එකේ exe ෆයිල් එක >bin > debug > කියන folder එක ඇතුලේ තියෙනවා.

දැන් Program එක Run කරලා COM port එක තෝරලා resistor එකේ value වෙනස් කරලා බලන්න. වෙනස් වන value එක Serial monitor එකේ වගේ පෙන්නනවා.

[Project 2 ටම අදාල files තනි file එකක් විදිහට මෙතනින් downlaod කරගන්න.]
ලිපිය හොදනම්, ගැටලුවක් එහෙම තියෙනවනම්  comment එකක් දාගෙනම යන්න. share කරන්න අමතක කරන්නත් එපා. අපේ Page එකට Like එකකුත් දාන්න හොදේ.