PUPPET CONTROLLER (4 / 7 steg)
Steg 4: Ansluta 'em tillsammans
Vi kan göra detta med den seriella produktionen från Arduino som indata till bearbetning koden.
Nu har vi två bitar av kod. Arduino koden läser flex centrum, gör avläsningar till användbara nummer och skickar värden till den seriella porten.
Bearbetning koden läses värdena från den seriella porten och Använd info för att rita på skärmen.
Här är ett videoklipp:
[bädda video]
Här är koden:
BEARBETNING KOD
Pacman moouth öppnar/stänger med X ingång från arduino utdata (flex sensor)
import processing.serial.*;
Seriell port;
float x = 0;
flyta val = 0;
void setup() {
size(400,400);
Background(100);
Smooth();
println(Serial.list());
String arduinoPort = Serial.list() [1].
Port = ny följetong (denna, arduinoPort, 9600);
}
void draw() {
om (port.available() > 0) {
Val = port.read();
Print(val);
Val = mouseX;
Print("---");
x = map(val,0,150,0.01,0.5); översätta värdena ingång till användbara values/println(x);
println(x);
}
Background(100); klart sista bilden
Arc(200,200,100,100,(x)*pi,Pi+(1-x)*PI); Rita packman, använder radianer... p21
}
Arduino kod / / /
Detta är från ett exempel inluded Arduino IDE att ladda ner.
Kontrollera en servo position med en potentiometer (variabelt motstånd)
av Michal Rinott
MPC - lagt till serial output 'n stuff
Här är ledningarna:
//
Kablage-
|---Arduino Gnd
Encoder |---Analog 0
|---Arduino 5V
//
//| Gul---Digi 9 (PWM)
Översta servo | Röd---5V
//| Brun---Gnd
//
//| Gul---Digi 10 (PWM)
Botten servo | Röd---5V
//| Brown---
#include; använda servo bibliotek
Servo myservo; skapa objekt för att styra en servo servo
Servo otherServo;
int potpin = 0; analoga pin används för att ansluta potentiometern
int val; variabel att läsa värdet från det analoga stiftet
int valComp;
void setup()
{
myservo.attach(9); tillmäter objektet servo servo på pin 9
otherServo.attach(10);
Serial.BEGIN(9600);
}
void loop()
{
Val = analogRead(potpin); läser värdet i potentiometern (värde mellan 0 och 1023)
Serial.Print(val);
Serial.Print("---");
Val = karta (val, 0,1023, 0,255);
valComp = val;
Serial.println(val);
Serial.Print(val,byte);
Delay(10);
Val = karta (val, 10, 100, 90, 179); skala den att använda den med servo (värde mellan 0 och 180)
valComp = karta (valComp, 100, 10, 0, 90);
myservo.write(val); anger servo skalad värde
Delay(10);
otherServo.write(valComp);
Delay(10); väntar på servo att komma dit
}