সুচিপত্র:

Arduino PS/2 থেকে USB Adapter: 7 টি ধাপ (ছবি সহ)
Arduino PS/2 থেকে USB Adapter: 7 টি ধাপ (ছবি সহ)

ভিডিও: Arduino PS/2 থেকে USB Adapter: 7 টি ধাপ (ছবি সহ)

ভিডিও: Arduino PS/2 থেকে USB Adapter: 7 টি ধাপ (ছবি সহ)
ভিডিও: CS50 2015 - Week 4 2024, জুলাই
Anonim
আরডুইনো পিএস/2 থেকে ইউএসবি অ্যাডাপ্টার
আরডুইনো পিএস/2 থেকে ইউএসবি অ্যাডাপ্টার
আরডুইনো পিএস/2 থেকে ইউএসবি অ্যাডাপ্টার
আরডুইনো পিএস/2 থেকে ইউএসবি অ্যাডাপ্টার

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

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

এছাড়াও যেকোনো সুযোগে যদি আপনার কাছে আরডুইনো থাকে যার ইতিমধ্যেই একটি ইউএসবি-এইচআইডি ক্ষমতা আছে (আরডুইনো প্রো মাইক্রো বা লিওনার্দো, ইত্যাদি গুগল সার্চ করে) আপনি ভুলে যেতে পারেন যে এই নির্দেশযোগ্য অস্তিত্বটি সরাসরি অস্তিত্ব থেকে নিজেকে বাঁচানোর জন্য সরাসরি এখানে যান দুষ্টুমি!

সরবরাহ

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

    • আরডুইনো ইউএনও বা মেগা
    • PS/2 কীবোর্ড
    • Allyচ্ছিকভাবে একটি অতিরিক্ত Arduino বা যে কোন ধরনের USB প্রোগ্রামার (USBasp, ইত্যাদি) কাজে আসতে পারে।
  • সফটওয়্যার

    • এটমেল ফ্লিপ
    • Arduino IDE এর জন্য PS2KayAdvanced Library

ধাপ 1: ওয়্যারিং এবং সেট আপ

তারের এবং সেট আপ
তারের এবং সেট আপ
তারের এবং সেট আপ
তারের এবং সেট আপ
তারের এবং সেট আপ
তারের এবং সেট আপ
তারের এবং সেট আপ
তারের এবং সেট আপ

পরিস্থিতির উপর নির্ভর করে আপনি হয় একটি ব্রেকআউট বোর্ড খুঁজে পেতে পারেন অথবা একটি মাদারবোর্ড (আমার ২ য় চেষ্টা) থেকে একটি পুরানো পোর্ট উদ্ধার করতে পারেন অথবা যদি আপনি বিশেষভাবে মেজাজ বোধ করছেন আপনি এমনকি বেগুনি জ্যাকটি পুরোপুরি কেটে ফেলতে পারেন এবং 4 টি তারের (আমার প্রথম চেষ্টা) এবং তাদের UNO- এর সাথে সংযুক্ত করুন।

কিবোর্ড _ আরডুইনো

+5V (VCC) _+5V

GROUND_GND

ঘড়ি _ পিন 2 **

ডেটা _ পিন 3*

*আপনি ডাটা পিন পরিবর্তন করতে পারেন যা আপনি চান কিন্তু স্কেচ আপডেট করতে মনে রাখবেন।

** ক্লককে আরডুইনোতে একটি বাধা পিনের সাথে সংযুক্ত করতে হবে যা কেবল একটি পিন 2 বা 3 হতে পারে (স্কেচ আপডেট করতে মনে রাখবেন) একটি ইউএনওতে। আরও তথ্যের জন্য এবং বিভিন্ন বোর্ড কনফিগারের জন্য আপনি PS2KeyAdvanced লাইব্রেরির উদাহরণের মন্তব্য বিভাগটি পরীক্ষা করতে পারেন।

ধাপ 2: কীবোর্ড পরীক্ষা করা

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

এখানে আমি PS2KeyAdvanced লাইব্রেরির উদাহরণ থেকে SimpleTest.ino এর একটি পরিবর্তিত সংস্করণ আপডেট করা ঘড়ি এবং ডেটা পিন এবং একটি "মেক" এবং "ব্রেক" উপস্থাপনা সংযুক্ত করেছি। এখানে আউটপুট জন্য কিছু ব্যাখ্যা।

  • এই "মেক" এবং "ব্রেক" স্ক্যানকোড সিস্টেম এবং "কোড" যা কি-প্রেস বা কী-রিলিজের বিচ্ছিন্ন (c & 0xFF) স্ক্যানকোডটি PS/2 থেকে USB রূপান্তরে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং আমি আপনাকে অধ্যয়ন করার পরামর্শ দিই অন্যান্য 2 টি উদাহরণ যা লাইব্রেরির সাথে আসে যদি আপনি চূড়ান্ত স্কেচটি উন্নত বা পরিবর্তন (বিভিন্ন লেআউটের কীগুলি পুন remaস্থাপন) করার পরিকল্পনা করেন তবে আরও ভাল বোঝার জন্য। এছাড়াও আপনি 'PS2KeyAdvanced.h' অথবা 'PS2KeyCode.h' ফাইলগুলি 'ocu Documents / Arduino / লাইব্রেরি / PS2KeyAdvanced / src \' থেকে লাইব্রেরি থেকে PS/2 স্ক্যানকোডের সম্পূর্ণ তালিকা পেতে পারেন।
  • "স্ট্যাটাস বিটস" সংশোধনকারী কীগুলি বোঝায় (Ctrl, Alt, Windows, Shift/Caps) এবং আপনি দেখতে পাবেন যে প্রতিটি অতিরিক্ত সংশোধনকারী কী দিয়ে, এই মানটি পরিবর্তিত হয় যখন স্বাভাবিক (অ-সংশোধক) কীটির প্রধান "কোড" অপরিবর্তিত থাকে। কিন্তু চূড়ান্ত স্কেচে আমি এই পদ্ধতিটি উপেক্ষা করেছি এবং এই সংশোধনকারী কীগুলিকে সহজ কী-প্রেস হিসাবে প্রয়োগ করেছি (আপনি দেখতে পাবেন যে এই সংশোধনকারী কীগুলিতে "কী" এবং "ব্রেক" স্ক্যানকোড সাধারণ কী থেকে স্বাধীন কিনা তা একাধিক কী চাপানো হোক বা না হোক।) কারণ এটি ইউএসবি-এইচআইডি প্রোটোকলের মাধ্যমে জিনিসগুলিকে সহজ করে তোলে।

ধাপ 3: PS/2 থেকে USB রূপান্তর প্রিভিউ

Atmega8U2 বা 16U2 (UNO Rev3) আপডেট করার আগে আমাদের Arduino কে USB কীবোর্ড হিসেবে চিহ্নিত করার জন্য আমাদের নিশ্চিত করতে হবে যে সমস্ত রূপান্তর উপাদান সঠিকভাবে কাজ করছে এবং চূড়ান্ত চূড়ান্ত স্কেচ আপলোড করা হয়েছে অথবা অন্যথায় এটি একটি বড় যন্ত্রণা হবে। মূল এবং ইউএসবি-কীবোর্ড হেক্স ফাইলগুলির মধ্যে বারবার ফার্মওয়্যার যাতে আপনি সঠিক স্কেচ আপলোড করতে পারেন। এটি বিশেষভাবে সত্য হয়ে যায় যদি আপনার কাছে কোনো USBasp বা অন্য Arduino- এর মতো কোনো বহিরাগত প্রোগ্রামার না থাকে ISP হিসেবে ব্যবহার করার জন্য। তাই এখানে আমরা চূড়ান্ত স্কেচের একটি 'DEBUG' সংস্করণ আপলোড করব যা মানুষের পাঠযোগ্য আউটপুট (সিরিয়াল মনিটরের মাধ্যমে) জিনিসগুলি পরীক্ষা করার জন্য।

