Gyro, Accelerometer এবং Arduino ব্যবহার করে কোণ পরিমাপ: ৫ টি ধাপ
Gyro, Accelerometer এবং Arduino ব্যবহার করে কোণ পরিমাপ: ৫ টি ধাপ
Anonim

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

ধাপ 1: আমাদের যা লাগবে:

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

ধাপ 2: বিল্ডিং…

সার্কিটে একটি জিরোস্কোপ রয়েছে যা সরাসরি আপনার আরডুইনোতে 0 পোর্টের সাথে সংযুক্ত এবং I2C পোর্টে একটি নানচাক উই সংযোগ। গাইরো একত্রিত করা: 1 - রুটিবোর্ড 2 এ গাইরো লাগান। - ওয়্যার এভার থিং:- জিরো থেকে ভিও পিন এনালগ পোর্টে সংযুক্ত আরডুইনো (হাল্কা কমলা তারের)- গাইরো থেকে মাটির সাথে সংযুক্ত পিন (সাদা তারের)- Vdd (3.3V) (কমলা তারের) সংযুক্ত গাইরো থেকে V+ পিন একত্রিত করা অ্যাকসিলরোমিটার: ১। - nunchuck2 এ অ্যাডাপ্টার প্লাগ করুন। - অ্যাডাপ্টার 3 ব্যবহার করে arduino এ nunchuck প্লাগ করুন। - উপরের ছবির মতো অ্যাক্সেল সেন্সর রাখুন

ধাপ 3: এগিয়ে যাওয়ার আগে কিছু অতিরিক্ত তথ্য

উভয় সেন্সর থেকে আমরা কোণ পরিমাপ করতে পারি কিন্তু দুটি স্বতন্ত্র কৌশল ব্যবহার করে। গাইরো ব্যবহার করে কোণ পরিমাপ করতে আমাদের সংকেত সংহত করতে হবে কিন্তু কেন আমাদের এটি করতে হবে? কারণ গাইরো আমাদের কৌণিক হার দেয়, তাই কোণটি পাওয়ার একটি সহজ উপায় হল কৌণিক হার সময়ের সাথে গুণিত হওয়া অ্যাক্সিলরোমিটারের অক্ষ, এর অর্থ কী, সেন্সরের প্রতিটি দিকে মাধ্যাকর্ষণ ত্বরণের অভিক্ষেপ আমাদের কোণ সম্পর্কে ধারণা দেয়। [angle_accel = arctg (Ay / sqrt (Ax^2 + Az -2))] তাহলে কেন আমরা একটির পরিবর্তে দুটি সেন্সর ব্যবহার করব? উভয় সেন্সর বৈশিষ্ট্যের সুবিধা নিতে। যদি আপনি গ্রাইফে দেখেন গাইরো ডেটা ক্রমাগত বৃদ্ধি পায়, এটিকে বলা হয় ড্রিফট এবং অ্যাকসিলরোমিটার ডেটা অল্প সময়ে অনেক পরিবর্তন হয়। এবং উভয় সংকেত কিভাবে একত্রিত করা যায়? আমি এর পিছনে সঠিক তত্ত্ব জানি না, কিন্তু এটি সূক্ষ্ম কাজ করে। ইন্টারনেটে কিছু তথ্য আছে, যদি আপনার আরও তথ্যের প্রয়োজন হয় তবে এটি গুগল করুন। এই লিঙ্কটিতে প্রচুর তথ্য রয়েছে এবং এটি দরকারী হতে পারে। যেখানে এইচপিএফ + এলপিএফ = 1 এইচপিএফ এবং এলপিএফ এর মানগুলি ফিল্টার.পিডিএফ ফাইলে এই লিঙ্কে পাওয়া যাবে। আপনাকে "দ্য ডিআইওয়াই সেগওয়ে" এর পক্ষ থেকে ধন্যবাদ। শুধু পরীক্ষার উদ্দেশ্যে আমরা এই মানগুলি সেট করব, এইচপিএফ = 0.98 এবং এলপিএফ = 0.02।

ধাপ 4: কোড:

কোডটি একটি কোড থেকে একটি অভিযোজন যা আমি অন্য প্রকল্পে ব্যবহার করেছি। সম্ভবত কিছু ভেরিয়েবল অব্যবহৃত আছে। আপনাকে ধন্যবাদ টড ই। filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ তাই আপনি এই মানগুলিকে একটি সিরিয়াল টার্মিনালে সংরক্ষণ করতে পারেন এবং একটি গ্রাফিক প্লট করতে পারেন বা অন্য কোন বিষয়ের জন্য কোণটি ব্যবহার করতে পারেন। zipped শুধু আনজাইপ করুন, খুলুন এবং আপনার arduino এ আপলোড করুন।

ধাপ 5: পরীক্ষা এবং উপসংহার

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

প্রস্তাবিত: