65 lines
1.1 KiB
JavaScript
65 lines
1.1 KiB
JavaScript
|
var RPM = 15;
|
|||
|
var RPS = RPM / 60; //Rotations per second, from 15RPM
|
|||
|
var D = 31.27; //mm, Diameter of core (daylight spool here) 32, or 31.5
|
|||
|
//var D_END = 87.16;
|
|||
|
var THICKNESS = 0.11938; //mm, 16mm = 0.0047in thick
|
|||
|
var PITCH = 7.6;
|
|||
|
var TOTAL = 33 * 1000;
|
|||
|
|
|||
|
var roll = {};
|
|||
|
|
|||
|
//R = √(36000 × 0.005/π + 32) = √(57.30 + 9) = 8.14 inches.
|
|||
|
roll.diameter = function (length) {
|
|||
|
'use strict';
|
|||
|
var r = Math.sqrt(((length * THICKNESS) / Math.PI) + Math.pow(D / 2, 2));
|
|||
|
return 2 * r;
|
|||
|
};
|
|||
|
|
|||
|
roll.length = function (d) {
|
|||
|
'use strict';
|
|||
|
var len = Math.PI * (Math.pow(d / 2, 2) - Math.pow(D / 2, 2));
|
|||
|
return len / THICKNESS;
|
|||
|
};
|
|||
|
|
|||
|
//mm/s
|
|||
|
roll.speed = function (d) {
|
|||
|
'use strict';
|
|||
|
var mm = d * Math.PI;
|
|||
|
return mm * RPS;
|
|||
|
};
|
|||
|
|
|||
|
var job = {};
|
|||
|
|
|||
|
job.pmw = {}; //15 7.5
|
|||
|
/*
|
|||
|
job.pmw.values = [255, 55];
|
|||
|
job.pmw.rps = [0.1100917431, 0.06629834254];
|
|||
|
*/
|
|||
|
|
|||
|
job.state = {
|
|||
|
motor_pwm : 255,
|
|||
|
current_rps : RPS,
|
|||
|
start_time : 0,
|
|||
|
end_time : 0,
|
|||
|
estimated_time : 0
|
|||
|
};
|
|||
|
|
|||
|
job.begin = function () {
|
|||
|
'use strict';
|
|||
|
job.state.start_time = +new Date();
|
|||
|
//job pins set
|
|||
|
job.state.estimated_time = 0;
|
|||
|
};
|
|||
|
|
|||
|
job.simulate = function () {
|
|||
|
'use strict';
|
|||
|
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
job.begin();
|
|||
|
console.dir(job.state);
|