সুচিপত্র:

Arduino Hot Wheels Speed Track Part #2 - Code: 5 Step
Arduino Hot Wheels Speed Track Part #2 - Code: 5 Step

ভিডিও: Arduino Hot Wheels Speed Track Part #2 - Code: 5 Step

ভিডিও: Arduino Hot Wheels Speed Track Part #2 - Code: 5 Step
ভিডিও: HotWheels Speed Track - Part #2 - The code and Testing 2024, জুলাই
Anonim
Image
Image

এই প্রকল্পের প্রথম অংশে আমরা 2 টি ব্রেডবোর্ডে প্রোটোটাইপের জন্য হার্ডওয়্যার তৈরি করেছি।

এবং এই অংশে আমরা কোডের উপর যাব, এটি কিভাবে কাজ করে এবং তারপর এটি পরীক্ষা করে দেখুন।

সম্পূর্ণ কোড পর্যালোচনা এবং কাজের কোডের প্রদর্শনের জন্য উপরের ভিডিওটি দেখতে ভুলবেন না।

ধাপ 1: একই কোডে মাস্টার এবং স্লেভ উভয়ই

কোডটি 2 অংশে, কিন্তু একই ফাইলের ভিতরে। কোন কোডটি কম্পাইল বা উপেক্ষা করা হবে তা নির্ধারণ করতে আমি #define এবং #ifdef ব্যবহার করি তাই আমি যে কোনো কোডকে আলাদা করতে পারি যা শুধুমাত্র মাস্টার ব্রেডবোর্ডের জন্য এবং কোড যা শুধু স্লেভ ব্রেডবোর্ডের জন্য।

মূলত, যদি ডিফাইন মাস্টার পাওয়া যায়, তাহলে মাস্টার কোড ব্লকের ভিতরে বসে থাকা যেকোনো কোড কম্পাইল করা হবে এবং সেই ব্লকের বাইরের যেকোনো কোড কম্পাইল করার সময় মুছে ফেলা হবে।

#ifdef মাস্টার

// মাস্টার নির্দিষ্ট কোড এখানে আছে

#অন্যথায়

#দাস নির্ধারণ করুন

// স্লেভ নির্দিষ্ট কোড এখানে আছে

#যদি শেষ

মাস্টার কম্পাইল করা হলে আমি #ডিভাইন স্লেভ করার জন্য একই কৌশল ব্যবহার করছি তাই আপনাকে কেবল মাস্টারকে সংজ্ঞায়িত করার বিষয়ে চিন্তা করতে হবে বা স্লেভকে সংজ্ঞায়িত করতে সক্ষম হবে না।

ধাপ 2: ব্লুটুথ মডিউল টক মাধ্যমে সিরিয়াল পড়ুন এবং লিখুন

এই প্রকল্পে শুধুমাত্র স্লেভ ব্রেডবোর্ড মাস্টার রুটিবোর্ডের সাথে কথা বলে। মাস্টার কখনই ফিরে কথা বলেন না, এটি কেবল শোনে এবং তারপরে আসা ডেটার উপর কাজ করে।

মডিউলগুলি Arduino কোডিং ইকোসিস্টেমের অন্তর্নির্মিত সিরিয়াল ক্লাস ব্যবহার করে কথা বলে এবং শোন।

ব্লুটুথ মডিউলগুলি 38400 বাউডে যোগাযোগ করে, তাই উভয় কোড পাথ তাদের সিরিয়াল যোগাযোগ ব্যবহার করে শুরু করে:

Serial.begin (38400);

এবং দাস ব্যবহার করে:

Serial.write (এখানে তথ্য);

মাস্টারের সাথে কথা বলতে, এবং মাস্টার ব্যবহার করে:

ডেটা = সিরিয়াল.রিড ();

সিরিয়াল স্ট্রিম শুনতে এবং এর বিষয়বস্তু পড়তে এবং এটি একটি ভেরিয়েবলের ভিতরে সংরক্ষণ করুন।

ধাপ 3: রেস নিয়ন্ত্রণ

স্লেভ মাস্টারকে বলে যদি এটি রেস বেশি বা রেডি মোডে থাকে তার মাইক্রো-কন্ট্রোলারের সাথে যুক্ত সবুজ বোতামের মাধ্যমে। রেডি মোডে, আইআর সেন্সরগুলি কিছু করে না এবং মাস্টার ডিসপ্লেতে 8 টি ড্যাশ দেখাবে যাতে এটি প্রস্তুত মোডে আছে তা নির্দেশ করে।

যখন স্লেভ মাস্টারকে বলে যে একটি দৌড় শুরু হতে চলেছে, তখন দাস আইআর সেন্সরগুলিকে তার পাশে (রেস ট্র্যাকের শুরু) পোল করতে শুরু করে যাতে গাড়িগুলি নীচে চলে যায়।

প্রতিটি গাড়ি প্রতিটি আইআর সেন্সরের নিচে দিয়ে যাওয়ার সময়, এটি মাস্টারকে একটি (গাড়ি 1) বা বি (গাড়ি 2) পাঠায়।

যখন মাস্টার একটি A বা B পায়, এটি সেই নির্দিষ্ট গাড়ির জন্য টাইমার সক্ষম করে এবং তারপর ফিনিস লাইনে সংশ্লিষ্ট আইআর সেন্সরের নীচে গাড়িটি যাওয়ার জন্য অপেক্ষা করে।

ডিসপ্লেটি প্রতি 50 মিটারে আপডেট করা হয় যাতে প্রতিটি গাড়ির বর্তমান সময় সেকেন্ডে 2 দশমিক স্থান সহ প্রদর্শিত হয়।

একবার উভয় গাড়ী ফিনিশিং লাইনে আঘাত করলে, মাস্টার সিদ্ধান্ত নেয় কোন গাড়িটি দ্রুততম ছিল এবং বিজয়ীকে নির্দেশ করার জন্য ডিসপ্লেতে সেই সময় ফ্ল্যাশ করে।

ধাপ 4: কোড অব বাকি

বাকি কোডটি কেবল ইউটিলিটি কোড যা 8 ডিজিটের ডিসপ্লেতে ডেটা প্রদর্শন নিয়ন্ত্রণ করে, বা বোতাম প্রেস লজিক ইত্যাদি নিয়ন্ত্রণ করে।

এই প্রকল্পের ভূমিকা অংশে ভিডিওর শেষে, আমি 2 টি ব্রেডবোর্ডে চলমান কোডের একটি উদাহরণ দেখাই, তাই নিশ্চিত করুন যে আপনি এটি পরীক্ষা করে দেখুন!

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

ধাপ 5: এরপর কি?

আপাতত এইটুকুই… 3 য় অংশে আমরা উপাদানগুলোকে রুটিবোর্ড থেকে সরিয়ে আরও স্থায়ী কিছুর দিকে তাকাবো … সাথে থাকুন!

আমি আশা করি আপনি এই প্রকল্পটি উপভোগ করছেন!

আমাকে ফল কর:

www.youtube.com/c/uneectedmaker

twitter.com/uneectedmaker

www.facebook.com/uneectedmaker

www.instagram.com/uneectedmaker

www.tindie.com/stores/seonr/

প্রস্তাবিত: