Monday, March 23, 2015

Netduino Plus 2 Development Board

Robotic Arm ပံုစံငယ္ကို ေမာင္းႏွင္ထိန္းခ်ဳပ္ဖို႕ အဓိက Controller အျဖစ္ Netduino Plus 2 ကိုေရြးခ်ယ္ခဲ႕ပါတယ္။ Servo Motor ေတြေမာင္းႏွင္ဖို႕ Input/ Output ေတြကိုင္တြယ္ဖို႕ အတြက္ စဥ္းစားေရြးခ်ယ္စရာ Development Board မ်ားစြာရွိပါတယ္။ ကၽြန္ေတာ္တို႕နဲ႕ ရင္းႏွီးတဲ႕ Development Board ေတြကေတာ့

  • Arduino
  • FEZ Panda II
  • Mini2440
  • Raspberry pi
  • PIC Micro Controllers 
  • LinkIt One
  • Edison
  • Beaglebone
  • Netduino Board ေတြပဲျဖစ္ပါတယ္။
ေရြးခ်ယ္စရာမ်ားစြာထဲမွာမွ Netduino ကိုေရြးခ်ယ္ခဲ႕ၿ႔ပီး Netduino မ်ိဳးကြဲေတြထဲမွ Netduino Plus 2 ကို Main SoC Module အျဖစ္ ေရြးခ်ယ္ခဲ႕ပါတယ္။



Netduino Plus 2 ကိုေရြးခ်ယ္ခဲ႕ရတဲ႕ အေၾကာင္းရင္းမ်ား
  •  Netduino Plus 2 ဟာ ARM7  32 bit processor  ကို အသံုးျပဳထားတဲ႕အတြက္ အျခား Arduino လိုမ်ိဳဳး 8 bit board ေတြနဲ႕ယွဥ္ရင္ အလြန္ျမန္ဆန္ၿပီး စြမ္းေဆာင္ရည္ျမင့္တာကိုေတြ႕ရပါတယ္။
  • Netduino Plus 2 ရဲ႕ Programming ဟာ SDK အသံုးျပဳရၿပီး C# နဲ႕ေရးသားတဲ႕အတြက္ ကၽြန္ေတာ္တို႕နဲ႕  friendly ျဖစ္တာကိုေတြ႕ရပါတယ္။
  • Netduino Plus 2 ဟာ နာမည္နဲ႕လိုက္ေအာင္ပဲ Network ေပၚကေန communicate ျပဳလုပ္ႏိုင္ဖို႕ အထူး ဒီဇိုင္းဆြဲ ထုတ္လုပ္ထားတာျဖစ္ပါတယ္။ RJ 45 Connector ေတြနဲ႕  SD card slot ေတြ ပါဝင္လာတာမို႕ Arduino လိုမ်ိဳး ျပင္ပမွ သီးသန္႕ module ကဒ္ထပ္စိုက္သံုးဖို႕ မလိုေတာ့ပါဘူး။
  • အရြယ္အစား ေသးငယ္က်စ္လ်စ္တာမို႕ ေနရာယူမႈနည္းပါးၿပီး compact ျဖစ္ပါတယ္။
  • Netduino အတြက္ forum သီးသန္႕ရွိၿပီး အလြယ္တကူ ေလ့လာသင္ယူႏိုင္ပါတယ္။


Netduino Plus 2 ရဲ႕ အားနည္းခ်က္မ်ား 

  •  လက္ရွိအသံုးအမ်ားဆံုး Arduino Board ေတြနဲ႕ ႏိႈင္းယွဥ္ရင္ Netduino ဟာ Microsoft Visual Studio၊ .Net Framework ၊ .Net Micro Framework ၊ SDK .. အစရွိသျဖင့္ အဆင့္ဆင့္ ထည့္သြင္းေရး သားရတာျဖစ္ၿပီး အနည္းငယ္ ရႈပ္ေထြးပါတယ္။
  • Netduino Plus 2 ရဲ႕ SDK (Software Development Kit) ဟာ develop လုပ္ေနဆဲ အဆင့္မွာသာရွိတဲ႕အတြက္ ၄င္းအတြက္ Sample Code ေတြ ရွားပါးတာကိုေတြ႕ရပါတယ္။
  • Library မ်ား နည္းပါးတဲ႕အတြက္ မိမိအသံုးျပဳလိုတဲ႕ Component မ်ားအလိုက္ ကိုယ္တိုင္ library ေရးရတာမ်ိဳး၊ အနည္းငယ္ ခက္ခဲပါတယ္။
  • Firmware Version 4.2.2.1 ကေန 4.3.1.0 ဆီ ျမွင့္တင္ေပးႏိုင္မွသာ PWM နဲ႕ RTOS စနစ္ေတြေကာင္းေကာင္း အလုပ္လုပ္ႏိုင္တာကိုေတြ႕ရပါတယ္။

Netduino အေၾကာင္းေအာက္ပါ website မ်ားမွာေလ့လာႏိုင္ပါတယ္။
www.netduino.com
www.forums.netduino.com




Wednesday, March 18, 2015

Torobot 32 Channel Servo Controller

32 Ch Servo Controller
32Channel Servo Controller မွာဆိုရင္ On Board Flash Memory 512KB ပါရွိၿပီး  Servo Motor 32 လံုးထိ တစ္ၿပိဳင္ထဲ ေမာင္းႏွင္ႏိုင္ ပါတယ္။ ကြန္ပ်ဴတာနဲ႕လဲ USB communication မွတဆင့္ ခ်ိတ္ဆက္ႏိုင္သလို Serial နဲ႕လည္း အျခားေသာ  development board မ်ားနဲ႕ ခ်ိတ္ဆက္ႏိုင္ပါတယ္။ 










32 Ch Servo Controller


16 Ch နဲ႕ 32 Ch torobot servo controller မ်ားဟာ robotic platform ရွိလက္ရွိအသံုးအမ်ားဆံုး Arduino development board မ်ားျဖင့္ ခ်ိတ္ဆက္အသံုးျပဳေလ့ ရွိၾကၿပီး စြမ္းေဆာင္ရည္   ေကာင္းမြန္ပါတယ္။
32 Channel Servo Controller အား ebay တြင္ေလ့လာၾကည့္ႏိုင္ပါတယ္။
Computer မွာခ်ိတ္ဆက္အသံုးျပဳဖို႕ဆိုရင္ေတာ့ လိုအပ္တဲ႕ driver software ထည့္သြင္းေပးရမွာပါ။ လိုအပ္တဲ႕ driver ကို ေအာက္ပါ link မွာ ေဒါင္းလုပ္လုပ္ယူႏိုင္ပါတယ္။

Serial နဲ႕ ခိုင္းမယ္ ဆိုရင္ေတာ့ ASCII ေတြေပးပို႕ၿပီးခိုင္းေစႏိုင္ပါတယ္။ Servo Motor မ်ားဟာ loading ရွိခ်ိန္မွာ Current Consumption မ်ားျပားတဲ႕အတြက္ သီးျခား power supply unit ျဖင့္ ေမာင္းႏွင္ေပးဖို႕ လိုအပ္ပါတယ္။ 32 Ch Servo Controller မွာ Servo တစ္လံုးခ်င္းစီျဖစ္ေစ၊ Servo Group အလိုက္ျဖစ္ေစ ေမာင္းႏွင္ႏိုင္ပါတယ္။ အေသးစိတ္ကို ေအာက္ပါ user manual မွာ ၾကည့္ရႈႏိုင္ပါတယ္။ 


Servo Motor Controlling via TCP/IP

ဒီေနရာမွာ ေရးသားတင္ျပတာေတြဟာ ကၽြန္ေတာ္တို႕ျပဳလုပ္ခဲ႕တဲ႕ လုပ္ေဆာင္ခ်က္ေတြကို မွတ္တမ္းတစ္ခု အေနနဲ႕ ေရးသားထားတာျဖစ္ၿပီး စဥ္းစားပံုစဥ္းစားနည္း နဲ႕ အခက္အခဲေတြ ၊ ကၽြန္ေတာ္တို႕ အသံုးျပဳခဲ႕တဲ႕ logic ေတြကိုသာ အဓိကထား ရွင္းလင္းသြားမွာျဖစ္ပါတယ္။ Programming Coding မ်ားရွင္းလင္းခ်က္ အေသးစိတ္ကိုေတာ့ ေနာက္ပိုင္း post ေတြမွပဲ တင္ျပေဆြးေႏြးသြားမွာျဖစ္ပါတယ္။

ကၽြန္ေတာ္တို႕အေနနဲ႕ လက္တံကို ေမာင္းႏွင္ဖို႕စဥ္းစားတဲ႕အခါ နည္းလမ္းမ်ားစြာကိုေတြ႕ရပါတယ္။ Servo Motor ေတြကို တိုက္ ရိုက္ျဖစ္ေစ remote နဲ႕ျဖစ္ေစ ေမာင္းႏွင္ႏိုင္ပါတယ္။

   ေမာင္းႏွင္နည္းအခ်ိဳ႕ကို တင္ျပရရင္

 - Keypad ေတြကို ႏွိပ္ၿပီး တိုက္ရုိက္ခိုင္းေစျခင္း
 - Joystick ကိုအသံုးျပဳၿပီး ထိန္းခ်ဳဳပ္ႏိုင္ျခင္း
 - Wireless Transceiver Module မ်ားအသံုးျပဳၿပီးခိုင္းေစျခင္း
 - Joystick ႏွင့္ Wireless Module မ်ားေပါင္းစပ္အသံုးျပဳၿပီး အေဝးမွ ထိန္းခ်ဳဳပ္ျခင္း
 - Gyro Sensor, IMU Sensor မ်ားအသံုးျပဳ၍ ထိန္းခ်ဳပ္ျခင္း
 - Computer အသံုးျပဳ၍ USB, Serial Communication မ်ားျဖင့္ ထိန္းခ်ဳပ္ျခင္း
 - အသံ ၊ Motion ႏွင့္ အျခားေသာ Sensor မ်ားအသံုးျပဳ ေမာင္းႏွင္ျခင္း..
....
အစရွိသျဖင့္ Robotic Arm တစ္ခုကို ထိန္းခ်ဳပ္ေမာင္းႏွင္ႏိုင္ရန္ နည္းလမ္းမ်ားစြာရွိပါတယ္။
 

2014 ခုႏွစ္အတြင္းမွာေတာ့ ကၽြန္ေတာ္တို႕ဟာ TCP/IP ကို အသံုးျပဳၿပီး Network ခ်ိတ္ထားတဲ႕ Computer ေတြပၚကေန ေမာင္းႏွင္ႏိုင္ဖို႕ လုပ္ေဆာင္ခဲ႕ၾကပါတယ္။ 

TCP/IP ဟာ တကမာၻလံုး အသံုးအမ်ားဆံုးေသာ ဆက္သြယ္ေရး protocol တစ္ခုျဖစ္ပါတယ္။ ကၽြန္ေတာ္တို႕ ယခု အင္တာနက္ကို အသံုးျပဳၿပီးစာေတြ ေရးသား ဖတ္ရႈႏိုင္ျခင္းဟာ TCP/IP ရဲ႕ ေက်းဇူးေၾကာင့္ျဖစ္ပါတယ္။ ကမာၻတစ္ဝွမ္း သန္းေထာင္ေပါင္းမ်ားစြာေသာ ကြန္ပ်ဴတာေတြဟာ ၄င္းတို႕ အခ်င္းခ်င္း TCP/IP ကိုအသံုးျပဳ ၿပီး ကြန္ရက္ႀကီးမ်ား ခ်ိတ္ဆက္ထားၾကတာျဖစ္ပါတယ္။ ကၽြန္ေတာ္ကိုယ္တိုင္လဲ Wireless Networking သမားတစ္ေယာက္ျဖစ္တာမို႕ TCP/IP ကို အသံုးျပဳၿပီး WiFi ေပၚကေန ခိုင္းေစႏိုင္ဖို႕ကို ဦးစားေပး လုပ္ေဆာင္ခဲ႕ပါတယ္။

ကၽြန္ေတာ္တို႕အသံုးျပဳတဲ႕ Programming Language က C# .NET ျဖစ္ပါတယ္။ လက္ထဲမွာ ရွိတဲ႕ Visual Studio 2010 ကို အသံုးျပဳၿပီး TCP/IP ေပၚကေန ကြန္ပ်ဴတာအခ်င္းခ်င္း communicate လုပ္ႏိုင္ဖို႕ စဥ္းစားခဲ႕ၾကပါတယ္။ TCP/IP ကို အသံုးျပဳႏိုင္ဖို႕ ကၽြန္ေတာ္တို႕ဟာ Online Library ေတြလို႕ ေခၚဆိုရမယ့္ Search Engine ေတြကိုပဲ အသံုးျပဳခဲ႕ရွာေဖြခဲ႕ပါတယ္။ အရင္ဆံုး စဥ္းစားမိတာကေတာ့ Chatting Program ပါ။ LAN (Local Area Network ) ထဲမွာ ကြန္ပ်ဴတာတစ္လံုးနဲ႕တစ္လံုး အျပန္အလွန္ စာရုိက္ၿပီး မက္ေဆ့ပို႕ ႏိုင္တဲ႕ program ထဲမွာ TCP/IP ကိုအသံုးျပဳမွာေသခ်ာပါတယ္။ ဒါေၾကာင့္ How to make a Chatting Program in C#? .... ရွာေဖြရင္းနဲ႕ပဲ ကၽြန္ေတာ္တို႕ TCP/IP အတြက္ လိုအပ္တဲ႕ socket ဖြင့္၊ပိတ္ နည္း၊ ဦးတည္ထားတဲ႕ IP address ဆီ data ပို႕လႊတ္နည္း၊ IP address တစ္ခုဆီမွ Data မ်ားလက္ခံရယူနည္း၊ အခ်င္းခ်င္း ခ်ိတ္ဆက္ဖို႕ port မ်ားသတ္မွတ္နည္း စသည္တို႕ သိရွိလာရပါတယ္။


ကၽြန္ေတာ္တို႕ Client Program နဲ႕ Server Program ဆိုၿပီး Program ႏွစ္ခု ခြဲေရးခဲ႕ပါတယ္။ အရင္ဆံုး IP ႏွစ္ခု အျပန္အလွန္ ခ်ိတ္ဆက္ data ေတြ အျပန္အလွန္ပို႕ၿပီး communicate လုပ္ႏိုင္လာပါတယ္။

Data ေတြ အျပန္အလွန္ပို႕ၿပီးတဲ႕ ေနာက္မွာ Servo Motor ေတြကို ေမာင္းႏွင္ဖို႕ စဥ္းစားရပါတယ္။ Servo Motor ေတြေမာင္းႏွင္ႏိုင္ဖို႕ USB port ကေန data ထုတ္ၿပီး 32 Ch Servo Controller ကတဆင့္   ေမာင္းႏွင္ခဲ႕ပါတယ္။  32 Ch Servo Controller အေၾကာင္းကို ေနာက္ထပ္ ပို႕စ္ တစ္ခုနဲ႕ ရွင္းျပေပးထား ပါတယ္။

Servo Motors Controlling via TCP/IP  လုပ္ငန္းအတြက္ Block Diagram ကေတာ့ ေအာက္ပါ အတိုင္းျဖစ္ပါတယ္။

(background color  ေၾကာင့္မျမင္ရခဲ႕ရင္ ပံုကိုႏွိပ္ၾကည့္ႏိုင္ပါတယ္။)



Servo Motor ေတြကို Degree အလိုက္ တန္ဖိုးေတြေပးပို႕ၿပီး WiFi ေပၚကေန လိုရာကိုေမာင္းႏွင္ႏိုင္ခဲ႕ ပါတယ္။ ဒီအဆင့္အထိဟာ Servo Motor Controlling over TCP/IP communications ပဲျဖစ္ပါတယ္။ Robotic Arm တစ္ခု ေမာင္းႏွင္ႏိုင္တဲ႕ အဆင့္ေတာ့ မဟုတ္ေသးပါဘူး။ ေအာက္ပါ GUI ေတြကေတာ့ ကၽြန္ေတာ္တို႕ စမ္းသပ္ ေရးသားခဲ႕တဲ႕ program ေတြျဖစ္ပါတယ္။



Robotic Arm Mechanism


ဒီ project အတြက္ ဒီဇိုင္း စဥ္းစားၾကတဲ႕အခါ စက္လႈပ္ရွားမႈအပိုင္း (Mechanism အပိုင္း) ကို အဓိက မထားဘဲ ထိန္းခ်ဳပ္ ေစခိုင္းျခင္း Controlling အပိုင္းကိုသာ အဓိကထားၿပီး စဥ္းစားခဲ႕ၾကပါတယ္။ Controlling (Electronic) အပိုင္းကို အဓိကထားေလ့လာခဲ႕ၿပီး လက္တံအျဖစ္ 6 DoF ( Six-Servo Robotic Arm) ပံုစံငယ္ကို အသံုးျပဳခဲ႕ပါတယ္။ DoF အဓိပၸာယ္ကေတာ့ Degree of Freedom ျဖစ္ၿပီးလြတ္လပ္စြာ လႈပ္ရွားႏိုင္တယ္လို႕ ဆိုလိုပါတယ္။


Robotic Arm ဟာအလ်ား 180mm ရွိၿပီး အရြယ္အစားတူ Servo Motor ေျခာက္လံုးနဲ႕ ေမာင္းႏွင္ပါတယ္။
အားသာခ်က္အေနနဲ႕ Robotic Arm Design တစ္ခုကို ခ်ဥ္းကပ္ေလ့လာၾကတဲ႕အခါ ကုန္က်စားရိတ္ သက္သာစြာနဲ႕ ေလ့လာႏိုင္တာကိုေတြ႕ရွိရပါတယ္။ Servo Motor မ်ားအသစ္လဲ လိုလွ်င္ျဖစ္ေစ၊ အမ်ိဳးအစားေျပာင္းလဲ လိုလွ်င္ျဖစ္ေစ ျပည္တြင္းမွာပင္ Motor ေတြကို ဝယ္ယူႏိုင္တဲ႕အတြက္ ကုန္က်စားရိတ္သက္သာစြာနဲ႕ ေျပာင္းလဲ တပ္ဆင္ႏိုင္ပါတယ္။




အားနည္းခ်က္အေနနဲ႕ကေတာ့ Precision အတိအက်လိုအပ္တဲ႕ လႈပ္ရွားမႈေတြအတြက္ အသံုးျပဳႏိုင္ျခင္း မရွိပါဘူး။ လက္တံရဲ႕ အဆစ္အခ်ိဳးခ်ိတ္ဆက္ထားမႈမ်ားဟာ tolerance  အနည္းငယ္ရွိတဲ႕အတြက္ ေသးငယ္ တဲ႕ ပစၥည္းမ်ားကိုေကာက္ယူရာမွာ အနည္းငယ္ခက္ခဲပါတယ္။

ကၽြန္ေတာ္တို႕ရဲ႕ မူလရည္ရြယ္ခ်က္ကေတာ့ လက္တံ ႀကီးသည္ျဖစ္ေစ၊ ေသးသည္ျဖစ္ေစ ထိန္းခ်ဳဳပ္မႈ အပိုင္းကေတာ့ အတူတူ ပဲျဖစ္ပါတယ္။ ထိန္းခ်ဳဳပ္ေမာင္းႏွင္ႏိုင္မႈကိုပဲ အဓိကထားေလ့လာၾက တာျဖစ္ပါတယ္။ ေဒၚလာေသာင္းေက်ာ္တန္ Robotic Arm Mechanism ေတြ မဝယ္ႏိုင္လဲ ေသးငယ္တဲ႕ Mechanism နဲ႕လည္း Robotic Arm Controlling System တစ္ခုကို ေလ့လာႏိုင္ေစဖို႕ ရည္ရြယ္ပါတယ္။

Online Store ေတြျဖစ္တဲ႕ Ebay နဲ႕ Amazon တို႕မွာ 6 DoF Robotic Arm ဆိုၿပီးရွာလွ်င္ ဒီပံုစံအမ်ိဳးအစားတူ လက္တံေတြေတြ႕ရမွာျဖစ္ပါတယ္။ ကၽြန္ေတာ္တို႕ကေတာ့ 2014 ခုႏွစ္ 3 လပိုင္းမွာ Yangon Online Store ကေန မွာယူခဲ႕တာျဖစ္ပါတယ္။ လက္တံနဲ႕အတူ 32 Ch - Servo Controller, 16 Ch - Servo Controller, Wireless Module, Bridge Rectifier, 5v/10A Switching Mode Power Supply တို႕ပါ တြဲဖက္ မွာယူခဲ႕ပါတယ္။