Saturday, November 10, 2018

আরডুইনো পরিচিতি Bangla Tutorial | Arduino Hatekhori

LED জ্বালানো থেকে শুরু করে ইন্টারনেটের মাধ্যমে বাসার ফ্যান,লাইট ইত্যাদি নিয়ন্ত্রণ করা সবই সম্ভব আরডুইনো দিয়ে।
 আরডুইনো কি সেটা জানার জন্য তার আগে অবশ্যই দুটি জিনিস জেনে নিতে হবে। মাইক্রোকন্ট্রোলার ও প্রোগ্রামার বা  লোডার।

মাইক্রোকন্ট্রোলার: মাইক্রোকন্ট্রোলার ইলেকট্রনি· জগতের এক অবিস্মরনীয় উদ্ভাবন। এটি একটি সিঙ্গেল চিপ মাইক্রো  ক¤িপউটার। এটি একটি সমšি^ত বর্তনী (IC) এটি দিয়ে ক¤িপউটার প্রোগ্রামের মাধ্যমে যেকোন লজিক্যাল সার্কিট ক্সতরি করা যায়। এটি দিয়ে যে কাজ করতে চান তার জন্য প্রোগ্রাম লোড করে দিলেই সেই অনুযায়ী মাইক্রোকন্ট্রোলার কাজ করা শুরু করবে।
প্রোগ্রামার বা লোডার: ক¤িপউটারে লিখিত প্রোগ্রাম মাইক্রোকন্ট্রোলারে লোড করার সার্কিটই হলো প্রোগ্রামার বা লোডার বা  বার্নার। মাইক্রোকন্ট্রোলারে সিরিয়াল পোর্ট,প্যারালাল/প্রিন্টার পোর্ট এবং USB পোর্টের মাধ্যমে প্রোগ্রাম লোড করা যায়।



আরডুইনো হলো তিনটি জিনিসের সমš^য়।
 ১.ডেভেলপমেন্ট বোর্ড,২.প্রোগ্রামিং এনভায়রনমেন্ট,৩.কমিউনিটি বা সাপোর্ট।

ডেভলপমেন্ট বোর্ড: একটি সিঙ্গেল বোর্ডে মাইক্রোকন্ট্রোলার ও লোডার স্থাপন করে ডেভেলপমেন্ট বোর্ড ক্সতরি করা হয়।  এতে আলাদা কোন লোডারের প্রয়োজন হয় না সরাসরি USB দিয়ে প্রোগ্রাম লোড করা যায়।

প্রোগ্রামিং এনভায়রনমেন্ট (IDE): এটি একটি সফটওয়্যার বা ক¤পাইলার। এতে প্রোগ্রাম রচনা করে আরডুইনোতে লোড  করতে হয়। আরডুইনো কিভাবে কাজ করবে তার Instruction বা নির্দেশনা হলো এই প্রোগ্রাম।

কমিউনিটি: নতুন কোন ডিভাইস,সেন্সর,মডিউল ইত্যাদি ক্সতরি হলে তা আরডুইনোতে ব্যবহার উপযোগী করার জন্য  লাইব্রেরি ফাংশন ক্সতরির কাজ যারা করছে তারাই হলো কমিউনিটি বা সাপোর্ট অংশ। www.arduino.cc এমন একটি  কমিউনিটি।



ইনপুট/আউটপুট পিনের সংখ্যার উপর ভিত্তি করে বিভিন্ন ধরনের আরডুইনো বোর্ড পাওয়া যায়। তবে সবগুলো বোর্ড দিয়ে একই উপায়েই কাজ করতে হয়।





আরডুইনোর পিন পরিচিতি:  








same tutorial on youtube in bangla language: 




Robotics নিয়ে লেখা প্রথম বাংলা বই "আরডুইনো হাতেখড়ি" এখন পাওয়া যাচ্ছে রকমারি ডট কমে। অর্ডার করুন: http://rokomari.com/book/183842/arduino-hatekhori


Seven Segment Display Bangla Tutorial | Arduino Hatekhori | digital counter

চিত্রে যেই যন্ত্রাংশ টি দেখা যাচ্ছে এটিই হলো সেভেন সিগমেন্ট ডিসপ্লে। সেভেন সিগমেন্ট ডিসপ্লের ব্যবহার বহুল। আরডুইনো দিয়ে কাউন্টার, থার্মোমিটার, ডিজিটাল ঘড়ি ইত্যাদি তৈরিতে এর ব্যবহার উল্লেখযোগ্য। সেভেন সিগমেন্ট  ডিসপ্লে মুলত 7 টি  LED নিয়ে গঠিত। চিত্রে দেখা যাচ্ছে 7 টি  LED কে a,b,c,d,e,f এবং g নামে চিহ্নিত করা হয়েছে।
নিচের দিকে ডানপাশে dp বা decimal point নামে আরো একটি LED রয়েছে। এটি থাকতেও পারে আবার নাও থাকতে  পারে। কমন পিনের উপর ভিত্তি করে সেভেন সিগমেন্ট ডিসপ্লে দুই ধরনের। একটি Common Anode এবং অন্যটি  Common Cathode. যেই ডিসপ্লের ৭ টি  LED  -র Cathode বা নেগেটিভ পিনগুলো একত্রিত করে একটি কমন ক্যাথোড  পিন এবং সাতটি অ্যানোড পিন বের করা হয় তাকে Common Cathode সেভেন সিগমেন্ট ডিসপ্লে আবার যেই ডিসপ্লের ৭ টি LED -র Anode বা পজেটিভ পিনগুলো একত্রিত করে একটি কমন অ্যানোড পিন এবং সাতটি ক্যাথোড পিন বের করা  হয় তাকে Common Anode সেভেন সিগমেন্ট ডিসপ্লে বলে।
উপরের চিত্রে একটি Common Anode এবং একটি Common Cathode ডিসপ্লের অন্তর্গঠন দেখানো হয়েছে।

এবার আমরা একটি প্রজেক্ট ক্সতরি করার মধ্য দিয়ে আরডুইনোতে সেভেন সিগমেন্ট ডিসপ্লে ব্যবহার করা শিখব।


প্রথমে নিচের চিত্রের মত করে একটি সার্কিট ক্সতরি করুন।
0 থেকে 9 পর্যন্ত গণনা করানোর জন্য একটি প্রোগ্রাম এতে আপলোড করবো। ল¶্য করুন যদি আরডুইনোর  8,7,5,4,3,2,1 নম্বর পিনকে HIGH করে দেয়া যায় তবে 7 টি LED ই জ্বলে উঠবে কেননা এখানে একটি Common  Cathode  ডিসপ্লে ব্যবহার করা হয়েছে। এর ফলে ডিসপ্লে তে 8 প্রদর্শন করবে। আবার ল¶্য করুন যদি শুধুমাত্র 1 নম্বর  পিনকে LOW করে বাকি পিনগুলোকে HIGH রাখি তবে  g নামের LED টি ব্যতীত বাকি LED গুলো জ্বলবে এবং ডিসপ্লে তে  0 প্রদর্শন করবে। একটু চিন্তা করলেই বাকি অঙ্কগুলোর জন্য অপারেশন গুলো পেরে যাবেন।


চলুন প্রোগামাটি আপলোড করা যাক: 

int a = 8;
int b = 7;
int c = 5;
int d = 4;
int e = 3;
int f = 2;
int g = 1;


void setup()
{
 pinMode(a, OUTPUT); 
pinMode(b, OUTPUT); 
pinMode(c, OUTPUT); 
pinMode(d, OUTPUT); 
pinMode(e, OUTPUT); 
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void loop()
{
     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, HIGH);
     digitalWrite(e, HIGH);
     digitalWrite(f, HIGH);
     digitalWrite(g, LOW);
     delay(500);

     digitalWrite(a, LOW);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, LOW);
     digitalWrite(e, LOW);
     digitalWrite(f, LOW);
     digitalWrite(g, LOW);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, LOW);
     digitalWrite(d, HIGH);
     digitalWrite(e, HIGH);
     digitalWrite(f, LOW);
     digitalWrite(g, HIGH);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, HIGH);
     digitalWrite(e, LOW);
     digitalWrite(f, LOW);
     digitalWrite(g, HIGH);
     delay(500);

     digitalWrite(a, LOW);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, LOW);
     digitalWrite(e, LOW);
     digitalWrite(f, HIGH);
     digitalWrite(g, HIGH);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, LOW);
     digitalWrite(c, HIGH);
     digitalWrite(d, HIGH);
     digitalWrite(e, LOW);
     digitalWrite(f, HIGH);
     digitalWrite(g, HIGH);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, LOW);
     digitalWrite(c, HIGH);
     digitalWrite(d, HIGH);
     digitalWrite(e, HIGH);
     digitalWrite(f, HIGH);
     digitalWrite(g, HIGH);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, LOW);
     digitalWrite(e, LOW);
     digitalWrite(f, LOW);
     digitalWrite(g, LOW);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, HIGH);
     digitalWrite(e, HIGH);
     digitalWrite(f, HIGH);
     digitalWrite(g, HIGH);
     delay(500);

     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, HIGH);
     digitalWrite(e, LOW);
     digitalWrite(f, HIGH);
     digitalWrite(g, HIGH);
     delay(500);
  }


প্রোগ্রামটি শেখা যাকঃ

আরডুইনোর 7 টি পিনকে a,b,c,d,e,f,g নামে এবং আউটপুট হিসেবে ডিক্লেয়ার করা হয়েছে।
void loop() ফাংশনে  প্রতিটি অঙ্কের জন্য কমান্ড দেয়া হয়েছে এবং প্রতিটি অঙ্কের পর একটি করে  500 milisecond এর delay দেয়া হয়েছে।


**circuit & code download Link

same tutorial on youtube in bangla language: