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 පහසුවෙන් හදාගන්න මේක නිර්මාණය කරලා තියෙනවා.