[Tinyos-help] Sound Detector Tmote Invents 2

Jacob Cox jacobcox1974 at yahoo.com
Sat Apr 25 08:50:35 PDT 2009


Hello, 


My code is below. I am trying to program my Tmote Invents to detect a sound at a certain level and then change LEDs. The way it should work is the red led is set upon start up. I have also set up a timer to fire every 5 seconds 5*1024. What should happen is that when I clap, the green Led is turned on and the red Led is turned off. Once the 5 second interval has completed, I then want the green light to cut off again and return to red. Can anyone see what I'm doing wrong. The code compiles and the red light is set, but I am unable to trigger the green light. 

module MicDetectM
{
  provides interface StdControl;
  uses {
    interface Timer;
    interface Leds;
 interface SensorInterrupt as MicInterrupt;
 
 interface Potentiometer as MicInterruptThreshold; 
 interface Potentiometer as Vrc;
 interface Potentiometer as Vrg;
 
 //interface Microphone;  to be incorporated
  }
}
implementation
{
 /*Declare Constants and variables */
    /* Put Constant Here , */
  enum {TIMER_INTERVAL = 5*1024};  /* Timer repeat every 5 seconds */
  enum {MIC_INT_THRESH = -40};
/* Declare Tasks Here */

/***** Start Control Here ***/
/****   TIMER *****/
  event result_t Timer.fired() {
    /*  reset memory if a interupt has not occured */
 call Leds.greenOff();
 call Leds.redOn();
 return SUCCESS;
 }
/********** Start Application *********/
  command result_t StdControl.init() {
    call Leds.init();
 call  MicInterruptThreshold.set(MIC_INT_THRESH); 
 call Vrc.set(1);
 call Vrg.set(0);
    return SUCCESS;
 }
 
  command result_t StdControl.start() {
    return call Timer.start( TIMER_REPEAT, TIMER_INTERVAL );
 return call MicInterrupt.enable();
    //return SUCCESS; 
    }
/**** Turn Stuff Off **/
/******* code to be executed upon finishing the recording *******/
  //async event void Microphone.done( void *addr, uint16_t length ) {
    //post recordingFinishedTask();
  //}
  event void Vrg.setDone( uint8_t value, result_t result){}
  event void Vrc.setDone( uint8_t value, result_t result){}
  event void MicInterruptThreshold.setDone(uint8_t _gain, result_t _result) { }
  async event void MicInterrupt.fired() {
    atomic { call Leds.greenOn();
    call Leds.redOff(); }
 }
/*********************End Application ********/
  command result_t StdControl.stop() {
 return call MicInterrupt.disable();
    //return SUCCESS;
 }
}
---------------------------------------------------------------------- Respectfully, 


Jacob H. Cox Jr
(706) 413-3841
"What ever you do, work at it with all your heart, as working for the Lord..." Colossians 3:23 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20090425/71793359/attachment-0001.htm 


More information about the Tinyos-help mailing list