Funktionstest von Audio: Mikrofon und Lautsprecher

Beep-Signale

Das folgende Beispiel lässt den Brick einmalig zwei kurze Beeps abspielen.

import lejos.hardware.Sound;
public class EV3BeepTest {
  public static void main(String[] args) {
    Sound.twoBeeps();	
  }
}
import lejos.nxt.Sound;
public class BeepTest {
  public static void main(String[] args) {
    Sound.twoBeeps();	
  }
}

Eigene Audiodatei abspielen - EV3

Abgesehen von dem Roboterprogramm, welches die WAV-Datei (hier: Beispiel.wav) abspielt, muss man sich seperat um die WAV-Datei kümmern. Die Einschränkungen für die WAV-Datei sind nicht mehr so stark wie beim NXT, dennoch sind folgende Aspekte zu beachten:

Entsprechend konvertieren kann man z.B. mit dem Programm Audacity. Der Transport auf den Brick erfolgt am einfachsten über die Shell (Windows->Eingabeaufforderung) jxjupload -u [dateiname] oder über das Eclipse-Plugin:

Upload der WAV-Datei mit Eclipse Plugin[1]
import lejos.hardware.Sound;
import java.io.File;
public class EV3WavTest {
  public static void main(String[] args) {
     Sound.playSample(new File("Beispiel2.wav"),100);
  }
}

Eigene Audiodatei abspielen - NXT

Abgesehen von dem Programm, welches die WAV-Datei (hier: Beispiel.wav) abspielt, muss man sich seperat um die WAV-Datei kümmern. Die Datei muss dafür als 8-Bit Monospur vorliegen und als PWM/PCM-WAV gespeichert sein. Entsprechend konvertieren kann man z.B. mit dem Programm Audacity. Der Transport auf den Brick erfolgt am einfachsten über die Shell (Windows->Eingabeaufforderung):

  • jxjupload -u [dateiname]
import lejos.nxt.Sound;
import java.io.File;
public class WavTest {
  public static void main(String[] args) {
     Sound.playSample(new File("Beispiel.wav"),100);
  }
}

Lautstärke messen

Das nachfolgende Programm Soundtest.java misst mithilfe des Sound-Sensors die Umgebungslautstärke und zeigt den Prozentwert auf dem Brick-Display an. Zur besseren Lesbarkeit auf dem Display ist eine Verzögerung von 200ms zwischen den Messungen eingebaut.

import lejos.nxt.*;
public class SoundTest
{
  public static void main (String args[]) throws Exception
  {
    SoundSensor sound = new SoundSensor(SensorPort.S1);
    while(true)
    {                           
      LCD.clear();      
      int val =sound.readValue();
      LCD.drawInt(val, 1, 1, 0);      
      Thread.sleep(200);
    }                   
  }  
}

Quellen

X

Fehler melden

X

Suche