آردوینو Arduinoپروژه های آردوینو

ضبط صدا با آردوینو (شنود جاسوسی با برد آردوینو)

میخواهید یک ضبط کننده صوت با اندازه کوچک بخرید؟ به راحتی میتوانید آن را با آردوینو بسازید. در این پروژه با استفاده از برد آردوینو یک ضبط صوت کوچک میسازیم که میتواند برای اهداف شنود جاسوسی و استراق سمع نیز استفاده شود. در شنود جاسوسی از میکروفن های کوچک برای ضبط صدا استفاده میکنند. در این پروژه نیز ما با یک میکروفن کوچک صدا را ضبط میکنیم. در این پروژه هر صدای ضبط شده میتواند تا 2 دقیقه (میتواند به مقدار دلخواه تنظیم شود) طول داشته باشد و به صورت سریال شماره گذاری میشود. بعد از روشن شدن، روند ضبط صدا تا زمانی که باتری به طور کامل تخلیه شود یا فضای کارت حافظه SD پر شده باشد، ضبط ادامه میابد. ما همچنین یک ال ای دی را تنظیم میکنیم تا مشخص کند که ضبط در حال انجام است.

مهم: پروژه مورد بحث در اینجا فقط برای استفاده های آموزشی در نظر گرفته شده است. به حریم خصوصی دیگران احترام بگذارید ، هرگونه سو استفاده از این دستگاه ممکن است طبق قانون محل زندگی شما جرم قابل مجازاتی باشد.

مدار پروژه ضبط صدا با آردوینو

شماتیک کامل مدار برای پروژه ضبط صدا مبتنی بر آردوینو در زیر نشان داده شده است. مغز پروژه Arduino Nano است که می توانید در نمودار ببینید.

مدار پروژه ضبط صدا با آردوینو

قسمت اصلی این پروژه MAX9814 است که یک تقویت کننده میکروفون کم هزینه و با کارایی بالا با کنترل خودکار (AGC) است. این دستگاه دارای یک تقویت کننده افزایش متغیر (VGA) ، یک تقویت کننده خروجی ، یک ژنراتور ولتاژ بایاس میکروفن و یک مدار کنترل AGC است. همه اینها در داخل یک تراشه است.

برای یادگیری کامل آردوینو ، روی دوره آموزش آردوینو و برای یادگیری کامل الکترونیک، روی دوره آموزش الکترونیک کلیک کنید.

برد MAX9814 برای ضبط صدا

MAX9814 (در تصویر بالا نشان داده شده است) صدا را ضبط کرده و به آردوینو منتقل می کند. سپس ، آردوینو صدا را به فرمت .wav تبدیل کرده و در داخل ماژول کارت MicroSD ذخیره می کند که به آردوینو نیز متصل است. پین های زیادی در ماژول MAX9814 موجود است ، اما به طور عمده از پین های VCC ، GND و out استفاده می شود. همچنین یک پین gain وجود دارد.

برای کارت micro SD ، از SPI (رابط موازی سریال) استفاده می شود. این پایه های SPI با پایه های زیر متصل می شوند.

پین های آردوینو پین های حافظه SD
5V VCC
GND GND
D10 CS
D11 MOSI
D12 MISO
D13 SCK

برای MAX9814 از پین های آنالوگ برد آردوینو استفاده شده است که در جدول زیر آورده شده است.

پین های آردوینو پین های MAX9814
3.3V VDD
GND GND
A0 OUT

صدا در فایل های 2 دقیقه ذخیره می شود و سپس در یک پرونده جدید ذخیره می شود. بنابراین طول هر پرونده .wav نهایتا 2 دقیقه است.

قطعات مورد نیاز برای ضبط صدا با آردوینو

  1. آردوینو نانو
  2. برد آمپلی فایر MAX9814
  3. ماژول کارت SD
  4. کارت SD
  5. منبع تغذیه 5 ولت

شنود جاسوسی با برد آردوینو

کد پروژه ضبط صدا با آردوینو

#include <TMRpcm.h>
#include <SD.h>
#include <SPI.h>

در خطوط بالا، کتابخانه های PCM مبتنی بر SPI ، SD و TMR گنجانده شده است. برای کامپایل کد ، لطفاً از این کتابخانه استفاده کنید. می توانید کتابخانه TMRpcm بارگیری کنید.

MRpcm audio; // متغیر برای نمونه
int file_number = 0;
char filePrefixname[50] = "spy";
char exten[10] = ".wav";

در کدهای بالا ، نام و نوع فایل به همراه شماره پرونده شروع که صدا در آن ذخیره می شود ، تنظیم شده است. نام پرونده spyxxx.wav خواهد بود.

const int recordLed = 2;
const int mic_pin = A0;
const int sample_rate = 16000;

پایه میکروفن در پایه A0 با نرخ نمونه 16000 بیت و LED مورد نظر پیکربندی شده است.

#define SD_CSPin 10 // تعریف پین CS کارت حافظه
// عملکرد تاخیر برای داده های سریال
void wait_min(int mins) {
  int count = 0;
  int secs = mins * 60;
  while (1) {
            Serial.print('.');
            delay(1000);
            count++;
            if (count == secs) {
            count = 0;
            break;
            }
  }
  Serial.println();
  return ;
}

کد بالا برای کد های سریال استفاده می شود.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
مطلب پیشنهادی:  ساخت شیر آب اتوماتیک با آردوینو و التراسونیک
void setup() {
  Serial.begin(9600);
 
  pinMode(mic_pin, INPUT);
  pinMode(recordLed, OUTPUT);
  Serial.println("loading... SD card");
  if (!SD.begin(SD_CSPin)) {
            Serial.println("An Error has occurred while mounting SD");
  }
  while (!SD.begin(SD_CSPin)) {
            Serial.print(".");
            delay(500);
  }
  audio.CSPin = SD_CSPin;
}

در کد بالا، حالت پین های مورد نظر و کارت حافظه SD را پیکربندی میکنیم. همچنین خطای احتمالی در سریال مانیتور نمایش داده میشود.

void loop() {
Serial.println("####################################################################################");
  char fileSlNum[20] = "";
  itoa(file_number, fileSlNum, 10);
  char file_name[50] = "";
  strcat(file_name, filePrefixname);
  strcat(file_name, fileSlNum);
  strcat(file_name, exten);
  Serial.print("New File Name: ");
  Serial.println(file_name);
  digitalWrite(recordLed, HIGH);
  audio.startRecording(file_name, sample_rate, mic_pin);
  Serial.println("startRecording ");
  // ضبط صدا به مدت 2 دقیقه
  // اگر میخواهید مدت بیشتری ضبط کنید
  // عدد پایین را تغییر دهید
  wait_min(2); // این تابع تنظیم طول فایل صوتی است
  digitalWrite(recordLed, LOW);
  audio.stopRecording(file_name);
  Serial.println("stopRecording");
  file_number++;
  Serial.println("####################################################################################");
}

کد فوق یک حلقه بی نهایت است که در آن ضبط کننده صدا ها را ضبط می کند. سپس آنها را در کارت SD ذخیره میکند.

موارد موجود در فایل : سورس کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *