মাইক্রোকন্ট্রোলার এবং আরডুইনোর জন্য টেনসরফ্লো লাইট সহ AI ম্যাজিক ওয়ান্ড

1। পরিচিতি

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আমরা Arduino Nano 33 BLE- তে একটি গভীর শিক্ষার মডেল চালানোর জন্য মাইক্রোকন্ট্রোলারের জন্য TensorFlow Lite ব্যবহার করতে শিখব। মাইক্রোকন্ট্রোলারকে একটি ডিজিটাল "জাদুর কাঠি" তে পরিণত করে ব্যবহারকারী বিভিন্ন ধরনের বানান ঢেলে সাজাতে। ব্যবহারকারী যখন কাঠিটি সরিয়ে নেয়, এই জটিল, বহুমাত্রিক সেন্সর ডেটা যা একজন মানুষের কাছে অস্পষ্ট হতে পারে, মডেলটিতে একটি ইনপুট হিসাবে পাস করা হয়, যা একটি সাধারণ শ্রেণিবিন্যাস আউটপুট করে যা আমাদেরকে সতর্ক করে দেয় যদি একাধিক আন্দোলনের মধ্যে একটি ঘটে থাকে।

9208eb1207211349.gif

মাইক্রোকন্ট্রোলারে মেশিন লার্নিং

মেশিন লার্নিং বুদ্ধিমান টুল তৈরি করতে ব্যবহার করা যেতে পারে যা ব্যবহারকারীদের জীবনকে সহজ করে তোলে, যেমন Google অ্যাসিস্ট্যান্ট । কিন্তু প্রায়ই, এই অভিজ্ঞতাগুলির জন্য প্রচুর গণনা বা সংস্থানগুলির প্রয়োজন হয় যা একটি শক্তিশালী ক্লাউড সার্ভার বা একটি ডেস্কটপ অন্তর্ভুক্ত করতে পারে। যাইহোক, এখন মাইক্রোকন্ট্রোলারের মতো ক্ষুদ্র, কম-পাওয়ার হার্ডওয়্যারে মেশিন লার্নিং ইনফারেন্স চালানো সম্ভব।

মাইক্রোকন্ট্রোলারগুলি অত্যন্ত সাধারণ, সস্তা, খুব কম শক্তির প্রয়োজন হয় এবং খুব নির্ভরযোগ্য। এগুলি সমস্ত ধরণের গৃহস্থালীর যন্ত্রগুলির অংশ: ভাবুন যন্ত্রপাতি, গাড়ি এবং খেলনা৷ প্রকৃতপক্ষে, প্রতি বছর প্রায় 30 বিলিয়ন মাইক্রোকন্ট্রোলার-চালিত ডিভাইস তৈরি হয়।

1914a419dfacf0b5.jpeg

ক্ষুদ্র ক্ষুদ্র মাইক্রোকন্ট্রোলারে মেশিন লার্নিং আনার মাধ্যমে, আমরা ব্যয়বহুল হার্ডওয়্যার বা নির্ভরযোগ্য ইন্টারনেট সংযোগের উপর নির্ভর না করে আমাদের জীবনে ব্যবহার করি এমন কোটি কোটি ডিভাইসের বুদ্ধিমত্তা বৃদ্ধি করতে পারি। আপনার দৈনন্দিন রুটিনের সাথে খাপ খাইয়ে নিতে পারে এমন স্মার্ট অ্যাপ্লায়েন্স, বুদ্ধিমান শিল্প সেন্সর যা সমস্যা এবং স্বাভাবিক অপারেশনের মধ্যে পার্থক্য বুঝতে পারে, এবং জাদুকর খেলনা যা বাচ্চাদের মজাদার এবং আনন্দদায়ক উপায়ে শিখতে সাহায্য করতে পারে কল্পনা করুন।

মাইক্রোকন্ট্রোলারের জন্য টেনসরফ্লো লাইট (সফ্টওয়্যার)

864114d0c2b4c919.png

TensorFlow হল ট্রেনিং এবং চলমান মডেলের জন্য Google এর ওপেন সোর্স মেশিন লার্নিং ফ্রেমওয়ার্ক। TensorFlow Lite হল একটি সফ্টওয়্যার ফ্রেমওয়ার্ক, TensorFlow-এর একটি অপ্টিমাইজ করা সংস্করণ, যা মোবাইল ফোনের মতো ছোট, তুলনামূলকভাবে কম শক্তিসম্পন্ন ডিভাইসগুলিতে টেনসরফ্লো মডেল চালানোর লক্ষ্যে।

