ලිනක්ස් පාරිසරිකය මතදී PIC microcontroller ක්‍රමලේඛනය

4

Posted by chanakalin | Posted in Linux, PIC microcontrollers, PIC on Linux, අත්හදා බැලීම් | Posted on 19-12-2011

Tags: , , ,

කට්ටිය දන්නවනෙ ගොඩ දෙනෙක් micro controllers පාවිච්චි කරල එක එක දේවල් කරන්න ආසයි කියල. මේ අතරින් ගොඩක්ම ලංකාවෙ ජනප්‍රිය microchip ආයතනය නිෂ්පාදනය කරන PIC වර්ගයේ micro controller. හැබැයි ගොඩ දෙනෙක් හිතන් ඉන්නෙ ලිනක්ස් පාදක මෙහෙයුම් පද්ධති වලදි PIC program කරන්න අමාරුයි කියල. නෑ. ලිනක්ස් මෙහෙයුම් පද්ධති වලදිත් ලේසියෙන්ම මේ දේ කරන්න පුළුවන්. මම දැන් කියන්න යන්නෙ PIC 16F84A micro controller එක program කරන විදිය.

වින්ඩෝස් වලට MPLAB IDE මෘදුකාංගය වින්ඩෝස් වලදි වැඩ කරන්න microchip ආයතනය ලබා දුන්නට ඒක ලිනක්ස් වලට වැඩ කරන්නෙ නෑනෙ (MPLAB X IDE නම් ලිනක්ස් වලටත් තියනව. ඒත් මම තාම ඒක අත්හදා බලලනම් නෑ). Wine පාවිච්චි කරල කරත් සමහර වෙලාවට crash වෙන අවස්ථා තියනව.

මම මේතනදි IDE විදියට පාවිච්චි කලේ Piklab මෘදුකාංගය. ලිනක්ස් වලදි PIC program කරන්න තියන අංග සම්පූර්ණ IDE එකක්. කෝඩින් වලට පාවිච්චි කලේ Assembly language එක. Compile කරන්න පාවිච්චි කලේ GPUtils වලින් ලබාදෙන GPASM assembler එක. GPUtils ඉන්ස්ටෝල් කරගද්දි gpasm assembler එක වගේම compile කරපු කෝඩ් එක සිමියුලේට් කරගන්න gpsim කියල simulator එකකුත් ලැබෙනව.

piklab

Piklab මෘදුකාංගය

අපි compile කරගත්තට පස්සෙ ලැබෙන hex file එක PIC එකට බර්න් කරන්නත් පාවිච්චි කරන programming board එකට ගැලපෙන programmer එකකුත් තෝරගන්න ඕනෙනෙ. මේ වැඩේට JDM programmer එකක් පාවිච්චි කරනවනම් picprog මෘදුකාංගය ඒ සඳහා පාවිච්චි කරන්න පුළුවන්. Piklab නම් programmers වර්ග ගණනාවකට සහය දක්වනව. මම නම් මේකට පාවිච්චි කලේ pikkit 2 programmer එකක් (ගත්තෙ මෙතනින්). ඒකට පාවිච්චි කලේ pk2cmd. pk2cmd කියන්නෙ microchipලම pikkit 2 වලට දෙන command line interface එක. Pikkit 2 වෙබ් පිටුවට ගිහින pk2cmd ලබාගන්න පුළුවන්.

මේව පාවිච්චි කරල ලිනක්ස් මෙහෙයුම් පද්ධති වලදි PIC program කරන හැටි ගැන ඉදිරියට ලිපි පෙලක් දාන්නම්.

මේ තියෙන්නෙ මම LED දෙකක් මාරුවෙන් මාරුවට පත්තුවෙන්න ලිනක්ස් වලදි program කරපු මගෙ පලවෙනි PIC එකයි ප්‍රෝග්‍රෑම් කරපු හැටියි. වීඩියෝ කලේ phone එකකින් නිසා පැහැදිලිනම් නෑ.

හන්තාන ලිනක්ස් මතදී AT commands භාවිතය

4

Posted by chanakalin | Posted in අත්හදා බැලීම් | Posted on 07-12-2011

හැමෝම දන්නවනෙ ගොඩක් ලිනක්ස් මෙහෙයුම් පද්ධති එක්ක mobile phone, USB modem වගේ ඒවගෙ SMS කෙලියට එහෙම පාවිච්චි කරන්නෙ Wammu නැත්නම් Gammu කියල. ශාකුන්තල අයිය ලිපි දෙකක් ලියල තිබුණ ඕව ගැන. සමහරු Waderරුත් පාවිච්චි කරනව. හැබැයි තව විදියක් තියනව. ඒ තමා ඔය මොක පාවිච්චි කරත් කම්පියුටරේ ඉඳන් mobile phone එකට හරි USB modemඑකට හරි යනව AT Commands.

මට ඔය වැඩේ මතක් වුනේ http://blog.electronicinside.com/2010/08/at-commands.html ලිපිය දැක්කට පස්සෙ. ගූගල් පැත්තෙ කැරකුනාම ගොඩ දෙනෙක් ඒ විදියම පාවිච්චි කරනව කියලත් දැක්ක. කලින් පෙන්නපු Electronic inside බ්ලොග් එකේ ලිපියෙන් Hyper Terminal පාවිච්චි කරල කරන දේ ලේසියෙන්ම හන්තාන ලිනක්ස් වලදිත් කරගන්න පුළුවන්. ඒකට පාවිච්චි කරන්න ඕනෙ minicom කියල වැඩසටහන. මේකත් හන්තාන ලිනක්ස් එක්ක පෙරනිමියෙන්ම ලැබෙනව.

මුලින්ම කරන්න ඕනෙ Applications -> System tools වලට ගිහින් Terminal එක විවෘත කරගන්න එක. ඊට පස්සෙ root විදියට log වෙන්න ඕනෙ. නැතිනම් ආරක්ෂක හේතූන් මත USB port එහෙම open කරන්න දෙන්නෙ නෑ. ඒකට Terminal එකේ su කියල ටයිප් කරල enter කරන්න. එකතොට ඔයාල හන්තාන ලිනක්ස් ස්ථාපනය කරද්දි root ගිණුමට ලබාදුන්නු password එක ටයිප් කරල enter කරන්න. දැන් [email protected]<පරිගනකයේ නම> කියල Terminal එකේ පෙනෙයි.

දැන් කරන්න ඕනෙ minicom වලට phone එකට හරි modem එකට හරි අදාල USB port එක තෝරල දෙන එක. ඒකට minicom -s  කියල ටයිප් කරන්න. පහල තියන රූපෙ මේ වෙනකම් පියවර ටික තියනව.

දැන් එන මෙනුවෙ Serial port setup කියල තෝරන්න. දැන් පහල තියනව වගේ එකක් පෙනෙයි.

දැන් A අකුර press කරල Serial Device එක තෝරන්න. මේකට ප්‍රකෘතියෙන් තියෙන්නෙ /dev/modem කියල. ඒක /dev/ttyUSB0 කියල දෙන්න. මොකද බොහෝවිට phone එක හරි modem එක හරි තියෙන්නෙ ඔය පිහිටුමේ නිසා. ඊට පස්සෙ E අකර press කරල Bit rate එක තෝරන්න. ඒකට බොහෝවිට හරියන්නෙ 115200. ඒ නිසා ඒක තෝරල වැඩ කරේ නැත්නම් වෙනස් කරල බලන්න. දැන් Enter කරල Serial port setup කලින් තෝරපු මෙනුවට ආවම Save setup as dlf තෝරන්න. තෝරල Exit from Minicom තෝරන්න.

දැන් minicom කියල terminal එකේ ටයිප් කරන්න. Error එකක් ආවොත් /dev/ttyUSB0 කියල දුන්නු තැන ttyUSB1 වගේ වෙනස් කර කරා බලන්න. minicom වලට පිවිසුනාට පස්සෙ ATI කියල ටයිප් කරල enter කරන්න. (සිම්පල් කැපිටල් මාරු උනාට මොකුත් වෙනසක් වෙන්නෙ නෑ) Phone එකේ හරි මොඩම් එකේ හරි IMEI එක, වර්ගය, මාදිලිය වගේ ටිකක් පෙන්නනව. ඒ කියන්නෙ minicom හරියට කනෙක්ට් වෙලා කියන එක.

ඊට පස්සෙ කරන්න ඕනෙ AT commands ටික http://blog.electronicinside.com/2010/08/at-commands.html වල තියනව. ආයෙ මමත් අමුතුවෙන් කියන එකේ තේරුමක් නෑනෙ 😛

SMS එකක් යවන හැටි විතරක් මෙතන කියන්නම්.
AT+CMGF=1  Enter කරන්න.
දැන් AT+CMGS=”<යවන්නාගේ අංකය>” ටයිප් කරල Enter කරන්න.
දැන් > ආවට පස්සෙ SMS එක ටයිප් කරල CTRL+Z ගහන්න.

මතක ඇතිව minicom පාවිච්චි කරල ඉවර උනාට පස්සෙ ඒකෙන් Exit වෙන්න. නැතිනම් ඒ පාවිච්චි කරපු පෝට් එක ආයෙ Network manager එට එහෙම පාවිච්චි කරන්න බැරිව lock වෙනව ආයෙ Restart කරනකම්ම. (Exit වෙන්න CTRL+A ගහල X ගහන්න)

 මටනම් Huawei E156, ZTE MF100 දෙකටම සාර්ථකව වැඩ කලා. අනික වෙනත් වැඩසටහන් වලට සාපේක්ෂව මේ ක්‍රමයේ ප්‍රතිචාර දැක්වීමේ වේගයත් වැඩියි. මේ ක්‍රමයට ඔයාලට AT commands පාවිච්චි කරල කරන ඕනෙම දෙයක් කරගන්න පුළුවන්. SIM lock කඩන එක, Voice feature enable/disable කරන එක, Virtual cd rom එක enable/disable කරන එක වගේ දේවල් උනත් හන්තාන ලිනක්ස් වල කරන්න පුළුවන් minicom පාවිච්චි කරල මේ විදියට. කරල බලල කියලම යන්න.

මේ විදියට Serial port එකත් එක්ක communicate කරන්න උනත් පුළුවන්. ඒකට ttyS0,ttyS1 වගේ කියල පාවිච්චි කරන්න. Parallel port එකත් එක්කත් පුළුවන්. ඒත් මම තාම අත්හදා බලලනම් නෑ. අපිත් Green House automation system එක හදද්දි ප්‍රෝග්‍රෑම් කරන්න කලින් Circuit එක හරියට වැඩද කියල චෙක් කරල බැලුවෙ හන්තාන ලිනක්ස් වලදිම minicom වලින්.