Strain wave gear

Arduino MKR1000

Blynk app

DRV8825 stepper driver

Blynk can send and receive data to internet devices using it’s free app. You can also host your own Blynk server for security.

To send an adjustable frequency from the Arduino to the DRV8825 I used the tone command, a square wave is perfect.

The tone command:
tone(pin, frequency)
tone(pin, frequency, duration)

calling it with 2 parameters the frequency is output once, I want the frequency to output continually so there needs to be a duration, but the longer the duration the less responsive it is. Measuring the speed of the loop can be done with a set/clear with a state = !state, while including Blynk.

Sound LEDs

This is a graph of different bias voltages and the sensitivity of the module, mainly I learned, the potentiometer to one extreme or the other and you get nothing, and there isn’t much change with different bias, I have a 3.3V tolerant Arduino type micro so I picked ~1.5V I have a electret microphone module module and I want it to control the intensity of LEDs, ideally the louder the music, the more intense the light. The second part of that problem is when it is quieter, you want lower light. A wave is captured as an AC voltage so a loud sound has a larger wave, in positive and negative.

measured frequency response
measured specific frequency response

I started with a the voltage off the microphone sampled and controlling which lights are on and off in the strip. Louder means that there is more variation in the strip. I have ‘machine learning’ (if you call one variable learning) so that it would still change on quieter music with smaller changes.