মাইক্রোকন্ট্রোলারের জন্য টেনসরফ্লো লাইট হল একটি সফ্টওয়্যার ফ্রেমওয়ার্ক, টেনসরফ্লো-এর একটি অপ্টিমাইজ করা সংস্করণ, যা মাইক্রোকন্ট্রোলারের মতো ক্ষুদ্র, স্বল্প-ক্ষমতাসম্পন্ন হার্ডওয়্যারে টেনসরফ্লো মডেল চালানোর লক্ষ্যে। এটি এই এমবেডেড পরিবেশে প্রয়োজনীয় সীমাবদ্ধতাগুলি মেনে চলে, যেমন, এটির একটি ছোট বাইনারি আকার রয়েছে, এটির জন্য অপারেটিং সিস্টেম সমর্থন, কোনো স্ট্যান্ডার্ড C বা C++ লাইব্রেরি, বা গতিশীল মেমরি বরাদ্দ ইত্যাদির প্রয়োজন হয় না।

Arduino Nano 33 BLE (হার্ডওয়্যার)

bcd452d4d660efa9.jpeg

আরডুইনো একটি জনপ্রিয় ওপেন সোর্স প্ল্যাটফর্ম যা ইলেকট্রনিক প্রজেক্ট তৈরির জন্য ব্যবহৃত হয়। ইহা গঠিত:

  1. একটি ফিজিক্যাল প্রোগ্রামেবল সার্কিট বোর্ড (প্রায়ই একটি মাইক্রোকন্ট্রোলার) যেমন Arduino Nano 33 BLE এই কোডল্যাবে ব্যবহৃত হয়।
  2. আরডুইনো আইডিই (ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট), সফ্টওয়্যার যা কম্পিউটার কোড লিখতে এবং ফিজিক্যাল বোর্ডে আপলোড করতে ব্যবহৃত হয়।

Arduino Nano 33 BLE হল একটি মাইক্রোকন্ট্রোলার-ভিত্তিক প্ল্যাটফর্ম: একটি একক সার্কিট বোর্ডে একটি ক্ষুদ্র কম্পিউটার। এটিতে একটি প্রসেসর, মেমরি এবং I/O হার্ডওয়্যার রয়েছে যা এটিকে অন্যান্য ডিভাইসে ডিজিটাল সংকেত পাঠাতে এবং গ্রহণ করতে দেয়। একটি কম্পিউটারের বিপরীতে, একটি মাইক্রোকন্ট্রোলার শক্তিশালী নয় এবং সাধারণত একটি অপারেটিং সিস্টেম চালায় না। পরিবর্তে, তাদের ছোট প্রসেসর রয়েছে, খুব বেশি মেমরি নেই এবং আপনার লেখা প্রোগ্রামগুলি সরাসরি হার্ডওয়্যারে চলে। কিন্তু যেহেতু এগুলিকে যতটা সম্ভব সহজ করার জন্য ডিজাইন করা হয়েছে, তাই একটি মাইক্রোকন্ট্রোলার খুব কম শক্তি ব্যবহার করতে পারে।

আপনি কি করবেন

  • Arduino Nano 33 BLE মাইক্রোকন্ট্রোলার সেটআপ করুন এবং এটিকে একটি ডিজিটাল "জাদুর কাঠি" তে পরিণত করুন
  • Arduino IDE সেটআপ করুন এবং প্রয়োজনীয় লাইব্রেরি ইনস্টল করুন
  • ডিভাইসে প্রোগ্রাম স্থাপন করুন
  • জাদুর কাঠি নেড়ে বিভিন্ন ধরনের বানান কাস্ট করুন এবং ভবিষ্যদ্বাণী দেখুন

আপনি কি প্রয়োজন হবে

2. আরডুইনো মাইক্রোকন্ট্রোলার সেটআপ করুন

আপনার Arduino আনপ্যাক করুন

বাক্স থেকে এটি সরান এবং প্যাকিং ফেনা থেকে এটি টানুন। এটি পরিবাহী, এবং অন্যথায় সমস্যা সৃষ্টি করতে পারে!

6ed84a651c871a58.jpeg

এটি আপনার ল্যাপটপে প্লাগ করুন

  • মাইক্রোইউএসবি কেবলটি চিপের সকেটে প্লাগ করুন।
  • আপনার ল্যাপটপের একটি USB সকেটে তারের অন্য প্রান্তটি প্লাগ করুন।
  • আরডুইনোতে নীচের বাম LED (নীচের ছবিতে উপরে বাম) আলোকিত হওয়া উচিত।

c6936696f9659104.jpeg

কর্মপ্রবাহের সাথে নিজেকে পরিচিত করুন

99852afbed7e78b0.png

উপরের চিত্রে দেখানো হয়েছে, আরডুইনোতে TFLite ইন্টারপ্রেটার পর্যায়ক্রমে মডেলের উপর অনুমান চালায়। মডেলটি ইনপুট হিসাবে প্রক্রিয়াকৃত অ্যাক্সিলোমিটার ডেটা ব্যবহার করে এবং একটি ভবিষ্যদ্বাণী আউটপুট করে যা সম্ভবত ঘটতে থাকা অঙ্গভঙ্গির পরামর্শ দেয়। আরও, একটি পছন্দসই আউটপুট মুদ্রিত হবে এবং সঠিক LED গুলি আলোকিত হবে।

3. Arduino IDE সেটআপ করুন

1. Arduino IDE ডাউনলোড করুন

প্রোগ্রামটি Arduino মাইক্রোকন্ট্রোলারে স্থাপন করার জন্য, আমরা Arduino IDE ব্যবহার করি।

এটি ডাউনলোড করার পরে, ইনস্টল করুন এবং Arduino IDE খুলুন অ্যাপ্লিকেশনটিতে ক্লিক করে যার আইকনটি এইরকম দেখাচ্ছে: 75717f13527f36b9.png

প্রাথমিক ল্যান্ডিং পৃষ্ঠাটি নিম্নরূপ খুলবে:

933c91e6e1997c61.png

2. বোর্ড ম্যানেজার সেটআপ করুন

  1. Arduino মেনু থেকে, Tools -> Board: "Arduino .." —> Boards Manager নির্বাচন করুন।
  2. "Arduino Nano 33 BLE" অনুসন্ধান করুন এবং Arduino nRF528x Boards (Mbed OS) ইনস্টল করুন। এটি নিশ্চিত করবে যে আমাদের Arduino Nano 33 BLE মাইক্রোকন্ট্রোলার Arduino IDE দ্বারা সমর্থিত। 817c63346152eda9.png
  1. Arduino মেনু থেকে, Tools -> Board: "Arduino .." -> "Arduino Nano 33 BLE" নির্বাচন করুন।

9357691e1a1348eb.png

  1. অবশেষে, যাচাই করুন যে আপনার নির্বাচিত বোর্ডটি IDE এর নীচে ডানদিকে "Arduino Nano 33 BLE"।

aa08706bb84fa9b2.png

3. পোর্ট সেটআপ করুন

Arduino মেনু থেকে, Tools -> Port: "/.../" -> /dev/... (Arduino Nano 33 BLE) নির্বাচন করুন। আপনি এই অনুরূপ কিছু দেখতে হবে:

8c25990d0c6fb6f8.png

4. বোর্ড সংযোগ পরীক্ষা করুন

Arduino মেনু থেকে, Tools -> Get Board Info নির্বাচন করুন। আপনি এই অনুরূপ কিছু দেখতে হবে:

ccd8f5305be6cf59.png

4. লাইব্রেরি ইনস্টল করুন

1. টেনসরফ্লো আরডুইনো লাইব্রেরি

এই লাইব্রেরিতে মাইক্রোকন্ট্রোলারের উদাহরণের জন্য সমস্ত টেনসরফ্লো লাইট রয়েছে, যার মধ্যে এই কোডল্যাবের জন্য প্রয়োজনীয় ম্যাজিক ওয়ান্ড সোর্স কোড রয়েছে।

  1. Arduino মেনু থেকে, Sketch -> Include Library -> Add .ZIP Library...
  2. আপনার ডাউনলোড করা TensorFlow Arduino Library .zip যোগ করুন।

2. LSM9DS1 Arduino লাইব্রেরি

এই লাইব্রেরিটি আপনাকে আপনার Arduino Nano 33 BLE সেন্সে LSM9DS1 IMU থেকে অ্যাক্সিলোমিটার, ম্যাগনেটোমিটার এবং জাইরোস্কোপের মান পড়তে দেয়।

  1. Arduino মেনু থেকে, Sketch -> Include -> Manage Libraries... নির্বাচন করুন।
  2. "Arduino_LSM9DS1" অনুসন্ধান করুন এবং ইনস্টল করুন। ac2f78a737c5f233.png

5. উদাহরণটি লোড করুন এবং তৈরি করুন

1. উদাহরণ লোড করুন

Arduino মেনু থেকে, নমুনা কোড লোড করতে File -> Examples -> Arduino_TensorFlowLite -> magic_wand নির্বাচন করুন।

de349f2d3cb49b98.png

এটি ম্যাজিক ওয়ান্ড সোর্স কোড লোড করবে।

cda8c35a597b0798.png

2. উদাহরণ তৈরি করুন

স্কেচ উইন্ডোতে Upload বোতামে ক্লিক করুন।

71cb1474d5e14669.png

কয়েক মিনিট পরে আপনি লাল টেক্সট দেখতে পাবেন যে ফ্ল্যাশিং সম্পূর্ণ হয়েছে। আপলোড করার সময়, ডান LED স্পন্দিত হওয়া উচিত এবং তারপরে শেষে অন্ধকার হয়ে যাবে।

3df1d0858c6e40a4.png

6. ডেমো

যাদুর কাঠি বর্তমানে নীচে দেখানো হিসাবে 3 টি অঙ্গভঙ্গি সনাক্ত করতে পারে: 99a607da66af9fc8.png

  1. উইং : উপরের বাম কোণ থেকে শুরু করুন এবং দুই সেকেন্ডের জন্য "W" অক্ষরটি সাবধানে ট্রেস করুন।
  2. রিং : সোজা শুরু করুন, এক সেকেন্ডের জন্য ঘড়ির কাঁটার দিকে বৃত্তে কাঠিটি সরান।
  3. ঢাল : আপনার দিকে এলইডি দিয়ে ঊর্ধ্বমুখী দণ্ডটি ধরে রেখে শুরু করুন। ছড়িটিকে বাম দিকে একটি ঝোঁকে নিচে নিয়ে যান এবং তারপরে অনুভূমিকভাবে ডানদিকে এক সেকেন্ডের জন্য।

নিচের ছবিটি দুটি অঙ্গভঙ্গি প্রদর্শন করে। প্রথমে, একটি ঢাল এবং তারপর একটি উইং (এটি আপনার ডেমোর জন্য একটি রেফারেন্স হিসাবে ব্যবহার করুন)।

9208eb1207211349.gif

ডেমো চালানোর জন্য, নীচে দেওয়া নির্দেশাবলী অনুসরণ করুন:

  1. ইউএসবি প্লাগ ইন করে, আরডুইনো মেনু থেকে Tools -> Serial Monitor নির্বাচন করুন। এটি প্রাথমিকভাবে কোন আউটপুট ছাড়াই একটি ফাঁকা স্ক্রীন খুলবে।

38e8d53652eb28f2.png

  1. উপরের প্রতিটি আকার সাবধানে ট্রেস করতে Arduino মাইক্রোকন্ট্রোলারটি সরান এবং দেখুন সিরিয়াল মনিটর অঙ্গভঙ্গি সনাক্ত করে কিনা।

60b8a0017bcae419.png

  1. সিরিয়াল মনিটরের আউটপুট থেকে, আমরা লক্ষ্য করেছি যে জাদুর কাঠি প্রকৃতপক্ষে সমস্ত আকার সনাক্ত করেছে! আপনি আরও লক্ষ্য করবেন যে ডান LED আলো জ্বলছে।

7. পরবর্তী পদক্ষেপ

অভিনন্দন, আপনি সফলভাবে একটি Arduino মাইক্রোকন্ট্রোলারে আপনার প্রথম অঙ্গভঙ্গি-স্বীকৃত "জাদুর কাঠি" তৈরি করেছেন!

আমরা আশা করি আপনি মাইক্রোকন্ট্রোলারের জন্য টেনসরফ্লো লাইটের বিকাশের এই সংক্ষিপ্ত ভূমিকাটি উপভোগ করেছেন। মাইক্রোকন্ট্রোলারগুলিতে গভীর শিক্ষার ধারণাটি নতুন এবং উত্তেজনাপূর্ণ এবং আমরা আপনাকে বাইরে গিয়ে পরীক্ষা করার জন্য উত্সাহিত করি!

রেফারেন্স ডক্স

647c3ef0dc103804.png

ধন্যবাদ, এবং মজা বিল্ডিং আছে!