নাড়ি প্রস্থের সংশোধন (PWM) এর জন্য আমি কি জিপিআইও ব্যবহার করতে পারি?


97

আমি কি জিপিআইওকে ডাল-প্রস্থের মডুলেশন আউটপুট হিসাবে ব্যবহার করতে পারি ?

যদি তা হয় তবে আমি কীভাবে এটি করতে যাব এবং আমার কতগুলি যুগল, স্বতন্ত্র PWM আউটপুট পেতে পারি?


আপনি সম্ভবত কোন মডেলটি ব্যবহার করছেন তা নির্দিষ্ট করা দরকার। এঁরা সকলেই কিছুটা আলাদা।
not2qubit

2
@ user1147688 যখন কেবলমাত্র একটি মডেল ছিল এই প্রশ্নটি জিজ্ঞাসা করা হয়েছিল!
berry120

উত্তর:


76

অ্যালেক্স চেম্বারলাইনের পরামর্শ অনুসারে , ওয়্যারিংপিআই লাইব্রেরিতে মডেল অনুসারে এক বা দুটি জিপিআইও পিন, এবং অন্যান্য জিপিআইও পিনের সফ্টওয়্যার পিডব্লিউএম উভয়ই হার্ডওয়্যার পিডব্লিউএম আউটপুট সমর্থন করে । ইতোমধ্যে আরপিআইও.পিডাব্লুএম লাইব্রেরি কোনও জিপিআইও পিনে ডিএমএ দ্বারা পিডব্লিউএম করে । কার্যকরভাবে এটি হার্ডওয়্যার এবং সফটওয়্যার পিডাব্লুএম এর মধ্যে একটি অর্ধেক ঘর, ওয়্যারিংপির সফটওয়্যার পিডাব্লুএমএম [1] এর সাথে 100 to এর তুলনায় 1 tim এর টাইম রেজোলিউশন সরবরাহ করে ।

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

যদি আপনার অ্যাপ্লিকেশনটি স্বল্প-সময়ের সমাধান এবং উচ্চ জিটর সহনশীল হয় তবে আপনি কোনও সফ্টওয়্যার বা ডিএমএ সহায়তায় থাকা টাইমিং লুপটি ব্যবহার করতে পারেন। আপনি যদি উচ্চতর নির্ভুলতা / লোয়ার জিটার পিডাব্লুএম চান তবে আপনার প্রয়োজন হতে পারে হার্ডওয়্যার সহায়তা।

PWM সফ্টওয়্যার কখন উপযুক্ত হতে পারে?

আপনি যদি নরম রিয়েল-টাইম প্রতিক্রিয়া প্রয়োজনীয়তার সাথে বিভিন্ন মানব দৃশ্যমান ক্যাডেনস (হার্টজ এর 10 এর) সাথে একগুচ্ছ এলইডি ফ্ল্যাশ করতে চান তবে আপনার জিপিআইও পিনগুলির মতো সফটওয়্যার লুপটি অনেকগুলি পিডব্লিউএম হ্যান্ডেল করতে পারে।

হার্ডওয়্যার PWM কখন উপযুক্ত হতে পারে?

আপনি যদি হার্ড রিয়েল-টাইম প্রতিক্রিয়া প্রয়োজনীয়তার সাথে কোনও সার্ভো মোটর নিয়ন্ত্রণ করতে চান তবে আপনাকে হার্ডওয়্যার PWM ব্যবহার করতে হবে। তারপরেও সার্ডো লুপের জন্য রিয়েল-টাইম প্রতিক্রিয়া নিশ্চিত করতে আপনার সমস্যা হতে পারে যা পিডব্লিউএম আউটপুটটির সাথে এনকোডার ইনপুট যুক্ত করে।

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

আমার যদি আরও হার্ডওয়্যার পিডব্লিউএম আউটপুট প্রয়োজন হয়?

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

একটি বিকল্প, অ্যাডাফ্রুট 16-চ্যানেল 12-বিট পিডব্লিউএম / সার্ভো ড্রাইভার - আইসি ইন্টারফেস - পিসিএ 9685 এর মতো কিছু হবে যা আপনাকে আইসিসি বাসের জন্য জিপিআইওর কয়েকটি পিন সহ 16 পিডব্লিউএম আউটপুটগুলি নিয়ন্ত্রণ করতে দেয়। এর ব্যবহারের উদাহরণের জন্য, I²C 16 চ্যানেল PWM / সার্ভো ব্রেকআউট দেখুন - রাস্পবেরি পাই ফোরামগুলিতে কার্যকারী পোস্ট।

১. পরামর্শের জন্য dm to to ধন্যবাদ , তবে হিদার বলেছে যে RPIO.PWM আর নতুন পাই মডেলগুলির জন্য কাজ করতে পারে না।


আমি কি ডিসি মোটর চালানোর জন্য সফটওয়্যার PWM পদ্ধতির ব্যবহার করতে পারি?
জিদোন

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

2
এফওয়াইআই, আরপিআই লাইব্রেরি ( পাইথনহস্টেড.org / আরপিআইও / পিডব্লিউ_পিটিএইচটিএমএল) এর সাথে 100us রেজোলিউশনের সাথে ওয়্যারিংপি'র তুলনায় অনেক ভাল রেজোলিউশন ( 1us ) রয়েছে বলে মনে হয়েছে
dm76

@ মারকবুথ - কোনও প্রোব নেই। লাইব্রেরিটি সত্যিই ভাল লেখা এবং RPI.GPIO- এর জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে যা আপনি যদি পরে কোনও প্রকল্প শুরু করেন এবং পরে বুঝতে
পেরে

RPIO.PWM আর নতুন পাই মডেলগুলির জন্য আর কাজ করতে পারে না বলে আমি মনে করি।
হিথার

39

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

হ্যাঁ, রাস্পবেরি পাইতে একটি হার্ডওয়্যার পিডব্লিউএম আউটপুট রয়েছে, যা P1-12 (GPIO18) এর সাথে সংযুক্ত রয়েছে। আরও, আইডিসি বা এসপিআই ইন্টারফেস ব্যবহার করে পিডব্লিউএম আউটপুট যুক্ত করা যেতে পারে ; কিছু মানুষ এই ( ফোরাম পোস্ট ) দিয়ে সাফল্য পেয়েছে ।

উদাহরণ কোড

আপনি ডাব্লুএমএম পিনটি নিয়ন্ত্রণ করতে ওয়্যারিংপি লাইব্রেরি ব্যবহার করতে পারেন ; আপনি পুরো লাইব্রেরি সহ এড়ানোর জন্য কোডটি দেখতে পারেন look

সফটওয়্যার পিডাব্লুএম

লিনাক্স রিয়েল-টাইম অপারেটিং সিস্টেম না হওয়ায় রাস্পবেরি পাই কোনও গুরুতর সফটওয়্যার পিডব্লিউএমের জন্য উপযুক্ত নয়।


1
প্রশ্ন, গুরুতর সফটওয়্যার পিডাব্লুএম এর সংজ্ঞা বা উদাহরণ কী? এবং "রিয়েল টাইম অপারেটিং সিস্টেমগুলি" কী এবং পাইতে কোনও পাওয়ার সম্ভাবনা কি আছে
অ্যান্থনি ব্লাক

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

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

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

2
40 টি পিনের সাথে থাকা নতুন মডেলগুলিতে জিপিআইও 19 (পিন 35) এর সাথে একটি দ্বিতীয় হার্ডওয়্যার PWM সংযুক্ত রয়েছে।
কেভিন

12

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

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

যেমন সার্ভোব্লাস্টার এবং আমার পিগিও ইত্যাদি etc.


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


2
ভারী সিপিইউ লোড কোনও পার্থক্য করা উচিত নয়। ভারী নেটওয়ার্ক লোড জিপিও সার্ভোতে একটি পার্থক্য আনতে পারে বিশেষত যদি ডিফল্ট 200kHz এর পরিবর্তে 1MHz এ নমুনা দেয়। ফ্রিকোয়েন্সি 50 (হার্জেড), শুল্ক চক্রের পরিসীমা 0 - 1000000 (0 - 5000000 এর প্রকৃত অন্তর্নিহিত মানকে ম্যাপ করা হবে) হবে। 1 এমএস 20 এমএসে 1 এমএস তাই 5% এর 500%, 1.5ms-> 7.5% -> 75000, 2ms-> 10% -> 100000 এর শুল্ক।
Joan

1
বিসিএম 2835 এআরএম পেরিফেরিয়ালের পৃষ্ঠা 102 জিপিআইওকে দেওয়া যেতে পারে এমন বিভিন্ন মোডগুলি দেখায়। অন-লাইনে দেখুন যার জন্য জিপিআইও বিভিন্ন পাই মডেল সম্প্রসারণ শিরোনামে পৌঁছেছে।
joan

1
@ ব্যবহারকারী 1147688 পিএলএলডি (500MHz) মূল পিডব্লিউএম ঘড়ি হিসাবে ব্যবহৃত হয়। "এটি" যেভাবে কাজ করে তার কারণে পিডব্লিউএম কোর ফ্রিকোয়েন্সি 250 মেগাহার্টজ। চালু এবং বন্ধ করতে সক্ষম হতে (পিডাব্লুএমএম এর জন্য বেশ প্রয়োজনীয়) সর্বাধিক 125 মেগাহার্টজ। আপনি পিএলএলসি (1000 মেগাহার্টজ) ব্যবহার করে পরিসংখ্যানগুলিকে দ্বিগুণ করতে পারেন তবে পিএলএল মূল ঘড়ির গতিতে পরিবর্তিত হয়।
joan

2

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


আমি কোথাও পড়েছি যে একটি আউটপুট পিনের স্যুইচিং ফ্রিকোয়েন্সি হিসাবে একটি হার্ডওয়্যার সীমা আছে। আমার মনে হয় এটি প্রায় 20 মেগাহার্টজ ছিল। সুতরাং 100% সিপিইউ ব্যবহারের পরেও 300 মেগাহার্টজ পিডাব্লুএমএম বা এই ধরণের কোনও কিছুই টানতে সক্ষম হওয়ার আশা করবেন না।
পোনকডুডল

@ ওয়াল্লাকোলু: অ্যাপ্লিকেশনগুলির জন্য 300 মেগাহার্টজ পিডাব্লুএম প্রয়োজন?
পিটার মর্টেনসেন

2
@ পিটারমোরটেনসেন: আচ্ছা আমি জানি না কীভাবে রেডিও ট্রান্সমিটারগুলি এবং এগুলি তাদের সংকেত জেনারেট করে, তবে কেউ কেউ পিডব্লিউএম দিয়ে এটি করতে পারে। পাইএফএম এটি 100 মেগাহার্টজ এ করে। যদিও এটি আমার মন্তব্যের বিরোধিতা করে বলে মনে হচ্ছে, তাই আমি অবাক হয়েছি যে সম্ভবত পিনটি এখনও সেই ফ্রিকোয়েন্সিতে আদেশ করা যেতে পারে তবে এটি কেবল পিনের ক্যাপাসিট্যান্স যেমন সংকেতকে তত্পর করে তোলে, যাতে একটি 100 মেগাহার্টজ বর্গ-তরঙ্গ প্রকৃতপক্ষে উদাহরণস্বরূপ দোলায়মান হতে পারে (1.0 ভি) , পূর্ণ (0 ভি, 3.3 ভি) ব্যাপ্তির পরিবর্তে 2.3 ভি)।
পোনকডুডল

2

আমি এই লাইব্রেরিটি খুঁজে পেয়েছি ( পাই-ব্লাস্টার ) যা "অত্যন্ত দক্ষ" বলে দাবি করে: সিপিইউ ব্যবহার করে না এবং খুব স্থিতিশীল ডাল দেয়।

আমি এটি এখনও পরীক্ষা করে দেখিনি, তবে যত তাড়াতাড়ি করা হবে আপডেট হবে (সম্ভবত আজই)


আমি এটি চেষ্টা করে চলেছি তবে এখনও ভাগ্য হয়নি। এতদূর আমি বলতে পারি এটি আসলে হার্ডওয়্যারটি স্যুইচ করে না?
মিঃমোগলি

1
শুধু এই টুকরো টুকরো করতে চান। পাই-ব্লাস্টার আমার পক্ষে কাজ করেছে যেখানে এই অন্যান্য উত্তরগুলি দেয় নি।
সেফ রিড 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.