Mikkel Nielsen
Søren Bramer Schmidt
Peter Jessen
Mål
Målet med dagens øvelse er at undersøge hvorledes lydsensoren på NXT'en virker, og herefter bruge den i diverse programmer som bruger lyd.
Plan
1. Installere Lejos og bluetooth funktionalitet på flere computere, for ikke at være afhængig af en enkelt computer.
2. Afprøve de forskellige medfølgende .bat filer til at overføre filer og monitor NXT'ens status, så vi ikke hele tiden skal kigge på displayet.
3. Tilføje lydsensoren til robotten og teste lydmålinger fra forskellige lyde ved forskellige afstande som beskrevet i øvelsesbeskrivelsen [1].
4. Optage en lydsekvens af forskellige lyde med datalogger.java og lave en graf over lyden.
5. Afprøve SoundCtrCar.java og tilføre en escape-mekanisme.
6. programmere en klappe styret bil som reagere alene på klap og ikke andre lyde.
Resultater
1. og 2. Installation af bluetooth
Installation og afprøvning af bluetooth funktionaliteten fungerede fint. Vi kunne bruge nxtbrowse til se filerne på NXT'en.
Vi fik dog ikke monitoren til at vise sensor data, som vi havde forventet at den ville.
Den viste dog tacho tal fra motoren. Vi kunne hente og overføre filer, hvilket var det vi skulle bruge nu og her.
3. Test af lyde
Vi testede forskellige lyde fra forskellige afstande. Herefter kunne vi aflæse lyden på displayet af NXT'en.
Lyden blev vist i en procent-sats mellem den menneskelige hørlige del af decibel-skalaen.
Målte værdier:
Klap
afstand lyd-niveau
50 cm 93
100 cm 48
200 cm 26
Høj stemme
afstand lyd-niveau
50 cm 63
100 cm 52
200 cm 43
Vi kan konkludere at lyden bliver mindre når afstanden bliver større. Herudover ser klappet ud til at falde hurtigere med afstanden end stemmen.
Testen blev udført i et mindre lokale, og der kan derfor have forekommet noget ekko der har spillet ind på resultatværdierne, men konklusionen er den samme.
4. Optaget lyd
Vi brugte dataloggeren til at optage en lyd hvor vi først var stille, så klappede vi af robotten og tilsidst råbte af den. Denne lydfil downloadede vi fra
NXT'en, og processerede dataene via MATLAB. Resultatet ses i billedet her:
Ved ca. den 800 måling kommer der et klap som ses ved den hurtige stigning til over 90.
De senere lyde er stemmer som ikke stiger lige så brat, og ikke kommer lige så højt op.
5. Lyd styret bil
Vi hentede og kørte Soundctrcar.java. Programmet kørte fint, og vi testede som vist her i videoen:
Programmet kunne ikke stoppes, så vi tilføjede en buttomlistener på escape knappen. Hvis knappen trykkes ned afslutter vi programmet med system.exit(), som vist her:
Button.ESCAPE.addButtonListener(new ButtonListener() {
@Override
public void buttonReleased(Button arg0) {
}
@Override
public void buttonPressed(Button arg0) {
System.exit(0);
}
});
6. Klappe styret bil
Vi programmerede den klappestyrede bil med noget besvær. Vi ville gerne have robotten ti kun at reagere på klap og ikke på stemmer.
Vi fulgte så vidt mulig beskrivelsen for et klap, som beskrevet af Sivan Toledo.
Der var mange aspekter i denne algoritme for et klap, og vi måtte derfor debugge en hel del, før vi fik det til at virke.
Vi fik den tilsidst til at virke, nogenlunde. Den reagerede dog stadig på høje pludselige stemmer.
Vi er dog stadig noget skeptiske over for det klappestyrede system. Det er sjældet at stemmer på over 90 ikke er pludselige lyde.
Det som den klappestyrede ikke reagere på er langsomt stigende lyde som den lyd kontrollerede bil ikke reagere på.
Den vigtigste del af algoritmen fra vores ClapCar.java kode [2], kan ses her:
if(soundLevel < 50)
{
trin 1
}
if (step1 && soundLevel > 85)
{
trin 2
}
if (step2 && soundLevel < 50 && ms <= 275)
{
trin 3
}Status
Vi fik vi lavet alt det vi havde planlagt. Det tog længere tid end vi havde først regnet med. Vi brugte ialt godt 5 timer,
hvor det meste a tiden gik med at forsøge at optimere den klappestyrede bil.
V ville gerne have haft monitor af NXT'ens display til at virke over bluetooth, således at vi ikke hele tiden måtte kigge på displayet.
Dette vil vi kigge videre på næste gang.
Referencer
[1] Uge 3 opgaver
[2] Kode fra uge 3

Ingen kommentarer:
Send en kommentar