সুচিপত্র:

ফেসবট: 8 টি ধাপ
ফেসবট: 8 টি ধাপ

ভিডিও: ফেসবট: 8 টি ধাপ

ভিডিও: ফেসবট: 8 টি ধাপ
ভিডিও: নতুন নিয়মে ফেসবুক থেকে টাকা ইনকাম করুন ২০২৪ | FB Income BD 2024, নভেম্বর
Anonim
ফেসবট
ফেসবট

এই গাইড আপনাকে দেখাবে কিভাবে ফন্টে মুখ দিয়ে কম খরচে ($ 39) সংঘর্ষ এড়ানোর রোবট তৈরি করতে হয়। আমরা একটি নতুন কম খরচে, উজ্জ্বল OLED ডিসপ্লে ব্যবহার করে এটি করি। আমাদের শিক্ষার্থীরা তাদের রোবটগুলিতে মুখ যুক্ত করতে ভালোবাসে। তারা রোবট যা করছে তার উপর ভিত্তি করে পরিবর্তিত স্মাইলি মুখ আঁকতে পছন্দ করে।

25 ডলারের কম দামে বেশ কয়েকটি ছোট খরচের রোবট পাওয়া যায় যা আপনাকে কম্পিউটার বিজ্ঞানের মূল বিষয়গুলি শেখানোর অনুমতি দেয়। এই রোবটগুলির মধ্যে একটি সমস্যা হল তারা রোবট তৈরির সময় তার ভিতরে কী চলছে সে সম্পর্কে স্বচ্ছতা প্রদান করে না। 2018 সালে যেগুলি কম খরচে উচ্চমানের ওএলইডি ডিসপ্লেগুলির প্রাপ্যতার সাথে পরিবর্তিত হতে শুরু করে। এই ডিসপ্লেগুলির নিম্নলিখিত সুবিধা রয়েছে:

  • তারা খুব উজ্জ্বল এবং উচ্চ বৈসাদৃশ্য আছে। এমনকি একটি উজ্জ্বল ঘর তারা অনেক কোণ থেকে পড়া সহজ।
  • তাদের ভালো রেজোলিউশন আছে। আমি যেগুলি ব্যবহার করছি সেগুলি 168x64 পিক্সেল। এটি প্রায় 4x পূর্বের ডিসপ্লে যা আমরা ব্যবহার করেছি।
  • এগুলি নিম্ন-শক্তি এবং তারা আপনার রোবটের শক্তি হ্রাস করার পরেও ধারাবাহিকভাবে কাজ করে।
  • এগুলি তুলনামূলকভাবে কম খরচে (প্রায় $ 16 প্রতিটি) এবং দামগুলি হ্রাস পাচ্ছে।

অতীতে, তাদের প্রোগ্রাম করা কঠিন ছিল এবং কম খরচে Arduino Nanos ব্যবহার করার জন্য খুব বেশি মেমরি ব্যবহার করবে। ন্যানোতে কেবল 2K বা গতিশীল র.্যাম রয়েছে। এই গাইডটি আপনাকে দেখাবে কিভাবে এই সমস্যাগুলি নিয়ে কাজ করতে হয় এবং একটি রোবট তৈরি করতে হয় যা বাচ্চারা প্রোগ্রাম করতে পছন্দ করে।

ধাপ 1: ধাপ 1: আপনার বেস রোবট তৈরি করুন

ধাপ 1: আপনার বেস রোবট তৈরি করুন
ধাপ 1: আপনার বেস রোবট তৈরি করুন

একটি ফেসবট তৈরি করতে আমরা সাধারণত বেস রোবট দিয়ে শুরু করি। একটি উদাহরণ হল $ 25 কোডারডোজো রোবট যা এখানে বর্ণিত হয়েছে। এই রোবটটি কম খরচে এবং জনপ্রিয় আরডুইনো ন্যানো, একটি সাধারণ মোটর নিয়ন্ত্রক, 2 ডিসি-মোটর এবং 4 বা 6 এএ ব্যাটারি ব্যবহার করে। বেশিরভাগ শিক্ষার্থী একটি সংঘর্ষ এড়ানোর রোবট তৈরি করতে পিং সেন্সর ব্যবহার শুরু করে। কারণ এটি একটি 5v পাওয়ার সিস্টেম প্রদান করে এটি ফেসবটের জন্য উপযুক্ত। খরচ কম রাখার জন্য আমি সাধারণত আমার ছাত্রদের ই-বে থেকে অংশগুলি অনলাইনে অর্ডার করি। যন্ত্রাংশগুলি আসতে প্রায়ই 2-3 সপ্তাহ সময় নেয় এবং মোটর এবং পাওয়ার সুইচের জন্য অল্প পরিমাণে সোল্ডারিং প্রয়োজন। বাকি সংযোগগুলি 400-টাই রুটিবোর্ড ব্যবহার করে তৈরি করা হয়। শিক্ষার্থীরা ঘন ঘন তারের আঠা আঠালো করে যাতে সেগুলি বাইরে না যায়।

স্ট্যান্ডার্ড সংঘর্ষ এড়ানোর নকশায় আমরা একটি পরিবর্তন করেছি। আমরা পেস সেন্সরকে চ্যাসির উপর থেকে চ্যাসির নীচে নিয়ে যাই। এটি রোবটের উপরে প্রদর্শনের জন্য জায়গা ছেড়ে দেয়।

একবার আপনি আপনার সংঘর্ষ এড়ানোর প্রোগ্রামিং আছে আপনি একটি মুখ যোগ করার জন্য পড়া হয়!

ধাপ 2: ধাপ 2: আপনার OLED ডিসপ্লে খুঁজুন এবং অর্ডার করুন

ধাপ 2: আপনার OLED ডিসপ্লে খুঁজুন এবং অর্ডার করুন
ধাপ 2: আপনার OLED ডিসপ্লে খুঁজুন এবং অর্ডার করুন

যখন ওএলইডি ডিসপ্লে বের হয়, কম খরচে ঘড়ি বা ফিটনেস মনিটরের জন্য ডিজাইন করা হয়। ফলস্বরূপ তারা ছোট ছিল, সাধারণত প্রায় 1 ইঞ্চি জুড়ে। ভাল খবর হল তারা কম খরচে, প্রায় $ 3। আমরা এই ডিসপ্লেগুলির সাথে কয়েকটি রোবট তৈরি করেছি, কিন্তু ডিসপ্লের আকার সীমিত হওয়ায় আমরা পর্দায় যা করতে পারি তা সীমিত ছিল। তারপরে 2018 সালে আমরা দেখতে শুরু করেছি যে বড় 2.42 ইঞ্চি OLED স্ক্রিনের দাম কমছে। 2019 সালের জানুয়ারিতে দামগুলি প্রায় 16 ডলারে নেমে এসেছে। আমরা অবশেষে আমাদের রোবট মুখগুলির জন্য একটি দুর্দান্ত প্রদর্শন করতে পারি।

এখানে এই ডিসপ্লেগুলির স্পেসিফিকেশন রয়েছে:

  1. 2.42 ইঞ্চি (তির্যক পরিমাপ)
  2. 128 পিক্সেল জুড়ে (x- মাত্রা)
  3. 64 পিক্সেল উচ্চ (y- মাত্রা)
  4. কম শক্তি (সাধারণত 10 মাস)
  5. একরঙা (তারা হলুদ, সবুজ, নীল এবং সাদা রঙে আসে)
  6. ডিফল্ট SPI ইন্টারফেস যদিও আপনি চাইলে এটি I2C তে পরিবর্তন করতে পারেন
  7. SSD1309 ড্রাইভার (খুব সাধারণ ডিসপ্লে ড্রাইভার)

এসপিআই ইন্টারফেসের সাতটি তার রয়েছে। এখানে ইন্টারফেসের সাধারণ লেবেলগুলি রয়েছে:

  1. সিএস - চিপ নির্বাচন
  2. ডিসি - ডেটা/কমান্ড
  3. RES - রিসেট করুন
  4. এসডিএ - ডেটা - এটি Arduino ন্যানো পিন 11 এর সাথে সংযুক্ত হওয়া উচিত
  5. এসসিএল - ঘড়ি - এটি Arduino ন্যানো পিন 13 এর সাথে সংযুক্ত হওয়া উচিত
  6. ভিসিসি - +5 ভোল্ট
  7. GND - স্থল

ব্রেডবোর্ডের সাথে ডিসপ্লেটি সংযুক্ত করতে আপনার কিছু তারের প্রয়োজন হবে। ডিসপ্লেগুলি সাধারণত 7-পিন হেডারের সাথে আসে যা আপনি ডিসপ্লেতে বিক্রি করেন। আমি 7 পুরুষ থেকে পুরুষ 20mc Dupont সংযোগকারী ব্যবহার করেছি এবং তাদের বিক্রি করেছি যাতে তারের ডিসপ্লের পিছনে বেরিয়ে আসে।

ধাপ 3: ধাপ 3: OLED কে Arduino Nano এর সাথে সংযুক্ত করুন

ধাপ 3: OLED কে Arduino Nano এর সাথে সংযুক্ত করুন
ধাপ 3: OLED কে Arduino Nano এর সাথে সংযুক্ত করুন
ধাপ 3: OLED কে Arduino Nano এর সাথে সংযুক্ত করুন
ধাপ 3: OLED কে Arduino Nano এর সাথে সংযুক্ত করুন

এখন আপনি আপনার OLED পরীক্ষা করার জন্য প্রস্তুত। আমি অন্য আরডুইনো ন্যানো ব্যবহার করি শুধুমাত্র পরীক্ষা করার জন্য যে আমি প্রতিটি ডিসপ্লে কাজ করি। একবার পরীক্ষাগুলি কাজ করলে আমি এটি রোবটের সাথে সংযুক্ত করি। পরীক্ষকের জন্য তারের চিত্রটি উপরের চিত্রে দেখানো হয়েছে। মনে রাখবেন যে আপনি OLED সংযোগগুলিকে অন্য পিনগুলিতে স্থানান্তর করতে পারেন যা ডিজিটাল আউটপুট সমর্থন করে, কিন্তু যদি আপনি নিশ্চিত হন যে এসসিএল (ঘড়ি) আরডুইনো ন্যানো পিন 13 এবং এসডিএ (ডেটা) আরডুইনো ন্যানো পিন 11 এ রয়েছে আপনি ডিফল্ট সেটিংস ব্যবহার করতে পারেন সফটওয়্যার. এটি আপনার কোডটিকে কিছুটা সহজ রাখে।

ধাপ 4: ধাপ 4: আপনার প্রদর্শন পরীক্ষা করুন

ধাপ 4: আপনার প্রদর্শন পরীক্ষা করুন
ধাপ 4: আপনার প্রদর্শন পরীক্ষা করুন

আপনার ডিসপ্লে পরীক্ষা করার জন্য আমরা u8g2 লাইব্রেরি ব্যবহার করব। অন্যান্য লাইব্রেরি আছে যা আপনি ব্যবহার করতে পারেন, কিন্তু আমার অভিজ্ঞতায়, তাদের কোনটিই u8g2 লাইব্রেরিতে ভাল নয়। একটি গুরুত্বপূর্ণ ফ্যাক্টর হল আরডুইনোর মধ্যে কত র‍্যাম ডিসপ্লে দ্বারা ব্যবহৃত হয়। U8g2 একমাত্র লাইব্রেরি যা আমি খুঁজে পেয়েছি যা একটি "পৃষ্ঠা মোড" ব্যবহার করে যা আরডুইনো ন্যানোর সাথে কাজ করবে।

আপনি "ম্যানেজ লাইব্রেরি" মেনুতে "u8g2" অনুসন্ধান করে আপনার Arduino IED এ এই লাইব্রেরিটি যুক্ত করতে পারেন। আপনি সরাসরি gethub থেকে কোডটি ডাউনলোড করতে পারেন।

github.com/olikraus/u8g2

আমি যে পরীক্ষা কোডটি ব্যবহার করি তা এখানে:

github.com/dmccreary/coderdojo-robots/blob…

কয়েকটি বিষয় লক্ষনীয়। এসসিএল এবং এসডিএ পিন নম্বরগুলি মন্তব্য করা হয়েছে কারণ এগুলি ন্যানোর ডিফল্ট পিন। U8g2 এর জন্য কন্সট্রাকটর হল মূল লাইন:

// আমরা SSD1306, 128x64, একক পৃষ্ঠা, নামহীন, 4 টি তারের, হার্ডওয়্যার, SPI ব্যবহার করছি যার কোন ঘূর্ণন নেই যা শুধুমাত্র 27% গতিশীল মেমরি ব্যবহার করে

আমরা একক পৃষ্ঠা মোড ব্যবহার করছি যেহেতু সেই মোডটি ন্যূনতম RAM ব্যবহার করে। আমরা 4-তারের হার্ডওয়্যার ইন্টারফেস ব্যবহার করছি এবং OLED ডিফল্টরূপে SPI সহ আসে।

ধাপ 5: ধাপ 5: রোবটে আপনার OLED যোগ করুন

ধাপ 5: রোবটে আপনার OLED যোগ করুন
ধাপ 5: রোবটে আপনার OLED যোগ করুন

এখন যেহেতু আমাদের একটি OLED কাজ করছে এবং আমরা জানি কিভাবে u8g2 লাইব্রেরি শুরু করতে হয় আমরা OLED কে আমাদের বেস রোবটের সাথে সংহত করতে প্রস্তুত। কিছু বিষয় বিবেচনা করার আছে। আমাদের ওএলইডি পরীক্ষায় আমরা তারগুলি সহজ করার জন্য একে অপরের পাশে থাকা পিনগুলি ব্যবহার করেছি। দুর্ভাগ্যক্রমে, আমাদের রোবট চালানোর জন্য আমাদের পিন 9 প্রয়োজন কারণ এটি PWM পিনগুলির মধ্যে একটি যা আমাদের মোটর ড্রাইভারকে একটি এনালগ সংকেত পাঠাতে হবে। সমাধান হল পিন 9-এ থাকা তারটিকে অন্য একটি মুক্ত পিনে সরানো এবং তারপর #ডিফাইন স্টেটমেন্টটিকে সেই নতুন পিনে পরিবর্তন করা। রোবটের সামনে OLED মাউন্ট করার জন্য আমি প্লেক্সিগ্লাস এবং হট-আঠালো থেকে দুটি ত্রিভুজাকার টুকরো কেটে ফেললাম তাদের চেসিসে। আমি সবসময় কিছু কোর্স স্যান্ডপেপার ব্যবহার করতে পছন্দ করি প্লেক্সিগ্লাসের পৃষ্ঠকে রুক্ষ করার আগে আমি অংশগুলিকে একসাথে গরম-আঠালো করার জন্য যাতে তারা খুব সহজে আলাদা না হয়।

পরবর্তীতে, আসুন আমাদের OLED- এর কিছু তথ্য পাই এবং রোবটের উপর কিছু মুখ আঁকি!

ধাপ 6: ধাপ 6: রোবট পরামিতি প্রদর্শন করুন

ধাপ 6: রোবট পরামিতি প্রদর্শন করুন
ধাপ 6: রোবট পরামিতি প্রদর্শন করুন

ডিসপ্লে থাকার একটি চমৎকার বিষয় হল এটি আমাদের রোবটের ভিতরে যা চলছে তা ডিবাগ করতে সাহায্য করে যখন এটি চারপাশে গাড়ি চালাচ্ছে। ডেভেলপারদের ডেস্কটপে একটি ফাংশন কাজ করা অস্বাভাবিক নয় যখন আপনি আপনার কম্পিউটারের সাথে সংযুক্ত থাকবেন যখন রোবট চারপাশে গাড়ি চালাচ্ছে তখন এটি কাজ করবে না। একটি মান প্রদর্শন করা যেমন পিং সেন্সর দ্বারা পরিমাপ করা দূরত্ব একটি রোবট প্যারামিটার প্রদর্শনের একটি ভাল উদাহরণ।

উপরের ছবিতে, প্রথম লাইন (ইকো টাইম) শব্দটি যখন অতিস্বনক স্পিকার ছেড়ে দেয় এবং মাইক্রোফোন দ্বারা প্রাপ্ত সময়ের মধ্যে বিলম্বের সময় দেখায়। এই সংখ্যাটি দ্বিতীয় লাইনে সেন্টিমিটারে রূপান্তরিত হয় (সেমি দূরত্ব)। ডিসপ্লে আপডেট হচ্ছে তা দেখানোর জন্য কাউন্টার আপডেট সার্চ সেকেন্ড। "টার্নিং …" শুধুমাত্র তখনই প্রদর্শিত হয় যখন দূরত্ব একটি নির্দিষ্ট সংখ্যার নিচে থাকে যাকে টার্ন থ্রেশহোল্ড বলা হয়। পিং দূরত্ব এই সংখ্যার উপরে থাকলে উভয় চাকা এগিয়ে যায়। যদি সংখ্যাটি থ্রেশহোল্ডের নিচে থাকে তাহলে আমরা মোটরগুলিকে বিপরীত করি (ব্যাক আপ) এবং তারপর দিক পরিবর্তন করি।

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

এখানে একটি উদাহরণ যা তিনটি পিং সেন্সর (বাম, কেন্দ্র এবং ডান) পরীক্ষা করে এবং প্রদর্শনের মানগুলি দেখায়:

github.com/dmccreary/coderdojo-robots/blob…

ধাপ 7: ধাপ 7: কিছু মুখ আঁকুন

ধাপ 7: কিছু মুখ আঁকুন!
ধাপ 7: কিছু মুখ আঁকুন!

এখন আমরা কিছু মুখ আঁকা সব টুকরা জায়গায় আছে। আমাদের শিক্ষার্থীরা সাধারণত মনে করে যে রোবটটি যদি সামনের দিকে চালিত হয় তবে তার একটি খুশি মুখ থাকা উচিত। যখন এটি তার সামনে কিছু দেখে, তখন এটি বিস্ময়ের অনুভূতি নিবন্ধন করে। এটি তখন ব্যাক আপ করে এবং চারপাশে তাকায়, সম্ভবত চোখগুলি এটি কোন দিকে ঘুরবে তা সংকেত দিতে চলেছে।

একটি মুখ আঁকতে অঙ্কন কমান্ড বেশ সহজ। আমরা মুখের রূপরেখার জন্য একটি বৃত্ত আঁকতে পারি এবং প্রতিটি চোখের জন্য বৃত্ত ভরাতে পারি। মুখ একটি হাসির জন্য একটি অর্ধ বৃত্ত এবং বিস্ময়ের অনুভূতির জন্য একটি পূর্ণ বৃত্তাকার বৃত্ত হতে পারে। এটি সেই জায়গা যেখানে বাচ্চারা তাদের সৃজনশীলতা ব্যবহার করে অভিব্যক্তিগুলিকে ব্যক্তিগতকৃত করতে পারে। আমি মাঝে মাঝে ইচ্ছাকৃতভাবে খারাপ মুখ আঁকি এবং ছাত্রদের বলি আমাকে তাদের আরও ভাল করতে সাহায্য করতে।

ডিসপ্লের আকার পেতে আপনি display.height () এবং display.width () ফাংশন ব্যবহার করতে পারেন। নীচের কোডে আমরা ভেরিয়েবল সেট আপ করি

half_width = display.width ()/2; half_height = display.height ()/2;

যদি আপনি এই গণনাগুলি অনেকবার করেন, কোডগুলি যদি একটু গণনা করা হয় এবং একটি ভেরিয়েবলে সংরক্ষণ করা হয় তবে তা একটু দ্রুত হয়। উপরের বিরক্তিকর সোজা মুখটি কীভাবে আঁকা হয় তার কিছু উদাহরণ এখানে দেওয়া হল:

// আমরা প্রতিটি লুপের শুরুতে এটি করি

display.clearDisplay (); // backgrounddisplay.fillCircle (half_width, half_height, 31, White); // ডান চোখের অন্ধকার display.fillCircle (half_width - 10, display.height ()/3, 4, BLACK); // বাম চোখের অন্ধকার প্রদর্শন। // মুখ প্রদর্শনের জন্য একটি সরলরেখা আঁকুন। // এই লাইনটি OLED ডিসপ্লে ডিসপ্লেতে আমাদের নতুন মুখ পাঠায়।

ধাপ 8: ধাপ 8: কাস্টমাইজ করুন

ধাপ 8: কাস্টমাইজ করুন
ধাপ 8: কাস্টমাইজ করুন

মৌলিক মুখ আঁকা মাত্র শুরু। শিক্ষার্থীরা অনেক বৈচিত্র তৈরি করতে পারে। অনেক শিক্ষার্থী একটি ছোট স্পিকার যুক্ত করেছে যা চারপাশে চলার সময় একটি সুর বা শব্দ বাজায়।

আপনি ছোট পরীক্ষা প্রোগ্রামগুলিও তৈরি করতে পারেন যা আপনার শিক্ষার্থীদের মোটরগুলিকে সঠিকভাবে সংযুক্ত করতে সহায়তা করে। উদাহরণস্বরূপ স্ক্রিনে একটি তীর (ত্রিভুজ) শিক্ষার্থীকে বলবে যে আপনি মোটরগুলিকে সংযুক্ত করার সময় চাকাটি কোন দিকে ঘুরতে হবে। প্রতিটি মোটর নির্দেশের মাধ্যমে পরীক্ষা প্রোগ্রাম চক্র:

  1. ডান দিকে এগিয়ে
  2. ডান বিপরীত
  3. ফরওয়ার্ড বাম
  4. বাম বিপরীত

প্রতিটি মোডের জন্য, কোন চাকা ঘুরানো উচিত এবং কোন দিকে যেতে হবে তা দেখানোর জন্য স্ক্রিনটি নতুন ডিসপ্লে দিয়ে আপডেট করা হয়।

সেই প্রোগ্রামের একটি উদাহরণ এখানে

github.com/dmccreary/coderdojo-robots/blob…

কোডারডোজো রোবট গিটহাব ফেসবট পৃষ্ঠায় অনেক অতিরিক্ত উদাহরণ এবং প্রোগ্রামিং বিশদ রয়েছে।

ফেসবট রোবটের একটি সংস্করণও রয়েছে যা শিক্ষার্থীদের সরাসরি ডিসপ্লে ব্যবহার করে সংঘর্ষ এড়ানোর সমস্ত প্যারামিটার (ফরওয়ার্ড স্পিড, টার্ন ডিস্টেন্স, টার্ন টাইম, টার্ন স্পিড) পরিবর্তন করতে দেয়। এই রোবটগুলিকে "প্রোগ্রাম" করার জন্য কোন কম্পিউটারের প্রয়োজন নেই! এই সংস্করণগুলি মেকারফেয়ার এবং ইভেন্টগুলির জন্য আদর্শ যা আপনি কম্পিউটারগুলি চারপাশে আনতে চান না।

আপনি এবং আপনার শিক্ষার্থীরা কোন নতুন মুখ নিয়ে আসছেন দয়া করে আমাদের জানান!

শুভ কোডিং!

প্রস্তাবিত: