Z pomocą Arduino budujemy mikrofon podsłuchowy

Podobne dokumenty
Prosty system alarmowy z Arduino

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:

LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED

NWD-210N Bezprzewodowy adapter USB n

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Arduino prezentuje działanie bramki logicznej AND

Gramofon z wyjściem USB, ION Quickplay LP, konwerter płyt winylowych => MP3

Schemat blokowy architektury AVR

Silnik prądu stałego. Sterowanie silnika prądu stałego

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Klawiatura matrycowa

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Mikrofon stereofoniczny STM10

Instrukcja do ćwiczeń

Elementy zestawu: Kamera EDR-101 Moduł GPS Uchwyt do zamontowania Kabel zasilający Karta microsd Płyta z oprogramowaniem

dokument DOK wersja 1.0

Karty SD posiadają 9 wyprowadzeń. Dodatkowo karta SD ma na brzegu przełącznik blokujący możliwość zapisu. Karta SD operuje na napięciu 3,3V.

Alarmy audio. Moduł GPS pozwala na śledzenie lokalizacji. Wbudowana bateria back-up. Możliwość podłączenie monitora. Elementy zestawu: Kamera EDR-101

Kurs Elektroniki. Zastosowanie elektroniki w robotyce cz

DVD MAKER USB2.0 Instrukcja instalacji

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Kamera. Nr produktu

Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów

Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę.

LP2GO. Nr produktu INSTRUKCJA OBSŁUGI

NWD310N. Bezprzewodowa karta sieciowa PCI N. Skrócona instrukcja obsługi. Wersja 1.00 Październik 2007 Wydanie 1

a) Tworzymy podcast w programie Audacity

Generator tonów CTCSS, 1750Hz i innych.

Przetwornik analogowo-cyfrowy

Wersja polska. Wstęp. Zawartość opakowania. Uwaga! WC002 Sweex USB Webcam 100K with Microphone

Wersja polska. Wstęp. Sprzęt. Instalacja w Windows 98SE. PU007 Sweex 1 Port Parallel & 2 Port Serial PCI Card

BeoSound 4. Uzupełnienie

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Czytnik kart pamięci 8w1, Conrad USB 2.0 Instrukcja obsługi

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

NAZWA PRODUKTU: Mini metalowa kamera Full HD 1920x1080 detekcja ruchu S153 Cechy produktu

Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)

PU002 Sweex 2 Port Serial PCI Card

Laboratorium 1 Wprowadzenie do programowania Intel Galileo

MultiTool instrukcja użytkownika 2010 SFAR

Cyfrowa kamera EVOLVE 1500HD Touch

PROGRAMOWANIE I ARDUINO W SZKOLE

Instytut Teleinformatyki

Żarówka LED z wbudowaną kamerą HD

P-660HN. Skrócona instrukcja obsługi. Bezprzewodowy router N z modemem ADSL2+

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

INSTRUKCJA INSTALACJI URZĄDZENIA

Wersja polska. Wstęp. Sprzęt. Instalacja w Windows 98SE. PU006 Sweex 2 Port Serial PCI Card

INSTRUKCJA OBSŁUGI PROGRAMU INSTAR 1.0

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Instrukcja obsługi KAMERA LC-S989

Moduł odtwarzacza plików MP3 audio

Instrukcja obsługi. Apexto DV008

1.1 Co to jest USBCOM? Budowa oraz parametry techniczne... 3

Strona 1 z Przedni panel. LED Opis funkcji ADSL

SKRÓCONA INSTRUKCJA OBSŁUGI

Zegarek BS Nr produktu

Arduino Power Shield. Moduł Arduino do sterowania silnikami dużej mocy i pomiaru prądu

LOW ENERGY TIMER, BURTC

WIDEOREJESTRATOR LX-400G Z SYSTEMEM ANDROID

INSTRUKCJA UŻYTKOWNIKA. Przenośny rejestrator cyfrowy DVR-V5

Uniwersalna płytka generatora tonów CTCSS, 1750Hz i innych.

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Tuber radio BT MA407. Instrukcja obsługi User s Manual

Mini kamera Full HD (AC-1080.ir)

NAZWA PRODUKTU: Kamera IP WIFI zegarek budzik z podczerwienią S124 Cechy produktu

Wersja polska. Wstęp. Zawartość opakowania. Uwaga! WC030 Sweex Webcam 300K with Microphone USB

Arduino jako wyłącznik z opóźnieniem

W semestrze letnim studenci kierunku Aplikacje Internetu Rzeczy podczas ćwiczeń z programowania CAD/CAM

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

AKTUALIZACJA KROK 1. INSTALACJA PROGRAMU PC UTILITY.

W przypadku braku wymienionego wyżej elementu należy skontaktować się ze sprzedawcą.

Instrukcja instalacji certyfikatu na karcie kryptograficznej Certum Code Signing

Jak podłączyć i skonfigurować Phantoma z routerem Dialog?

Praca z dźwiękiem Jak nagrywać pliki dźwiękowe.

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

INSTRUKCJA OBSŁUGI TACHOTERMINAL PRO. Firmware

Przegląd rozwiązań z oferty firmy 4D Systems

Instrukcja do oprogramowania ENAP DEC-1

Skrócona instrukcja obsługi

Konfiguracja pakietu CrossStudio for MSP

Zewnętrzna karta dźwiękowa HAMA na USB, 7.1 Surround, 1x mikrofon, 1x głośniki/słuchawki

FAQ dla Eee Pad TF201

Istnieją trzy sposoby tworzenia kopii zapasowej na panelu Comfort:

Kamera GoPro HD HERO Firmware Update v

Instrukcja instalacji

Skrócona instrukcja obsługi. Instrukcję obsługi można pobrać ze strony Zoom ( ZOOM CORPORATION

Dla Macintosh: TZ4_V12.zip / 1,943,290 bytes (Po rozpakowaniu, TZ4_a.bin) TZ5_V12.zip / 2,000,270 bytes (Po rozpakowaniu, TZ5_a.

Arduino : 36 projektów dla pasjonatów elektroniki / Simon Monk. Gliwice, cop Spis treści

Spis treści. Opis urządzenia. Pierwsze użycie

FAQ dla Transformer TF201

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Windows 10 - Jak uruchomić system w trybie

Transkrypt:

Z pomocą Arduino budujemy mikrofon podsłuchowy W tym opracowaniu skonstruujemy bardzo użyteczne urządzenie dla wszystkich ciekawskich i wścibskich ludzi: mikrofon podsłuchowy z opcją nagrywania. Projekt będzie oparty na Arduino z prostym wzmacniaczem mikrofonowym i kartą pamięci SD. Oto kroki, które zamierzamy wykonać w celu zbudowania tego projektu:! zobaczymy, jak skonfigurować projekt, aby upewnić się, że będzie w nim opcja nagrywania przez określony czas, który może być ustawiany przez użytkownika! następnie nagrany plik audio zostanie zapisany na karcie pamięci SD i będzie dostępny na dowolnym komputerze! przedtem przetestujemy indywidualnie wszystkie elementy projektu. Wymagania sprzętowe i programowe Najpierw sprawdźmy, jakie są wymagane elementy tego projektu. Jak zwykle użyjemy modułu Arduino Uno jako mózgu projektu. Potem potrzebny jest mikrofon. W projekcie użyliśmy prostego mikrofonu elektretowego, który posiada wzmacniacz na płycie, jak pokazano na rysunku 1: Najważniejsze jest, żeby sygnał foniczny mikrofonu był wzmacniany. Na przykład ten wybrany do projektu wzmacnia sygnał audio 100 razy, co umożliwia Arduino Uno rejestrowanie dźwięku na zwykłych poziomach (takich jak głosy). Następnie potrzebna jest karta pamięci microsd z adapterem rys. 2: Rys. 2. Karta pamięci microsd z adapterem Potrzebny będzie również sposób zapisu danych na karcie SD. Jest wiele sposobów na to, aby zrobić to z Arduino. Najprostszym rozwiązaniem, które wybraliśmy, jest użycie nakładki (shield). Mieliśmy nakładkę Ethernet Shield, która jest świetna, ponieważ posiada wbudowany czytnik kart microsd. Oczywiście można użyć dowolnej nakładki z czytnikiem kart microsd lub nawet oddzielnego czytnika kart microsd. Potrzebna będzie również płytka montażowa i przewody (łączówki), aby wykonać wymagane połączenia. Rys. 1. Mikrofon elektretowy ze wzmacniaczem Po stronie oprogramowania potrzebna jest specjalna wersja biblioteki karty SD o nazwie SdFat. Nie możemy używać zwykłej biblioteki SD Arduino, ponieważ będziemy wykonywać naprawdę szybkie operacje zapisu na karcie SD, których nie można obsłużyć przez bibliotekę SD dołączoną do oprogramowania Arduino. Bibliotekę można pobrać ze strony https:// github.com/greiman/sdfat. 1

Z pomocą Arduino budujemy mikrofon podsłuchowy Używanie karty SD Pierwszą czynnością, którą wykonamy w tym projekcie jest sprawdzenie, czy możemy rzeczywiście uzyskać dostęp do karty pamięci SD. Dzięki temu będziemy mieli pewność, że w dalszej części projektu nie wystąpią problemy związane z kartami SD. Na fotografii poniżej (rys. 3) pokazano nakładkę Ethernet Shield, którą zastosowaliśmy, z adapterem karty microsd zamontowanym z prawej strony: Zobaczmy teraz kod, który będzie używany do testowania funkcjonowania karty SD. Poniżej znajduje się pełny kod dla tej operacji: Rys. 3. Nakładka Ethernet Shield z adapterem karty microsd // Include the SD library #include <SPI.h> #include <SD.h> // Set up variables using the SD utility library functions: Sd2Card card; SdVolume volume; SdFile root; // change this to match your SD shield or module; // Arduino Ethernet shield: pin 4 // Adafruit SD shields and modules: pin 10 // Sparkfun SD shield: pin 8 2

const int chipselect = 4; Z pomocą Arduino budujemy mikrofon podsłuchowy void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only Serial.print( \ninitializing SD card... ); // we ll use the initialization code from the utility libraries // since we re just testing if the card is working! if (!card.init(spi_half_speed, chipselect)) { Serial.println( initialization failed. Things to check: ); Serial.println( * is a card inserted? ); Serial.println( * is your wiring correct? ); Serial.println( * did you change the chipselect pin to match your shield or module? ); return; else { Serial.println( Wiring is correct and a card is present. ); // print the type of card Serial.print( \ncard type: ); switch (card.type()) { case SD_CARD_TYPE_SD1: Serial.println( SD1 ); break; case SD_CARD_TYPE_SD2: Serial.println( SD2 ); break; case SD_CARD_TYPE_SDHC: Serial.println( SDHC ); break; default: Serial.println( Unknown ); // Now we will try to open the volume / partition - it should be FAT16 or FAT32 if (!volume.init(card)) { Serial.println( Could not find FAT16/FAT32 partition.\nmake sure you ve formatted the card ); return; 3

Z pomocą Arduino budujemy mikrofon podsłuchowy // print the type and size of the first FAT-type volume uint32_t volumesize; Serial.print( \nvolume type is FAT ); Serial.println(volume.fatType(), DEC); Serial.println(); volumesize = volume.blockspercluster(); // clusters are collections of blocks volumesize *= volume.clustercount(); // we ll have a lot of clusters volumesize *= 512; // SD card blocks are always 512 bytes Serial.print( Volume size (bytes): ); Serial.println(volumesize); Serial.print( Volume size (Kbytes): ); volumesize /= 1024; Serial.println(volumesize); Serial.print( Volume size (Mbytes): ); volumesize /= 1024; Serial.println(volumesize); Serial.println( \nfiles found on the card (name, date and size in bytes): ); root.openroot(volume); // list all files in the card with date and size root.ls(ls_r LS_DATE LS_SIZE); void loop(void) { Ten kod sprawdza wiele elementów na karcie SD, takich jak na przykład format plików i dostępna przestrzeń, a także tworzy listę wszystkich plików znajdujących się na karcie SD. Jednak tym, czym tak naprawdę jesteśmy zainteresowani, jest upewnienie się, że karta SD może być czytana przez Arduino. Odbywa się to za pomocą następującego fragmentu kodu: if (!card.init(spi_half_speed, chipselect)) { Serial.println( initialization failed. Things to check: ); Serial.println( * is a card inserted? ); Serial.println( * is your wiring correct? ); Serial.println( * did you change the chipselect pin to match your shield or module? ); return; else { Serial.println( Wiring is correct and a card is present. ); 4

Z pomocą Arduino budujemy mikrofon podsłuchowy Przetestujmy teraz kod. Można po prostu skopiować ten kod i wkleić go do oprogramowania IDE Arduino. Następnie należy przesłać go do płyty Arduino Uno i otworzyć monitor szeregowy. Upewnić się, że prędkość szeregowa wynosi 115200 b/s. To co powinniśmy zobaczyć pokazano na rysunku 4. Jeśli widzisz to co na rysunku 4, to gratulacje karta SD i czytnik kart są prawidłowo skonfigurowane i gotowe do obsługi nagrań dźwiękowych! Rys. 4 Testowanie mikrofonu Teraz musimy upewnić się, że mikrofon działa prawidłowo, a zwłaszcza sprawdzić, czy na przykład można nagrywać poziomy głosu. W trakcie testowania przez nas prototypu tego projektu, wystąpił problem z mikrofonem, który polegał na braku wzmocnienia sygnału audio po prostu niczego nie było słychać w nagraniu. Pierwszym krokiem jest podłączenie mikrofonu do płyty Arduino. Do podłączenia mikrofonu są 3 kontakty: VCC, GND i AUD. Pin VCC Rys. 5. Schemat przyłączenia mikrofonu do płytki Arduino 5

Z pomocą Arduino budujemy mikrofon podsłuchowy należy podłączyć do pinu 5V modułu Arduino, GND do pinu Arduino GND, a AUD do analogowego pinu Arduino A5. Na poprzedniej stronie na rysunku 5 przedstawiono schemat, który może pomóc w przypadku problemów. Na rysunku 6 pokazano końcowy rezultat po przyłączeniu mikrofonu. Teraz użyjemy bardzo prostego szkicu, aby odczytać sygnał z mikrofonu i wydrukować go na monitorze szeregowym: Rys. 6. Widok naszego projektu po przyłączeniu mikrofonu // Microphone test void setup() { // Start Serial Serial.begin(115200); void loop() { // Read the input on analog pin 5: int sensorvalue = analogread(a5); // Print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability 6

Z pomocą Arduino budujemy mikrofon podsłuchowy Rys. 7. Wydruk szkicu naszego projektu na ekranie monitora szeregowego Ten szkic, w zasadzie, ciągle odczytuje dane z pinu A5, do którego jest podłączony mikrofon i drukuje je na monitorze szeregowym. Teraz skopiujmy i wklejmy ten szkic do środowiska programistycznego Arduino IDE i prześlijmy go płyty Arduino. Należy także otworzyć monitor szeregowy. Powyżej, na rysunku 7 przedstawiono wynik monitora szeregowego: łami. Wystarczy teraz ponownie podłączyć kartę SD do czytnika. Dodaliśmy również diodę LED na pinie 7, aby wiedzieć, kiedy nagrywanie jest włączone. Jeśli chcemy to również zrobić, wystarczy dioda LED i rezystor 330Ω. Oczywiście, tę diodę LED powinniśmy usunąć, jeśli rzeczywiście chcemy używać naszą konstrukcję jako urządzenie podsłuchowe lub szpiegowskie, aby nasz projekt nie rzucał się w oczy. Patrząc na ekran monitora szeregowego, skierujmy kilka słów do mikrofonu. Powinniśmy natychmiast zauważyć pewne odchylenia sygnału, które jest czytane przez płytę. Oznacza to, że głos jest nagrywany przez mikrofon, a amplituda jest wystarczająca, aby mikrofon nagrał poziom normalny głosu. Konstruowanie mikrofonu podsłuchowego Teraz przechodzimy do skonstruowania naszego mikrofonu podsłuchowego. Sprzęt dla projektu jest prawie gotowy, jeśli postępowaliśmy zgodnie z poprzednimi rozdzia- Na rysunku 8 pokazano schemat, który może być pomocny przy podłączaniu diody LED i rezystora Na rysunku 9 pokazano ostateczny widok naszego projektu po przyłączeniu diody LED. Teraz zobaczymy szczegóły kodu dla naszego projektu. Zasadniczo chcemy, aby urządzenie nagrywało dźwięk z mikrofonu przez pewien czas, a następnie zatrzymało nagrywanie. Ponieważ kod jest długi i złożony, zobaczymy tylko najważniejsze części. 7

Z pomocą Arduino budujemy mikrofon podsłuchowy Rys. 8. Schemat przyłączenia diody LED jako wskaźnika nagrywania Rys. 9. Obraz kompletnego projektu mikrofonu podsłuchowego 8

Z pomocą Arduino budujemy mikrofon podsłuchowy Pierwszym krokiem jest włączenie biblioteki SdFat: #include <SdFat.h> Następnie tworzymy instancje, które są konieczne do zapisu na karcie SD: SdFat sd; SdFile rec; Następnie określimy, do którego pinu chcemy podłączyć opcjonalną diodę LED sygnalizującą nagrywanie: const int ledstart = 7; Będziemy również definiować zmienną dla wewnętrznego licznika projektu: byte recordingended = false; unsigned int counter; unsigned int initial_count; unsigned int maxcount = 10 * 1000; // 10 Seconds Należy zauważyć, że w tym miejscu należy zmodyfikować zmienną maxcount w zależności od czasu, w którym urządzenie ma nagrywać. Tutaj, jako test, domyślnie użyto 10 sekund. Następnie zainicjujemy ADC (przetwornik analogowo-cyfrowy): Setup_timer2(); Setup_ADC(); Po tym, zainicjujemy kartę SD, a także włączymy diodę LED, jeśli się powiedzie: if (sd.begin(chipselect, SPI_FULL_SPEED)) { for (int dloop = 0; dloop < 4; dloop++) { digitalwrite(ledstart,!digitalread(ledstart)); delay(100); Wtedy rozpoczniemy nagrywanie z następującą funkcją: StartRec(); Będziemy również inicjować licznik w następującej linii kodu: initial_count = millis(); Następnie, w funkcji loop () szkicu, zaktualizujemy licznik, który pomaga śledzić upływający czas: counter = millis() - initial_count; Pozostając w funkcji pętli loop() faktycznie nastąpi zatrzymanie nagrywania, jeśli zostanie osiągnięty maksymalny czas, który zdefiniowaliśmy wcześniej: if (counter > maxcount &&!recordingended) { recordingended = true; StopRec(); Nagrywanie na karcie SD Na zakończenie przetestujemy nasz projekt i nagramy kilka sygnałów dźwiękowych. Najpierw należy skopiować cały kod i wkleić go do środowiska programistycznego Arduino IDE. Po skompilowaniu należy przesłać go do Arduino. Warto zauważyć, że jak tylko to zrobimy, nasz projekt rozpocznie nagrywanie dźwięku. W przypadku podłączenia opcjonalnej diody LED do pinu 7, dioda LED powinna być również włączona podczas fazy nagrywania. Można teraz trochę mówić lub wytwarzać efekty dźwiękowe albo odtwarzać jakiś utwór, aby upewnić się, że mikrofon nagrywa rzeczywiste dźwięki. Następnie, po upływie określonego czasu ustawionego w kodzie, zatrzymać działanie projektu, poprzez odłączenie zasilania. Następnie wyjąć kartę SD i włożyć ją do komputera. Na komputerze należy wybrać kartę SD, aby zobaczyć, że jeden plik został nagrany: Teraz można po prostu otworzyć ten plik w ulubionym odtwarzaczu audio i odsłuchać tego, co właśnie zostało nagrane. 9

Z pomocą Arduino budujemy mikrofon podsłuchowy Rys. 10. Przebieg sygnału akustycznego zarejestrowanego mikrofonem podsłuchowym Autor tego projektu na przykład otworzył go bezpłatnym oprogramowaniem do edycji dźwięku, Audacity, aby zobaczyć, jak wygląda przebieg sygnału akustycznego rys. 10. Gratulacje, właśnie zbudowaliśmy własny mikrofon podsłuchowy! Teraz możesz eksperymentować z różnymi ustawieniami, na przykład używając dłuższego czasu nagrywania. Podsumowanie W tym opracowaniu dowiedzieliśmy się, jak zbudować mikrofon podsłuchowy bazując na prostym mikrofonie z przedwzmacniaczem, Arduino i karcie microsd. Mikrofon może być ustawiony do nagrywania dźwięku w sposób ciągły przez określony czas ustawiany przez użytkownika. Oczywiście jest wiele elementów, które można teraz zrobić, aby poprawić ten projekt. Możesz na przykład użyć baterii do zasilania pro- jektu, aby było autonomiczne. Następnie wystarczy umieścić go w pokoju, w którym chcemy nagrać rozmowę i po prostu wrócić później, aby pobrać kartę SD z nagraniem. Można również podłączyć czujnik ruchu do projektu i używać go do automatycznego rozpoczęcia nagrywania, gdy wykryty zostanie ruch w pomieszczeniu w celu rejestrowania rozmów z całkowitą dyskrecją. Innym ciekawym projektem byłoby wykorzystanie określonych poziomów dźwięku, które są wyczuwalne przez projekt, aby rzeczywiście rozpocząć lub zatrzymać nagrywanie. Na przykład można przepisać oprogramowanie projektu do ciągłego monitorowania mikrofonu i automatycznie rozpocząć nagrywanie po przekroczeniu danego progu, co wskazuje na to, że ktoś mówi. Następnie program mógłby automatycznie zatrzymać nagrywanie, gdy poziom dźwięku stanie się niski. 10