সুচিপত্র:

ইউসিএল এমবেডেড - B0B লাইনফলোয়ার: 9 ধাপ
ইউসিএল এমবেডেড - B0B লাইনফলোয়ার: 9 ধাপ

ভিডিও: ইউসিএল এমবেডেড - B0B লাইনফলোয়ার: 9 ধাপ

ভিডিও: ইউসিএল এমবেডেড - B0B লাইনফলোয়ার: 9 ধাপ
ভিডিও: ইউসিএল ফাইনাল: ব্রুজোনের বাজি রিয়াল, স্মলির লিভারপুল | UEFA Champions League Final | Oscar Bruzon 2024, জুলাই
Anonim
UCL এমবেডেড - B0B লাইনফলোয়ার
UCL এমবেডেড - B0B লাইনফলোয়ার

এটি B0B।*

B0B একটি জেনেরিক রেডিও নিয়ন্ত্রিত গাড়ি, অস্থায়ীভাবে একটি লাইন-অনুসরণকারী রোবটের ভিত্তিতে কাজ করে।

তার আগে অনেক লাইন-অনুসরণকারী রোবটের মতো, তিনি আমাদের ক্ষেত্রে ডাক্ট টেপে, মেঝে এবং একটি বৈপরীত্যমূলক উপাদানের মধ্যে পরিবর্তনের কারণে একটি লাইনে থাকার জন্য যথাসাধ্য চেষ্টা করবেন।

অন্য অনেক লাইন-অনুসরণকারী রোবট থেকে ভিন্ন, B0B ডেটা সংগ্রহ করে এবং ওয়াইফাই এর মাধ্যমে পাঠায়।

একটি শখের প্রকল্পের জন্য সম্পূর্ণরূপে ওভারকিল, এতে বেশ কয়েকটি বিষয় জড়িত যা আপনাকে আকর্ষণীয় মনে হতে পারে। এই গাইড তার জন্ম, তার কার্যাবলী এবং কিভাবে আপনি তার মত একজনকে তৈরি করতে পারেন তা বর্ণনা করে।

এর মধ্যে বিভিন্ন ইলেকট্রনিক্সের উপর রাগ করাও জড়িত যেমন আমরা তাদের চেয়েছিলাম, এবং সেই সমস্যাগুলি কাটিয়ে উঠতে আমরা যে পদক্ষেপ নিয়েছি, (আমি আপনার দিকে তাকিয়ে আছি ESP 8266-01)।

প্রকল্পের কাজ করার জন্য 2 টি কোড রয়েছে। প্রথম কোডটি ESP8266 মডিউলের জন্য যা আমরা Arduino কে প্রোগ্রামার হিসেবে ব্যবহার করি এবং দ্বিতীয় কোডটি Arduino তে চলতে চলেছে।

ধাপ 1: উপাদান

এই প্রকল্পের জন্য আপনার প্রয়োজন হবে:

হার্ডওয়্যার:

• 1x রেডিও কন্ট্রোলার গাড়ি, (অবশ্যই ESC এবং স্টিয়ারিং সার্ভো থাকতে হবে)।

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

যাইহোক, বেশিরভাগ রেডিও নিয়ন্ত্রিত গাড়ি (যা সহজেই আলাদা করা যায়) সম্ভবত পরিবর্তে ব্যবহার করা যেতে পারে এবং প্রক্রিয়াটি খুব অনুরূপ হবে।

• এক টন ডাক্ট টেপ।

রঙ যতটা সম্ভব মেঝের বিপরীতে হওয়া উচিত। আমাদের পরীক্ষার পরিবেশে আমরা একটি অন্ধকার মেঝেতে সাদা টেপ ব্যবহার করেছি।

X 1x Arduino মেগা 2560।

ছোট Arduino এর সম্ভবত খুব ভাল, কিন্তু আপনি পিনের জন্য চাপ দেওয়া হবে।

X 1x বড় রুটি বোর্ড।

একটি যথেষ্ট, কিন্তু ব্যবহারকারীর ত্রুটির ঝুঁকি কমাতে আমাদের অন্যান্য ভোল্টেজ পাওয়ার লাইনগুলিকে আলাদা করার জন্য একটি ছোট ছিল।

• 1x TCRT5000 IR এনালগ সেন্সর (সংঘর্ষ এড়ানোর জন্য ব্যবহৃত)।

সঠিক ব্র্যান্ড/মডেল কোন ব্যাপার না যদি এটি Arduino সামঞ্জস্যপূর্ণ এবং দূরত্ব পরিমাপ করে। "দূরত্ব", "বাধা" সেন্সরের মতো কীওয়ার্ডগুলি অনুসন্ধান করুন। টেকনিক্যালি একটি ডিজিটাল সেন্সর ছোট কোড পরিবর্তনের পাশাপাশি কাজ করবে, কিন্তু আমরা একটি এনালগ ব্যবহার করছি।

• 1x বা 2x মাধ্যাকর্ষণ: এনালগ গ্রেস্কেল সেন্সর v2

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

• 1 x ESP 8266-01।

ESP 8266 এর প্রচুর সংস্করণ পাওয়া যায়। আমাদের শুধুমাত্র 8266-01 এর অভিজ্ঞতা আছে, এবং গ্যারান্টি দিতে পারছি না যে ESP কোডটি ভিন্ন সংস্করণে কাজ করবে।

• 1 x ESP8266-01 Wi-Fi ieldাল।

টেকনিক্যালি optionচ্ছিক, কিন্তু যদি আপনি এটি ব্যবহার না করেন, তাহলে ওয়াই-ফাই মডিউলের সাথে জড়িত সবকিছু অনেক জটিল হয়ে উঠবে। যাইহোক, গাইডটি ধরে নেবে যে আপনার কাছে এটি আছে, (যদি না হয়, সঠিকভাবে ESP-01 কে Arduino এ সংযুক্ত করার জন্য অনলাইনে গাইড খুঁজুন), কারণ এটি ভুলভাবে করা এবং সম্ভবত মডিউলটিকে ক্ষতিগ্রস্ত করবে।

The গাড়ির জন্য ব্যাটারি এবং অ্যাড-অন ইলেকট্রনিক্সকে পাওয়ার জন্য ব্যাটারি।

আমরা 2.2 এএইচ ধারণক্ষমতার একটি জোড়া, 7.4V লাইপো ব্যাটারী সবকিছুর ক্ষমতার সমান্তরালে ব্যবহার করেছি। আপনি সাধারণত আপনার পছন্দের গাড়ির সাথে যে ব্যাটারি ব্যবহার করবেন তা ব্যবহার করতে সক্ষম হওয়া উচিত। যদি আপনি 5V এর উপরে কিন্তু 20V এর নিচে থাকেন, নামমাত্র ভোল্টেজের চেয়ে ক্ষমতা বেশি গুরুত্বপূর্ণ।

J প্রচুর জাম্পার কেবল।

আমি এর সঠিক সংখ্যা গণনা করা ছেড়ে দিয়েছি। যদি আপনি মনে করেন যে আপনার যথেষ্ট আছে, আপনি সম্ভবত না।

• পরিশেষে, সবকিছু সংযুক্ত করতে, আপনাকে আপনার পছন্দের গাড়িতে আরডুইনো, সেন্সর, ব্রেডবোর্ড এবং ওয়াই-ফাই-মডিউল মাউন্ট করতে হবে। আপনি ভিত্তি হিসাবে কী ব্যবহার করছেন এবং কী উপকরণ পাওয়া যায় তার উপর নির্ভর করে আপনার ফলাফল পরিবর্তিত হবে।

আমরা ব্যবহার করেছি:

• জিপ বন্ধন.

Super কিছু সুপার আঠালো।

Sc স্ক্র্যাপ পেপার/রজন টিউবের ছোট ছোট টুকরা আমাদের একটি উপযুক্ত ব্যাস ছিল।

Picture একটি ছবির ফ্রেম থেকে একটি পুরানো মেসনাইট ব্যাকপ্লেট, আকারে কাটা।

More আরেকটু ডাক্ট টেপ।

Radio আপনার পছন্দের রেডিও-নিয়ন্ত্রিত গাড়িতে কাজ করার জন্য যে কোনও সরঞ্জাম প্রয়োজন।

আমরা বেশিরভাগই একাধিক বিট সহ একটি ছোট স্ক্রু ড্রাইভার সেট ব্যবহার করতাম, কিন্তু মাঝেমধ্যে গাড়ির সাথে আসা স্টক টুলসেটটি বের করতে হতো।

সফটওয়্যার:

• নোড-লাল

তথ্য সংগ্রহের একটি গুরুত্বপূর্ণ অংশ।

M একটি MQTT সার্ভার।

আমাদের গাড়ির মাঝামাঝি মানুষ এবং নোড-লাল। প্রাথমিকভাবে, পরীক্ষার জন্য, আমরা test.mosquitto.org ব্যবহার করেছি

পরে আমরা ব্যবহার করেছি:

Oud CloudMQTT.com

এটি অনেক বেশি নির্ভরযোগ্য ছিল যা সেট আপ করার জন্য কিছুটা জটিল হওয়ার জন্য তৈরি।

• WampServer।

তথ্য সংগ্রহের শেষ অংশ। বিশেষভাবে, আমরা আমাদের সংগৃহীত তথ্য সংরক্ষণের জন্য এর এসকিউএল ডাটাবেস ব্যবহার করব।

ধাপ 2: বৈদ্যুতিক চিত্র

বৈদ্যুতিক চিত্র
বৈদ্যুতিক চিত্র

ধাপ 3: শারীরিক নির্মাণ

শারীরিক নির্মাণ
শারীরিক নির্মাণ
শারীরিক নির্মাণ
শারীরিক নির্মাণ
শারীরিক নির্মাণ
শারীরিক নির্মাণ

আমাদের সমাধানে শারীরিক সমাবেশের জন্য একটি সরাসরি অগ্রগতি রয়েছে।

মূল রিসিভার এবং এর জলরোধী ঘেরটি আরসি গাড়ি থেকে সরানো হয়েছিল, কারণ এটির প্রয়োজন নেই।

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

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

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

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

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

ধাপ 4: ESP8266 মডিউল

ESP8266 মডিউল
ESP8266 মডিউল
ESP8266 মডিউল
ESP8266 মডিউল

ওয়াইফাই মডিউল, ESP8266 এর জন্য দুটি ভিন্ন পিন সেটআপ প্রয়োজন। একটি নতুন প্রোগ্রামের সাথে মডিউল ফ্ল্যাশ করার সময় এবং একটি প্রোগ্রামার হিসাবে Arduino Mega 2560 ব্যবহার করার সময় একটি সেটআপ ব্যবহার করতে হবে। অন্য সেটআপটি মডিউলের জন্য যখন এটি ব্যবহার করা হয় এবং MQTT ব্রোকারের কাছে তথ্য পাঠায়।

ESP8266 মডিউলে কোড আপলোড করতে Arduino IDE ব্যবহার করে আপনাকে একটি বোর্ড ম্যানেজার এবং একটি অতিরিক্ত বোর্ড ম্যানেজার ইনস্টল করতে হবে

বোর্ড ম্যানেজারের অধীনে esp8266 বোর্ড ম্যানেজার ইনস্টল করুন। এটি "esp" সার্চ করলে সহজেই পাওয়া যাবে। এটি গুরুত্বপূর্ণ যে আপনি সংস্করণ 2.5.0 ইনস্টল করুন, পুরানো নয়, নতুন নয়।

অতিরিক্ত বোর্ড ম্যানেজার ইউআরএলের সেটিংসের অধীনে, এই লাইনে অনুলিপি করুন:

arduino.esp8266.com/stable/package_esp8266c…

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

