差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | 次のリビジョン両方とも次のリビジョン | ||
p5js:13.grove_beginner_kit [2022/07/05 00:51] – [加速度センサ] baba | p5js:13.grove_beginner_kit [2022/07/05 00:55] – [加速度センサ] baba | ||
---|---|---|---|
行 438: | 行 438: | ||
Arduino側のコードはdelayを50[ms]に変更しただけです。少しむずかしいと思いますが、じっくり読んでアルゴリズムを理解しましょう。 | Arduino側のコードはdelayを50[ms]に変更しただけです。少しむずかしいと思いますが、じっくり読んでアルゴリズムを理解しましょう。 | ||
- | さあ、それではセンサデータがしっかりと取得できたのでこの値で画面上のボールを転がしてみます。400x400のキャンバス上の真ん中からスタートし、x, | + | さあ、それではセンサデータがしっかりと取得できたのでこの値で画面上のボールを転がしてみます。400x400のキャンバス上の真ん中からスタートし、x, |
- | | + | |
+ | <file .js sketch.js> | ||
+ | var serial_values = [0]; | ||
+ | var serial = new Serial(); | ||
+ | var x=0; | ||
+ | var y=0 | ||
+ | var z=0; | ||
+ | |||
+ | var ball = { | ||
+ | | ||
+ | y:200 | ||
+ | } | ||
+ | |||
+ | function setup() { | ||
+ | createCanvas(400, | ||
+ | } | ||
+ | |||
+ | function draw() { | ||
+ | background(220); | ||
+ | textSize(12); | ||
+ | textAlign(LEFT, | ||
+ | text(`${x.toFixed(2)}, | ||
+ | circle(ball.x, | ||
+ | } | ||
+ | |||
+ | function gotSerialValues(values) { | ||
+ | for( let i = 0; i < values.length; | ||
+ | | ||
+ | if( values[i] == 10){ | ||
+ | let result = ""; | ||
+ | for( s of serial_values){ | ||
+ | result += String.fromCharCode(s); | ||
+ | } | ||
+ | const splits = result.split(',' | ||
+ | x = parseFloat(splits[0]); | ||
+ | if( !x )x = 0; | ||
+ | y = parseFloat(splits[1]); | ||
+ | if( !y )y = 0; | ||
+ | z = parseFloat(splits[2]); | ||
+ | ball.x -= y*5; | ||
+ | ball.y -= x*5; | ||
+ | if( ball.x <= 0)ball.x = 0; | ||
+ | if( ball.x >= width)ball.x = width; | ||
+ | if( ball.y <= 0)ball.y = 0; | ||
+ | if( ball.y >= height)ball.y = height; | ||
+ | serial_values = []; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ |