CH340 এবং ইউআআরটির পরিবারগুলিতে কোনও স্টোরেজ নেই যেখানে আপনি একটি অনন্য আইডি রাখতে পারেন। এটি PL2303 প্রকারের জন্যও সমস্যা। আমি এই সমস্যার সমাধান খুঁজতে চেষ্টা করেছি। প্রথম এবং সবচেয়ে সহজ ইউএসবি বাসে ডিভাইসের অবস্থান। এটি প্রতিটি ডিভাইসের জন্য অনন্য হবে। আপনি যদি লিনাক্স ব্যবহার করে থাকেন তবে প্রতিটি ডিভাইস / dev / সিরিয়াল / বাই-পাথের অধীনে পাবেন। একটি / ডিভ / সিরিয়াল / বাই-আইডি রয়েছে তবে এই ডিভাইসের জন্য সেখানে কেবলমাত্র একটি প্রবেশ থাকবে কারণ এটি সর্বশেষটি সংযুক্ত দেখায়। এফটিডিআই চিপগুলির প্রতিটি এখানে অনন্য প্রবেশ থাকবে। সস্তা চিপগুলি তা করবে না তবে তাদের প্রত্যেকের / dev / সিরিয়াল / বাই-পাথের নীচে প্রবেশ রয়েছে। এই অবস্থানটি এবং ডিভাইসের নামগুলি পুনরায় বুটগুলি জুড়ে থাকা উচিত। আপনার ইউএসবি ডিভাইসগুলিতে যদি প্রচুর পরিবর্তন হয় তবে সমস্ত CH340 ডিভাইসকে একই হাবটিতে প্লাগ করুন, তারপরে এটিকে প্লাগ করুন। ডিভাইসগুলি ক্রমে ক্রমান্বয়ে গণনা করা হবে যে সেগুলি হাবটিতে প্লাগ ইন করা হয়েছে। এই ওয়ান-হাব ট্রিকটি ম্যাকওএস এবং উইন্ডোজের জন্যও কাজ করা উচিত, সেগুলি একই ক্রমে উপস্থিত হওয়া উচিত।
কঠোর পদ্ধতি- udev নিয়ম। এফটিডিআই এর মতো কোনও অনন্য আইডি সহ ডিভাইসগুলির জন্য আপনি একটি ইউদেব বিধি সেট করতে পারেন যা এটির সিরিয়াল নম্বরটি দেখে এবং তারপরে সেই ডিভাইসে একটি সিমিলিংক তৈরি করে, এটি সোজা।
একই বা কোনও সিরিয়াল নম্বরযুক্ত ডিভাইসগুলির জন্য, এটি অনেক বেশি জটিল। আমি একটি ইউদেব নিয়ম তৈরি করেছি যা দেখতে এইরকম দেখাচ্ছে:
SUBSYSTEM == "tty", এটিটিআরএস {পণ্য} == "ইউএসবি ২.০-সিরিয়াল", রুন + = "/ ইউএসআর / স্থানীয় / বিন / সস্তারদুইন.পি% কে", এটিটিআরএস {আইডিভেন্ডার} == "1a86", এটিটিআরএস { আইডিপ্রডাক্ট} == "7523", ENV {ID_MM_DEVICE_IGNORE} = "1"
যখন ডিভাইসটি সস্তা আরডুইনোর পণ্য এবং বিক্রেতার সাথে মিলে যায়, এটি ডিভাইসটির সাথে 'সস্তারদুইন.পি' স্ক্রিপ্টটি আর্গুমেন্ট হিসাবে চালায়, উদাহরণস্বরূপ
সস্তাduino.py ttyUSB0
তারপরে সস্তাদুইনো স্ক্রিপ্টটি সিরিয়ালে ডিভাইসে সংযুক্ত হয়ে স্ট্রিং 'আইডি' প্রেরণ করে এবং ডিভাইসের সফ্টওয়্যারটি ডিভিডি = THX1138 বা যে কোনও কিছুতে সাড়া দেয়। স্ক্রিপ্টটি তখন একটি সিমিলিংক / dev / THX1138 তৈরি করে যা / dev / ttyUSB0 এ নির্দেশ করে
এই পদ্ধতিতে প্রচুর ত্রুটি রয়েছে। সস্তাদুইনের সফ্টওয়্যার উত্তর না দিলে স্ক্রিপ্টটি অবশ্যই শেষ হয়ে যাবে। এছাড়াও এটি উদেবের SYMLINK ফাংশন ব্যবহার করছে না তাই এটি সংযোগ বিচ্ছিন্ন করার কারণে মৃত লিঙ্কগুলি পরিষ্কার করবে না, তবে এটি পুনরায় সংযোগে তাদের ওভাররাইট করে দেবে। আপনার সমস্ত সস্তাডিনোগুলির অবশ্যই তাদের সফ্টওয়্যারটিতে বিভিন্ন ডিভাইস আইডি সেট সহ এই কার্যকারিতা থাকতে হবে। আপনি যদি খুব দীর্ঘ সময় ব্যয় করেন এমন কোনও জটিল স্ক্রিপ্ট না লিখতে চান তবে সেগুলি অবশ্যই স্ক্রিপ্টের মতো একই বাউড রেট ব্যবহার করতে হবে। শেষ অবধি, এই পদ্ধতিটি উচ্চ বাউড রেটের চেয়ে কম বাউড রেটে আরও বেশি ভাল কাজ করে, যা সময় মত কারণে প্রতিবার সফল হতে পারে না। (সস্তারডিনো সস্তা!) 9600 115200 এর থেকে অনেক বেশি ভাল কাজ করে যা বেশ কয়েকটি চেষ্টার পরে কাজ করে। তবে যেহেতু আপনার সমস্ত CH340 আরডুইনো অবশ্যই এই পদ্ধতির সাথে একই গতিযুক্ত হওয়া উচিত, আপনি কেবল আপনার দ্রুততম ডিভাইসের মতো ধীর গতিতে যেতে পারেন।
এই পদ্ধতিটি যদিও কাজ করে, এবং এটি আমি ব্যবহার করছি কারণ আমি এই সস্তা জিনিসগুলির অনেকগুলি কিনেছি।
শেষ পর্যন্ত, জেনুইন আরডুইনোস বা এফটিডিআই চিপস সহ কমপক্ষে একটি কিনুন বা অন্য কোনও ডিভাইস আইডি প্রেরণ করে।
= রিচ