ESP8266 মডিউল ফ্ল্যাশ করার পরে আপনাকে পিন সেটআপ পরিবর্তন করতে হবে। আপনার জন্য সেটআপ সহজ করার জন্য আপনি একটি অ্যাডাপ্টার ব্যবহার করাও বেছে নিতে পারেন। এই প্রজেক্টে আমরা যখনই মডিউলটি চালাচ্ছিলাম তখন আমরা একটি অ্যাডাপ্টার রাখার সিদ্ধান্ত নিয়েছিলাম। অ্যাডাপ্টারের সাথে পিন সেটআপ এই সেগমেন্টের দ্বিতীয় ছবিতে পাওয়া যায়।

ESP8266 মডিউলে ফ্ল্যাশ করা কোডটি একটি ওয়াইফাই এবং একটি MQTT ব্রোকারের সাথে সংযোগ স্থাপন করে, এই ক্ষেত্রে ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে, কিন্তু কোডের মন্তব্যে বর্ণিত প্রয়োজনীয় পরিবর্তনগুলি না করেও করা যেতে পারে। এই প্রকল্পের জন্য আমাদের ব্রোকারের কাজ করার জন্য একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রয়োজন। মডিউলটি সিরিয়াল পোর্ট থেকে আগত বার্তাগুলি পড়ে যা এটি সংযুক্ত। এটি Arduino কোড দ্বারা তৈরি প্রতিটি নতুন লাইন পড়বে, বার্তাটি পাঠ করবে এবং বার্তাটি পুনরায় তৈরি করবে। তারপরে এটি এমকিউটিটি ব্রোকারকে বার্তা পাঠায় যা কোডে নির্দিষ্ট করা হয়েছে। ESP8266 মডিউলের কোড:

ধাপ 5: আরডুইনো

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

প্রোগ্রামটিতে দুটি বোতাম রয়েছে যা আরসি গাড়ির স্টার্ট এবং স্টপ বোতাম হিসাবে কাজ করে। টেকনিক্যালি "স্টপ" বোতামটি একটি "আর্মিং" বোতাম যা পরিপ্রেক্ষিতে মোটরের কাছে পাঠানো PWM মানের সমান যা RC গাড়ি থামিয়ে দেয়। স্টার্ট বোতামটি একটি PWM মান পাঠায় যা RC গাড়ির সমানভাবে সামনের দিকে এগোচ্ছে কারণ এটি যদি খুব বেশি গতি পায় তবে এটি খুব দ্রুত গাড়ি চালাবে।

আরসি গাড়ির সামনের প্রান্তে একটি সংঘর্ষ এড়ানোর ডিটেক্টর যুক্ত করা হয়েছে যাতে সামনের পথটি পরিষ্কার বা অবরুদ্ধ কিনা তা সনাক্ত করা যায়। যদি এটি অবরুদ্ধ থাকে তবে আরসি গাড়ি থামবে যতক্ষণ না বাধা দূর/সরানো হয়। ডিটেক্টর থেকে এনালগ সিগন্যাল কোন কিছু পথ বাধা দিচ্ছে কি না তা নির্ধারণ করতে ব্যবহৃত হয় এবং থামানোর পাশাপাশি এগিয়ে যেতে সক্ষম হওয়ার জন্য একটি মানদণ্ড তৈরি করা হয়।

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

সবশেষে প্রোগ্রামটি ওয়াইফাই মডিউল পড়ার জন্য সেন্সর থেকে তথ্যের একটি লাইন তৈরি করে এবং পরে MQTT ব্রোকারের কাছে পাঠায়। তথ্যের লাইনটি একটি স্ট্রিং হিসাবে তৈরি করা হয় এবং সংশ্লিষ্ট সিরিয়ালে লেখা হয় যার সাথে ওয়াইফাই মডিউল সংযুক্ত থাকে। এটা গুরুত্বপূর্ণ যে সিরিয়ালে লেখাটি যতবার ওয়াইফাই মডিউল থেকে আগত বার্তাটি পড়তে পারে ততবারই ঘটে, কিন্তু মনে রাখবেন যে এই কোডটিতে কোনও বিলম্ব ব্যবহার করবেন না কারণ এটি আরসি গাড়ির লাইন অনুসরণ করার ক্ষমতাকে হস্তক্ষেপ করবে। পরিবর্তে "মিলিস" ব্যবহার করুন কারণ এটি বিলম্ব ছাড়াই প্রোগ্রামটি চালানোর অনুমতি দেবে কিন্তু আরডুইনো চালু হওয়ার পর থেকে একটি নির্দিষ্ট পরিমাণ মিলি পাস হওয়ার পরে, কোডটি ব্লক না করে সিরিয়ালে একটি বার্তা লিখবে যেমনটি বিলম্ব করে।

Arduino মেগা 2560 এর জন্য কোড:

ধাপ 6: মাইএসকিউএল ডাটাবেস

WampServer হল উইন্ডোজের জন্য একটি ওয়েব ডেভেলপমেন্ট এনভায়রনমেন্ট যা আমাদের পিএইচপি এবং একটি মাইএসকিউএল ডাটাবেস দিয়ে অ্যাপ্লিকেশন তৈরি করতে দেয়। PhpMyAdmin আমাদের একটি সহজ উপায়ে আমাদের ডাটাবেস পরিচালনা করতে দেয়।

শুরু করতে এখানে যান:

এই প্রকল্পে আমরা উইন্ডোজের জন্য 3.17 x64 বিট সংস্করণ ব্যবহার করি। ইনস্টলেশনের পরে নিশ্চিত করুন যে সমস্ত পরিষেবাগুলি চলছে যার পরিপ্রেক্ষিতে ছোট আইকনটি লাল বা কমলার পরিবর্তে সবুজ হয়ে যায়। যদি আইকনটি সবুজ হয়, তাহলে আপনি আপনার MySQL ডাটাবেস পরিচালনা করতে PhpMyAdmin ব্যবহার করতে পারেন।

PhpMyAdmin ব্যবহার করে MySQL অ্যাক্সেস করুন এবং একটি নতুন ডাটাবেস তৈরি করুন। এটির উপযুক্ত কিছু নাম দিন যা আপনি মনে রাখতে পারেন, এই প্রকল্পে এটিকে বলা হয়েছিল "লাইন_ফলো_লগ"। ডাটাবেস তৈরির পরে, আপনার ডাটাবেসে একটি টেবিল তৈরি করা উচিত। নিশ্চিত করুন যে কলামের সংখ্যা মানানসই। প্রকল্পে আমরা 4 টি কলাম ব্যবহার করি। একটি কলাম টাইমস্ট্যাম্পের জন্য এবং শেষ তিনটি গাড়ির ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। প্রতিটি কলামের জন্য একটি সঠিক ডেটা টাইপ ব্যবহার করুন। আমরা টাইমস্ট্যাম্প কলামের জন্য "লংটেক্সট" এবং বাকিদের জন্য "মিডিয়ামটেক্সট" ব্যবহার করেছি।

PhpMyAdmin এবং MySQL এ আপনাকে যা করতে হবে তা হওয়া উচিত। নোড-রেড সম্পর্কে বিভাগের জন্য আপনার ডাটাবেস এবং টেবিল মনে রাখবেন।

ধাপ 7: নোড-লাল

তথ্য সংগ্রহ পরিচালনা করার জন্য, আমরা নোড-রেডে মোটামুটি সহজ প্রবাহ ব্যবহার করব। এটি আমাদের MQTT সার্ভারের সাথে সংযোগ স্থাপন করে এবং আমাদের MYSQL ডাটাবেসে লিখে দেয়।

এটি করার জন্য, বিভিন্ন ফাংশন কাজ করার জন্য আমাদের কয়েকটি প্যালেট প্রয়োজন, এবং এটি চালানোর জন্য আমাদের কিছু প্রকৃত কোড প্রয়োজন।

আগেরটা আগে. আমাদের নিম্নলিখিত প্যালেটগুলির প্রয়োজন হবে।

নোড-রেড-কন্ট্রিবিউট-এমকিউটিটি-ব্রোকার: এটি আমাদের এমকিউটিটি ব্রোকারের সংযোগ।

নোড-রেড-ড্যাশবোর্ড: আমাদের ড্যাশবোর্ড, সংগৃহীত ডেটা দৃশ্যত প্রতিনিধিত্ব করার জন্য প্রয়োজন।

নোড-রেড-নোড-মাইএসকিউএল: এসকিউএল ডাটাবেসের সাথে আমাদের সংযোগ।

এটি নোড-রেডের সম্পূর্ণরূপে উন্নত গাইড হওয়ার জন্য নয়, তবে নোড-লাল প্রবাহ কী করে তা আমি ব্যাখ্যা করব।

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

'টেস্ট স্ট্রিং' এমকিউটিটি ব্রোকারকে একটি কাস্টম স্ট্রিং পাঠায়। আমরা এই স্ট্রিংটি আরডুইনো থেকে যা পাবো তার অনুরূপ ফরম্যাট করেছি। এটি এমন একটি নেটওয়ার্ক কনফিগার করা সহজ ছিল যা বার্তাগুলি ডিকোড করে, প্রকল্পটি চালানোর প্রয়োজন ছাড়াই, তথ্য সংগ্রহ করে।

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

একটি ফাংশন নোড অনুসরণ করে সংযুক্ত সুইচগুলির বড় নেটওয়ার্ক যদি প্রকৃত 'যাদু' ঘটে।

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

একটি উদাহরণ, 'বাধা', অন্য সকলের মত একটি বাইনারি পছন্দ, এটি ড্রাইভ করা হয় পরিষ্কার, অথবা এটি নয়। সুতরাং এটি একটি 0 পাবে, অথবা একটি 1. একটি 0 'পরিষ্কার' শাখায় পাঠানো হবে, একটি 1 'বাধাগ্রস্ত' শাখায় পাঠানো হবে। 'ক্লিয়ার', 'বাধাপ্রাপ্ত' সুইচ, সক্রিয় হলে যথাক্রমে নির্দিষ্ট, পরিষ্কার, বা বাধাযুক্ত কিছু আউটপুট করবে। সবুজ প্রসেসিং ব্লকগুলি ডিবাগ উইন্ডোতে পোস্ট করবে, নীল আমাদের ড্যাশবোর্ডে লিখবে।

'স্ট্যাটাস' এবং 'লোকেশন' শাখাগুলি ঠিক একই রকম কাজ করে।

ধাপ 8: MQTT ব্রোকার

একটি ব্রোকার হল একটি সার্ভার যা ক্লায়েন্টদের থেকে বার্তাগুলিকে উপযুক্ত গন্তব্য ক্লায়েন্টদের কাছে রুট করে। একটি এমকিউটিটি ব্রোকার হল যেখানে ক্লায়েন্টরা একটি নেটওয়ার্কের মাধ্যমে ব্রোকারের সাথে সংযোগ স্থাপনের জন্য একটি এমকিউটিটি লাইব্রেরি ব্যবহার করে।

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

ব্রোকার যে বার্তাগুলি গ্রহণ করে তার জন্য চলমান পরিসংখ্যান একটি মনোরম বৈশিষ্ট্য, যা আপনার সাবস্ক্রিপশন প্ল্যানটি যেভাবে তথ্যগুলি পরিচালনা করছে তা কতটা ভালভাবে ব্যবহার করছে তা দেখতে ব্যবহার করা যেতে পারে।

একটি চমৎকার বৈশিষ্ট্য হল ব্রোকার থেকে ওয়াইফাই মডিউলে বার্তা পাঠানোর সম্ভাবনা কিন্তু আমরা এই প্রকল্পে সেগুলি ব্যবহার করিনি।

ধাপ 9: শখ ইলেকট্রনিক্স

শুরু করার আগে আমরা একটি অতীত প্রকল্প থেকে জানতাম যে স্টক স্টিয়ারিং সার্ভোটি একটি Arduino থেকে PWM সংকেত দ্বারা নিয়ন্ত্রণ করা যেতে পারে, একই রকম তারের সংযোগ এবং একই স্টক রেডিও রিসিভারে বিভিন্ন চ্যানেলে প্লাগ করা, আমরা ইলেকট্রনিক স্পিড কন্ট্রোল, (ESC থেকে এখন), যে মোটর নিয়ন্ত্রণ করে, একইভাবে Arduino থেকে PWM এর মাধ্যমে নিয়ন্ত্রণ করা যেতে পারে।

এই তত্ত্ব পরীক্ষা করার জন্য, আমরা একটি ছোট Arduino স্কেচ ডিভাইস। স্কেচটি একটি পোটেন্টিওমিটার থেকে একটি এনালগ ইনপুট পড়ে, 0, 1024 থেকে 0, 255 এর মান পুনর্নির্মাণ করে এবং একটি মান বাক্সে R/C গাড়ী থাকা অবস্থায় analogWrite () ব্যবহার করে একটি PWM পিনে ফলিত মানটি আউটপুট করে এবং চাকা সরানো হয়েছে।

পাত্র মিটারে পরিসীমা অতিক্রম করার পর, ESC 'জেগে ওঠা' বলে মনে হয়েছিল এবং আমরা এটিকে নিচে -নিচে ঠেলে দিতে পারতাম, আমাদের Arduino সিরিয়াল সংযোগের মানগুলি মুদ্রণ করেছিল যাতে আমরা তাদের পর্যবেক্ষণ করতে পারি।

ESC একটি নির্দিষ্ট থ্রেশহোল্ডের নিচে মান পছন্দ করে না বলে মনে হয়, এই ক্ষেত্রে 128. এটি 191 সংকেতটিকে নিরপেক্ষ থ্রোটল হিসাবে দেখেছে, এবং 255 সর্বোচ্চ থ্রোটল।

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

পোটেন্টিওমিটারকে পরিবেশন করা এবং কোডে নির্দিষ্ট মান রাখা, কাজ করেনি। স্টক ইএসসি কেবল জ্বলজ্বল করে এবং মোটরকে স্পিন করবে না, ম্যানুয়াল অনুসারে 'থ্রোটল ট্রিম সামঞ্জস্য করুন'।

উগ্র ঝামেলার শুটিং, এতে বিভিন্ন মান নিক্ষেপ, বিভিন্ন তারের ব্যবহার, এবং এমনকি PWM ফ্রিকোয়েন্সি পরিবর্তনের সাথে পরীক্ষা করে Arduino ব্যবহার করে সবগুলি আরও অদ্ভুততা সৃষ্টি করে।

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

পটেন্টিওমিটার, বা স্টক ট্রান্সমিটার এবং রিসিভার, এবং নির্দিষ্ট সংস্করণ প্রদান করে এমন সংস্করণের সাথে সেটআপ থেকে কি আলাদা ছিল?

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

'থ্রোটল ট্রিম সামঞ্জস্য করুন', ঠিক এর অর্থ কি। ইএসসি একটি নিরপেক্ষ সংকেত আশা করছে যখন এটি চালু হবে, এটি পাওয়ার আগে এটি কিছুই করবে না। ESC চালু হলে সাধারণত ট্রান্সমিটার সবসময় নিরপেক্ষ থাকবে এবং সেখান থেকে আনন্দের সাথে গাড়ি চালাবে। যদি এটি না হয়, তাহলে সম্ভবত মডেলটি মাটিতে দৃly়ভাবে থাকা এবং অপারেটর দৌড়ানোর জন্য প্রস্তুত বোধ করার সময় অন্তত একবার নিরপেক্ষ অবস্থায় ফিরে আসবে।

পোটেন্টিওমিটার ব্যবহার করার সময়, আমরা রেঞ্জের মাধ্যমে 'ঝাড়ু দিচ্ছিলাম', এবং তারপর এটি কাজ শুরু করবে। এটি কেবলমাত্র সশস্ত্র হিসাবে পটেন্টিওমিটারটি নিরপেক্ষ অবস্থানে চলে গেছে, এবং তারপর এটি কাজ করেছে।

নিম্ন রেঞ্জ, যদিও এখনও ESC অসন্তুষ্ট বলে মনে হচ্ছে। দেখা যাচ্ছে এটি PWM ডিউটি চক্রের একটি পণ্য।

নকশা দ্বারা অথবা প্রযুক্তিগত কারণে সম্পন্ন করা হয়, স্টিয়ারিং সার্ভো এবং ইএসসি উভয়ই 50% শুল্ক চক্রের নিচে সংকেত উপেক্ষা করে। এটি হতে পারে যদি রিসিভার/ট্রান্সমিটার কাজ বন্ধ করে দেয় বা বিদ্যুতের বাইরে চলে যায়, মডেলটি নিরপেক্ষ হয়ে ফিরে আসবে, এবং সম্পূর্ণ বিপরীত থ্রোটলে দূরত্বে না যাবে। সমানভাবে, servo শুধুমাত্র 180 ডিগ্রী ঘুরান, এবং পূর্ণ পরিসীমা প্রয়োজন হয় না।

হাতে এই নতুন জ্ঞান, একটি নতুন Arduino স্কেচ তৈরি করা হয়েছিল। প্রাথমিক সংস্করণটি সিরিয়াল মনিটরে প্রবেশ করা স্ট্রিংগুলি গ্রহণ করে, এটি একটি পূর্ণসংখ্যায় রূপান্তরিত করে এবং PWM পিনে সরিয়ে দেয়, সার্ভার লাইব্রেরি ব্যবহার করে এবং ()*লিখুন। সিরিয়াল মনিটরে যদি একটি নতুন মান প্রবেশ করা হয়, তাহলে লিখুন () মান আপডেট করা হয়।

পরীক্ষার সময়, স্ট্রাক্সক্সাস ইএসসি একটি Mtroniks G2 মাইক্রো দ্বারা প্রতিস্থাপিত হয়েছিল, তবে তাদের একই কাজ করা উচিত, যদিও সঠিক মানগুলি কিছুটা ভিন্ন হতে পারে।

এই লাইব্রেরি ESC কে একটি সার্ভো হিসাবে বিবেচনা করে, এটি আপাতদৃষ্টিতে ঠিক আছে। Servo.h লাইব্রেরি থেকে write () ফাংশন 0 থেকে 180 পর্যন্ত যায়, প্রত্যাশিত আর্মিং সিগন্যালটি মাঝখানে থাকবে বলে আশা করা হচ্ছে।

G2 মাইক্রো অস্ত্র 90 এর কাছাকাছি মানগুলির একটি পরিসরে () কিন্তু এটি চিহ্নিত করা কঠিন ছিল কারণ মনে হচ্ছে সশস্ত্র ছিল।

Traxxas VXL-s3 91 এর একটি লিখিত () মূল্যে বাহিত হবে বলে আশা করা হচ্ছে।

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

ফাংশনের কথা বলা; স্ট্যান্ডার্ড analogWrite (), সেইসাথে Servo.h লাইব্রেরি থেকে লিখুন () এবং writeMicroseconds () সবই বিনিময়যোগ্যভাবে ব্যবহার করা যেতে পারে, শুধু মনে রাখবেন কি করে, এবং শেষ পর্যন্ত ডিউটি চক্র বিষয় ছাড়া অন্য কিছু নয়। রাইট মাইক্রোসেকেন্ডস () ব্যবহার করা যেতে পারে যদি বৃহত্তর দানাদারতা প্রয়োজন হয়, শুধু মনে রাখবেন যে এখানে পরিসীমা 1000 থেকে 2000 পর্যন্ত, অস্ত্র বা 'নিরপেক্ষ' 1500 এ প্রত্যাশিত। 128 থেকে 255 হতে 191 প্রায় নিরপেক্ষ।

প্রস্তাবিত: