সাউন্ড লেভেল মিটার হিসাবে আরপিআই?


10

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

আমরা এখন অবধি যা ভাবছি তা এখানে। আমরা অ্যাডফ্রুট থেকে একটি অ্যাডিসি (এমসিপি.পি.০০8) কিনেছি এবং এর আগমনের অপেক্ষায় রয়েছি। আমরা যদি এডিসি থেকে জিপিআইও পিন 11 এবং জিপিআইও পিন 12 কে একটি লাল এলইডিতে ডিজিটাল আউটপুট সংযুক্ত করি, তবে কি এই সাধারণ প্রোগ্রামটি কাজ করবে?

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.IN)
GPIO.setup(12,GPIO.OUT)
GPIO.output(12,GPIO.LOW)    #make sure LED is off
SPL=0 #zero the variable

While SPL<??:            #Where ?? is the value in millivolts produced by a sound at 130 db
    SPL=GPIO.input(11)   #get value from adc connected to microphone
GPIO.output(12,GPIO.HIGH)   #turn LED on if the sound level is higher than ??

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


কিছু কারণে কোডটি বন্ধ হয়ে গেল। আমাকে আবার চেষ্টা করুন: GPIO GPIO.setmode (GPIO.BOARD) GPIO.setup (11, GPIO.OUT) GPIO.setup (12, GPIO.OUT) GPIO.output (12, GPIO.LOW) # হিসাবে RPI.GPIO আমদানি করুন # নিশ্চিত করুন যে এসপিএল চলাকালীন এসইডিএল = 0 # চলকটি বন্ধ রয়েছে এসপিএল <??: # কোথায় ?? 130 ডিবি এসপিএল = জিপিআইও.ইনপুট (11) # এডিসি থেকে মাইক্রোফোন জিপিআইও.আউটপুট (12, জিপিআইও.হাইট) এর সাথে সংযুক্ত # গিগাবাইটের একটি শব্দ দ্বারা উত্পাদিত মিলিভোল্টের মান কি # শব্দের স্তরটি উচ্চতর হলে এলইডি এলইডি চালু হবে? ?
user5769

1
আপনি আপনার পোস্টটি সম্পাদনা করতে পারবেন, যদি আপনি কোডের সামনে 4 টি স্পেস রাখেন তবে এটি একটি বিশেষ "কোড" বাক্সে রাখে এবং ফর্ম্যাটিং করে রাখে। এটি পড়া অনেক সহজ করে তোলে। আসলেই প্রশ্নের সাথে সম্পর্কিত নয়, তবে এটি 6th ষ্ঠ শ্রেণির জন্য চিত্তাকর্ষক !!!! আমি আশা করি আমি সেই তরুণটি শুরু করলাম।
ইমপালস

1
আগ্রহের বাইরে, সাউন্ড প্রেসার মিটারটি কী তৈরি / মডেল?
recantha

মিটার থেকে আউটপুট কি প্রাক-প্রশস্ত হয়? অন্যথায়, MCP3008 পড়ার জন্য মাইক্রোফোনের আউটপুটটি খুব ছোট হবে।
স্ক্রস করুন

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

উত্তর:


3

এসপিআই বাস ব্যবহার করে কেবল এডিসির ডিজিটাল আউট পিনটি সংযুক্ত করে আরপিআই জিপিআইওর 11 টি পিনটি কাজ করবে না। এই বাসটির আরও কয়েকটি তারের প্রয়োজন, 4 টি যথাযথ হতে।

এডিসির জন্য একটি এসপিআই ইনপুট, ক্লক এবং চিপ সিলেক্ট পিনগুলি সঠিকভাবে কাজ করতে সংযুক্ত হবে। ভাগ্যক্রমে একাধিক উত্স থেকে এই ভাল তথ্য আছে।

প্রথমে আপনি যদি এসপিআই-র কাজ সম্পর্কে আরও কিছু জানতে চান, তবে এসপিআইকে আরও ভালভাবে জানার জন্য আমি এই পৃষ্ঠাটি উইকিপিডিয়ায় পড়ার পরামর্শ দিচ্ছি ।

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

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

হয়তো এটা একটা চমৎকার ধারণা Adafruit থেকে উদাহরণ দিয়ে শুরু করা এবং SPI জন্য RPi হার্ডওয়্যারে বাস্তবায়ন ব্যবহার করে পরবর্তী সময়ে সরানো, যে ক্ষেত্রে আপনার প্রয়োজন হবে হয় উপাত্তপত্র (Adafruit সফ্টওয়্যার বাস্তবায়ন ব্যবহার করার সময় আরো কুশলী) , অধ্যায় 5 এবং 6 এডিসি ব্যবহারের জন্য কী কী কনফিগার করতে হবে এবং কী তা ব্যাখ্যা করে।


আমি পুরোপুরি বিট-ব্যাংিং বাস্তবায়ন এড়াতে চাই এবং হার্ডওয়্যার সংস্করণে সরাসরি যেতে পারতাম। ভাল, এখানে সাধারণ উদাহরণ: জেরেমির ব্লগ: এমসিপি 300 ব্যবহার করে রাস্পবেরি পাই হার্ডওয়্যার এসপিআই অ্যানালগ ইনপুট
স্ক্রস করুন

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

নেই Electret মাইক্রোফোন বিবর্ধক Adafruit থেকে যে এমন কিছু বিষয় যা এডিসি পড়তে পারে electret এর আউটপুট আপ ধাপ। এটি একটি মাইক ক্যাপসুল অন্তর্ভুক্ত।
স্ক্রস করুন

0

MCP3008 এবং অ্যাডাফ্রুট_এমসিপি 3008 এবং অ্যাডাফ্রুট.এসপিআই পাইথন লাইব্রেরি সহ হার্ডওয়্যার এসপিআইয়ের জন্য:

আমি অ্যাডাফ্রুট.এসপিআই লাইব্রেরির স্পিডিভ অবজেক্টের সেট_ক্লক_ফ্রিকোয়েন্সি ('হার্জে ইন মান' )টিতে টুইট করার চেষ্টা করেছি। সুতরাং কিছু মত,

import Adafruit_SPI as SPI  
ChangeClk=SPI.SpiDev(spi=0, port=0, max_speed = default)
ChangeClk.set_clock_frequency(90000)

আমি একটি 5 কেএইচজেড স্যাম্পলিং রেট চেয়েছিলাম (এমসিপি 300) 5 ভি দেওয়া হয়েছিল) তবে রাস্পবেরি পাই মডেল 2 বি ডিএসওতে পর্যবেক্ষণের সময় 25 কেএইচজেডের একটি সিরিয়াল ক্লক দিচ্ছিল। 5 কেএইচজেডের অ্যানালগ ইনপুট সিগন্যাল নমুনার হারের জন্য, পাই থেকে সিরিয়াল সিএলকে 90 কেএইচজেড (এমসিপি 3008 ডেটাশিটে প্রদত্ত 18 গুণ স্যাম্পলিং হার) হওয়া উচিত। তবে এটি এমনকি সাহায্য করতে পারেনি এবং পাইথন স্ক্রিপ্ট চলাকালীন জিনিসগুলি অপরিবর্তিত থাকে।

এছাড়াও আশ্চর্যের বিষয় হচ্ছে, আরপিআই-তে স্পাইডার আইডিটিতে চালানো একই কোডটি 1 সেকেন্ডে একটি 1006 মান মুদ্রণ করেছিল যা ইনবিল্ট পাইথন -2 শেলের বিপরীতে সেটিংসের সাথে 1 কেএইচজেডের সমান রক্ষিত একটি উন্নত নমুনা হার নির্দেশ করে।


আপনি কি এটি পুনরায় ফর্ম্যাট করতে যেতে পারেন? আপনার বর্তমান ফরম্যাটে উত্তরটি পড়া খুব কঠিন। আপনার যদি কোনও পয়েন্টার দরকার হয় তবে সহায়তা কেন্দ্রটিকে একটি চেহারা দিন।
ডার্থ ভেডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.