xxxxxxxxxx
232
//var angle = 0.0;
//var offset = 200;
//var scalar = 30; //数量
//var speed = 0.05;
var angle = 0.0;
var offset = 220;
var scalar = 20; //数量
var speed = 0.05;
var boatrace = 1;
var y1;
var x = 0;
var serial; // variable to hold an instance of the serialport library
var fromSerial = 0; //variable to hold the data
//var Hue = 0;
var Lgt = 210;
var LgtDirection;
function preload() {
imgBoat = loadImage("IMG_7256.png");
}
function setup() {
colorMode(HSB);
createCanvas(600, 400);
LgtDirection = 1;
//link ardurino
serial = new p5.SerialPort(); // make a new instance of serialport librar
serial.on('list', printList); // callback function for serialport list event
serial.on('data', serialEvent); // callback for new data coming in
serial.list(); // list the serial ports
serial.open("/dev/cu.usbmodem1411"); // open a port
}
function draw() {
background(190, 40, Lgt);
Lgt += LgtDirection;
if (Lgt <= 20 || Lgt >= 250) {
LgtDirection = -LgtDirection;
}
//Hue += 1;
print(Lgt);
var y1 = offset + sin(angle) * scalar;
//x += boatrace;
x= fromSerial;
image(imgBoat,x, y1, 120, 100);
angle += speed;
}
function printList(portList) {
for (var i = 0; i < portList.length; i++) {
// Display the list the console:
println(i + " " + portList[i]);
}
}
function serialEvent() {
// this is called when data is recieved, data will then live in fromSerial
var stringFromSerial = serial.readLine();
if (stringFromSerial.length>0){
var trimmedString = trim(stringFromSerial);
fromSerial= Number(trimmedString);
}
}
/* Code for Ardurino
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
// Assign a unique ID to this sensor at the same time
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void displaySensorDetails(void)
{
sensor_t sensor;
accel.getSensor(&sensor);
// Serial.println("------------------------------------");
// Serial.print ("Sensor: "); Serial.println(sensor.name);
// Serial.print ("Driver Ver: "); Serial.println(sensor.version);
// Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id);
// Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" m/s^2");
// Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" m/s^2");
// Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" m/s^2");
// Serial.println("------------------------------------");
// Serial.println("");
delay(500);
}
void displayDataRate(void)
{
// Serial.print ("Data Rate: ");
switch(accel.getDataRate())
{
case ADXL345_DATARATE_3200_HZ:
// Serial.print ("3200 ");
break;
case ADXL345_DATARATE_1600_HZ:
// Serial.print ("1600 ");
break;
case ADXL345_DATARATE_800_HZ:
// Serial.print ("800 ");
break;
case ADXL345_DATARATE_400_HZ:
// Serial.print ("400 ");
break;
case ADXL345_DATARATE_200_HZ:
// Serial.print ("200 ");
break;
case ADXL345_DATARATE_100_HZ:
// Serial.print ("100 ");
break;
case ADXL345_DATARATE_50_HZ:
// Serial.print ("50 ");
break;
case ADXL345_DATARATE_25_HZ:
// Serial.print ("25 ");
break;
case ADXL345_DATARATE_12_5_HZ:
// Serial.print ("12.5 ");
break;
case ADXL345_DATARATE_6_25HZ:
// Serial.print ("6.25 ");
break;
case ADXL345_DATARATE_3_13_HZ:
// Serial.print ("3.13 ");
break;
case ADXL345_DATARATE_1_56_HZ:
// Serial.print ("1.56 ");
break;
case ADXL345_DATARATE_0_78_HZ:
// Serial.print ("0.78 ");
break;
case ADXL345_DATARATE_0_39_HZ:
// Serial.print ("0.39 ");
break;
case ADXL345_DATARATE_0_20_HZ:
// Serial.print ("0.20 ");
break;
case ADXL345_DATARATE_0_10_HZ:
// Serial.print ("0.10 ");
break;
default:
// Serial.print ("???? ");
break;
}
// Serial.println(" Hz");
}
void displayRange(void)
{
// Serial.print ("Range: +/- ");
switch(accel.getRange())
{
case ADXL345_RANGE_16_G:
// Serial.print ("16 ");
break;
case ADXL345_RANGE_8_G:
// Serial.print ("8 ");
break;
case ADXL345_RANGE_4_G:
// Serial.print ("4 ");
break;
case ADXL345_RANGE_2_G:
// Serial.print ("2 ");
break;
default:
// Serial.print ("?? ");
break;
}
// Serial.println(" g");
}
void setup(void)
{
#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif
Serial.begin(9600);
// Serial.println("Accelerometer Test"); Serial.println("");
// Initialise the sensor
if(!accel.begin())
{
//There was a problem detecting the ADXL345 ... check your connections
Serial.println("Ooops, no ADXL345 detected ... Check your wiring!");
while(1);
}
//Set the range to whatever is appropriate for your project
// accel.setRange(ADXL345_RANGE_16_G);
accel.setRange(ADXL345_RANGE_8_G);
// accel.setRange(ADXL345_RANGE_4_G);
// accel.setRange(ADXL345_RANGE_2_G);
//Display some basic information on this sensor
displaySensorDetails();
//Display additional settings (outside the scope of sensor_t)
displayDataRate();
displayRange();
// Serial.println("");
}
void loop(void)
{
//Get a new sensor event
sensors_event_t event;
accel.getEvent(&event);
// Display the results (acceleration is measured in m/s^2)
Serial.println(int(abs(event.acceleration.y)));//+event.acceleration.y+event.acceleration.z));
// Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" ");
// Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" ");
// Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 ");
delay(100);
}
*/