আরডুইনো আনো ব্যবহার করে কি কোনও এইচআইডি ডিভাইস (কীবোর্ডের মতো) তৈরি করা সম্ভব?
হ্যাঁ! আর যে কাজ করতে কিভাবে উপর উপর একটি মহান টিউটোরিয়াল এর এখানে
এই মুহুর্তে, আমার কাছে সিরিয়াল লাইনে আড়ডুইনোগুলিতে আউটপুট দেওয়ার বোতাম ইনপুট রয়েছে। সুতরাং, আমি কীভাবে আমার বর্তমান ফার্মওয়্যারটিকে এমন কোনও কিছুতে রূপান্তর করতে পারি যা এইচআইডি কীবোর্ডের মতো আচরণ করতে পারে?
টিউটোরিয়ালটি আপনাকে যেমন দেখায়, আপনার ইভেন্টগুলি মুদ্রণের পরিবর্তে আপনার ফার্মওয়্যার কোডটি রূপান্তর করা দরকার, আপনি আসলে ইভেন্টগুলি ট্রিগার করেন। আপনার যা করা দরকার তা হ'ল আপনার কোডটিতে যুক্ত করুন:
void triggerKey(uint8_t mod, uint8_t chr) {
uint8_t buf[8] = {mod, chr, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
// press key
Serial.write(buf, 8);
// emulate key press delay
delay(10);
buf[1] = 0x00;
// release key
Serial.write(buf, 8);
}
আপনি এখানে কী করছেন, আপনার মূল আরডুইনো মাইক্রোকন্ট্রোলার ইভেন্টগুলি সিরিয়াল লাইনের উপর দিয়ে ছোট মাইক্রোকন্ট্রোলারের কাছে প্রেরণ করা হচ্ছে যা ইউএসবি যোগাযোগ পরিচালনা করে। সেই মাইক্রোকন্ট্রোলার সেই কীগুলি "বাফারগুলি" নেবে এবং তাদের ইউএসবি-তে ইউএসবি এইচআইডি কীবোর্ড কী প্রেস হিসাবে স্থানান্তর করবে।
সাবধান হন যে মূল চরিত্রটি ( chr
এখানে কোডে), আসলে ইউএসবিতে প্রেরিত একটি কীকোড যা আপনার ইউএসবি এইচআইডি ড্রাইভার দ্বারা ব্যাখ্যা করা হয়, যা আপনার কীবোর্ডের জন্য সেটআপ করা বর্তমান লেআউটটি ব্যবহার করে এটি একটি সত্য চরিত্রে অনুবাদ করে।
mod
চরিত্র সংশোধক কী আপনি কীবোর্ড (শিফট, নিয়ন্ত্রণ, Alt ...) আছে এক, হয় 0x00
কোন পরিবর্তক হচ্ছে।
- আমি কি নতুন উইন্ডো ডিভাইস ড্রাইভার লিখব?
না, আপনার দরকার নেই! ডিএফইউ আপগ্রেডের সাথে আপনার আরডুইনো উইন্ডো দ্বারা একটি ইউএসবি কীবোর্ড হিসাবে দেখা যাবে।
- আমি কি এমন একটি সফ্টওয়্যার স্তর তৈরি করব যা আমার সিরিয়াল ডেটা নিতে পারে এবং উইন্ডোজগুলি এইচআইডি ইনপুট হিসাবে এটি পড়তে পারে?
আপনারও এটি করার দরকার নেই, এবং এটি অনেক কারণেই আসলে খুব খারাপ ধারণা:
- আপনার সমাধান বহনযোগ্য হবে না, এবং এইভাবে আপনি ব্যবহার করতে পারেন প্রতিটি প্ল্যাটফর্মের জন্য কিছু হ্যাক করা প্রয়োজন,
- আপনার সমাধানটি অনেকগুলি নতুন কোড বোঝায়; একটি কোড যত বেশি লিখবে, তত বেশি বাগ আপনার সিস্টেমে থাকতে পারে,
- আপনার সমাধানটি সত্যই হ্যাকিশ হবে, কারণ এটি কোনও ডিভাইস ড্রাইভারের (যেমন কার্নেল ল্যান্ড ) ব্যবহারকারী প্রোগ্রাম থেকে ইনপুট নেওয়ার (যেমন ব্যবহারকারীর ভূমি ) আচরণ করবে এবং সম্ভবত এটি কাজ করবে না, ডিবাগ করার জন্য একটি জাহান্নাম হবে এবং সুরক্ষার সমস্যার জন্য প্রবণ। .. যদি তা করাও সম্ভব হয়!
আমি একটি ইউনো ব্যবহার করছি তবে আপনি যা পোস্ট করেছেন তা আমি দেখব কারণ গতবার আমরা ডিএফইউ আপডেটটি বিবেচনা করেছি তবে আমরা ব্রিকিংয়ের জিনিসগুলি দেখে ভয় পাচ্ছি
অবশেষে আপনার আরডুইনো ব্রিক করার বিষয়ে একটি মন্তব্যে আপনার উদ্বেগ রয়েছে। দয়া করে আমাকে এবং নিবন্ধটির লেখককে বিশ্বাস করুন যে আপনি ফার্মওয়্যার ফ্ল্যাশ করে আপনার আরডিনো ইট করতে পারবেন না :
দ্রষ্টব্য: এই পদ্ধতিটি ব্যবহার করে ডিভাইসটিকে 'ব্রিকিং' করার কোনও সম্ভাবনা নেই। আরডুইনো বুটলোডার ফার্মওয়্যার সর্বদা ডিএফইউ প্রোটোকল ব্যবহার করে আপডেট করা যায়!
যদি কিছু সত্যিই খারাপভাবে হয়ে যায় এবং আপনি সামান্য এভিআর-এ একটি বুটলোডার দুর্নীতি পান (atmega8u2), আপনি এখনও ইউএসবি প্লাগের পাশের 6 টি পিন ব্যবহার করে অন্য আরডুইনো বা একটি
অ্যাটেল প্রোগ্রামার ব্যবহার করে এটি পুনরায় প্রকাশ করতে পারেন।
শেষ অবধি, জেনে রাখুন যে কোনও এভিআর ইট করার একমাত্র উপায়, এইভাবে একটি আরডুইনো হ'ল ফিউজগুলির সাথে খেলতে এবং প্রোগ্রামিং ফিউজগুলি পুনরায় সেট করা। এবং তারপরেও, আপনি আপনার ডিভাইসটি সংরক্ষণ করতে এইচভিএসপি ব্যবহার করতে পারেন
, যদিও কেবল একটি নতুন চিপ নিতে প্রায়শই কম সমস্যা হয়।