One interface that is missing in the Lego MindStorms system is an electronic ear. We don’t mean that the RCX should respond to spoken commands (which requires a large amount of electronics and software), but it would be handy if it could respond to basic sounds (or sound levels). The circuit presented here allows the RCX to sense different sound levels. The sound is picked up by a crystal microphone, which is an inexpensive component that is available in every electronics shop. The signal from the microphone is converted into a variable quasi-resistance value. The RCX, in turn, can use this value to determine if a particular sound level has been exceeded. If the trigger threshold is set to the right level, the RCX will then react to a previously set sound level. The RCX input must be configured as a light sensor input for this function.
The operation of the circuit is simple. IC1, which is wired as a non-inverting amplifier, amplifies the microphone signal by a factor of 100. The output signal from the opamp is rectified by D1 and smoothed by C1. Resistor R2 allows the capacitor to discharge. The resulting DC voltage drives IC2, which acts as a buffer. The output of this opamp is connected to the sensor input of the RCX via a 1-kΩ resistor (R1). Just as with the analogue input adapter described elsewhere in this website, the RCX sees a variable resistance value at the sensor input, and it converts this into a measurement value between 0 and 100.
In the idle state, when no sound is sensed, the measurement value lies between 90 and 100. The louder the sensed sound, the lower the measurement value. You can use the light-sensor routine of the Lego software to set the responses to various sound levels. If you use a threshold value of around 85, then a level under 85 will be sensed as a sound signal, while a level above 85 will be sensed as silence. If you clap your hands near the sensor, the circuit will detect this. If you use these ‘observations’ to increment a counter, it is even possible to measure the number of sound pulses within a defined interval, and then to carry out some action based on the result
The operation of the circuit is simple. IC1, which is wired as a non-inverting amplifier, amplifies the microphone signal by a factor of 100. The output signal from the opamp is rectified by D1 and smoothed by C1. Resistor R2 allows the capacitor to discharge. The resulting DC voltage drives IC2, which acts as a buffer. The output of this opamp is connected to the sensor input of the RCX via a 1-kΩ resistor (R1). Just as with the analogue input adapter described elsewhere in this website, the RCX sees a variable resistance value at the sensor input, and it converts this into a measurement value between 0 and 100.
In the idle state, when no sound is sensed, the measurement value lies between 90 and 100. The louder the sensed sound, the lower the measurement value. You can use the light-sensor routine of the Lego software to set the responses to various sound levels. If you use a threshold value of around 85, then a level under 85 will be sensed as a sound signal, while a level above 85 will be sensed as silence. If you clap your hands near the sensor, the circuit will detect this. If you use these ‘observations’ to increment a counter, it is even possible to measure the number of sound pulses within a defined interval, and then to carry out some action based on the result