Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino-aangedreven ISD1820 Stemrecorder & Afspeelsysteem

Onderdelen en benodigdheden

Arduino UNO × 1
ISD1820 stemrecorder module × 1
Luidspreker: 0.25W, 8 ohm × 1
Draadjes (standaard) × 6

Over dit project

Het idee erachter

Ik zocht op internet naar apparaten die stem opnemen en weer afspelen. Ik vond de ISD1820, die heel goedkoop is (slechts $3) en zelfstandig kan opnemen met opname- en afspeelknoppen. Ik wilde dit apparaat echter besturen met een Arduino: opname en afspelen volledig via de Arduino.

Dit project is bedoeld voor beginners en voor wie wil leren over de werking van de ISD1820 met Arduino, maar je kunt het uitbreiden tot veel grotere toepassingen.

Bezoek www.gadgetprogrammers.online voor volledige beschrijving en nieuwe ideeën.

Hoe het werkt

Eerst nemen we stem op via de ISD1820, die 20 seconden kan opnemen per keer (je kunt stem ook op SD-kaart opslaan), en je kunt het herhaaldelijk afspelen. Hier nemen we op wanneer de gebruiker 'r' in de seriële monitor intypt, en spelen af bij 'p'.

Dit was de hele werking van ons systeem.

Arduino-aangedreven ISD1820 Stemrecorder & Afspeelsysteem Arduino-aangedreven ISD1820 Stemrecorder & Afspeelsysteem

Hieronder de pin-uitwerking (je kunt dit overslaan):

  • VCC – 3.3V voeding
  • GND – Massa
  • REC – De REC-ingang is een actief-HIGH opnamesignaal. De module begint met opnemen wanneer REC HIGH is. Deze pin moet HIGH blijven gedurende de opname. REC heeft voorrang op afspeel (PLAYL of PLAYE) signalen.
  • PLAYE – Afspelen, flank-geactiveerd: wanneer een LOW-naar-HIGH overgang wordt gedetecteerd, speelt het af tot een End-of-Message (EOM) marker of het einde van het geheugen bereikt is.
  • PLAYL – Afspelen, niveau-geactiveerd: wanneer deze ingangspins van LOW naar HIGH gaat, start een afspeelcyclus.
  • Luidsprekeruitgangen – De SP+ en SP- pinnen sturen luidsprekers direct aan met impedanties zo laag als 8Ω.
  • MIC – Microfooningang, geeft signalen door aan de on-chip voorversterker.
  • FT – Feed Through: deze modus laat de microfoon de luidspreker direct aansturen.
  • P-E – Speel de opname eindeloos af.

Laten we het maken!

Sluit als volgt aan:

  • VCC → Arduino 5V
  • GND → Arduino GND
  • FT → Arduino pin 5
  • Play L (PL) → Arduino pin 4
  • PLAY_E (P-E) → Arduino pin 3
  • REC → Arduino pin 2

Na bovenstaande aansluiting upload de code SAMPLE 1:

  • SAMPLE 1: ALS JE WILT DAT DE GEBRUIKER BESLISST WANNEER ER OPGENOMEN WORDT
  • SAMPLE 2: AUTOMATISCH 3 SECONDEN OPNEMEN EN 5 SECONDEN AFSPelen.

Sample 1: Gebruiker bepaalt opname

/* 
 * ISD1820 Arduino Stemrecorder 
 * om geluid op te nemen en af te spelen met Arduino en ISD1820 Geluidsrecorder
 * code van https://www.gadgetprogrammers.online
 * Code geschreven door Anshul Pareek voor educatieve doeleinden
 * op 6 juni 2018 om 23:20
*/

#define REC 2        // pin 2 voor opname
#define PLAY_E 3     // pin 3 voor afspelen-flank trigger
#define FT 5         // pin 5 voor feed through (zal NIET opnemen)
#define playTime 5000      // afspeeltijd 5 seconden
#define recordTime 3000    // opnametijd 3 seconden (verlengbaar tot 10 seconden)

void setup() {
  pinMode(REC, OUTPUT);      // stel REC pin in als uitgang
  pinMode(PLAY_E, OUTPUT);   // stel PLAY_E pin in als uitgang
  pinMode(FT, OUTPUT);       // stel FT pin in als uitgang
  Serial.begin(9600);        // start seriële monitor
}

void loop() {
  while (Serial.available() > 0) {
    char inChar = (char)Serial.read();
    if (inChar == 'p' || inChar == 'P') {
      digitalWrite(PLAY_E, HIGH);
      delay(50);
      digitalWrite(PLAY_E, LOW);
      Serial.println("Afspelen gestart");
      delay(playTime);
      Serial.println("Afspelen beëindigd");
      break;
    } else if (inChar == 'r' || inChar == 'R') {
      digitalWrite(REC, HIGH);
      Serial.println("Opname gestart");
      delay(recordTime);
      digitalWrite(REC, LOW);
      Serial.println("Opname gestopt");
    }
    Serial.println("### Seriële monitor afgesloten");
  }
  Serial.println("### Typ r voor opname, p voor afspelen");
  delay(500);
}

Sample 2: Automatische opname en afspelen


#define REC 2        // pin 2 voor opname
#define PLAY_E 3     // pin 3 voor afspelen-flank trigger
#define FT 5         // pin 5 voor feed through
#define playTime 5000      // afspeeltijd 5 seconden
#define recordTime 3000    // opnametijd 3 seconden
#define playLTime 900      // druk en loslaat afspeeltijd 0.9 seconden

void setup() {
  pinMode(REC, OUTPUT);
  pinMode(PLAY_E, OUTPUT);
  pinMode(FT, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(REC, HIGH);
  delay(recordTime);
  digitalWrite(REC, LOW);
  digitalWrite(PLAY_E, HIGH);
  delay(50);
  digitalWrite(PLAY_E, LOW);
  delay(playTime);
  delay(500);
}

Nu heb je het complete systeem gebouwd!

TOEKOMSTPERSPECTIEF:

Je kunt stem opnemen en opslaan op SD-kaart voor toekomstig gebruik, een walkie-talkie maken en nog veel meer... zoals je verbeelding je dicteert :)

Als je het leuk vindt, deel het dan....... :)

Bezoek en ondersteun ons zodat we nieuwe projecten voor je kunnen bouwen: www.gadgetprogrammers.online

Code

Sample 1 (Arduino)

PLAAK DEZE CODE IN ARDUINO EN UPLOAD NA AANSLUITING.

/* 
 * ISD1820 Arduino Stemrecorder 
 * om geluid op te nemen en af te spelen met Arduino en ISD1820 Geluidsrecorder
 * code van https://www.gadgetprogrammers.online
 * Code geschreven door Anshul Pareek voor educatieve doeleinden
 * op 6 juni 2018 om 23:20
*/

#define REC 2
#define PLAY_E 3
#define FT 5
#define playTime 5000
#define recordTime 3000

void setup() {
  pinMode(REC, OUTPUT);
  pinMode(PLAY_E, OUTPUT);
  pinMode(FT, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while (Serial.available() > 0) {
    char inChar = (char)Serial.read();
    if (inChar == 'p' || inChar == 'P') {
      digitalWrite(PLAY_E, HIGH);
      delay(50);
      digitalWrite(PLAY_E, LOW);
      Serial.println("Playback Started");
      delay(playTime);
      Serial.println("Playback Ended");
      break;
    } else if (inChar == 'r' || inChar == 'R') {
      digitalWrite(REC, HIGH);
      Serial.println("Recording started");
      delay(recordTime);
      digitalWrite(REC, LOW);
      Serial.println("Recording Stopped");
    }
    Serial.println("###Serial Monitor Exited");
  }
  Serial.println("### Enter r to record, p to play");
  delay(500);
}

SAMPLE 2 (Arduino)

Continu 3 seconden opnemen en 5 seconden afspelen.


#define REC 2
#define PLAY_E 3
#define FT 5
#define playTime 5000
#define recordTime 3000
#define playLTime 900

void setup() {
  pinMode(REC, OUTPUT);
  pinMode(PLAY_E, OUTPUT);
  pinMode(FT, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(REC, HIGH);
  delay(recordTime);
  digitalWrite(REC, LOW);
  digitalWrite(PLAY_E, HIGH);
  delay(50);
  digitalWrite(PLAY_E, LOW);
  delay(playTime);
  delay(500);
}

Schema's

Arduino-aangedreven ISD1820 Stemrecorder & Afspeelsysteem Arduino-aangedreven ISD1820 Stemrecorder & Afspeelsysteem

Productieproces

  1. Kanalen & sluizen: techniek, geschiedenis en toekomst van VS watervervoer
  2. De Evolutie en Vakmanschap van Bogen & Pijlen: Van Oude Jacht tot Moderne Ingenieurskunst
  3. De Kunst en Proces van LP Platen Productie
  4. Kruiken & Ruiken: De Wetenschap en Kunst van Microgecapsuleerde Geurprint
  5. Boter vs. Margarine: Geschiedenis, Productie en Gezondheidsinzichten
  6. Bouw Een Raspberry Pi Luchtkwaliteit & Weerstation Met InfluxDB & Grafana
  7. DIY thuisbrouw temperatuurcontrole: Monitoren & regelen met Arduino
  8. DIY Goedkope Handschoen-controller & Propeller-auto – Bouw Je Eigen Arduino Hand-controller
  9. Hoe magazijn stemapps orders en werknemers beschermen: vier kernvoordelen
  10. Productie Transformeren met Mobiliteit: Data, Stem, Video en Locatie-oplossingen
  11. Edge AI en Low-Power Hardware Drijven De Opkomst van Stemmenbesturing