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.
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.
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.
Ingenuity from laziness, sounds like it could be protecting from huge amounts of water damage, and it could be. But, my dogs water runs low for an hour or two before we notice- perfect simple IoT project.
I built it. My dog water bowl sends an sms when it needs to be filled. I plan to make a proper guide. Used the Particle with power shield, and a IFTTT trigger to send an SMS. Very low power.
Archive of earlier ideas, possibly future work:
To detect absence of water, I’m thinking two wires that form a switch to ground, normally closed and you’d read 0 when there isn’t water you’d read 1, connected to an interrupt that can wake from sleep. How about a capacitive liquid level sensor, like the one I’d imagine is in the Pryme?
I’ll have to play with web hooks and see what integration will work, ideally something that alerts my phone. This could lead to integration to other things.
After a working prototype, there would be an effort to design something nice. The components I’ll use will be small already. How long power is provided should be alright with the interrupt, maybe instead of LiPo, I’ll use 4x 1.2V Eneloop batteries that would probably last longer and be safer.
This would be a good project for the Oaks I haven’t used. I got them not really knowing much, but know I know they were an early (at least when I got them) ESP8266 board. I’ve already worked with other Particle stuff so they use the same web IDE I’m used to.
I have 6, 5M 30LEDs/m WS2812B strips and if connected in a grid that would be 900 LEDs. I haven’t cut my strips yet, I have a 288 LED test strip first. Next would be if you can output a control signal on more than one digital pin at the same time. The Photon controller is 120Hz and there is some direct port access, toggling with pinSetFast() pinResetFast() is faster than my oscilloscope can handle.
The Particle Electron with Asset Tracker shield enables cellular data, GPS, and an accelerometer, control the ESCs I have connected to the brushless motors and I’m off. There is still the PID control that I need for stable hovering, then I can try directional movement. With GPS I could take it to place where unattended drones are allowed, and have it follow programmed waypoints.
I have the Electron working logging temperature and humidity.
Current build: 250mm quadcopter frame 25560 battery holder 12A ESC EMAX MT2204 motors 2 x CW and 2 x CCW, the opposite sides are spinning the same way. I have some SR-HC04 ultrasonics and got distance but not a stable flight using a different micro.
Assumption, common RC timing is 50Hz: 1 sec / 50 Hz = 0.020 second = 20ms period it is controlled with 1ms (1/20) low and 2ms(2/20) high ESC and digital servo timing is 300Hz 1 sec / 300 Hz = 0.00333 seconds = 3.33ms period it is controlled with 0.166ms (1/20) low and 0.333ms(2/20) high
Digital Servo control and timing is the same 300Hz the more frequently it updates, the more responsive it can be.
Test at 300Hz with buttons to increase and decrease. Test at other frequencies, but it will not be under load they heat up using frequencies not supported, that would be worse under load.
Once I had control of a simple shape I would implement use an open source firmware to control motion, and investigate more on the software to allow user text or drawings to be ‘printed.’
So far: I have used my CNC more to make the stepper mounts and the wood blocks. I made a C++ header with a class for the DVR8825 module. Constructed a two rail gantry out of 10mm drill rod and linear bearings, used GT2 timing belt with 30 teeth on the stepper and a pair of fanged bearings on the other side.