আপনি যে আউটপুটটি দেখছেন তা এইভাবে ফর্ম্যাট করা হবে যখন প্রতিটি কী মুক্তি পাবে, 00 00 00 00 00 00 00 00

এখানে প্রত্যাশিত আউটপুট জন্য একটি মৌলিক ব্যাখ্যা,

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

xx 00 00 00 00 00 00 00 00

প্রতিটি নতুন একাধিক সাধারণ কী-প্রেসের জন্য (উদাহরণস্বরূপ আমরা হাইপোথেটিক্যাল কী a, key b এবং key c উভয় মান 'xx', 'yy' এবং 'zz' সেই ক্রমে টিপবো) আপনাকে ক্রমাগত পেতে হবে (বাধ্যতামূলক নয়) এই মত নতুন লাইন,

00 00 xx yy zz 00 00 00

যখন আপনি কেবল কী খ প্রকাশ করেন তখন আউটপুট পরিবর্তন করা উচিত,

00 00 xx 00 zz 00 00 00

এবং যদি আপনি কী a বা কী না ছাড়া 'nn' ভ্যালু দিয়ে নতুন কী চাপেন তাহলে আপনার আউটপুট পরিবর্তন হওয়া উচিত,

00 00 xx nn zz 00 00 00

এবং অবশেষে এটিতে ফিরে আসুন যখন প্রতিটি কী মুক্তি পায়,

00 00 00 00 00 00 00 00

এবং সবশেষে যদি আপনি ক্যাপস লক, নাম লক বা স্ক্রল লক টিপেন তবে আপনাকে একই সাথে একাধিক লাইনের সাথে এমন কিছু পেতে হবে,

00 00 xx 00 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

এখানে সবকিছু ঘটলে আপনি এগিয়ে যেতে সোনালি!

ধাপ 4: প্রযুক্তিগত ব্যাখ্যা

প্রযুক্তিগত ব্যাখ্যা
প্রযুক্তিগত ব্যাখ্যা
প্রযুক্তিগত ব্যাখ্যা
প্রযুক্তিগত ব্যাখ্যা

আপনি যদি চান তবে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন। এটি পূর্ববর্তী আউটপুটগুলির জন্য একটি ব্যাখ্যা। আউটপুট 8 বাইট অ্যারে যা আপনি দেখেছেন তা উপরের ডুমুর অনুসারে ফরম্যাট করা হয়েছে। আপনি এই সম্পর্কে আরও অনেক কিছু জানতে পারেন এবং কিভাবে USB-HID সম্পর্কে এই উইকি থেকে সংশোধনকারী কী স্ট্যাটাস বাইট লেখা হয়। মূলত আমার কোড যা করে তা হল প্রতিবার একটি নতুন কী চাপলে (PS/2 প্রোটোকল এটিকে 'মেক' বলে উল্লেখ করে) এটি সাধারণ কী-প্রেসের জন্য ব্যবহৃত অ্যারের শেষ 6 বাইটের মধ্য দিয়ে চক্র, এবং প্রথমটি পূরণ করুন খালি বাইট এটি প্রাসঙ্গিক 'এইচআইডি স্ক্যানকোড' (চিত্র 2 এ দেখানো হয়েছে। এছাড়াও আপনি সংযুক্ত পিডিএফ থেকে একটি সম্পূর্ণ তালিকা খুঁজে পেতে পারেন) প্রাপ্ত 'পিএস/2 স্ক্যানকোড' এর জন্য। এবং অবশেষে যখন প্রাসঙ্গিক কী মুক্তি পায় (PS/2 প্রোটোকল এটিকে 'ব্রেক' বলে উল্লেখ করে) কোডটি বর্তমান বাইট অ্যারের মধ্য দিয়ে চক্র হবে এবং শুধুমাত্র প্রাসঙ্গিক বাইট সাফ করবে।

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

ধাপ 5: চূড়ান্ত স্কেচ আপলোড করা

সুতরাং আপনি শেষ পর্যন্ত Atmega8U2 বা 16U2 (UNO Rev3) এর ফার্মওয়্যার আপডেট করার আগে আমাদের Arduino কে একটি USB কীবোর্ড হিসেবে চিহ্নিত করার জন্য আমাদের অবশ্যই চূড়ান্ত স্কেচ আপলোড করতে হবে। আপনি এটি আপলোড করার পরে, যদি আপনি সিরিয়াল মনিটরে যান তবে আপনি দেখতে পাবেন যে এটি প্রতিটি নতুন কী চাপা দিয়ে আবর্জনা ছাপায় এটি একটি ভাল লক্ষণ যে সবকিছু ইচ্ছামত কাজ করছে এবং আমরা চূড়ান্ত ধাপে এগিয়ে যেতে পারি। হ্যাঁ!!!

ধাপ 6: ফার্মওয়্যার আপডেট করা

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

  1. Arduino.cc থেকে এই নির্দেশিকাটি অনুসরণ করুন 'DFU ব্যবহার করে একটি Uno বা Mega2560 এ Atmega8U2 এবং 16U2 আপডেট করা' এর পরিবর্তে 'Arduino-usbserial-uno.hex' ব্যবহার করার পরিবর্তে 'Arduino-keyboard-0.3.hex' ব্যবহার করুন
  2. এফএলআইপি -তে আপনার Arduino এর উপর নির্ভর করে Atmega8U2 বা 16U2 হিসাবে টার্গেট ডিভাইস নির্বাচন করতে মনে রাখবেন এবং যোগাযোগ মাধ্যম নির্বাচন থেকে USB নির্বাচন করুন এবং শেষ পর্যন্ত রান নির্বাচন করার আগে সঠিক হেক্স ফাইল লোড করুন।
  3. যদি আপনি ড্রাইভারের ত্রুটির জন্য দৌড়ে যান, তাহলে উইন্ডোজ ডিভাইস ম্যানেজারে যান এবং FLIP '\ Program Files (x86) Atmel \' এর ইনস্টলেশন ডিরেক্টরিতে অজানা ড্রাইভার অনুসন্ধান করতে নির্বাচন করুন
  4. আপনি যদি FLIP থেকে একাধিকবার ফার্মওয়্যার আপডেট করার সময় ত্রুটির মধ্যে পড়ে যান, FLIP বন্ধ করুন এবং 'স্টার্ট মেনু / FLIP \' থেকে 'রিসেট প্রেফারেন্সস' চালান এবং তারপর FLIP পুনরায় চালু করুন এবং আবার চেষ্টা করার আগে কনফিগারেশন ধাপগুলি করুন এটি সাধারণত আমার জন্য কাজ করে।
  5. আপনি যদি Arduino কে তার আসল অবস্থায় ফিরিয়ে আনতে চান তবে এই হেক্স ফাইলটি ব্যবহার না করেই উপরের arduino.cc গাইডটি অনুসরণ করুন।

ধাপ 7: উপভোগ করুন ……

উপভোগ করুন ……
উপভোগ করুন ……

এখন আপনার নতুন রূপান্তরিত PS/2 কে USB কীবোর্ডে উপভোগ করুন…। পুনশ্চ. এই নির্দেশযোগ্য সম্পূর্ণরূপে Arduino এর মাধ্যমে আমার ল্যাপটপের সাথে সংযুক্ত একটি বহিরাগত PS/2 কীবোর্ড থেকে লেখা হয়েছে:)

প্রস্তাবিত: