ARM Tutorial Part 1:Software Installation & LED Blinking | এআরএম টিউটোরিয়াল (পর্ব ১ : সফটওয়্যার ইন্সটলেশন ও এলইডি ব্লিংকিং)
কেন এআরএম জরুরী?
আমরা এখনও পর্যন্ত এভিআর, পিআইসি, আরডুইনো ইত্যাদি যত মাইক্রোকন্ট্রোলার আমাদের টিউটোরিয়াল সিরিজে ব্যবহার করেছি সেগুলো সবই ছিল ৮ বিটের মাইক্রোকন্ট্রোলার, স্পিড সবগুলোরই সর্বোচ্চ ২০ মেগাহার্জ কিংবা তারও নিচে। ওগুলো দিয়ে আমাদের দৈনন্দিন ব্যবহারের এবং নিরাপত্তার জন্য প্রয়োজনীয় ডিভাইসগুলো বানানো সম্ভব। কিন্তু দিনরাত চব্বিশ ঘন্টাই সচল থেকে ইন্টারনেট থেকে ডেটা নিয়ে আপডেট করা, ডিসপ্লেতে দেখানো এগুলোর জন্য কী এই স্পিড যথেষ্ট?
আলোচিত রোবট সোফিয়ার কথাই ধরা যাক না। সে সরাসরি গুগলের সাথে সংযুক্ত একটি সেলফ লার্নিং রোবট, প্রতিনিয়ত সে শিখছে, নিজেকে উন্নত করছে। আট বিটের একটি মাইক্রোকন্ট্রোলার, যার র্যাম বড়জোর কয়েক কিলোবাইট, প্রসেসর স্পিডও টেনেটুনে ২০ মেগাহার্জ; সেটি কী যথেষ্ট এরকম একটি প্রজেক্টের জন্য?
এই কারনেই এআরএম শিখতে হবে। এআরএম কর্টেক্স প্রসেসর আমাদের ব্যবহৃত কম্পিউটার, মোবাইল ফোন ইত্যাদি গ্যাজেটে ব্যবহৃত হয়। STM32 সিরিজের মাইক্রোকন্ট্রোলারগুলো তৈরী করা হয় এআরএম প্রসেসরের উপর ভিত্তি করে। এগুলো ৩২-বিটের মাইক্রোকন্ট্রোলার।
আমরা আমাদের এআরএম সিরিজের টিউটোরিয়ালগুলোতে ব্যবহার করব STM32F0DISCOVERY, STM32F0 Discovery Kit।
সৌজন্যেঃ www.waveshare.com
এটি একটি এআরএম ডেভেলপমেন্ট বোর্ড। এতে রয়েছে একটি অন-বোর্ড STM32F051R8T6 মাইক্রোকন্ট্রোলার। এবং ST-LINK debugger। STM32F051R8T6 একটি ৩২ বিটের মাইক্রোকন্ট্রোলার। এর ফ্ল্যাশ মেমোরি ৬৪ কিলোবাইট,সর্বোচ্চ ক্লক স্পিড ৪৮ মেগাহার্জ। এর রয়েছে ১১ টি টাইমার , ১৯ টি চ্যানেলবিশিষ্ট একটি ১২-বিট এডিসি, ইউজার্ট, এসপিআই, আইটুসিসহ অন্যান্য পেরিফেরাল।এই টিউটোরিয়ালে আমাদের এআরএম প্রসেসর ভিত্তিক মাইক্রোকণ্ট্রোলার প্রোগ্রামিংয়ে হাতেখড়ি হবে।
STM32F0 Discovery Kit এ দুইটি ইন-বিল্ট এলইডি আছে। একটি নীল, আরেকটি সবুজ। এরা যথাক্রমে PC8 এবং PC9 পিনে সংযুক্ত। আমাদের এই এক্সপেরিমেন্টে আমরা ডিস্কোভারি বোর্ডের নীল ও সবুজ এলইডি পর্যায়ক্রমে এক সেকেন্ড পরপর ব্লিংক করাব। একটা যখন অফ থাকবে তখন আরেকটি জ্বলবে।
প্রয়োজনীয় হার্ডওয়্যার | পরিমান | লিংক |
STM32F0DISCOVERY, STM32F0 Discovery Kit | 1 | এখানে ক্লিক করুন |
Usb cable A to mini B | 1 | এখানে ক্লিক করুন |
প্রয়োজনীয় সফটওয়্যার | লিংক |
STM32cube MX | http://bit.ly/2MS8tXd |
Keil µvision5 | http://bit.ly/2MPV8yX |
STlink driver | http://bit.ly/2wPry2j |
উপরে প্রদত্ত লিংকগুলো থেকে সফটওয়্যারগুলো ডাউনলোড করে নিতে হবে। এগুলো STM electronics এবং keil এর নিজস্ব ওয়েবসাইটের লিংক। সফটওয়্যার ডাউনলোড করতে আপনাকে তাদের ওয়েবসাইটে রেজিস্ট্রেশন করতে হবে।
কোডিংঃ
প্রথমে STMcube MX সফটওয়্যারটি ওপেন করুন।New project এ ক্লিক করুন।
MCU selector এ ক্লিক করুন।
নিচের লিস্ট থেকে আমাদের ব্যবহৃত বোর্ডের নামটি ক্লিক করুন।
নিচের মেসেজটি দেখালে OK ক্লিক করুন।
নিচের ছবিটির মতো আমাদের ব্যবহৃত বোর্ডের পিনআউট দেখাবে। বাই ডিফল্ট PC8 ও PC9 আউটপুট পিন এবং PA0 পিনকে ইনপুট পিন হিসেবেই সিলেক্ট করা থাকে।যদি অন্যকোনো পিনকে সিলেক্ট করার প্রয়োজন হয় তাহলে পিনের উপর ক্লিক করুন।
Configuration এ GPIO তে ক্লিক করুন।
PIN configuration এ ইনপুট ও আউটপুট পিনগুলো দেখা যাচ্ছে।
Project settings এ ঢুকে প্রজেক্টের নাম দিন। যে ফোল্ডারে সেভ করবেন সেটি সিলেক্ট করুন। সফটওয়্যার লিস্ট থেকে MDK-ARM-5 সিলেক্ট করুন।
Generate code ক্লিক করুন।
এরপর Open Project এ ক্লিক করুন।
Keil µvision5 Open হবে। Application /User ফোল্ডারের main.c নামক ফাইলটিই আমাদের কোড।
Main.c এর while লুপে নিচের কোডটি লিখুন।
কোড রিবিল্ড করুন।
রিবিল্ড করা ঠিকমতো হলে কোনো এরর মেসেজ দেখাবে না।
STM32F0DISCOVERY board কে কম্পিউটারের সাথে ইউএসবি এ টু মিনি বি কেবল দ্বারা যুক্ত করুন।
কোড লোড করুন।
কোড লোড করার পর বোর্ডটিকে রিবুট করতে হবে। বোর্ডে B2 চিহ্নিত বাটনকে একবার প্রেস করলে বোর্ড রিবুট করবে।
সৌজন্যেঃ www.waveshare.com
এরপর আমাদের কোড অনুযায়ী বোর্ডের সবুজ ও নীল এলইডি এক সেকেন্ড পরপর পর্যায়ক্রমে জ্বলানেভা করবে।
Love it.