xxxxxxxxxx
97
var ble = new Orphe(0);
var myChart;
const data = {
labels: [],
datasets: [
{
label: "Acc X",
backgroundColor: "rgb(255, 96, 64)",
borderColor: "rgb(255, 96, 64)",
pointRadius: 1.0,
data: [],
},
{
label: "Vx",
backgroundColor: "rgb(69,230, 230)",
borderColor: "rgb(69,230,230)",
pointRadius: 1.0,
data: [],
},
{
label: "Acc Z",
backgroundColor: "rgb(28,28,28)",
borderColor: "rgb(28,28,28)",
pointRadius: 1.0,
data: [],
},
],
};
const config = {
type: "line",
data: data,
options: {
animation: false,
scales: {
y: {
min: -0.5,
max: 0.5,
},
},
},
};
var acc_count = 0;
var acc_prev = {
x:0,
y:0,
z:0
}
var v_prev={x:0,y:0,z:0}
var flg_moving = false;
var distance = 0;
function setup() {
myChart = new Chart(document.getElementById("myChart"), config);
// ORPHE CORE Init
ble.setup();
ble.gotAcc = function (_acc) {
acc_prev = {_acc};
let d = sqrt(_acc.x*_acc.x + _acc.y*_acc.y+_acc.z*_acc.z);
if( _acc.x < 0.002){
flg_moving = false;
distance = 0;
}
else{
flg_moving = true;
}
while (myChart.data.labels.length > 100) {
myChart.data.labels.shift();
}
myChart.data.labels.push(acc_count);
while (myChart.data.datasets[0].data.length > 100) {
myChart.data.datasets[0].data.shift();
myChart.data.datasets[1].data.shift();
myChart.data.datasets[2].data.shift();
}
myChart.data.datasets[0].data.push(_acc.x);
let Vx = v_prev.x + (_acc.x*2*9.8)/50;
if( flg_moving == false)Vx = 0;
myChart.data.datasets[1].data.push(Vx);
distance += v_prev.x /50 + 0.5 * 9.8 * 2 * _acc.x / (50 * 50);;
myChart.data.datasets[2].data.push(distance);
v_prev.x = Vx;
myChart.update();
acc_count++;
};
createCanvas(100, 100);
}
function draw() {
background(200);
}