TEI Studio
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
//CenterFSR-A
|
||||
//position on A0, pwm:D9, dir:D8,D7
|
||||
//FSR on A1 and D4
|
||||
|
||||
// BUZZ! (float vs int?)
|
||||
#include "Motor.h"
|
||||
|
||||
int x, duty, fin;
|
||||
float fout;
|
||||
byte count; // used as counter
|
||||
|
||||
void setup(){
|
||||
Serial.begin(9600);
|
||||
MotorA.init();
|
||||
//for FSR
|
||||
pinMode(A1,INPUT);
|
||||
digitalWrite(A1,HIGH);
|
||||
pinMode(4,OUTPUT);
|
||||
digitalWrite(4,LOW);
|
||||
}
|
||||
|
||||
void loop(){
|
||||
fin = 1024 - analogRead(A1);
|
||||
x = analogRead(A0)-512;
|
||||
fout = - .004*(float(fin)*float(x));
|
||||
MotorA.torque(fout);
|
||||
if(count++ == 0){
|
||||
Serial.print(x,DEC);
|
||||
Serial.print(" ");
|
||||
Serial.print(fin,DEC);
|
||||
Serial.print(" ");
|
||||
Serial.println(fout,DEC);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
//FM synthes of a sort
|
||||
//hang on! it's unstable and wants to limit cycle
|
||||
|
||||
|
||||
#include <Music.h>
|
||||
#define BIT_DEPTH 8 // gives us 16 Waveforms
|
||||
|
||||
#include <Motor.h>
|
||||
|
||||
byte cnt;
|
||||
float xf, vf; //
|
||||
float k = 6.0; // increase FM frequency
|
||||
float b = 0.40; // increase
|
||||
float Tf = .030 ; //integration time
|
||||
|
||||
void setup(){
|
||||
Serial.begin(9600);
|
||||
Music.init();
|
||||
Music.setWaveform(0);
|
||||
Music.setGain(1.0f);
|
||||
MotorA.init();
|
||||
}
|
||||
|
||||
void loop(){
|
||||
xf += vf * Tf;
|
||||
vf += (k * (analogRead(A0) - xf) - b*vf) * Tf;
|
||||
Music.setFrequency(100+vf);
|
||||
Music.setGain(.001*abs(vf));
|
||||
MotorA.torque(500-xf);
|
||||
//if(cnt++==0)Serial.println(.001*abs(vf));
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
// Graphing sketch
|
||||
|
||||
|
||||
// This program takes ASCII-encoded strings
|
||||
// from the serial port at 9600 baud and graphs them. It expects values in the
|
||||
// range 0 to 1023, followed by a newline, or newline and carriage return
|
||||
|
||||
// Created 20 Apr 2005
|
||||
// Updated 18 Jan 2008
|
||||
// by Tom Igoe
|
||||
// This example code is in the public domain.
|
||||
|
||||
import processing.serial.*;
|
||||
|
||||
Serial myPort; // The serial port
|
||||
int xPos = 1; // horizontal position of the graph
|
||||
|
||||
void setup () {
|
||||
// set the window size:
|
||||
size(400, 300);
|
||||
|
||||
// List all the available serial ports
|
||||
println(Serial.list());
|
||||
// I know that the first port in the serial list on my mac
|
||||
// is always my Arduino, so I open Serial.list()[0].
|
||||
// Open whatever port is the one you're using.
|
||||
myPort = new Serial(this, Serial.list()[0], 9600);
|
||||
// don't generate a serialEvent() unless you get a newline character:
|
||||
myPort.bufferUntil('\n');
|
||||
// set inital background:
|
||||
background(0);
|
||||
}
|
||||
void draw () {
|
||||
// everything happens in the serialEvent()
|
||||
}
|
||||
|
||||
void serialEvent (Serial myPort) {
|
||||
// get the ASCII string:
|
||||
String inString = myPort.readStringUntil('\n');
|
||||
|
||||
if (inString != null) {
|
||||
// trim off any whitespace:
|
||||
inString = trim(inString);
|
||||
// convert to an int and map to the screen height:
|
||||
float inByte = float(inString);
|
||||
inByte = map(inByte, 0, 1023, 0, height);
|
||||
|
||||
// draw the line:
|
||||
stroke(127,34,255);
|
||||
line(xPos, height, xPos, height - inByte);
|
||||
|
||||
// at the edge of the screen, go back to the beginning:
|
||||
if (xPos >= width) {
|
||||
xPos = 0;
|
||||
background(0);
|
||||
}
|
||||
else {
|
||||
// increment the horizontal position:
|
||||
xPos++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user