For the first experiment I found a tutorial how to build a circuit which allows the servo motor to be controlled based on mouse position based when interfaced through processing.
Code can be found at arduino.cc
Arduino Code:
//////////////////////////////////////////////////////////////////////////////////
#include <Servo.h>
Servo servo1; Servo servo2;
void setup() {
pinMode(1,OUTPUT); servo1.attach(14); //analog pin 0 //servo1.setMaximumPulse(2000); //servo1.setMinimumPulse(700);
servo2.attach(15); //analog pin 1 Serial.begin(19200); Serial.println("Ready");
}
void loop() {
static int v = 0;
if ( Serial.available()) { char ch = Serial.read();
switch(ch) { case '0'...'9': v = v * 10 + ch - '0'; break; case 's': servo1.write(v); v = 0; break; case 'w': servo2.write(v); v = 0; break; case 'd': servo2.detach(); break; case 'a': servo2.attach(15); break; } }
}
//////////////////////////////////////////////////////////////////////////////////
Processing code
//////////////////////////////////////////////////////////////////////////////////
/** * Servocontrol (derived from processing Mouse 1D example.) * * Updated 24 November 2007 */
// Use the included processing code serial libraryimport processing.serial.*;
int gx = 15;int gy = 35;int spos=90;
float leftColor = 0.0;float rightColor = 0.0;Serial port; // The serial port
void setup() { size(720, 720); colorMode(RGB, 1.0); noStroke(); rectMode(CENTER); frameRate(100);
println(Serial.list()); // List COM-ports
//select second com-port from the list port = new Serial(this, Serial.list()[1], 19200); }
void draw() { background(0.0); update(mouseX); fill(mouseX/4); rect(150, 320, gx*2, gx*2); fill(180 - (mouseX/4)); rect(450, 320, gy*2, gy*2);}
void update(int x) { //Calculate servo postion from mouseX spos= x/4;
//Output the servo position ( from 0 to 180) port.write("s"+spos);
// Just some graphics leftColor = -0.002 * x/2 + 0.06; rightColor = 0.002 * x/2 + 0.06;
gx = x/2; gy = 100-x/2;
}
//////////////////////////////////////////////////////////////////////////////////
For the DC motor I built a simple switch to turn on the motor while using a diode to diffuse any residual electricity that would have been created from the motor.
Comments
You can follow this conversation by subscribing to the comment feed for this post.