Arduino එකෙන් .wav සින්දු අහමු


සුබ දවසක් යාලුවේ, මම group එකේ දාපු post එකට හොද ප්‍රතිචාර ලැබිලා තිබුනු නිසා ඒකෙ කියලා තිබුන project ඔක්කොම ඔයාලට කියලා දෙන්න තීරණය කලා. පලවෙනියටම ඔයාලට කියලා දෙන්න යන්නෙ ආඩුයිනෝ එකෙන් කොහොමද .wav sound file play කරන්නෙ කියලා.


.wav sound file එකක් කියන්නෙ අඩු processing power එකක් භාවිතා කරලා read කරන්න පුලුවන් විදියට දත්ත ගබඩා කරපු ශබ්ද ගොනුවක්. මේ ක්‍රමයට බොහෝ වෙලාවට sound effects තමයි ගබඩා කරන්නෙ. ඒ වගේම අවශ්‍ය නම් සම්පූර්ණ ගීතයක් උවත් මේ විදියට ගබඩා කරන්න පුලුවන්. පරිගනක ක්‍රීඩා වලදි ඊට අදාල sound effect බොහෝ වෙලාවට ගබඩා කරලා තියාගන්නෙ මෙන්න මේ .wav format එකට. .wav file mp3 වලට සාපේක්ෂව තරමක් විශාලයි. එයට හේතුව තමයි .mp3 කියන්නෙ compressed format එකක්. නමුත් .wav කියන format එක uncompressed ගනයට අයත් වෙනවා. ඒ කියන්නෙ මේ file එකක තියෙන්නෙ raw data කියන වර්ගයේ දත්ත.

දැනට සුලබව භාවිතා වෙන .mp3 format එකට සාපේක්ශව මේ .wav කියන format එකේ quality එක නම් ටිකක් අඩුයි. නමුත් arduino භාවිතා කරලා හදපු පද්දතියක ශබ්ද මගින් user ට යම් පනිවිඩයක් දෙන්න, එහෙමත් නැත්නම් sound quality එක ඒ තරම් සැලකිය යුතු නැති අවස්තා වලදී ශබ්ද විකාශනයක් කරගන්න මේ ක්‍රමය ගොඩක්ම වැදගත්. ඒ වගේම පාසල් වල bell sound වගේ දේවල් විකාශය කරන්නත් මේ ක්‍රමය කදිමයි.

මේ ක්‍රමයේදී අපි අපේ .wav sound file ගබඩා කරලා තියාගන්න SD Card එකක් අවශ්‍ය වෙනවා. ඒ වගේම අපිට අවශ්‍ය sound file එකකට වඩා වැඩි ගනනක් උවත් මේ sd card එකට copy කරලා arduino එක හරහා play කරගන්න පුලුවන් අවශ්‍ය වෙලාවෙදී.

මෙතනදි තියන වාසිය තමයි .wav file play කරන්න අපි වෙනම sound player එකක් හෝ sound module එකක් ආදාර කරගන්නේ නෑ. නමුත් ආඩුයිනෝ එකට sd card එක සම්බන්ද කරන්න sd card reader module එකක් අවශ්‍ය වෙනවා. දැනට ethernet shield, datalogging shield හෝ lcd shield තියෙන අයට ඒ shield එකේ තියන sd card slot එක භාවිතා කරන්න පුලුවන්. ඔයාලා එහෙම කරනවා නම් ඒ shield එකේ circuit schematic එක google කරලා හරියටම ඒ slot එකේ pin arduino එකේ මොන මොන pin වලටද සම්බන්ද වෙන්නෙ කියලා හොයාගන්න අවශ්‍ය වෙනවා.

SD card module පාවිච්චි කරන අයට නම් ඒ අව්ල එන්නෙ නෑ.

මේකෙදි අපි මුලින්ම අපිට අවශ්‍ය ඕනෑම format එකක තියන sound file එකක් මේ ක්‍රමයට සුදුසු වෙන පරිදි convert කරගන්න අවශ්‍යයි. ඒ කියන්නෙ 8-bit / 32Khz / mono කියන පරාමිතීන්ට අනුව ඔයාගෙ sound file එක convert කරගන්න අවශ්‍ය වෙනවා.

ඒකට ඔයාලා පහත පියවර අනුගමනය කරන්න.

මුලින්ම ඔයාලට play කරන්න අවශ්‍ය sound file එක තෝරාගන්න.

දැන් මේ link එකේ තියන web site එකට යන්න.
https://audio.online-convert.com/convert-to-wav

අපි මේ web site එකෙන් තමයි අපේ sound file ආඩුයිනෝ එකට play කරගන්න පුලුවන් විදියට convert කරගන්නේ.

දැන් ඔයාගෙ sound file එක මේ site එකට upload කරන්න.

දැන් ඒ interface එකේ තියන settings මේ පහත රූපයේ තියන විදියට හදාගන්න.

දැන් convert කරගෙන ඒ file එක ඔයාගෙ computer එකට download කරගන්න.

Download කරපු .wav file එකට ගැලපෙන නමක් දීලා ඒක rename කරගන්න. ආඩුයිනෝ code එකේදි අපිට ඒ දෙන නම අවශ්‍ය වෙනවා.

දැන් ඒ file එක ඔයාගෙ sd card එකට copy කරගන්න.

මම වැඩේට ගත්ත sound file එක සහ convert කරාට පස්සෙ ලැබුනු file එක අවශ්‍ය නම් මෙතනින් download කරගන්න.


හරි. ඔන්න ඔය විදියට ඔයාගෙ sound file ඔක්කොම ටික හදාගෙන ඒක sd card එකට copy කරගන්න. අනිත් විශේශම දේ තමයි sd card එකේ වෙන වෙන folder හදන්න යන්න එපා. ඔයා sd card එක open කරාම ඔයාගෙ sound file ටික තමයි මුලින්ම තියෙන්න ඕනෙ.

එහෙනම් බලමු අපිට පරිපතය අටවගන්න අවශ්‍ය දේවල් මොනවාද කියලා.

1x Arduino UNO
1x SD Card Reader Module
1x SD Card
1x Speaker
1x 2SD400 NPN Transistor
1x 220 Ohm Resister
Jumper Wires
1x Breadboard

අපි මෙතනදි 2SD400 කියන NPN ට්‍රාන්සිස්ටරය සහ 220 Ohm රෙසිස්ටරය යොදාගන්නෙ Arduino එකෙන් පිටතට දෙන sound එක amplify කරගන්න. ඔයාලා ලග වෙනම sound amplifier එකක් තියනවා නම් ඒ උපාංග දෙක අවශ්‍ය වෙන්නෙ නැහැ.

අනිත් විශේශම කරුන තමයි SD Card වැඩ කරන්නේ 3.3V වලින්. නමුත් අපේ arduino එක වැඩ කරන්නෙ 5V වලින්. ඔයාලා මිලදී ගන්න ඕනෙ 5V to 3.3V regulator එකක් තියන sd card module එකක්. ඒ වගේම ඒ module එකේ data lines වලට logic converter ic එකක් හරි එහෙමත් නැත්නම් resistor හරි දාපු එකක් ම ගන්න. නැත්නම් ඔයාගෙ sd card එකට හානි වෙන්න පුලුවන්. ඔයාට 3.3V support කරන sd card reader module එකක් නම් තියෙන්නෙ ඔයා කිසි විටක ඒක Arduino එකේ 5V pin එකට සම්බන්ද කරන්න එපා. ඔයා එතකොට sd card module එකට power දෙන්න Arduino එකේ 3.3V pin එක පාවිච්චි කරන්න. ඒ නිසා අපි ගන්න SD Card reader module එක ගැන වඩාත් සැලකිලිමත් වෙන්න.

මේ පහතින් පෙන්නලා තියෙන්නෙ අපේ පරිපත සටහන.

දැන් බලමු Arduino code එක ලියාගන්නෙ කොහොමද කියලා. ඇත්තටම අපිට arduino code එකක් ලියන්න අවශ්‍ය වෙන්නෙ නැහැ. මොකද අපි මේකට භාවිතා කරන්නෙ දැනටමත් වෙන කෙනෙක් ලියපු arduino library එකක්. ඒ library එක තමයි TMRpcm කියන්නෙ. මේකෙන් පුලුවන් ආඩුයිනෝ එක හරහා SD Card එකක තියන .wav format එකේ sound files read කරන්න.

එහෙනම් library එක download කරගන්න මෙතනින්.

දැන් බලමු code එක ගැන. මේකෙදි භාවිතා කරන්නෙ මේ library එකටම දීලා තියන example code එකක්. ඔයාලට අවශ්‍ය නම් library එකේ example කියන folder එකෙන් ඒ example code එක download කරගන්න පුලුවන්. එහෙම නැත්නම් මෙතනින් download කරගන්න code එක.

අපි දැන් බලමු code එක වැඩ කරන්නෙ කොහොමද කියලා. අවශ්‍ය library ටික (SD, SPI, TMRpcm) include කරාට පස්සෙ අපි මුලින්ම TMRpcm කියන එකෙන් object එකක් හදාගන්න අවශ්‍යයි. code එකේ tmrpcm කියන නමින් හදලා තියෙන්නෙ අන්න ඒක. මේක තමයි අපේ .wav file player එක වෙන්නෙ. දැන් setup function එකේදි මුලින්ම මේකෙ speaker එක සම්බන්ද වෙන pin එක හදුන්වන්න ඕනෙ. ඒක කරන්නෙ මෙහෙම,

tmrpcm.speakerPin = 9;

මෙතනදි arduino uno එකේ D9 pinඑක විතරයි වැඩේට ගන්න පුලුවන්.

ඊලගට කරලා තියෙන්නෙ if එකක් භාවිතා කරලා sd card එක arduino එකට හරියටම connect වෙලාද කියලා බලන එක.

අපිට .wav file එක play කරන්න අවශ්‍ය නම් මේ keyword එකෙන් තමයි ඒක කරන්නෙ.

tmrpcm.play("file");

මෙතනදි file කියන්නෙ sd card එකේ ඔයාගෙ .wav file එකේ file name එක. ඒක ලියද්දි "" මේ වරහන් අනිවාර්යයෙන්ම දාන්න ඕනෙ. ඒ වගේම file extension එක, ඒ කියන්නෙ .wav කියන එකත් ලියන්න ඕනෙ. උදාහරණයක් විදියට sd card එකේ තියන song කියන .wav file එක play කරන්න නම් ඒක ලියන්නෙ මෙහෙම,

tmrpcm.play("song.wav");

ඉතින් ඔයාලට මේ විදියට setup function එකේ හෝ loop function එකේ ඕනම තැනක .wav sound file එකක් play කරගන්න පුලුවන්. අනිත් විදේශම වාසිය තමයි මේ විදියට play කරාම file එක play වෙලා ඉවර වෙනකන් code එක නැවතිලා තියෙන්නෙ නෑ. ඒ නිසා මේක play වෙන ගමන් ඔයාට code එකේ වෙන වැඩක් වෙන්න code කරන්න පුලුවන් සාමන්‍ය විදියටම. ඒකට හේතුව තමයි මේ library එක ඇතුලෙ arduino internal timer එකක් භාවිතා වෙනවා. ඒ නිසා file එක play වෙනකන් delay එකක් හිටින්නෙ නෑ code එකේ.

මේ library එක වැඩ කරන්න SD library එක සහ SPI library දෙක අවශ්‍ය වෙනවා. සාමන්‍යයෙන් arduino IDE එක install කරද්දි මේ library දෙකම install වෙනවා. නමුත් ඒ library එක ඔයා ලග නැත්නම් මෙතනින් download කරලා install කරගන්න.



මේ තියෙන්නෙ මම හදපු prototype එක.
මේ තියෙන්නෙ මේක වැඩ කරන විදිය ගැන පොඩි video එකක්.


එහෙනම් යාලුවේ අදට ලිපිය ඉවරයි. මේ ඉගනගත්ත දේවල් භාවිතා කරලා octapad එකක්, school bell timetable එකක් වගේ දෙයක් උනත් හදාගන්න පුලුවන්. ඒ දේවන් ගැන ඉදිරි ලිපි වලින් කතා කරමු. එහෙනම් සුබ දවසක් හැමෝටම.

මේ post එක වැදගත් කියල හිතෙනව නම් පහලින් දාල තියන ad එක click කරල මට support එකක් දෙන්න.















Comments

  1. Ela. Octapad eka gana oni ikmanata

    ReplyDelete
  2. හැකි ඉක්මනින් ඒ ගැනත් කියලා දෙන්නම්.

    ReplyDelete
  3. Sd eken direct octapad eka daandakoo....

    ReplyDelete

Post a Comment

Popular posts from this blog

Arduino IO Pin සමග ගනු දෙනු - Part 2

Arduino Coding පටන්ගමු