Project 1- Alex

I like taking digital mediums and making them more accessible for untrained artists. I think that everyone should be able to mess around with computers and make cool stuff. For this project, I decided to make a physical interface for the media lab control patch Jesse gave us.

insert photo of the arduino I forgot to take here

Arduino control code

// constants won’t change. They’re used here to set pin numbers:
const int buttonOnePin = 3; // the number of the redlight pushbutton pin
const int ledOnePin = 9; // the number of the LED pin
const int buttonTwoPin = 4; // the number of the yellowlight pushbutton pin
const int ledTwoPin = 10; // the number of the LED pin
const int buttonThreePin = 5; // the number of the bluelight pushbutton pin
const int ledThreePin = 8; // the number of the LED pin

// variable buttons
int buttonOneState = 0; // variable for reading the pushbutton status
int buttonTwoState = 0;
int buttonThreeState = 0;

//variables knob
const int potPin = 3; // select the input pin for the potentiometer
int potVal = 0; // variable to store the value coming from the sensor
int mappedPotVal = 0;

//variables slider
const int slidePin = 0;
int slideVal = 0;
int mappedSlideVal = 0;

//variables for ir detector
const int irPin = 5;
int irVal = 0;
int mappedIrVal = 0;

//joystick
const int swPin = 2; // digital pin connected to switch output
const int xPin = 2; // analog pin connected to X output
const int yPin = 1; // analog pin connected to Y output

int xState = 0;
int yState = 0;
int mappedXState = 0;
int mappedYState = 0;

void setup() {
Serial.begin(9600);
// initialize the LED pin as an output:
pinMode(ledOnePin, OUTPUT);
pinMode(ledTwoPin, OUTPUT);
pinMode(ledThreePin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonOnePin, INPUT);
pinMode(buttonTwoPin, INPUT);
pinMode(buttonThreePin, INPUT);

}

void loop() {
// read the state of the pushbutton value:
buttonOneState = digitalRead(buttonOnePin);
buttonTwoState = digitalRead(buttonTwoPin);
buttonThreeState = digitalRead(buttonThreePin);

// check if the redlight pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonOneState == HIGH) {
// turn LED on:
digitalWrite(ledOnePin, HIGH);
} else {
// turn LED off:
digitalWrite(ledOnePin, LOW);
}

// check if the yellowlight pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonTwoState == HIGH) {
// turn LED on:
digitalWrite(ledTwoPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledTwoPin, LOW);
}

// check if the bluelight pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonThreeState == HIGH) {
// turn LED on:
digitalWrite(ledThreePin, HIGH);
} else {
// turn LED off:
digitalWrite(ledThreePin, LOW);
}

//check the turn potentiometer values, map them to the bay range
potVal = analogRead(potPin); // read the value from the potentiometer
mappedPotVal = map(potVal, 0, 1023, 1, 9);

//check the slide potentiometer values, map them to the saturation range
slideVal = analogRead(slidePin);
mappedSlideVal = map(slideVal, 0, 1023, 0, 255);

//check switch
xState = analogRead(xPin);
yState = analogRead(yPin);
mappedXState = map(xState, 0, 1023, 0, 255);
mappedYState = map(yState, 0, 1023, 0, 255);

//check the ir values
irVal = analogRead(irPin);
mappedIrVal = map(irVal, 0, 550, 0, 8);

Serial.print(buttonOneState);
Serial.print(” “);
Serial.print(buttonTwoState);
Serial.print(” “);
Serial.print(buttonThreeState);
Serial.print(” “);
Serial.print(mappedPotVal);
Serial.print(” “);
Serial.print(mappedSlideVal);
Serial.print(” “);
Serial.print(mappedXState);
Serial.print(” “);
Serial.print(mappedYState);
Serial.print(” “);
Serial.println(mappedIrVal);
delay(50);
}

Control patch

bpatcher edits

video of working is too big sorry

