I'm currently trying to get some servos working nicely with an original Espruino board ( and also within a chrome browser ).
The overall goal is to have a video & synchronized servo movements ( controlled, if can do so, by the audio channel within the video, or within a "tied" audio file, or on-the-fly-generated signals )
/*
micro servo SG90 on C8:
Position "0" ( 1.5 ms pulse ) is middle,
"90" (~2 ms pulse) is all the way to the right,
"-90" (~1 ms pulse) is all the way to the left.
*/
//var s2 = require("servo").connect(C9);
// servo.move() doesn't work for my microservo ( SG90 ): here's what works
analogWrite(C9, 0.03, {freq:50}); // -> full left ( -90deg )
analogWrite(C9, 0.07, {freq:50}); // -> middle ( 0deg )
analogWrite(C9, 0.115, {freq:50}); // -> full right ( 90deg )
Now, I'm looking for a replacement for the servo.move() fcn ( or a tweak of it ) that'd allow me to go to a certain position & taking some time to do so - not sure of what to change, one of my guesses is tweaking the following part ?
digitalPulse(pin, 1, offs+E.clip(currentPos,0,1)*mul);
// IDEA: clip to 0.03..0.115 ?
On a close subject, I'm also trying to get the same servos to move:
using an audio file ( or an audio channel of a video ) with "recorded" movements from the servos ( when controlled from an Espruino running some code to generate the signals )
using the WebAudioAPI to generate the necessary signals
Last but not least, I'm aware of the 'ontimeupdate' evt that's available when a video is playing ( & yup, I plan to use it to trigger generating on-the-fly signals sync-ed with the video content )
This being said, here's the code I have so far, I'll be hacking around with it today & the coming days, hopefully coming to a success .. ( .. thanks to hints from here ? ;p )
Thanks in advance for reading this,
Looking forward to reading anything on the subject
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Hi !
I'm currently trying to get some servos working nicely with an original Espruino board ( and also within a chrome browser ).
The overall goal is to have a video & synchronized servo movements ( controlled, if can do so, by the audio channel within the video, or within a "tied" audio file, or on-the-fly-generated signals )
I solved the "45° mystery" thanks to http://forum.espruino.com/conversations/316585/, which now allows me to move each of the servos I have using the following:
Now, I'm looking for a replacement for the servo.move() fcn ( or a tweak of it ) that'd allow me to go to a certain position & taking some time to do so - not sure of what to change, one of my guesses is tweaking the following part ?
On a close subject, I'm also trying to get the same servos to move:
I stumbled on 2 related posts ( http://www.massmind.org/techref/io/servo/wav.htm & https://github.com/pendragon-andyh/WebAudio-PulseOscillator ) which led me to messing around & try stuff, but I didn't achieve ( yet :/ ) my goal of controlling the said servos using purely on-th-fly-generated signals from the WebAudioAPI
Last but not least, I'm aware of the 'ontimeupdate' evt that's available when a video is playing ( & yup, I plan to use it to trigger generating on-the-fly signals sync-ed with the video content )
This being said, here's the code I have so far, I'll be hacking around with it today & the coming days, hopefully coming to a success .. ( .. thanks to hints from here ? ;p )
Thanks in advance for reading this,
Looking forward to reading anything on the subject
ps: test files attached ;)
3 Attachments