Friday, December 2, 2016

2 Java සමග වැඩ අරඹමු (Start with Java)

Java සමග ක්‍රෙමලේඛ කිරිමට පෙර අප Java Development Kit (JDK) වැඩසටහන පරිගණකය තුල ස්ථාපනය කර ගත යුතුය. ඒ සදහා ඔබේ පරිගණකයේ මෙහෙයුම් පද්ධතිය සදහා ගැලපෙන JDK වැඩසටහන පහත link එකට ගොස් ලබාගන්න.

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

මෙහිදී ඔබ පරිගණක භාවිතය සම්බන්ධයෙන් යම් දැනුමක් ඇති අයකු ලෙස සැෙලකෙන බැවින් JDK වැඩසටහන ස්ථාපනය කරගන්නා ආකාරය පියෙවරෙන් පියවර මෙහි පල කිරීමට බලාපොරොත්තු නොවෙමි. නමුත් ඔබ සතුව යම් ගැටලුවක් ඇත්නම් පහත comment තීරුවේ හෝ පහත සදහන් Email ලිපිනයට යොමු කිරීමෙන් පිළිතුරු ලබාගත හැකි බව දන්වනු කැමැත්තෙමි.

මෙම ලිපි මාලාව තුල මවිසින් Ubuntu Linux මෙහෙයුම් පද්ධතිය භාවිතා කරන අතර ඔබ දකින තිර සටහන් වල Linux Terminal එක දිස් විය හැක. නමුත් හුදෙක් Java විධානයන් (Command) සෑම මෙහෙයුම් පද්ධතියකටම බොහෝදුරට සමාන වේ.

ජාවා Hello, World 

public class Hello{
  public static void main(String[] args){
    System.out.println("Hello, World");
  }
}

මෙහි දැක්වෙන්නේ Java පරිගණක ක්‍රමලේඛ භාෂාවේ සරලතම යෙදුමයි. අපි එය හදුනාගනිමු.

මුලින්ම මෙහි සදහන් වෙන්නේ class නිර්චවචනයයි. මෙය ඕනෑම class එකක් ආරම්භයේදී යොදාගන්නා පදයයි. class එකෙහි අන්තර්තගතය සගල වරහන් ({}) මගින් දක්වා ඇත. Hello යනු මෙම class එක සදහා අපි විසින් ලබා දෙන නමයි. එම නමම මෙම class file එක save කරගන්නා විට file name එක ලෙසද යොදා ගත යුතුය. (උදා: Hello.java)

class එකෙහි අන්රතර්තගතය ලෙස මෙහි main method එක අර්ත දක්වා ඇත. මෙවැනි main method අර්ථදැක්යවිය හැෙක්කේ ඕනෑම program එකකට එකක් පමණි. මෙය වැඩසටහන ක්‍රියාත්කමක කිරීමේදී මුලින්ම run වන method එකයි. මේ පිළිබද වැඩි විස්රතර ඉදිරියේදී  method/function පිළිබද යොමුවෙන් බලාපොරොත්තු වන්න.

ඒ යටතේ ඇති System.out.println("Hello, World"); පද පෙළ මගින් Hello, World ලෙස Console output එක ලබා දීම සිදු කරයි.

Java වැඩසටහනක් Compile කරගැනීම සහ Run කිරීම.

ජාවා වැඩසටහනක් ධාවනය කිරීමට ප්‍රථම එම වැඩසටහන Compile කර ගත යුතුය. මෙමගින් Java Source Code එනම් ක්‍රම ලේඛනය Java Bitecode වෙත පරිවර්ථනය කිරීම සිදුවේ. JVM එනම් Java Virtual Machine මගින් ධාවනය කල හැක්කේ මෙලෙස  bytecode ලෙස පරිවර්ථනය කර ගත් වැඩසටහන් පමණි.

මේ සදහා ප්‍රථමයෙන් Terminal (වින්ඩෝස් සදහා නම් CMD) එක අදාල Source file එක ඇති Directory තුල Open කර ගන්න.

දැන් පහත සදහන් Command එක භාවිතයෙන් ඔබේ කේතය Compile කර ගත හැක. 
$ javac Hello.java

ඔබේ කේත සටහනේ වැරදි (Errors) කිසිවක් නැති නම් Compile වීමෙන් පසු class ෆයිල් එක සෑදිය යුතුය. 

දැන් අපි මෙම වැඩසටහන ධාවනය කර බලමු. මේ සදහා පහත command එක භාවිතා කළ යුතුය. 
$ java Hello

එවිට ප්‍රථිපලය පහත පරිදි දිස් වනු ඇත.



ඔබ සාර්ථක ලෙස Java ක්‍රමලේඛයක් සකස් කරන ලදි!!!




Read More

Saturday, October 15, 2016

Arduino සිංහලෙන් - උෂ්ණත්වමානයක් හඳමු 3



අද අපි උෂ්ණත්වමාණයේ coding කොහොමද කරන්නේ කියල බලමු. මේ සඳහා අපිට Arduino IDE එක අවශ්‍ය වෙනවා, එය ඔබට නොමිලේම Arduino වෙබ් අඩවියෙන් download කරගත හැකියි.
දැන් මේ IDE එක සාමාන්‍ය software එකක් install කරන ආකාරයට install කර ගන්න. අපි දැන් coding part එක කරන්න සූදානම්.

Arduino IDE

මුලින්ම අපි අපේ code file එක save කර ගෙන ඉමු. ඔයාල කැමති තැනක කැමති නමකින් save කර ගන්න. මම Thermometer 1 කියල නම් කලා. අපිට Arduino library 2ක් ඕන වෙනවා ඒ දෙකම ඔයාලට Arduino IDE එක හරහා install කරගන්න පුළුවන්.

මීලගට අපි බලමු මේ download කර ගත්ත Libraries Arduino IDE එකට add කර ගන්න විදිහ. මුලින්ම IDE එකේ sketch menu එක හරහා පහත රූපයේ ආකාරයට manage libraries click කරන්න.

Manage Libraries

එවිට ලැබෙන popup window එකේදී DS18B20 ලෙස search කරන්න, එහිදී පහත රූපයේ දැක්වෙන ආකාරයට 3.7.6 හෝ ඊට වඩා අළුත් version එකක් install කරගන්න.

Arduino Library Manager

එලෙසම one wire library එකේ 2.3.2 හෝ ඊට වඩා අළුත් version එකක් install කරගන්න.

One Wire Library

දැන් අපි coding පටන් ගන්න සූදානම්. thermometer 1 file එකේ දැනටමත් method දෙකක් තිබෙන බව ඔබට පෙනේවි, ඒ සියල්ල මකල දාල අපි මුල ඉදලම අපි පටන් ගමු.

මුලින්ම කරන්න තියෙන්නේ අපි මීට සුළු වෙලාවකට පෙර install කර ගත්ත library දෙක අපේ code එකට add කර ගන්න ඒක. ඒක හරිම ලේසියෙන්ම, sketch menu එකේ include library sub menu එක හරහා අපිට කරගන්න පුළුවන්. 

Include Library
පහත දැක්වෙන්නේ උෂ්ණත්ව මානයේ Arduino code එක.


#include <onewire.h>

#include <dallastemperature.h>

// Data wire is plugged into pin 2 on the Arduino
define ONE_WIRE_BUS 2
 
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
 
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Thermometer Demo");

  // Start up the library
  sensors.begin();
}
 
void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print(" Requesting temperatures...");
// Send the command to get temperatures
sensors.requestTemperatures(); 
  Serial.println("DONE");

  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0));
  // You can have more than one IC on the same bus. 
  // 0 refers to the first IC on the wire
}



දැන් ඔබේ Arduino board එක computer එක හා සම්බන්ද කර ගන්න. එවිට Arduino IDE එකේ එය නිවැරදිව හඳුනාගෙන පහත රූපයේ ආකාරයට ඔබට දැක ගත හැකි වනු ඇත.

Arduino board in IDE

මීලගට Upload button එක click කර ඔබගේ code එක Arduino board එකට Upload කර ගන්න. දැන් උෂ්ණත්වය මනින්න සියල්ල සූදානම්. උෂ්ණත්වට කියවා ගන්න Arduino IDE එකේ serial monitor එක පහත රූපයේ පරිදි on කර ගන්න.

Serial Monitor


එහි මෙලෙස උෂ්ණත්වය සඳහන් වනු ඇති.

Serial Monitor

අපි සාර්ථකව digital උෂ්ණත්වමානයක් සදාගෙන අවසානයි, මේය අපිට අවශ්‍ය විදිහට වැඩි දියුණු කර ගත හැකියි ඒ ඔබේ අවශ්‍යතාවය අනුව තීරණය වේවි. මීලග අපියේන් උෂ්ණත්වමානය සඳහා යොදා ගත් code එක සවිස්තරාත්මකව පැහැදිලි කරගමු.


Read More

Sunday, October 9, 2016

Arduino සිංහලෙන් - උෂ්ණත්වමානයක් හඳමු 2



කාලෙකට පස්සේ අද පොඩි ඉඩක් ලැබුනා උෂ්ණත්වමානයක් හඳමු ලිපි පෙලේ දෙවෙනි ලිපිය ඉදිරිපත් කරන්න. පලවෙනි ලිපිය පල කරල දැන් ගොඩක් කල්, ඒ වගේම ඒකට හොඳ ප්‍රතිචාරත් ලැබිය තිබුනා. දැන් නම් කට්ටිය DS18B20 සෙන්සර් එක ගෙන්න ගෙන ඇති නේද?. වැඩි ගානකුත් නැති නිසා දෙක තුනක්ම අරගන්න.

අපි අද බලමු මේ sensor එක අපේ Arduino UNO board එකත් එකක් සම්බන්ද කරගන්න ආකාරය හා උෂ්ණත්වය කියවන්න ඕන කරන programming code එක ලියන ආකාරය. මුලින්ම මම ඔයාලට අවශ්‍ය උපාංග හඳුනාගනිමු 2 ලිපියේදී සඳහන් කරපු Project board එකයි Jumper wires ටිකයි, ඔයාල මිලදී ගත්ත DS18B20 temperature sensor එකයි ගන්න. දැන් Female to Male Jumper wires 3ක් අරගෙන පහත ආකාරයට අපේ temperature sensor හා සම්බන්ද කර ගන්න එවිට එය Project board එක හා පහසුවෙන් සම්බන්ද කර ගත හැකි වෙනවා වගේම පහසුවෙන් එහා මෙහා කිරීම හැකියාවද ලැබෙනවා.

 


දැන් Project board එක අරගෙන ඒකට මේ sensor එක සම්බන්ද කර ගන්න. (ඔයාල Project board එකක වයර් සම්බන්ද කරන විදහ දන්නව කියල හිතනවා මම, දන්නෙ නැත්තම් අහන්න කියල දෙන්නම්) 

දැන් Arduino board එක හා පහත රූපයේ ආකාරයට සම්බන්ද කර ගන්න.




DS18B20 temperature sensor එක wire කර ගන්න ඕන විදිහ මම කලින් ලිපියේදී කියල දුන්නා මතක නැත්තම් මේ රූපය බලන්න. 




අපි මෙතනදී DS18B20 temperature sensor එකේ දෙවැනි pin එකේ එහෙමත් නැත්තම් data in/out pin එකේ වෝල්ටීයතා මට්ටම ඉහල දමා ගැනීමට එයට 4.7K resister එකක් හරහා 5V විදුලි සැපයුමට සම්බන්ද කරනු ලැබ ඇත. නොමැති නම් Arduino board එකට මෙම sensor එක සමග සම්බන්දතාවය පහත්වා ගැනීම අපහසු වේ.

DS18B20 temperature sensor එකෙහි පළමු වෙනි අග්‍රය Arduino board එකේ GND (Ground) අග්‍රය සමගද, දෙවැනි අග්‍රය Arduino board එකේ දෙවැනි digital අග්‍රය (D2) සමගදල තෙවැනි අග්‍රය Arduino board එකේ 5V output අග්‍රය සමගින්ද සම්බන්ද කරන්න. දැන් අපි DS18B20 temperature sensor සාර්ථකව Arduino board සමග සම්බන්ද කරගෙන අවසන්. 

මීලග ලිපියෙන් අපි programming code එක ගැන කතා කරමු.


Read More

Thursday, April 14, 2016

1 වන පාඩම - හැඳින්වීම (Java Introduction)

ජාවා පරිගණක භාෂාව ස්ථාපනය කරගැනීම සහ මූලික අංග ගැන අපි මෙම ලිපියෙන් සලකා බලමු.
ජාවා සමග වැඩකිරීමට ඔබ සතුව JDK (Java Development Kit) එක පැවතිය යුතුය.

මෙම සබැඳියෙන් ඔබට JDK 8 නවතම සංස්කරණය බාගත කරගත හැකිය.

ජාවා යනු විවෘත කේත (Open source) පරිගණක භාෂාවකි. එමෙන්ම දැනට ලොව ජනප්‍රියතම පරිගණක භාෂා අතර පෙරමුණේ රැඳී සිටිමට ජාවා පරිගණක භාෂාවට හැකිවී ඇත.

JVM (Java virtual machine)

ජාවා පරිගණක වැඩසටහන Cross Platform පරිගණක වැඩසටහනක් ලෙස හඳුන්වයි. එනම් ජාවා පරිගණක භාෂාවෙන් ලියන ලද වැඩසටහනක් ඕනෑම පරිගණකයක JVM වැඩසටහන මත ධාවනව කල හැකිය. මෙසේ වන්නෙ ජාවා වැඩසටහන් ධාවනය වන්නෙ JVM නමැති අතථ්‍ය යන්ත්‍රය මත වීමයි. එනම් windows හෝ වේවා Mac හෝ වේවා Linux හෝ වේවා ඕනෑම OS එකක් මත JVM එක ස්තාපනය කිරීමෙන් Java වැඩසටහන් සඳහා සහය ලබාගත හැකියි. මෙම JVM වැඩසටහන එක් එක් OS එක සදහා වෙනමම (Native Application) එකක් ලෙස ලබා දී ඇත. ඔබේ පරිගණකයේ OS එකට අදාල JVM එක සථාපනය කරගැනීමෙන් ඕනෑම පරිගණකයකදී නිර්මාණයක කරන ලද Java වැඩසටහනක් ධාවනය කරීමේ හැකියාව එමගින් ලැබේ.


Java source file (.java) java කම්පයිලරය හරහා byte code file(.class) එක බවට හරවන අතර එම byte code files, JVM එක මත ධාවනය කල හැකිය.  

JRE Vs JDK (Java Runtime Environment Vs Java Development Kit)

JRE යනු Java Runtime Environment යන්නයි. එනම් JVM එකෙහි අන්තර්ගතයයි. මෙහි අන්තර්ගතය වශයෙන් JVM පද්ධතිය ධාවනය වන අවස්ථාවේදී භාවිතා වන Files සහ Libraries අඩංගු වේ.

JDK යනු Java Development Kit යන්නයි. මෙහිදී JRE + Development Tools අඩංගු වේ. එනම් සාමාන්‍ය JRE පද්ධතිය වගේම මෙහි Compiler එක ඇතුලු අනෙකුත් Java Development සදහා දායක වන Files සහ Libraries අඩංගු වේ.
Read More

Friday, March 25, 2016

Arduino සිංහලෙන් - උෂ්ණත්වමානයක් හඳමු 1


උෂ්ණත්වමානයක් නිවසේදීම හදාන්න හැටි අද අපි මේ ලිපි පෙලින් කතා කරමු. මේ දවස් වල තිබෙන අධික උෂ්ණත්වයත් එක්ක මේය ඔබට ඉතාමත් වැදගත් වේවි යැයි මම හිතනවා.

මේ සඳහා මම කලින් ලිපි වල සදහන් කල උපාංග වලට අමතරව Temperature Sensor එකක් අවශ්‍ය වෙනවා. වෙළද පොලේ ඔබට විවිධ Temperature Sensor දැකගත හැකියි. නමුත් මම තෝරා ගත්තේ DS18B20 නැමැති Temperature Sensor එකයි. DS18B20 මේ සඳහා උචිත වීමට පහත කරුණු දැක්විය හැකියි.

DS18B20
Pin Arrangement

  • Digital Sensor එකක් වීම.
Analog sensor එකක් මෙන් උෂ්ණත්වයට අනුව වෝල්ටීයතා වෙනස් වීමක් මෙයින් සිදු නොවන අතර උෂ්ණත්ව මිනුම නිවැරදිව 8bit හෝ 12bit digital signal එකක් ලෙස අපේ ප්‍රධාන Arduino board එකට ලබා දෙයි. මෙහි ප්‍රධානම වාසිය නම් උෂ්ණත්ව අගය සෙල්සියස් අංශක වලින්ම ලබා දෙන නිසා අපිට analog sensor එකක මෙන් වෝල්ටීයතා ක්‍රමාංකනයක් අවශ්‍ය නොවේ. (සේල්සියස් අංශක 0 දී හා 100 දී වොල්ටීයතා අගයන් ලබා ගෙන එක් එක් වෝල්ටීයතාවයෙදී උෂ්ණත්වය නිර්ණය කිරීම)

  • 1-Wire® තාක්ෂණය
එනම් විදුලිය සපයන වයර් දෙකට අමතරව තවත් එක් වයරයක් පමණක් භාවිතා කරමින් (one data line) DS18B20 උපාංග Arduino board එක හා සම්බන්ධ කල හැකි වීම. 



සෑම DS18B20 උපාංගයකටම අනන්‍ය වූ 64bit serial code එකක් ඇති නිසා මේවායේ දත්ත එකම වරයකින් Arduino board එක වෙත පැමිණියද එ්වා වෙන් වෙන්ව හඳුනා ගැනීමේ හැකියාව ඇත. 

එසේම මෙම උපාංගය Parasitic Power Mode නැමැති ආකාරයට සම්බන්ධ කිරීමෙන් ඔබට පෙර සඳහන් පරිදි වයර් 3ක් නොමැතිව වයර් 2ක් පමණක් භාවිතා කර සම්බන්ධ කර ගත හැකිය. (ground and data line only)


  • පරාසය
DS18B20 උපාංගයකට -55°C to +125°C (-67°F to +257°F) අතර උෂ්ණත්වය කියවිය හැකිය, -10°C to +85°C අතර දී ±0.5°C නිර්වද්‍යතාවයක් එය සතුවෙයි.

  • මිල
ඔබට මෙය වෙළද පොලෙන් රුපියල් 150ක් වැනි මුදලකට මිලදී ගත හැකියි. ebay මගින් උවද ඔබට ඉතා පහසුවෙන් නිවසටම ගෙන්වාගත හැකියි. 


අද ලිපියෙන් මම කතා කලේ Temperature Sensor එක ගැනයි. මීලග ලිපියෙන් මම මෙය Arduino board එක හා සම්බන්ධ කර ගන්නා ආකාරය හා 1-Wire® තාක්ෂණය යොදා ගන්නා ආකාරය ගැන ඉදිරිපත් කරන්නම්. ඔබට මේ සම්බන්ධයෙන් ඇති ගැටළු comment මගින් හෝ email මගින් විමසන්න.
Read More

Monday, January 11, 2016

Arduino සිංහලෙන් - අවශ්‍ය උපාංග හඳුනාගනිමු 2


අපි පසුගිය ලිපියෙන් Arduino සමග නිර්මාණකරනයේ යෙදෙන්නට අවශ්‍ය මූලික උපාංග අඳුනාගන්න පුළුවන් වුනා, ඒත් අපිට ඊට අමතරව තව උපාංග කිහිපයක් අවශ්‍ය වෙනවා ඒ Arduino සම්බන්ධ කරගනිමින් පරිපථ නිර්මාණය කිරීමට අවශ්‍ය උපාංගයි. ඔබට මේ සියලුම උපාංග පිටකොටුවේ 1 වෙනි හරස් වීදියේ ඉලෙක්ට්‍රොනික උපාංග කඩවලින් හෝ eBay වලින් ලබා හැකියි. අපේ ඉදිරි පාඩම් වලට වැදගත් වන නිසා මේ උපාංග මිලදී ගැනීම අත්‍යවශ්‍ය වේ. 


1. Project Board



අපේ පරිපථයේ උපාංග පෑස්සීමකින් තොරව එකලස් කර ගෙන පරිපථය ක්‍රියාකාරීත්වය පරීක්ෂා කීරීමට අපිට project board එක ඉතාමත් වැදගත් වෙනවා. ඒ වගේම පරිපථයේ යම් යම් වෙනස් කම් කරමින් විවිධ දේ අත්හදා බලන්න අපිට මෙමගින් හැකිවෙනවා


2. Jumper Wires


Project board එක මතට විවිධ ඉලෙක්ට්‍රොනික උපාංග සම්බන්ධ කිරීමට හා වෙනත් පරිපථ කොටස් සමග සම්බන්ධතා ඇති කර ගැනීමට Jumper wires ඉතාමත් වැදගත් වනවා. Jumper wires වර්ග 3ක් තිබෙනවා, ඒ Male to Male, Female to Male හා Female to Female වශයෙනුයි. අපිට මේ වර්ග තුනෙන්ම Jumper wires අවශ්‍ය වෙනවා.


Project board එක මත ස්ථාන 2ක් සම්බන්ධ කිරීමේදී Male to Male වර්ගයද, බාහිර ඉලෙක්ට්‍රොනික උපාංගයක් Project board හා සම්බන්ධ කිරීමේදී Female to Male වර්ගයද, ඉලෙක්ට්‍රොනික උපාංග 2ක් එකිනෙක සම්බන්ධ කිරීමේදී Female to Female වර්ගයද වැදගත් වේ.

දැන් කට්ටයම Arduino Uno වගේ board එකක් මිලදී ගෙන අපේ ඉදිරි ලිපි වලදි කියල දෙන Projects කරන්න ආසාවෙන් ඇති කියල හිතනවා. ඒ වගේම Arduino IDE එක ඔයාලගේ computer එකේ දැනටමත් install කරගෙන ඇති කියල මම හිතනවා. අපි ඊලග ලිපියෙදී Arduino භාවිතා කරල සරල නිර්මාණයක් කරන්නයි බලාපොරොත්තු වෙන්නේ. Board එකක් ගන්න බැරි වුන අය ඉන්නවා නම් මට email කරන්න මට පුළුවන් එකක් ගන්න උදව් කරන්න. ඊට අමතරව ඔබට ඇති මේ සම්බන්ධව ඇති ඕනෑම ප්‍රශ්ණයක් comment මගින් හෝ email මගින් විමසන්න.



Read More