Go Down

Topic: Convert Processing code to Arduino??? (Read 648 times) previous topic - next topic

bonobono

Hi.

I want to convert the code (below) from Processing into Arduino but I am getting errors with the syntax, basically what I want to do is to get a vibration motor to start, reach maximum speed and slow down again in the shape of a curve. I have it working in processing (using the Arduino Lib) but I would like to have it working also in the Arduino IDE as I want to disconnect the arduino from the computer...any help will be appreciated ...thanks in advance...

Code: [Select]

int xspacing = 32;   // How far apart should each horizontal location be spaced
int w;              // Width of entire wave
float theta = 0.0;  // Start angle at 0
float dx;  // Value for incrementing X, a function of period and xspacing
float[] yvalues;  // Using an array to store height values for the wave

void setup() {
  w = 320;
  dx = 0.40212387;
  yvalues = new float[w/xspacing];

}

void loop() {
  background(0);
  Generatewave();
}

void Generatewave() {
  // Increment theta (try different values for 'angular velocity' here
  theta += 0.002;
  // For every x value, calculate a y value with sine function
  float x = theta;
  for (int i = 0; i < yvalues.length; i++) {
    yvalues[i] = sin(x)*10.0;
     println(yvalues[i]);
    x+=dx;
  }
}

AWOL

Quote
I want to convert the code (below) from Processing into Arduino

If instead you say "I want to convert the code (below) from Processing into C/C++", the whole thing becomes much easier.

e.g. not
Code: [Select]
float[] yvalues; 
but
Code: [Select]
float yvalues [someConstantSize]; 
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

PaulS

Quote
but I am getting errors with the syntax

Share them, you greedy pig!  :)

Code: [Select]
  background(0);
Your Arduino has something to paint the background color on?

Code: [Select]
     println(yvalues[i]);
Where are you trying to print to? The Serial Monitor? That requires sending data to the serial port, using the Serial instance.

bonobono

@AWOL I made that change but when I verify the code below I am now getting the following error: incompatible types in assignment of 'float*' to 'float [10]'

**@PaulS Sorry,I was not being greedy:) and well spotted, I did leave some remnants of Java behind:)...

Code: [Select]

int xspacing = 32;   // How far apart should each horizontal location be spaced
int w;              // Width of entire wave
float theta = 0.0;  // Start angle at 0
float dx;  // Value for incrementing X, a function of period and xspacing
//float[] yvalues;  // Using an array to store height values for the wave
float yvalues [10]; 

void setup() {
  w = 320;
  dx = 0.40212387;
  yvalues = new float[10];
  Serial.begin(9600);
}

void loop() {
  Generatewave();
}

void Generatewave() {
  // Increment theta (try different values for 'angular velocity' here
  theta += 0.002;
  // For every x value, calculate a y value with sine function
  float x = theta;
  for (int i = 0; i < yvalues.length; i++) {
    yvalues[i] = sin(x)*10.0;
    Serial.println(yvalues[i]);
    x+=dx;
  }
}

AWOL

Code: [Select]
yvalues = new float[10];
If you already declared a size for the array, you don't need/want "new", so delete this line
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy