সুচিপত্র:
ভিডিও: STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন: 3 ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
বর্তমানে, আমি SX1280 RF চিপের উপর ভিত্তি করে একটি RC ট্রান্সমিটার/রিসিভার তৈরি করছি। প্রকল্পের লক্ষ্যগুলির মধ্যে একটি হল যে আমি লাঠি থেকে সার্ভোতে 12 বিট সার্ভো রেজোলিউশন চাই। আংশিকভাবে কারণ আধুনিক ডিজিটাল সার্ভোসগুলিতে 12 বিট রেজোলিউশন রয়েছে দ্বিতীয়ত একটি হাই-এন্ড ট্রান্সমিটার 12 বিট ব্যবহার করছে। আমি তদন্ত করছিলাম কিভাবে আমি STM32 ডিভাইসে উচ্চ রেজোলিউশনের PWM সংকেত তৈরি করতে পারি। আমি প্রোটোটাইপের জন্য এই মুহূর্তে কালো পিল (STM32F103C8T8) ব্যবহার করছি।
ধাপ 1: অংশ তালিকা
হার্ডওয়্যার
- কোন STM32F103 উন্নয়ন বোর্ড (নীল বড়ি, কালো বড়ি, ইত্যাদি)
- পাওয়ার সাপ্লাই হিসেবে একটি ইউএসবি পাওয়ার ব্যাংক
- STM32 প্রোগ্রামার (সেগার জে-লিঙ্ক, ST-LINK/V2, অথবা কেবল একটি স্ট-লিঙ্ক ক্লোন)
সফটওয়্যার
- STM32CubeMX
- STM32 এর জন্য Atollic TrueSTUDIO
- গিথুব থেকে প্রকল্পের উৎস
ধাপ 2: স্পষ্ট সমাধান
সম্ভবত সবচেয়ে সহজ সমাধান হল একটি টাইমার ব্যবহার করা যা PWM সংকেত তৈরি করতে পারে, যেমন STM32F103 তে TIM1-3। একটি আধুনিক ডিজিটাল সার্ভোর জন্য ফ্রেম রেট 5 ms বা তার নিচে যেতে পারে, কিন্তু একটি পুরানো এনালগ সার্ভোর জন্য এটি 20 ms বা 50 Hz হওয়া উচিত। সুতরাং, একটি খারাপ কেস দৃশ্যকল্প হিসাবে আসুন এটি তৈরি করি। 72 মেগাহার্টজ ঘড়ি এবং 16 বিট টাইমার কাউন্টার রেজোলিউশনের সাথে আমাদের 20 এমএস ফ্রেম রেট কভার করার জন্য টাইমারের প্রেসকেলার ন্যূনতম 23 এ সেট করতে হবে। আমি ২ selected টি সিলেক্ট করেছি কারণ তখন ২০ এমএস এর জন্য আমাকে কাউন্টারটি ঠিক 00০০০০ সেট করতে হবে। আপনি CubeMX সেটআপ এবং স্ক্রিনশটে জেনারেটেড ১ এবং ১.৫ এমএস PWM সিগন্যাল দেখতে পারেন। দুর্ভাগ্যক্রমে, 1ms এর জন্য টাইমারের কাউন্টারটি 3000 এ সেট করা উচিত, যা আমাদের কেবল 11 বিট রেজোলিউশন দেবে। খারাপ না, কিন্তু লক্ষ্য ছিল 12 বিট, তাই আসুন অন্য কিছু চেষ্টা করি।
অবশ্যই যদি আমি 32 বিট টাইমার কাউন্টারের সাথে একটি মাইক্রো কন্ট্রোলার নির্বাচন করি, যেমন STM32L476 এই রেজোলিউশন অনেক বেশি হতে পারে এবং সমস্যাটি সমাধান করা হবে।
কিন্তু এখানে, আমি একটি বিকল্প সমাধান প্রস্তাব করতে চাই যা STM32F103 তে রেজোলিউশনকে আরও বাড়িয়ে তুলবে।
ধাপ 3: উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার
পূর্ববর্তী সমাধানের সাথে প্রধান সমস্যা হল যে প্রকৃতপক্ষে উৎপন্ন PWM সংকেত (1 এবং 2 ms এর মধ্যে) এর তুলনায় ফ্রেম রেট (20 ms) তুলনামূলকভাবে বেশি, তাই আমরা যখন অপেক্ষা করছি তখন বাকি 18 ms এর জন্য কিছু মূল্যবান বিট নষ্ট করছি। পরবর্তী ফ্রেম। সিঙ্ক্রোনাইজেশনের জন্য টাইমার লিঙ্ক বৈশিষ্ট্যটি ব্যবহার করে ক্যাসকেডিং টাইমার দ্বারা এটি সমাধান করা যেতে পারে।
ধারণা হল যে আমি টিআইএম 1 কে মাস্টার হিসাবে ব্যবহার করব ফ্রেম রেট (20 এমএস) এবং টিআইএম 2, টিআইএম 3 দাস হিসাবে পিডব্লিউএম সংকেতগুলি মোকাবেলা করতে। যখন মাস্টার দাসদের ট্রিগার করে তখন তারা শুধুমাত্র একটি পালস মোডে একটি PWM সংকেত উৎপন্ন করে। অতএব আমাকে সেই টাইমারগুলিতে কেবল 2 এমএস কভার করতে হবে। ভাগ্যক্রমে আপনি হার্ডওয়্যারে সেই টাইমারগুলিকে ক্যাসকেড করতে পারেন তাই এই সিঙ্ক্রোনাইজেশনের জন্য প্রসেসরের কোনও হস্তক্ষেপের প্রয়োজন নেই এবং এটি খুব সুনির্দিষ্টও, ঝাঁকুনি ps অঞ্চলে রয়েছে। আপনি স্ক্রিনশটগুলিতে CubeMX সেটআপ দেখতে পারেন।
আপনি দেখতে পাচ্ছেন আমি 3 টি প্রেসক্লার হিসাবে নির্বাচন করেছি তাই 2 এমএসের জন্য আমাকে টাইমার কাউন্টারে 48000 সেট করতে হবে। এটি আমাদের 1 এমএসের জন্য 24000 দেয় যা আসলে 14 বিট রেজোলিউশনের জন্য আমাদের আরও বেশি প্রয়োজন। Tadaaaa…
অনুগ্রহ করে চূড়ান্ত ফলাফলের জন্য ভূমিকাতে অসিলোস্কোপ স্ক্রিনশটগুলি দেখুন। চ্যানেল 3 (বেগুনি) হল মাস্টার টাইমারের বাধা যা একটি পালস উৎপন্ন করতে সালভগুলিকে ট্রিগার করবে। চ্যানেল 1 এবং 4 (হলুদ এবং সবুজ রশ্মি) হল বিভিন্ন টাইমার দ্বারা উত্পন্ন প্রকৃত PWM সংকেত। মনে রাখবেন যে তারা সিঙ্কে আছে কিন্তু সেগুলি প্রান্তিক প্রান্তে সিঙ্ক করা হয়েছে, এটি PWM মোড 2 এর কারণে। এটি কোনও সমস্যা নয়, কারণ নির্দিষ্ট সার্ভোর জন্য PWM রেট এখনও সঠিক।
এই সমাধানের অন্যান্য সুবিধা হল যে ফ্রেম রেট পরিবর্তন করা মানে শুধুমাত্র টিআইএম 1 এর সময়কাল পরিবর্তন করা। আধুনিক ডিজিটাল সার্ভিসের জন্য আপনি 200-300 Hz পর্যন্ত নিচে যেতে পারেন, কিন্তু আপনি যদি সূক্ষ্ম সুর করতে চান তবে দয়া করে সার্ভোর ম্যানুয়ালটি দেখুন।
প্রস্তাবিত:
অ্যান্ড্রয়েড ডিভাইসের জন্য বাহ্যিক ব্লুটুথ জিপিএস প্রদানকারীর জন্য সেটআপ: 8 টি ধাপ
অ্যান্ড্রয়েড ডিভাইসের জন্য বহিরাগত ব্লুটুথ জিপিএস প্রদানকারীর জন্য সেটআপ: এই নির্দেশাবলী ব্যাখ্যা করবে কিভাবে আপনার ফোনের জন্য আপনার নিজস্ব বহিরাগত ব্লুটুথ-সক্ষম জিপিএস তৈরি করতে হবে, যেটুকু মাত্র $ 10 তে জ্বালান। উপকরণ বিল: NEO 6M U-blox GPSHC-05 ব্লুটুথ মডিউল ব্লুটুথ লো এনার্জি মডিউলগুলিকে ইন্টারফেস করা হচ্ছে আরডুই
হাই রেজোলিউশন ওয়েবক্যাম: 9 টি ধাপ (ছবি সহ)
হাই রেজোলিউশন ওয়েবক্যাম: কয়েক বছর ধরে আমি একটি RPi ভিত্তিক ওয়েবক্যাম (PiCam মডিউল সহ) ব্যবহার করেছি। উত্পাদিত ছবিগুলি ঠিক ছিল কিন্তু তারপরে, এমন একটি মুহূর্ত ছিল যেখানে আমি আর মানের সাথে সন্তুষ্ট ছিলাম না। আমি একটি উচ্চ-রেজোলিউশন ওয়েবক্যাম করার সিদ্ধান্ত নিয়েছি। নিম্নলিখিত অংশগুলি
OpenLogger: একটি হাই-রেজোলিউশন, ওয়াই-ফাই সক্ষম, ওপেন সোর্স, পোর্টেবল ডেটা লগার: 7 টি ধাপ
ওপেনলগার: একটি উচ্চ-রেজোলিউশন, ওয়াই-ফাই সক্ষম, ওপেন সোর্স, পোর্টেবল ডেটা লগার: ওপেনলগার একটি বহনযোগ্য, ওপেন সোর্স, কম খরচে, উচ্চ-রেজোলিউশনের ডেটা লগার যা ব্যয়বহুল সফটওয়্যার বা লেখার সফটওয়্যারের প্রয়োজন ছাড়াই উচ্চমানের পরিমাপ প্রদানের জন্য ডিজাইন করা হয়েছে স্ক্র্যাচ থেকে আপনি যদি একজন প্রকৌশলী, বিজ্ঞানী বা উত্সাহী হন তবে
আনলক থাকার জন্য অ্যান্ড্রয়েড/আইওএস/ডব্লিউআইএন 10 ডিভাইসের জন্য একটি নিরাপদ অঞ্চল তৈরি করুন: 6 টি ধাপ
আনলক থাকার জন্য অ্যান্ড্রয়েড/আইওএস/ডব্লিউআইএন 10 ডিভাইসের জন্য একটি নিরাপদ অঞ্চল তৈরি করুন: এই নিবন্ধে, আমরা একটি শীতল গ্যাজেট তৈরি করতে চাই যা আপনার ডিভাইসগুলিকে আনলক করার জন্য একটি নিরাপদ অঞ্চল তৈরি করতে পারে। এই প্রকল্পের শেষে আপনি: ফিঙ্গারপ্রিন্ট সেন্সর কিভাবে ব্যবহার করবেন তা শিখবেন।
8 কিমি পর্যন্ত দূরত্বের জন্য দুটি ডিভাইসের জন্য লোরা মেসেঞ্জার: 7 টি ধাপ
8 কিমি পর্যন্ত দূরত্বের জন্য দুটি ডিভাইসের জন্য লোরা মেসেঞ্জার: আপনার ল্যাপটপ বা ফোনে প্রকল্পটি সংযুক্ত করুন এবং তারপরে কেবল লোরা ব্যবহার করে ইন্টারনেট বা এসএমএস ছাড়াই ডিভাইসগুলির মধ্যে চ্যাট করুন। আজ এখানে CETech থেকে আজ আমরা একটি প্রজেক্ট তৈরি করতে যাচ্ছি যা আপনার স্মার্টফোন বা যেকোনো