কিভাবে নিজেই তৈরি করবে আরডুইনো বোর্ড?

অলরেডি পূর্বের টিউটরিয়্যাল গুলোতে আমরা শিখে নিয়েছি- 

১) কিভাবে আরডুইনো’র পাওয়ার ইউনিট কাজ করে? 

২) একটি নতুন ATmega328P-তে কিভাবে Bootloader Burn করতে হয়?

 

এখন যদি শুধুমাত্র Programmer ইউনিট সম্পর্কে তুমি একটি স্পষ্ট ধারণা অর্জন কতে পারো, তাহলে তুমিই হয়ে যেতে পারবে একজন Arduino ডেভেলপার! মানে তুমি নিজেই এখন থেকে কাস্টমাইজড আরডুইনো বোর্ড তৈরি করতে পারবে। 

 

Arduino-Board

 

কাস্টমাইজড আরডুইনো বোর্ড তৈরিতে কি সুবিধা? 

১) অতিরিক্ত খরচ করে আরডুইনো বোর্ড ক্রয়ের প্রয়োজন হবে না। 

২) প্রোফেশনাল যে কোন সার্কিট তৈরিতে ব্যবহার করা যাবে। 

৩) বাণিজ্যিক উদ্দেশ্যে তৈরি যেকোন ফিনিশড প্রোডাক্টে ব্যবহার করা যাবে। 

৪) আরডুইনো সম্পর্কে তোমার জ্ঞান আরো প্রসিদ্ধ হবে। 

তাহলে আর দেরি কেন? চলো শুরু করি…. 

 

কোন পদ্ধতিতে আরডুইনো’তে প্রোগ্রাম আপলোড হয়? 

সব ধরণের আরডুইনো বোর্ডেই Microchip AVR মাইক্রোকন্ট্রোলার ব্যবহার করা হয়। AVR সিরিজের মাইক্রোকন্ট্রোলারকে প্রোগ্রাম করতে AVR Programmer ব্যবহার করা হয়, যা SPI Protocol ব্যবহার করে Program Memory-কে এক্সেস করে থাকে। এক্ষেত্রে Programmer এবং Target মাইক্রোকন্ট্রোলারের মধ্যে কমিউনিকেশনের জন্য MISO, MOSI, SCK, RESET, VCC এবং GND এই ৬টি পিন ব্যবহার করা হয়।

 

spi-master-slave-wiring-diagram

 

কিন্তু প্রতিবার প্রোগ্রামিং এর সময় বারবার এই ৬টি তারের সংযোগ দেওয়া, নতুন মাইক্রোকন্ট্রোলার শিক্ষার্থীদের নিরুৎসাহের কারণ হতে পারে। মাইক্রোকন্ট্রোলারকে সহজে প্রোগ্রামিং এর জন্য আরডুইনো’তে Bootloader বা অপারেটিং সিস্টেম ব্যবহার করা হয়েছে। ফলে UART Protocol ব্যবহার করে মাত্র দুইটি তার (RX এবং TX) ব্যবহার করেই মাইক্রোকন্ট্রোলারে প্রোগ্রাম আপলোড করা সম্ভব।

 

uart-wiring-diagram

 

তবে এই পদ্ধতিতে প্রোগ্রাম আপলোড করতে USB to Serial Converter ব্যবহারের প্রয়োজন হয়। বাজারে বিভিন্ন ধরণের USB to Serial Converter পাওয়া যায় (যেমনঃ CH340, FT232RL, CP2102,   CP2104 ইত্যাদি)। তবে আরডুইনো ডেভেলপার সম্ভবত Self Branding (COM পোর্টে আরডুইনো’র নাম দেখানো) এর জন্য অন্য একটি মাইক্রোকন্ট্রোলার ATmega16U2 ব্যবহার করে এই কনভার্টার অংশটি নিজেরাই তৈরি করে নিয়েছে! 

তবে ক্ষেত্রবিশেষ তুলনামূলক ভাবে কমদামী ভার্ষণ গুলোতে আবার এই USB to Serial Converter আইসি ব্যবহার করতে দেখা যায়। যেমনঃ Arduino Uno R3 SMD, Arduino Nano ইত্যাদি। 

USB to Serial Converter হিসাবে সরাসরি Serial Chip ব্যবহার করা হোক অথবা ATmega16U2 Microcontroller, উভয় ক্ষেত্রে কাজ কিন্তু একই! 

 

ATmega16U2-vs-CH340-Serial-Converter

 

বরং Serial Chip ব্যবহারে প্রোডাক্টের মূল কিছুটা হলেও হ্রাস করা সম্ভব। পাশাপাশি এটি মূল Microcontroller বোর্ডের সাথে integrated না করে, বোর্ডের সাইজ এবং দাম আরো এক ধাপ কমিয়ে আনার সুযোগ থাকে। 

 

ব্রেড বোর্ডে তৈরি ছোট্ট আরডুইনো

কাস্টমাইজড আরডু্‌ইনো বোর্ড তৈরিতে আমাদেরকে ৩টি অংশ সম্পর্কে খুব ভালো জ্ঞান রাখতে হবে। 

১) আরডুইনো পাওয়ার ইউনিট 

২) আরডুইনো বুটলোডার বানিং

৩) ইউএসবি টু সিরিয়ার কনর্ভাটার 

আরডুইনো পাওয়ার ইউনিট সম্পর্কে পূর্বের টিউটরিয়্যালে আমি বিস্তারিত আলোচনা করেছি। সেখানে আমি দেখিয়েছিলাম, কিভাবে AMS1117.5.0 ভোল্টেজ রেগুলেটর ব্যবহার করে 7V-to-12V এর যেকোন Unstable Voltage কে Constant +5V DC তে কনর্ভাট করা যায়। 

 

Voltage-Regulator-9V-to-5V

 

ঠিক একই Concept কাজে লাগিয়ে আজ আমরা 9V এর ব্যাটারী থেকে 5V তৈরি করবো। এই +5V DC Power আমাদের ATmega328P মাইক্রোকন্ট্রোলার অপারেট করতে প্রয়োজন হবে। তবে আমাদের পূর্বের টিউটরিয়্যালে ব্যবহৃত AMS1117.5.0 কে এর গঠনগত পার্থক্যের কারনে একে Breadboard এ বসানো সম্ভব নয়! তাই আমি এখানে অন্য একটি Positive Voltage Regulator IC হিসাবে LM7805 ব্যবহার করছি।

 

Power-Supply-Unit-5V

 

এখন এই 5V ডিসি পাওয়ারের সাথে আমাদের ATmega328P মাইক্রোকন্ট্রোলারটিকে জুড়ে দিবো। পাশাপাশি মাইক্রোকন্ট্রোলারটি সঠিকভাবে কাজে করার জন্য প্রয়োজনীয় কম্পোনেন্টস (যেমনঃ পুল-আপ-রেজিষ্টর, ক্রিসটাল ওসসিলেটর এবং ক্যাপাসিটর) গুলোর সংযোগ দিয়ে এনভাইরনমেন্টটি রেডি করে নিবো। 

 

voltage-regulator-microcontroller

 

Power-Supply-and-Microcontroller-Unit

উল্লেখ্য এখানে ATmega328P ব্যবহারের পূর্বে সেটিতে অবশ্যই Bootloader Burn করে নিবে। 

অবাক লাগলেও সত্যি উপরের ব্রেড-বোর্ডে থাকে ছোট্ট অংশটিই আমাদের নিজেদের তৈরি করা আরডুইনো উনো বোর্ড। 

আরডুইনো প্রোগ্রামার

তোমরা হয়তো লক্ষ্য করেছো আমাদের নিজেদের তৈরি Arduino Uno’তে কোন USB Port নেই! মানে কোন প্রোগ্রামার আমরা সংযুক্ত করিনি! প্রকৃতপক্ষে Programmer অংশটি একটি Common অংশ। অর্থাৎ একই প্রোগ্রামার ব্যবহার করে হাজার-হাজার মাইক্রোকন্ট্রোলারকে প্রোগ্রাম করা সম্ভব। তাই বুদ্ধি করে আমরা এই অংশটিকে আলাদা করে ফেলেছি, যাতে আমাদের আরডুইনো বোর্ডের সাইজ ছোট হওয়ার পাশাপাশি একই প্রোগ্রামার ব্যবহার করে আমরা বিভিন্ন বোর্ডে প্রোগ্রাম করতে পারি। 

CH340-and-MCU-Wiring-Diagram

 

ড্রাইভার ইনষ্টলেশন পদ্ধতি 

CH340-and-Laptop-Connection-Diagram

 

তোমার কম্পিউটারে সঠিক ড্রাইভার ইনষ্টল না থাকার করণে প্রথবারের জন্য CH340 USB to Serial Converter টি ডিটেক্ট নাও হতে পারে! ড্রাইভার ইনষ্টল রয়েছে কি না – চেক করতে তোমাকে Windows Operating System চালিত কম্পিউটারের ক্ষেত্রে Device Manager অপশনে যেতে হবে। (Start Menu তে গিয়ে Device Manager লিখে সার্চ করলেই তুমি অপশনটি পেয়ে যাবে।) 

 

USB-Serial-Driver-Not-Detected-Closed-View

 

 উপরের ছবির মত তোমার কম্পিউটারেও যদি USB Serial এর পাশে এমন ⚠️ (Warning) চিহ্ন দেখতে পাও, তাহলে তোমাকে এ পর্যায়ে CH340 এর জন্য Driver ইনষ্টল করতে হবে।  এটি খবুই সাধারণ একটি প্রোসেস। সরাসরি এই লিংক থেকে তুমি CH340 Driver টি ডাউনলোড করে নিতে পারো এবং ইনষ্টলের জন্য নিচের পদ্ধতি অনুসরণ করো। 

ডাউনলোড করা CH341SER.EXE ফাইলটির উপর মাউসের ডান-বাটন ক্লিক করে Run as administrator অপশনে ক্লিক করো। ফলে নিচের মত একটি উইনডোউ ওপেন হবে। 

 

CH341SER-Driver-Setup-Window

 

অতঃপর DriverSetup(x64) উইনডোউ থেকে INSTALL বাটনে ক্লিক করো। 

 

Driver-Install-Success

 

ড্রাইভারটি সঠিকভাবে ইনষ্টল হলে Driver install success! নামক একটি মেসেজ উইনডোউ দেখতে পাবে এবং এখন লক্ষ্য করলে দেখবে USB Serial এর পাশ থেকে ⚠️ (Warning) চিহ্নটি চলে গিয়েছে।

 

USB-Serial-CH340-COM7-Closed-View

 

লক্ষ্য করে দেখো এখন USB-SERIAL CH340 এর পাশে (COM7) লেখা দেখাচ্ছে। তোমার ক্ষেত্রে এটি COM7 এর পরিবর্তে COM3/COM4/COM8… ইত্যাদি যা কিছু হতে পারে। তবে সেটি যাইহোক সেটা মনে রেখো, পরবর্তীতে এটি আমাদের প্রয়োজন হবে। (যেহেতু এটি আমাদের কম্পিউটার ভেদে ভিন্ন ভিন্ন নাম হতে পারে, তাই এখন থেকে আমি এই Communication Port বা সংক্ষেপে COM Port টিকে COMxx বলে মেনশন করবো। 

 

কিভাবে প্রোগ্রাম আপলোড করবে? 

প্রোগ্রামিং খুবই সহজ। আমরা ইতিপূর্বে মাইক্রোকন্ট্রোলারের জন্য এনভারনমেন্ট তৈরি করে রেখেছি। এখন শুধুমাত্র সেখানে CH340 Serial Converter টির সংযোগ দিবো। 

 

Power-Supply-and-microcontroller-Schemactic

 

Power-Supply-and-microcontroller-programmer-Unit-Wiring

 

এ পর্যায়ে তোমার কম্পিউটার থেকে Arduino IDE টি চালু করো। (যদি ইতিমধ্যে সফটওয়ারটি তোমার কম্পিউটারে ডাউনলোড এবং ইনষ্টল করা না থাকে, তাহলে এই লিংক থেকে ডাউনলোড করে ইনষ্টল করে নিতে পারো।) 

এখন আমরা একটি Blinking LED প্রোগ্রাম আপলোড করে দেখবো, আমাদের তৈরি আরডুইনো ঠিকঠাক কাজ করছে কি না? 

 

Blinking-LED-Program

 

উপরের প্রোগ্রামটি লেখা শেষ হলে  Tool মেনু থেকে Board হিসাবে Arduino Uno সিলেক্ট করে নাও। 

(টাইপ করতে না চাইলে, Arduino IDE’File মেনু থেকে  Examples > Basics > Blink অপশনে সিলেক্ট করে existing কোডটি ব্যবহার করতে পারো।)  

 

Board-Select-From-Arduino-IDE

 

এখন তোমার CH340 Serial Converter যে COMxx পোর্টের সাথে কানেক্ট হয়েছে, সেটি সিলেক্ট করে দাও। মনে আছে নিশ্চয় আমার কম্পিউটারের ক্ষেত্রে এটি USB-SERIAL CH340 (COM7) ছিলো। তাই এখানে আমি COM7 সিলেক্ট করেছি। (তুমি অবশ্যই তোমার কম্পিটারের নির্দিষ্ট পোর্টটি সিলেক্ট করবে।) 

 

Port-Select-From-Arduino-IDE

 

সবকিছু ঠিক থাকলে, এখন আমরা Sketch মেনু থেকে Upload বাটনে ক্লিক করবো। 

 

Upload-Program

 

এখন তোমার লেখা প্রোগ্রামটি Compile হবে। কোডে লেখা কিছু ভূল না থাকলে, প্রোগ্রামটি ATmega328P মাইক্রোকন্ট্রোলারে আপলোড হয়ে যাবে। এ সময় তুমি নিচে বাম দিকে Done Uploading নামক মেসেজ দেখতে পাবে। 

 

Done-Uploading

 

এখন কি বিশ্বাস হলো যে, আমরা নিজেরাই একটি আরডুইনো উনো তৈরি করে ফেলেছি? 

 

প্রোজেক্ট আউটপুট

Breadboard এ নতুন  Arduino তৈরি করতে যেন তোমাদের হেল্প হয় সেই ক্ষেত্রে একটি schematic diagram দেয়া হল যেন কোথাও আটকে গেলে এটি দেখে কানেকশন গুলো ঠিক করে নিতে পারি।

 

Arduino-On-Breadboard-Blinking-LED-Schematic

 

এখন আমাদের Blinking LED প্রোগ্রাম আপলোড সম্পন্ন হয়েছে এবং LED লাইট টি জ্বলে উঠবে।

 

Minimalist-Arduino-On-Breadboard-Blinking-LED

 

ইতিপূর্বে আমরা আরডুইনোর Power Unit তৈরি এবং Bootloader Burn করা শিখেছি। আশাকরি টিউটরিয়্যাল গুলো থেকে যদি তুমি আসলেই কিছু Learn করতে পারো, তাহলে এখন নিজেই ব্রেডবোর্ডে একটি সম্পূর্ণ Arduino Board তৈরি করে ফেলতে পারবে। 

আজ এ পর্যন্তই তাহলে ভালো থেকো সবাই। আল্লাহ হাফেজ। 

 

 

 আরো পড়তে পারো…..

  1. Arduino USB পাওয়ার সিক্রেট
  2. Arduino-তে Bootloader বার্ন করার সবচেয়ে সহজ পদ্ধতি
Maisha Nawshin
Maisha Nawshin

Engineer
TechShop Bangladesh

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.