johnny-five
Version:
The JavaScript Arduino Programming Framework.
85 lines (68 loc) • 1.48 kB
JavaScript
// TODO: This needs to be parameterized.
var starts = [ 91, 92, 98, 83, 89, 89 ];
var stepN = true;
var lastAngle = 90;
function walk(angle, speed) {
var sequence;
if (stepN) {
angle = 90 + angle;
if (angle === lastAngle) {
stepN = !stepN;
return;
}
sequence = [
{
moves: [ 75, lastAngle, lastAngle, 55, lastAngle, lastAngle ],
lapse: speed
},
{
moves: [ 75, angle, angle, 75, angle, angle ],
lapse: speed + 100
},
{
moves: [ 90, angle, angle, 90, angle, angle ],
lapse: speed
}
];
stepN = !stepN;
} else {
angle = 90 - angle;
if (angle === lastAngle) {
stepN = !stepN;
return;
}
sequence = [
{
moves: [ 125, lastAngle, lastAngle, 105, lastAngle, lastAngle ],
lapse: speed
},
{
moves: [ angle, angle, 105, angle, angle, 105 ],
lapse: speed + 100
},
{
moves: [ angle, angle, 90, angle, angle, 90 ],
lapse: speed
}
];
stepN = !stepN;
}
sequence = sequence.map(function(seq) {
return {
lapse: seq.lapse,
moves: seq.moves.map(function(move) {
return move - 90;
})
};
})
// make temporal queue.
//
console.log( sequence );
lastAngle = angle;
}
// walk(
// // forward/backward
// LSY > 512 ? 20 : -20,
// 1000 - Math.abs(LSY - 512) / 512 * 250
// );
module.exports = walk;