সুচিপত্র:

এক্সবক্স 360 কন্ট্রোলার অ্যাকসিলেরোমিটার/গাইরো স্টিয়ারিং মোড: 7 টি ধাপ
এক্সবক্স 360 কন্ট্রোলার অ্যাকসিলেরোমিটার/গাইরো স্টিয়ারিং মোড: 7 টি ধাপ

ভিডিও: এক্সবক্স 360 কন্ট্রোলার অ্যাকসিলেরোমিটার/গাইরো স্টিয়ারিং মোড: 7 টি ধাপ

ভিডিও: এক্সবক্স 360 কন্ট্রোলার অ্যাকসিলেরোমিটার/গাইরো স্টিয়ারিং মোড: 7 টি ধাপ
ভিডিও: How to use a Xbox 360 controller on the Xbox One (5) 2024, জুলাই
Anonim
এক্সবক্স 360 কন্ট্রোলার অ্যাকসিলেরোমিটার/গাইরো স্টিয়ারিং মোড
এক্সবক্স 360 কন্ট্রোলার অ্যাকসিলেরোমিটার/গাইরো স্টিয়ারিং মোড

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

অ্যানালগ স্টিক দুটি potentiometers আছে। একটি উল্লম্ব আন্দোলন পরিমাপ করে, এবং একটি অনুভূমিক আন্দোলন পরিমাপ করে। এটি প্রত্যেকটির মাধ্যমে 1.6V রাখে এবং ওয়াইপারে উত্পাদিত ভোল্টেজ পরিমাপ করে লাঠি কতটা সরানো হয়েছে তা নির্ধারণ করে। এর অর্থ হল ওয়াইপার পিনে একটি নির্দিষ্ট ভোল্টেজ খাওয়ানোর মাধ্যমে লাঠি চলাচল নিয়ন্ত্রণ করা সম্ভব। (আরো তথ্য এখানে:

এই মোড একটি Arduino ব্যবহার করে অ্যাকসিলরোমিটার রিডিং থেকে কোণ গণনা করে এবং এটিকে DAC এর মাধ্যমে এনালগ স্টিক মুভমেন্টে রূপান্তর করে। অতএব, এটি এমন কোনও গেমের সাথে কাজ করা উচিত যা ইনপুট হিসাবে এনালগ স্টিক ব্যবহার করে।

ধাপ 1: আপনার প্রয়োজন হবে:

সরঞ্জাম:

  • তাতাল
  • ঝাল
  • Solder sucker/বিনুনি
  • তারের স্ট্রিপার
  • আপনার কন্ট্রোলারের স্ক্রুগুলির উপর নির্ভর করে একটি স্ক্রু ড্রাইভার, সম্ভবত একটি টর্ক্স এক (আমার ক্রসহেড)
  • আঠালো (বিশেষত সুপার স্ট্রং আঠালো নয় তাই এটি পরে আলাদা করা যেতে পারে)
  • Arduino প্রোগ্রাম করার জন্য একটি ইউএসবি থেকে সিরিয়াল অ্যাডাপ্টার

উপকরণ:

  • Xbox 360 নিয়ামক (duh!)
  • আরডুইনো প্রো মিনি (বা একটি ক্লোন) (বিশেষত 3.3 ভি
  • একটি MPU-6050 জাইরোস্কোপ/অ্যাকসিলরোমিটার
  • একটি MCP4725 DAC (দুটি যদি আপনি উভয় অক্ষ নিয়ন্ত্রণ করতে চান)
  • কিছু পাতলা তার
  • একটি ব্রেডবোর্ড যাতে আপনি সোল্ডারের আগে সবকিছু পরীক্ষা করতে পারেন (alচ্ছিক, কিন্তু প্রস্তাবিত)

ধাপ 2: নিয়ন্ত্রককে আলাদা করুন

কন্ট্রোলারকে আলাদা করে নিন
কন্ট্রোলারকে আলাদা করে নিন
কন্ট্রোলারকে আলাদা করে নিন
কন্ট্রোলারকে আলাদা করে নিন
কন্ট্রোলারকে আলাদা করুন
কন্ট্রোলারকে আলাদা করুন

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

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

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

এরপরে, বাম অ্যানালগ স্টিক ধরে থাকা 14 টি পিনগুলি সরান। তারপর লাঠি টানুন।

ধাপ 3: উপাদানগুলি জায়গায় রাখুন

উপাদানগুলি জায়গায় রাখুন
উপাদানগুলি জায়গায় রাখুন
উপাদানগুলি জায়গায় রাখুন
উপাদানগুলি জায়গায় রাখুন

আপনি লক্ষ্য করবেন যে পিসিবি এবং কেসের পিছনে অনেকটা ছাড়পত্র রয়েছে। এটি কিছু অপসারণ ছাড়াই ক্ষেত্রে সমস্ত হার্ডওয়্যার স্থাপন করা সম্ভব করে তোলে।

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

আমি প্রতিটি পিসিবি এর পিছনে একটি পাতলা টুকরো কার্ড আঠালো করেছিলাম, তারপর এটিকে নিয়ন্ত্রকের পিসিবিতে আঠালো করেছিলাম। আমি আঠালো ব্যবহার করতে অনিচ্ছুক ছিলাম, কিন্তু এটি করার একটি ভাল উপায় চিন্তা করতে পারিনি।

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

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

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

যদি আপনি দুটি DAC ব্যবহার করেন, তাহলে ঠিকানা জাম্পারটি স্যুইচ করতে ভুলবেন না এবং সেগুলির একটিতে পুল-আপ প্রতিরোধক নিষ্ক্রিয় করুন, যেমন এখানে বর্ণিত হয়েছে: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -কনভার্টার-হুকআপ-গাইড

ধাপ 4: তারের সোল্ডার চালু করুন

তারগুলি সোল্ডার করুন
তারগুলি সোল্ডার করুন
তারগুলি সোল্ডার করুন
তারগুলি সোল্ডার করুন
তারগুলি সোল্ডার করুন
তারগুলি সোল্ডার করুন

এখন আপনাকে সবকিছু সংযুক্ত করতে হবে। সমস্ত 2/3 ডিভাইস থেকে VCC, GND, SDA এবং SCL যথাক্রমে Arduino এ VCC, GND, A4 এবং A5 এর সাথে সংযুক্ত হওয়া উচিত। DAC গুলি সবচেয়ে কৌশলী অংশ। যদি আপনার দুটি থাকে তবে আপনাকে সেগুলিকে একসাথে সংযুক্ত করতে হবে, কোথাও যাওয়ার সময় আপনি বিদ্যুৎ এবং লাইনগুলিকে অ্যাকসিলরোমিটারের সাথে সংযুক্ত করতে পারেন, যখন আউট তারগুলি আলাদা রাখবেন।

DAC এর OUT পিনটি কন্ট্রোলারের PCB- র পিনের সাথে সংযুক্ত হওয়া উচিত যা এনালগ স্টিকের মধ্যম অনুভূমিক পটেন্টিওমিটার পিনের জন্য ব্যবহৃত হত। অর্থাৎ, যেখানে অ্যানালগ স্টিক ছিল, সেখানে শীর্ষে তিনটি পিনের সারি রয়েছে। এটিকে মাঝখানে সংযুক্ত করুন। যদি আপনার আরেকটি DAC থাকে তবে এটি একইভাবে উল্লম্ব potentiometer পিন (বাম সারি) এর সাথে সংযুক্ত করুন। ট্রিগার প্রতিস্থাপিত হলে আপনি পিছন থেকে পিনের কাছে যেতে পারবেন না, তাই আপনাকে বোর্ডের সামনে একটি তার চালাতে হবে। অ্যানালগ স্টিক এলাকার চারপাশে একটি বৃত্তাকার প্লাস্টিকের "প্রাচীর" আছে, কিন্তু সৌভাগ্যবশত এর মধ্যে একটি সুবিধাজনক ফাঁক রয়েছে যার মাধ্যমে আপনি তারগুলি স্থাপন করতে পারেন। কেসটির সামনের অংশে স্ক্রু পোস্টের পথে তারগুলি যেন না আসে তা নিশ্চিত করুন।

আমার আসল পরিকল্পনাটি ছিল RAW পিনের সাথে সংযুক্ত USB তারের থেকে 5V দিয়ে Arduino কে পাওয়ার, কিন্তু যখন আমি এটি চেষ্টা করেছি, এটি কাজ করে নি। Arduino কিছুই চালায়নি, এবং Arduino এবং নিয়ামক উভয়ই কয়েক সেকেন্ড পরে বন্ধ হয়ে যায়। যাইহোক, আমি আবিষ্কার করেছি যে কালো পেরিফেরাল সকেটের কাছে বোর্ডের সামনে দুটি পিন থেকে একটি স্থির 3.3V আউটপুট আছে, সম্ভবত পেরিফেরালগুলিকে পাওয়ার জন্য। এটি VCC এবং RAW উভয়ের সাথেই কাজ করে, কিন্তু আমি VCC বেছে নিলাম কারণ এটি ইতিমধ্যেই সঠিক ভোল্টেজ এবং এটি আমাকে DAC- এর VCC তারের সাথে বিক্রি করতে দেয় যা ইতিমধ্যেই বোর্ডের নীচের কাছাকাছি এবং তারগুলিতে সংরক্ষণ করা হয়েছে।

সচেতন থাকুন যে অনেকগুলি প্লাস্টিকের অংশ রয়েছে যা আপনাকে কাজ করতে হবে, কিন্তু যদি আপনি তারের জায়গায় আঠা লাগান তবে আপনাকে কেবল একবার তাদের সম্পর্কে চিন্তা করতে হবে।

এই সব শব্দ দিয়ে বর্ণনা করা কঠিন, তাই আমি ছবি এবং একটি অশোধিত ডায়াগ্রাম অন্তর্ভুক্ত করেছি।

ধাপ 5: Arduino প্রোগ্রাম করুন

এখন আপনাকে Arduino প্রোগ্রাম করতে হবে। এর জন্য কন্ট্রোলারে ইউএসবি কেবল সরানোর প্রয়োজন হয় যাতে আপনি আরডুইনোতে সিরিয়াল পিনগুলি অ্যাক্সেস করতে পারেন। আমি আমার ব্যবহৃত কোড অন্তর্ভুক্ত করেছি। এর জন্য Adafruit MCP4725 লাইব্রেরির প্রয়োজন, যা এখানে পাওয়া যাবে:

যেমন, কোডটি আপনাকে এনালগ স্টিকের গতির সমগ্র পরিসীমা দিয়ে সমানভাবে নিয়ন্ত্রককে 90 ডিগ্রী থেকে বাম দিকে 90 ডিগ্রীতে ডানদিকে সরিয়ে নিয়ে যেতে এবং এটিকে সমতল করে মাঝখানে রাখতে দেয়।

এটি Z অক্ষ g- বল দ্বারা বিভক্ত X অক্ষ g- বলের বিপরীত স্পর্শক গণনা করে নিয়ন্ত্রকের কোণ পায়। এর মানে এটি কাজ করে যদি নিয়ামকটি উল্লম্ব, সমতল বা এর মধ্যে কোন কোণ থাকে। (আরো তথ্য এখানে:

এটি আমার কন্ট্রোলারে কাজ করে, কিন্তু অন্যান্য কন্ট্রোলারদের বিভিন্ন ভোল্টেজের প্রয়োজন হতে পারে, এটি সারিবদ্ধতার বাইরে রেখে। আমি মনে করি ভোল্টেজ পরিসীমা খুঁজে বের করার সর্বোত্তম উপায় হল ট্রায়াল এবং ত্রুটি। অনেক গেম আপনাকে এনালগ স্টিক মুভমেন্টের জন্য একটি স্লাইডার দেখাবে, কিন্তু মুভমেন্ট নির্ধারণের সবচেয়ে সঠিক উপায় হল লিনাক্সে jstest। (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) এটি আপনাকে গ্রাফিকের পরিবর্তে -32, 767 এবং 32, 767 এর মধ্যে একটি নম্বর দেয়, তাই আপনি ঠিক জানেন যে লাঠিটি কোথায়। কন্ট্রোলার এবং আরডুইনো ইউএসবি উভয়ই সিরিয়াল অ্যাডাপ্টারে প্লাগ ইন করুন, jstest লোড করুন এবং বিভিন্ন ডিএসি মান চেষ্টা করুন যতক্ষণ না আপনি পরিসরের উপরে এবং নীচে পৌঁছান এবং প্রতিটিটির একটি নোট তৈরি করুন। আমার জন্য এটি ছিল 1, 593 - 382।

বিশেষ আগ্রহ হল লাইন 36:

dacvalue = (controllerangle + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;

এটা কি তাৎক্ষণিকভাবে স্পষ্ট নয়। সহজভাবে, এটি নিয়ামকের কোণ নেয় (রেডিয়ানে পরিমাপ করা হয় এবং ~ 1.57 এবং ~ -1.57 এর মধ্যে) এবং এটি DAC এর জন্য 1, 593 এবং 382 এর মধ্যে একটি মান রূপান্তর করে। যদি আপনার একটি ভিন্ন DAC পরিসীমা থাকে, তাহলে আপনাকে সেই লাইনটি পরিবর্তন করতে হবে।

লাইনটি এভাবে লেখা যেতে পারে:

dacvalue = (controllerangle +) / + 0.5;

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

দশমিককে পূর্ণসংখ্যায় রূপান্তর করার সময়, C ++ গোল হয় না। এটি পরিবর্তে দশমিক কেটে দেয়, তাই 9.9 হয় 9. শেষে 0.5 যোগ করা নিশ্চিত করে যে অর্ধেকের উপরে কিছু পরবর্তী পূর্ণসংখ্যায় যায়, তাই এটি গোল করে।

একবার আপনি আপনার প্রোগ্রাম আপলোড করলে, নিশ্চিত করুন যে এটি jstest এর সাথে কাজ করে।

ধাপ 6: কন্ট্রোলার পুনরায় একত্রিত করুন

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

ধাপ 7: সম্ভাব্য উন্নতি

কিছু উন্নতি করা যেতে পারে। এর মধ্যে রয়েছে:

  • কম কষ্টকর চুম্বক তারের ব্যবহার
  • কন্ট্রোলারের ক্ষেত্রে মাপসই করার জন্য ডিজাইন করা একটি পিসিবিতে সবকিছু খোদাই করা
  • বাম এনালগ স্টিকটি পুনরায় সংযুক্ত করা এবং আরডুইনোতে এনালগ ইনপুটগুলির সাথে পা সংযুক্ত করা যাতে সেগুলি আরডুইনো সামঞ্জস্য করতে ব্যবহার করা যায়
  • একটি ওয়্যারলেস কন্ট্রোলারের জন্য ব্যাক কেস পিস পাওয়া এবং ব্যাটারি কম্পার্টমেন্টে প্রকল্পটি রাখা

প্রস্তাবিত: