ভুল হলে ভয় নাই, Arduino Proggraming নিজেই বলে দেয় কোথায় সমস্যা

arduino প্রোগ্রামিং

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

আমার কাছে মনে হয় আর্ডুইনো প্রোগ্রামিং শেখা অনেক মজার জিনিস।

আর্ডুইনো প্রোগ্রামিং কি জিনিস

আর্ডুইনো হলো একটা ছোট বোর্ড। এইটা কোড বোঝে। তুমি কোড লিখলে সে সেই অনুযায়ী কাজ করে। লাইট জ্বালাও বললে জ্বালাবে। সেন্সর পড়ো বললে পড়বে।

আমার কাছে মনে হয় এইটা অনেকটা রোবটকে বুদ্ধি দেওয়ার মতো। তুমি বলো সে করে।

আর এইটা শিখলে পরে IoT আর Robotics এর দিকে যাওয়া যায়। ভাইয়া বলে আজকাল সব স্মার্ট ডিভাইসের ভেতরে এইরকম বোর্ড কাজ করে। এইটা জানলে অনেক কিছু বোঝা যায়।

IDE আগে ইনস্টল করতে হবে

আর্ডুইনো প্রোগ্রামিং শুরু করতে হলে আগে Arduino IDE নামাতে হবে। এই সফটওয়্যারে কোড লেখা হয়। তারপর Upload করলে বোর্ডে চলে যায়।

Tools থেকে বোর্ড সিলেক্ট করতে হবে। Arduino Uno সিলেক্ট করবো। তারপর Port সিলেক্ট করতে হবে।

একটা কথা। ড্রাইভার ঠিকমতো ইনস্টল হইছে কিনা দেখতে হবে। না হলে কম্পিউটার বোর্ড চিনতে পারবে না। আমার বন্ধু রাফি এই সমস্যায় পড়ছিল। অনেকক্ষণ বুঝতে পারেনাই কেন কাজ হচ্ছে না।

IDE ইনস্টল হলে প্রথম কাজ হলো Blink প্রজেক্ট করা। LED জ্বলা নেভা করবে। এইটা দিয়েই বোঝা যায় সব ঠিকমতো হইছে কিনা।

কোডের গঠন কেমন

আর্ডুইনোর কোডে দুইটা অংশ থাকে। setup() আর loop()।

setup() এ বলতে হয় কোন পিন কি করবে। এইটা একবারই চলে। আর loop() বারবার চলে। এইখানে মূল কাজ লেখা থাকে।

যেমন LED জ্বালানোর কোড। setup() এ বলবো পিন ১৩ আউটপুট। loop() এ বলবো জ্বালাও, এক সেকেন্ড থাকো, নিভাও, এক সেকেন্ড থাকো।

pinMode() বলে কোন পিন কি হবে। digitalWrite() বলে বিদ্যুৎ দাও বা বন্ধ করো। delay() বলে কতক্ষণ অপেক্ষা করো।

এইটুকু বুঝলেই অনেক কিছু করা যায়। আমার কাছে মনে হয় এইটা আসলে কঠিন না।

লাইব্রেরি কি জিনিস

লাইব্রেরি হলো রেডি কোড। কেউ আগে থেকে লিখে রেখে গেছে। তুমি শুধু ব্যবহার করবে।

যেমন Servo Motor দিয়ে কাজ করতে হলে অনেক কোড লাগতো। কিন্তু লাইব্রেরি নামালে কয়েক লাইনেই হয়ে যায়।

লাইব্রেরি নামাতে হলে IDE তে Sketch এ যেতে হবে। তারপর Include Library। তারপর Manage Libraries। ওইখান থেকে যেটা দরকার সেইটা ইনস্টল করো।

তারপর কোডের শুরুতে #include লিখতে হবে। তাহলেই লাইব্রেরি কাজ করবে।

আমার কাছে মনে হয় লাইব্রেরি হলো শর্টকাট। সময় বাঁচে অনেক।

Serial Monitor কেন দরকার

এইটা IDE তে একটা জিনিস আছে। এইখানে দেখা যায় বোর্ড কি করছে।

যেমন সেন্সর কত রিডিং দিচ্ছে সেইটা Serial Monitor এ দেখা যায়। ভুল হলে বোঝা যায় কোথায় সমস্যা।

কোডে Serial.begin(9600) লিখতে হয়। তারপর Serial.println() দিয়ে যা দেখাতে চাও সেইটা লেখো। তারপর Serial Monitor খুললে দেখা যাবে।

একটা কথা। Baud Rate ঠিক রাখতে হবে। ৯৬০০ রাখলে ভালো। ভুল হলে এলোমেলো অক্ষর আসবে। আমি একবার এই ভুল করছিলাম। কিছুই বুঝতে পারিনাই স্ক্রিনে কি আসছে!

সেন্সর দিয়ে কি করা যায়

আর্ডুইনো সেন্সর থেকে তথ্য নিতে পারে। তাপমাত্রা সেন্সর লাগালে তাপমাত্রা বলবে। আলোর সেন্সর লাগালে আলো কত সেইটা বলবে।

Analog Pin দিয়ে সেন্সরের রিডিং আসে। তারপর সেই রিডিং দেখে আর্ডুইনো সিদ্ধান্ত নেয়।

Serial Monitor দিয়ে চেক করতে হবে সেন্সর ঠিকমতো কাজ করছে কিনা। এইটা না করলে বুঝবোই না কি হচ্ছে।

আউটপুট ডিভাইস দিয়ে কি করা যায়

শুধু সেন্সর না। আর্ডুইনো দিয়ে অনেক জিনিস নিয়ন্ত্রণ করা যায়। LED, Buzzer, Servo Motor, Relay এইগুলো সব।

Relay দিয়ে ঘরের লাইট বা ফ্যান চালানো যায়। Servo দিয়ে রোবটের হাত নাড়ানো যায়। এইগুলো শুনলেই আমার অনেক মজা লাগে।

আর PWM নামে একটা জিনিস আছে। এইটা দিয়ে আলো কমানো বাড়ানো যায়। মানে সম্পূর্ণ জ্বালানো বা নিভানো না, মাঝামাঝি রাখা যায়। এইটা জানলে আরো অনেক কিছু করা যাবে।

ভুল হলে কি করবো

কোডে ভুল হবেই। ভয়ের কিছু নাই। IDE তে ভুলের কথা লেখা আসে নিচে।

যেমন সেমিকোলন না দিলে error আসে। ওইটা পড়লে বোঝা যায় কোথায় সমস্যা। তারপর ঠিক করো।

Upload করার আগে Verify বাটন চাপো। এইটা চাপলে আগেই বলে দেবে ভুল আছে কিনা। আমার কাছে মনে হয় প্রতিটা ভুল থেকে শেখা যায়। তাই ভুল হলে মন খারাপ করবো না।

বাস্তব প্রজেক্ট বানাবো

সবচেয়ে মজার অংশ হলো বাস্তব প্রজেক্ট বানানো। Smart Dustbin বানানো যায়। Auto Light System বানানো যায়। Weather Station বানানো যায়।

এইগুলো বানাতে কোড, সেন্সর আর আউটপুট একসাথে লাগে। সব মিলিয়ে কাজ করলে অনেক কিছু শেখা হয়।

আমার ভাইয়া বলে ছোট প্রজেক্ট দিয়ে শুরু করো। তারপর বড় আইডিয়া।

আমিও একদিন নিজে প্রজেক্ট বানাবো। বন্ধুদের দেখাবো। অনেক ভালো লাগবে তখন!

তাই আমার মনে হয় সবার আর্ডুইনো প্রোগ্রামিং শেখা উচিত।