View allAll Photos Tagged Compute
Final project for Creative Computing, group project. We created two game controllers and code that works though Arduino to create a soccer/pong type game on the computer. We incorporated sound bytes, LED's and push buttons to acknowledge when some one scores and to move the player across the screen.
Code,
part 1:
int button1 = 0;
int button2 = 0;
int button3 = 0;
int button4 = 0;
int button5 = 0;
int button6 = 0;
int button7 = 0;
int button8 = 0;
int button9 = 0;
int button10 = 0;
// buttons 3-10
int ledPower = 0;
int player1 = 0;
int player2 = 0;
int inByte;
void setup(){
Serial.begin(9600); // begin serial communication
// '9600' speed of our arduino
pinMode(button1, INPUT); //variable name of your button
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
pinMode(button5, INPUT);
pinMode(button6, INPUT);
pinMode(button7, INPUT);
pinMode(button8, INPUT);
pinMode(button9, INPUT);
pinMode(button10, INPUT);
// buttons 3-10
pinMode(ledPower, OUTPUT);
pinMode(player1, OUTPUT);
pinMode(player2, OUTPUT);
}//END SETUP
void loop(){
if (Serial.available() > 0){ // If data coming from the Serial port is greater than 0,
inByte = Serial.read(); // Then let the variable 'inbyte' hold that data.
//READING SENSOR DATA
button1 = digitalRead(0); //pin on the Arduino
button2 = digitalRead(1); // read button 2
button3 = digitalRead(2); // read button 3
button4 = digitalRead(3); // read button 4
button5 = digitalRead(4); // read button 5
button6 = digitalRead(5); // read button 6
button7 = digitalRead(6); // read button 7
button8 = digitalRead(7); // read button 8
button9 = digitalRead(8); // read button 9
button10 = digitalRead(9); // read button 10
// buttons 3-10
// send sensor values:
Serial.print(button1, DEC); // Sending the data as a whole, human readable number, either 1 or 0.
Serial.print(',', BYTE);
Serial.print(button2, DEC); // Sending the data as a whole, human readable number, either 1 or 0.
Serial.print(',', BYTE);
Serial.print(button3, DEC); // Byte = machine code for a comma, to note separation.
Serial.print(',', BYTE);
Serial.print(button4, DEC);
Serial.print(',', BYTE);
Serial.print(button5, DEC);
Serial.print(',', BYTE);
Serial.print(button6, DEC);
Serial.print(',', BYTE);
Serial.print(button7, DEC);
Serial.print(',', BYTE);
Serial.print(button8, DEC);
Serial.print(',', BYTE);
Serial.print(button9, DEC);
Serial.print(',', BYTE);
Serial.print(button10, DEC);
Serial.print(',', BYTE);
Serial.print('*', BYTE); // Send a '*' to denote the end of the data
}
}
Code,
part 2:
import processing.serial.*; // Open up the Processing Serial Library Instructions
Serial port; // Create a new Serial Port object.
boolean madeContact = false; // A variable to hold see if Processing/computer has connected with the Arduino microcontroller
int RedX = 160;
int RedY = 500;
int BlueX = 1140;
int BlueY = 500;
float x = 650;
float y = 500;
float speedx = -6;
float speedy = 8;
float rx=RedX-3;
float ry=RedY-25;
float rw=6;
float rh=50;
float bw=6;
float bh=50;
float bx=BlueX-3;
float by=BlueY-25;
// variables for buttons
int button1 = 0;
int button2 = 0;
int button3 = 0;
int button4 = 0;
int button5 = 0;
int button6 = 0;
int button7 = 0;
int button8 = 0;
int button9 = 0;
int button10 = 0;
void setup(){
size(1300,1000);
// List all the available serial ports, in array format.
// The fisrt port in the serial list on my macis usually my Arduino module, so I open Serial.list()[0].
println(Serial.list()); // prints out all available ports on your computer
port = new Serial(this, Serial.list()[0], 9600); // Chooses to connect with the first port listed
}
void draw(){
if (!madeContact){ // If I have made contact, 'madeContact' was assigned as 'false',
port.write(65); // Send ASCII code to Arduino asking to send more data.
}
background(0);
field();
playerRed();
playerBlue();
smooth();
noStroke();
fill(255);
ellipse(x,y,20,20);
x = x + speedx;
y = y + speedy;
if (x> 1240 || x 940 || y < 60) {
speedy = speedy*-1;
}
if (x == rx||x== ry|| x== rx-rw||x==ry-rh ){
speedx = speedx* -1;
}
if (x == bx||x== by|| x== bx-bw||x==by-bh ){
speedx = speedx* -1;
}
if (x =465 && y =1240 && y>=465 && y <=538){
fieldB();
noLoop ();
}
}
void keyPressed(){
if(key=='w'|key=='W'){
//fill(255,0,0);
//ellipse (RedX,RedY,50,50);
RedY=RedY-10;
ry=ry-10;
}
if(key=='a'|key=='A'){
//fill(255,0,0);
//ellipse (RedX,RedY,50,50);
RedX=RedX-10;
rx=rx-10;
}
if(key=='s'|key=='S'){
//fill(255,0,0);
//ellipse (RedX,RedY,50,50);
RedY=RedY+10;
ry=ry+10;
}
if(key=='d'|key=='D'){
//fill(255,0,0);
//ellipse (RedX,RedY,50,50);
RedX=RedX+10;
rx=rx+10;
}
if(key=='8'|key=='i'|key=='I'){
//fill(255,0,0);
//ellipse (BlueX,BlueY,50,50);
BlueY=BlueY-10;
by=by-10;
}
if(key=='4'|key=='j'|key=='J'){
//fill(255,0,0);
//ellipse (BlueX,BlueY,50,50);
BlueX=BlueX-10;
bx=bx-10;
}
if(key=='5'|key=='k'|key=='K'){
//fill(255,0,0);
//ellipse (BlueX,BlueY,50,50);
BlueY=BlueY+10;
by=by+10;
}
if(key=='6'|key=='l'|key=='L'){
//fill(255,0,0);
//ellipse (BlueX,BlueY,50,50);
BlueX=BlueX+10;
bx=bx+10;
}
}
void playerBlue(){
strokeWeight(4);
stroke(255);
fill(0,0,255);
ellipse(BlueX,BlueY,50,50);
noStroke();{
fill (255,255,255);
ellipse(BlueX,BlueY,25,25);
rect(bx,by,bw,bh);
}
}
void playerRed(){
strokeWeight(4);
stroke(255);
fill(255,0,0);
ellipse(RedX,RedY,50,50);
noStroke();{
fill (255,255,255);
ellipse(RedX,RedY,25,25);
rect(rx,ry,rw,rh);
}
}
void field(){
background(0,175,30);
smooth();
stroke(255);
strokeWeight(4);
noFill();
ellipse(160,500,180,180);
ellipse(1140,500,180,180); // right side
ellipse(650,500,180,180); //centre
fill(0,175,30);
rect(50,300,165,400);
rect(1085,300,165,400); // rigfht side
fill(255);
ellipse(160,500,10,10);
ellipse(650,500,10,10); //centre
ellipse(1140,500,10,10); // right side
noFill ();
rect(50,50,1200,900);
rect(50,300,165,400);
rect(50,410,55,183);
rect(26,465,24,73);
line(650,50,650,950);
//right side
rect(1195,410,55,183);
rect(1250,465,24,73);
arc(50,50,30,30,0, PI/2);
arc(50,950,30,30,TWO_PI-PI/2, TWO_PI);
arc(1250,950,30,30,PI, TWO_PI-PI/2);
arc(1250,50,30,30,PI/2, PI);
}
void fieldB(){
background(255,13,13);
smooth();
stroke(255);
strokeWeight(4);
noFill();
ellipse(160,500,180,180);
ellipse(1140,500,180,180); // right side
ellipse(650,500,180,180); //centre
fill(255,13,13);
rect(50,300,165,400);
rect(1085,300,165,400); // rigfht side
fill(255);
ellipse(160,500,10,10);
ellipse(650,500,10,10); //centre
ellipse(1140,500,10,10); // right side
noFill ();
rect(50,50,1200,900);
rect(50,300,165,400);
rect(50,410,55,183);
rect(26,465,24,73);
line(650,50,650,950);
//right side
rect(1195,410,55,183);
rect(1250,465,24,73);
arc(50,50,30,30,0, PI/2);
arc(50,950,30,30,TWO_PI-PI/2, TWO_PI);
arc(1250,950,30,30,PI, TWO_PI-PI/2);
arc(1250,50,30,30,PI/2, PI);
}
// -------------------------------------------------- VOID SERIAL EVENT !!
void serialEvent(Serial port){ // Function to read from the Serial Port
madeContact = true; // If Processing has made contact with Arduino, via USB cable
String input = port.readStringUntil('*'); // Read the data string until the bookmarker '*'.
if(input != null){ // If the data string is NOT empty, 'null' . . .
int sensors[] = int(splitTokens(input, ",*")); // Put them into an array called 'sensors' & separate the data by commas
// with the "*' marker at the end to note the end of the incoming data
// The number here changes according to how many INPUT sensors you have connected to the Arduino.
if (sensors.length == 10){ // If the number of sensors is equal to 2
button1 = sensors[0]; // Associate the leftButton to the 1st index of the 'sensor' array.
button2 = sensors[1]; // Associate the rightButton to the 2nd index of the 'sensor' array.
button3 = sensors[2];
button4 = sensors[3];
button5 = sensors[4];
button6 = sensors[5];
button7 = sensors[6];
button8 = sensors[7];
button9 = sensors[8];
button10 = sensors[9];
//button3-10
print("Button1: " + button1 + "\t Button2: " + button2 + "\t Button3: " + button3 + "\t Button4: " + button4 + "\t Button5: " + button5 + "\t Button6: " + button6 + "\t Button7: " + button7 + "\t Button8: " + button8 + "\t Button9: " + button9 + "\t Button10: " + button10); // A print statement for your sensors
println(input);
port.write(65); // Send the ASCII code to request more data,
// To start the process all over again.
}
}
}
CABLE RACKS AT GRID COMPUTING CENTER, FERMILAB WITH BLUE LIGHTS.
Grid computing is a form of distributed computing in which multiple clusters of nodes work together to complete tasks. Physics submit jobs, or computer programs that physicists use to extract physics results from data, to the grid. The grid determines which resources are free and uses those nodes to process the job.
For more information or additional images, please contact 202-586-5251.
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
Students at the East Bay session of the Technovation Challenge, in which teams of high school girls, mentored by Berkeley Lab women researchers, develop Android apps and a business plan to present them to venture capitalists. newscenter.lbl.gov/feature-stories/2012/04/03/berkeley-la...
Know everything about cloud at FITA. Safeguard your data with cloud support. Cloud computing is the best to share your documents, photographs, etc.
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
Deep in space, giant galaxy clusters filled with vast clouds of hot, X-ray producing gas are assembled through supersonic collisions over billions of years. In order to better understand these astrophysical phenomena, called galaxy cluster mergers, scientists visualize them using supercomputers—resulting in this beautiful image.
ABOVE: Dark matter makes up the majority of the cluster material, up to 90% by mass, and the gravitational force of the dark matter dominates the physics of the merger. Most of the ordinary matter is in the form of a hot, diffuse plasma known as the intra-cluster medium. These gases interact directly, unlike the dark matter particles, whose motion is thought to be collisionless. However the mixing of the gas is completely driven by the violent orbital motion of the dark matter cores. Shown here are volume renderings of the gases (in blue and yellow) zoomed in so that detail of the structure involved in the interaction of dark matter particles and the gases can be seen.
Researchers: John Zuhone, Harvard-Smithsonian CfA; Donald Q. Lamb, University of Chicago
Visualizations by Brad Gallagher, University of Chicago.
Research supported by:
DOE/NNSA ASC Alliance Flash Center, DOE/Office of Science INCITE Program
COMPUTACIÓN CUÁNTICA
La computación cuántica es un paradigma de computación distinto al de la computación clásica. Se basa en el uso de qubits en lugar de bits, y da lugar a nuevas puertas lógicas que hacen posibles nuevos algoritmos. Una misma tarea puede tener diferente complejidad en computación clásica y en computación cuántica, lo que ha dado lugar a una gran expectación, ya que algunos problemas intratables pasan a ser tratables. Mientras un computador clásico equivale a una máquina de Turing, un computador cuántico equivale a una máquina de Turing cuántica.
Computación cuántica—Wikipedia [ ow.ly/iROZp ]
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
By the end of the 60s, there was already a lot of buzz about the potential of computing. But we had to wait for the 90s to see the term Cloud Computing emerging.
Cloud Computing Chronology, How it has evolved over time?
Click To Tweet
View In Larger Image
Download As PDF
Test Below Embed...
Construction of the more than 200,000 square-foot, seven-story-tall TCS building was completed in late summer 2009. It features a unique zen garden, a vast library, as well as a multitude of open spaces and conference rooms.
Photo by George Joch / courtesy Argonne National Laboratory.
After having this keyboard for over 10 years (I first got it half way through my A-Levels) I finally relented and decided to wash it.
This is what I found once I had taken the keys off, ten years of hair and crumbs underneath. I knew that dirt was accumulating under the keys but I had no idea it was this bad.
Readers will be glad to hear that I've now cleaned the keyboard and that it is significantly more hygenic.
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
Photos of Foyles Computing Section, taken by Craig Smith of O'ReillyGMT
Featuring Stephen Forde and Ian Veldhuizen
Photos of Foyles Computing Section, taken by Craig Smith of O'ReillyGMT
Featuring Stephen Forde and Ian Veldhuizen
It's amazing to think that a modern Smartphone, which is really a hand-held computer, has almost infinitely more computing power than was available to the Allies during WW2 at Bletchley Park
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
On Saturday, July 13, 2013, the Creative Computing Online Workshop facilitation team hosted a one-day symposium at the Harvard Graduate School of Education on the topic of creative computing with Scratch.
cc-symposium.eventbrite.com
scratch-ed.org
A bit later, I had moved on to PC's. On the desk also (hard to see as it's burried) is an Amiga 2000 and on a side table behind me is an Imagewriter II.
By the early 90's I had pretty much given up on Macs and Apples. I took my PC and Amiga to college with me. Eventually the Amiga faded away (into oblivion) ... and I've had PC's ever since. (Well, I do have an Intel Mac Mini now, but it was given to me.... and I never use it)