heres the gist

<pre><code>
----------begin_max5_patcher----------
3562.3oc4cszbiaiD97jpx+AV9ztU4nBuAXtkZOkC6o83toRQaywlSjD8RQM
YbRs+2W7fjhxxDngMDsnilJVwPxhe8G5tQitaP8me+28oqto9ak6tJ6Gy92Y
e5S+odjOYGyLxm5G3SWso3a2ttXm8Md0s0a1Tts8pq6dw1xu0ZegaxL+qIKa
Wl4w2L+3I8+U0L7d2teS010ks1OIb+nU2Y+6qu4K+P9va8wh1aenZ68+ZS4s
sNDRwqPWmwDLySXI07DQ+yreYzme8919K.pe3csOstzdMF93+b811cU+gcTr
9CzN7+66+Nyy5mtFLcrs720.+T1XWVScaQySZHAW7o9DeQN0I3DySRKKPHwI
9uZw7yqqiRRvXxHttYSgUHDdDOLQO+JzOHBsPRry0bTHgj3YN9whlhMkskM+
Z41habu5.o39LZe5wR2kW+moUgK1d+UY+xqlk1TtaWw8kmpMfI7Wl6HuD2gj
9zCHHlvPT44DM2nUJLjFWSZL1Jte1B6gsNkPdCDwzVEEqW+qqqZKiPUBo.SG
TZ9.cvmWKDOy84wL260EHNWpFLRVjy8OrOlodLBLabzTe9kxTOKlodpe8bU9
JJkxx0Bn.ysqEtDl0uo3IQzl7L3TgvtTgTZm8ErEnIO2uRdtzHrTIaANuGm4
NR.mI5l1oKPKco202wRse8E5DNORCcYNblvMgKTKxU0w9kSDd4NiGoINANSr
fMwE98joW4xpLurlqYQZcKTfHgErgsvu+KFhsHmlixjVh.wAKYiY+duwJwvt
PVXS0zXsnIvYhkrYs2cho2iNa4NgGkssfAmHVvF3buqVqb5vKrYZRjl1bIDN
XAaTy8FMhTJVjSxwYNifPAKYCYu9q37k3bLNVCYNDNXIaH6Mbrt5Ct3ljixP
lSgPAuKFxSVe3rSenkYWchMOVWc+Csa0ZH1pF+rGvoFlW0+b4nhLxrpHDtyH
.MSDj9i9lxHpINw+9qvHxPFSvD5RrrowxH3.QkRUKcFYRinuT+zt1pa+sgNr
33GuIKGLArkCoq4KrkggxXyn4yjTSUS1cU6ZiIWjf2Lam.i6ziduj0vqK3sr
YZ8ei.IoZCBt1VP+.KleoZxn.PviAH2eITxo7UXgfiLt.j1kAI4W7QB7e0NY
ZpyvwvC9SwZNJeECKnJSqhPcEKWp++E7P9CihLNa8MCgyWEAYjCmLVh8Nwth
n7tg.yFG06D7KisDDiQ.Mfy.wJVdtzNWqjefcF3OtnbLZkj43Atv5y+Cpe.N
XdXw0PEQ4CHW.mH5RHv714Td5dVytAuYeaa8V3xq2ECMp77C8Oqbw4lS4e4M
AC8WD2b9WXSfY+EwMGFLOr3Zpj3byQfSDuKt4Rh0u+E0LgvgTTBm7A25W4eM
MJ11xXVd3Cs0uRBlGVb8eRTV+JEbhX4Z862WOhX2LmMWUers986pGgnC4r6i
s0OELOr35Pk3r9YvIh2Eq+XO4bpCVC5OmpM5+ViNfMsL8iWssebzgQgcL6TX
61evDxGp5hrac0ckM+ms+Msxy9lh1p5s+8g205psk2Vuea6QBT3FazeCiHTq
x0tbURCaJGUd.JaAsvhzqiDIVrRx+fulhj4+X25NJpejWMQxAv.KtViJp0Qj
BHTvkURxJWmIiXRl.td.XrsbmTwaY0gWVY+521TdRb44u+gHJyFosE0dw41K
hSYtv69GYccUhgE5b8wUeDc8I755i5RV7hqYxhx0GCCgBt3b8IfOISgWPHFI
+B00mOtHB6dp.bxRWlbQDsKLkEH0QrC4TcQxEzH3B3YTXYxEjH3BLffAWlr.
NBV.AMBgKWpX56VU1RKuKh1vExpjuS8IXzMPq+M6vkijkEWyDmFkeh+dIfxF
QQebcAP7t.ISJ+qAK3+zV3b9s.Ygra0tFKahsKa7uwwi5xFk7BochVW94n6l
HuNIopwx4Ex1h1u8wha+sLzw+Kh0E7ur.4PFPwjfRrJF87JyZzw9TBiKHbm0
Gn4qjiBI789XBLnO74l5MY+z+5e7y+b1tm1bS85r15LWvBYu0pivCzzMV+fT
WnxX28huYqvHSeFQL96tWK8ZdniQ9grhl61WsUOP416Nhs18xbDENGgBbPkr
rBkORogodu4H8E7w8sYqi5rzvBzDFDWdTIWTlGZ.VV8UMTy9oNUfuVrde4tq
yzZBlgMbP1u+P4VsDnmtxp1k0TVb2aUsf4OELDG8fQWTpEOV2zlcSogVLbPV
g1XovvN5ebSw96dq9SXL.9Svb76QgVmjT9m1rtabbrKqHyDrVV4WKadJqU+1
eHq9y5Q2oYis2cc1iMZuO5.QzpTsOTlU70hp0lsDoeCMUEqyLD7a1iCC4+Fm
nKpLkiDyuLzrZ22rMyU+h5sQbdEo96.Nh0sJE+d3xY5xTYCICa5mCSLT5+iE
SM7H.t+X2ECBCmzx0bN1.hI7D2JsQLo6mBTih5H7Ae+cmApZqKdYYm9Ry9R.
xNy9DCkTY+MFs8Th+erN69l58OZRubDEvkHByCD2cKcEMoaG+rlPB5jcsxKp
Lv8mcVWLDtT3EbuZzWSNINuYnwtl3sY4BTLafMOLofcVHx7jpYzsszyAWz2Q
SQXgfUgsPbQArTZnIazSQP.A5N97CL.kcwrLQa882uNl6lpb.NBc+j0+yWiP
FWV7SbpYNrcM6WnFQTwFuNCDHYxqXi6O0F69y+VUwh.yK7LQeW89la6Yt9Cw
d1HPbmdCCUascz5n2k0af4sMMMC+JpfbEeNtpatqrwZ9MaPv9kiv321lp6dr
VqtsanQNr8jq6D9KECmocbt1TG2+0lvvK7BBCdFEF4qSXHHtvHLtu+O7ILnT
HLRPJGp.xBydihzd+3ffIilXFKjCuPZTq4fPtHc1QLPWPd.pR6Chze7Uyc6T
+jwNWlgLXZtwKBDDRrR0cSYZJQ.Oih.8UHB5mUceqSLkHjDSNJH8HVHSN9p7
tiCde4pORpbYOKE3ECBujzYng.cAwmyEr.AAY.W7Bc.YO2VWgHAMTPylDX+l
KHVQPhQyhstBTnROWPOQBX4mXnbjTkLCEEn0RUpjYnnDftfAzRoDqFo6HU2M
EexXmI6LXRfHOdIfgolB3eV0OgAdQ7fmi39.eJ7On.E9jJD3YpU7tVns235H
AJcFWfV0TwRmwEAzELPfFHsZX+NS5mcOYrykwEHIP7Jj.LhETBvymDfeERPt
HnDjDyLPAO8b47DIf5NLpjQqgcjTkNyLD3jEfmDuJB1dRZTBaKDSMMRkYKhC
2c9FdgykdCB7V0BJETWljsAb2exIrictzXfG8KXrahAJD1IyF1sAj.F6lkX5
uAeLE1oyG1owfcDczWfkSfc1rgcYL56RhqCul.07YC0hXPMyk02oPsHAnVBJ
JeYdxBDQBJRMY5RzkjAVaZ50rjHzPHrWezucl78.C0bULnVwO26g.HpEQfZk
Tdt27fDTv3R+ovx3ggvGBnoWHRVnLRRRRs8nLXiUzWN01GdgzgbbPjGp.CT9
A.xIladj1ZJbT15O7BoA4fB2U3G4LpzroR2gS2obvvXaJmFFJInU.JASxzUJ
NgD7Jddnmwbgyjmpvma2qvfNmEKz4hydpN.BcbrPmIO6oXR.KESoKkhBPAav
vo6BBZoDQ5xqi.lKpzUNCNn5EKRmWFNHkFtLcWPXAwvS2EDzbHmlrKHUjjRQ
LtrCH9okhvLV5vavHHT4gJcBd.aLgxdf3FWNE6XoAu7jTSzw0+rieOYrzg2v
QnEpJz5.cdN+NtttIjeYIIa+D5gr82wuGks+zwuLP5u7PUm.Mf2d9cbEKRH+
RSRZdGmR2N98jwRGdCyugRrNEMfsd9cbppSH+BZubjI5H.7rh.7YJLVJNEa5
taW1Nsqw+VZlmvPzqj98KJw1DXzoQ0mlfDpLg.Ax.6GfnF1OPGRGuu0Di127
VpGu6E2b+ICkDzR.Era51uBAzd6noKZdBnHAIoK3ZBnPiHhzdAIy4EDV9lS2
0C1VNS20CdyjMccNv3N6USWWYpugYwVE4vWEl1wNSK9ASBDh3k.t6TMNE3Iy
G3wwCdBAeT483moRSBSB3wS+4c2hBl.6r4C6rnwNO2qlCe1vtqYiiC7Drda+
ztlMdJQHEAMBJp0.Q5fbQi4na2MOri+M9v2G0b2ujD2lXPYmmjtrJggcvNRW
kcwx49BBJ3E44beTvf.0elHz9b6avH9yxglcryzJI.wNOFrON+TSgcz7gcVL
Xeb9flB6z4C6zXv937pLE1YyG1wQf8tcsOEpEyGpQQf5w62bJnKmOnOgKtTD
1.FzN1voaSvXF3tn2SXJHl7jHbYtSR84L3VffmFO3M2D6BEdNa1j.aY.iSBT
3ydHt.wNNZryx8p4HlMr6NUw.AOo6fDKTlCDH9v8D6Cuv4JtnHNalwMSPPTR
vrDflQQHdkIrjJBJBIIBODrimONcUq+jCJ9TzVBWu.AaEJjHgWRJrKIKgWRL
rKY5RNr4BxBl7aTf1hjsRuuZ8RulnTs6rtqGms+VxvY3L75uyHE4jU4DkFoN
jY25OsGm7jgyfEpgDXOKR4JBloC4b.mr98.jRbFNSEg1exvjrsVRpzCQQPHF
P0jyWIMy3rAbdTxsRKZoAsbC0UzpUBlQCc.sc6HIs3jGDmAJIq49VklSI4GX
0wqAlVzJCu1l+tTPJ6zSc15DFdXez1wNAoc20bJd7wuV1rq6h4.4UaJ9Rsam
eW698pste2cGK6plxuV0+mvbCUzb6CUsk21tuwcW54ahtasnWsoVGJv18U8w
jYwf9G+e.HxPBhB
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub