1.有關arduino的影片
http://www.youtube.com/watch?v=jjvy_jzGlAQ
這是將Arduino做一個可以模擬打鼓的裝置,做這項東西的想法很厲害,能夠簡化電子鼓的複雜度,很適合給小朋友玩。
2.心得:
看了一些影片,Aduino根processing可以結合,作一些按鍵,或是可以用一些可變電阻來做控制方向等等的一些小遊戲,我覺得很有趣。
2013年1月18日 星期五
2012年12月25日 星期二
Week15,HW11
我們這組目前期末作業的計劃是要延續期中作品:大方快吃小方塊,期末再加上Arduino來連接四顆按鈕,上下左右來控制紅色方塊。
現在我們的進度是在思考和修正如何將其中程式碼的滑鼠事件,轉換成按鈕來控制,也因為之前的程式碼只輸入了方塊只要跟著滑鼠移動而已,所以簡單許多,而這次要在加上四顆按鈕對我們來說也相對較困難,再加上要將之前遊戲執行後的問題想要一併解決,也就是有時候會一開啟就碰到大方塊就馬上遊戲結束的問題,因此也讓期末作業困難度又增加了。
2012年12月4日 星期二
Week13,HW10
int inpin1=3;
int inpin2=4;
int inpin3=5;
int inpin4=6;
int inpin5=7;
int buttonState1 = 0; // variable for reading the pushbutton status
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
void setup() {
pinMode(inpin1, INPUT);
pinMode(inpin2, INPUT);
pinMode(inpin3, INPUT);
pinMode(inpin4, INPUT);
pinMode(inpin5, INPUT);
}
void loop() {
buttonState1 = digitalRead(inpin1);
buttonState2 = digitalRead(inpin2);
buttonState3 = digitalRead(inpin3);
buttonState4 = digitalRead(inpin4);
buttonState5 = digitalRead(inpin5);
if (buttonState1 == HIGH) tone(9, 524,4);
else if (buttonState2 == HIGH) tone(9, 588,4);
else if (buttonState3 == HIGH) tone(9, 660,4);
else if (buttonState4 == HIGH) tone(9, 698,4);
else if (buttonState5 == HIGH) tone(9, 784,4);
else {
noTone(9);
}
}
2012年11月27日 星期二
Week12,HW9
作業:
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
void setup() {
Serial.begin(9600);
// declare the ledPin as an OUTPUT:
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
// turn the ledPin on
digitalWrite(13, HIGH);
delay(50);
digitalWrite(12, HIGH);
delay(100);
digitalWrite(11, HIGH);
delay(150);
digitalWrite(10, HIGH);
delay(200);
digitalWrite(9, HIGH);
delay(250);
digitalWrite(8, HIGH);
delay(300);
digitalWrite(7, HIGH);
delay(350);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(7, LOW);
delay(50);
digitalWrite(8, LOW);
delay(100);
digitalWrite(9, LOW);
delay(150);
digitalWrite(10, LOW);
delay(200);
digitalWrite(11, LOW);
delay(250);
digitalWrite(12, LOW);
delay(300);
digitalWrite(13, LOW);
delay(350);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}
影片:
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
void setup() {
Serial.begin(9600);
// declare the ledPin as an OUTPUT:
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
// turn the ledPin on
digitalWrite(13, HIGH);
delay(50);
digitalWrite(12, HIGH);
delay(100);
digitalWrite(11, HIGH);
delay(150);
digitalWrite(10, HIGH);
delay(200);
digitalWrite(9, HIGH);
delay(250);
digitalWrite(8, HIGH);
delay(300);
digitalWrite(7, HIGH);
delay(350);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(7, LOW);
delay(50);
digitalWrite(8, LOW);
delay(100);
digitalWrite(9, LOW);
delay(150);
digitalWrite(10, LOW);
delay(200);
digitalWrite(11, LOW);
delay(250);
digitalWrite(12, LOW);
delay(300);
digitalWrite(13, LOW);
delay(350);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}
影片:
2012年11月13日 星期二
Midtern
1.其中作品程式碼
import ddf.minim.*;
Minim minim;
AudioPlayer song;
AudioPlayer song2;
AudioPlayer song3;
float x;
float y;
float easing = 0.05;
int r =8 ;
int gameCase = 1;
int startTime;
int glose=1;
int gwin=1;
float[] bugx = new float [60];
float[] bugy = new float [60];
int[] bugr = new int [60];
float[] speedx = new float [40];
float[] speedy = new float [40];
float a = 0.05;
void setup() {
size (800, 800);
startTime=millis();
smooth();
minim = new Minim(this);
song = minim.loadFile("music.mp3");
song.play();
rectMode (CENTER);
for (int i=0; i<60; i++) {
bugx[i] = random (0, width);
bugy[i] = random (0, height);
bugr[i] = int (random (0, 30));
}
x = random (0, width);
y = random (0, height);
}
void draw() {
background (100, 232, 138);
noStroke();
fill (100,100,100);
startTime=0+millis()/1000;
textSize(45);
text("Time:"+startTime, 80,80);
fill (0);
for (int i=0; i<40; i++) {
rect (bugx[i], bugy[i], bugr[i]*2, bugr[i]*2);
}
fill (255, 0,0 );
rect (x, y, r*2, r*2);
for (int i=0; i<40; i++) {
float z=(bugx[i]-x)*(bugx[i]-x)+(bugy[i]-y)*(bugy[i]-y)-(bugr[i]+r)*(bugr[i]+r);
if (z<0 && bugr[i]>r) {
gameCase = 0;
}
}
if (gameCase == 0) {
gameover();
} else {
float targetX = mouseX;
float targetY = mouseY;
x += (targetX - x) * easing;
y += (targetY - y) * easing;
for (int i=0; i<40; i++) {
move (i);
}
}
for (int i=0; i<40; i++) {
if ((bugx[i]-x)*(bugx[i]-x)+(bugy[i]-y)*(bugy[i]-y)-(bugr[i]+r)*(bugr[i]+r)<0 && bugr[i]<r) {
r = int (sqrt (r*r + bugr[i]*bugr[i]));
bugr[i] = 0;
}
}
int sum = 100;
for (int i=0; i<40; i++) {
sum += bugr[i];
}
if (sum == 100) {
win();
}
}
void move(int i) {
speedx[i] += random (-a, a);
speedy[i] += random (-a, a);
bugx[i] += speedx[i];
bugy[i] += speedy[i];
if (bugx[i]<-10) {
bugx[i] += width;
}
if (bugx[i] > width+10) {
bugx[i] -= width;
}
if (bugy[i] < -10) {
bugy[i] += height;
}
if (bugy[i] > height+10) {
bugy[i] -= height;
}
}
void gameover() {
background (0, 0, 0);
rect(800,800,0,0);
fill (255,255,255);
if(glose==1)
{
song.close();
minim.stop();
stop();
noLoop();
minim = new Minim(this);
song2 = minim.loadFile("music2.mp3");
song2.play();
}
textSize (60);
textAlign(CENTER);
text ("You Lose!", width/2, height/2);
textAlign(LEFT);
text("YourTime:"+startTime, 230,330);
}
void win() {
background (0, 0, 0);
rect(800,800,0,0);
fill (255,255,255);
if(gwin==1)
{
song.close();
minim.stop();
stop();
noLoop();
minim = new Minim(this);
song3 = minim.loadFile("music3.mp3");
song3.play();
}
textSize (60);
textAlign(CENTER);
text ("You Win!", width/2, height/2);
textAlign(LEFT);
text("YourTime:"+startTime, 230,330);
}
遊戲是紅色小方塊要吃黑色小方塊,只能是面積比自己小的,看玩家能在多久的時間將所有的小方塊吃完。
2012年11月12日 星期一
2012年10月23日 星期二
2012年10月16日 星期二
2012年10月9日 星期二
Week05,HW05
1.
void setup(){
size(600,600);
}
float rrr=0.01;
void draw(){
background(0,0,0);
translate(300,300);
rotate(rrr);rrr+=0.01;
for(int i=0;i<16;i++){
rotate( PI/8);
fill(80,165,180);
ellipse(100,20,200,40);
}
}
}
float rrr=0.01;
void draw(){
background(0,0,0);
translate(mouseX,mouseY);
rotate(rrr);rrr+=0.01;
for(int i=0;i<16;i++){
rotate( PI/8);
fill(80,165,180);
ellipse(100,20,200,40);
}
}
3.
void setup(){
size(600,600);
}
float rrr=0.01;
void draw(){
background(0,0,0);
translate(300,300);
rotate(rrr);rrr+=0.01;
for(int i=0;i<16;i++){
rotate( PI/8);
fill(80,165,180);
ellipse(100,20,200,40);
}
}
2.
void setup(){
size(600,600);}
float rrr=0.01;
void draw(){
background(0,0,0);
translate(mouseX,mouseY);
rotate(rrr);rrr+=0.01;
for(int i=0;i<16;i++){
rotate( PI/8);
fill(80,165,180);
ellipse(100,20,200,40);
}
}
打蒼蠅小遊戲
2012年10月2日 星期二
Week04, HW04
void setup()
{
size(500,400);
background(255);
fill(0,0,255);
rect(0,0,50,50);
fill(255,0,0);
rect(0,50,50,50);
fill(255);
rect(0,100,50,50);
fill(255);
rect(0,150,50,50);
rect(450,0,50,50);
rect(450,50,50,50);
}
int www=5;
void draw()
{
if(mousePressed && mouseX<50 && mouseY<50) stroke(0,0,255);
else if(mousePressed && mouseX<50 && mouseY<100) stroke(255,0,0);
else if(mousePressed && mouseX<50 && mouseY<150) save("aaaa.png");
else if(mousePressed && mouseX<50 && mouseY<200)
{
PImage file = loadImage("aaaa.png");
image(file, 0,0,500,400);
}
else if(mousePressed && mouseX>450 && mouseY<50){
strokeWeight(++www);
}
else if(mousePressed && mouseX>450 && mouseY<1000){
strokeWeight(--www);
if(www<2)www=2;
}
else if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
{
size(500,400);
background(255);
fill(0,0,255);
rect(0,0,50,50);
fill(255,0,0);
rect(0,50,50,50);
fill(255);
rect(0,100,50,50);
fill(255);
rect(0,150,50,50);
rect(450,0,50,50);
rect(450,50,50,50);
}
int www=5;
void draw()
{
if(mousePressed && mouseX<50 && mouseY<50) stroke(0,0,255);
else if(mousePressed && mouseX<50 && mouseY<100) stroke(255,0,0);
else if(mousePressed && mouseX<50 && mouseY<150) save("aaaa.png");
else if(mousePressed && mouseX<50 && mouseY<200)
{
PImage file = loadImage("aaaa.png");
image(file, 0,0,500,400);
}
else if(mousePressed && mouseX>450 && mouseY<50){
strokeWeight(++www);
}
else if(mousePressed && mouseX>450 && mouseY<1000){
strokeWeight(--www);
if(www<2)www=2;
}
else if(mousePressed) line(mouseX, mouseY, pmouseX, pmouseY);
}
2012年9月25日 星期二
Week03,HW03
3.1
void setup(){
size(600,600);
background(0);
}
void draw(){
fill(33,137,255);
rect(250,250,100,100);
fill(255,138,60);
ellipse(mouseX,mouseY,50,50);
}
3.2
void setup(){
size(600,600);
}
float x=100,y=100;
void draw(){
background(138,60,120);
fill(30,60,90);
ellipse(mouseX,mouseY,90,130);
fill(255,255,0);
ellipse(x,y,50,50);
x=x*0.9 + mouseX*0.1;
y=y*0.9 + mouseY*0.1;
}
3.3
今天的進度大致上還OK,老師講解的也很詳細,但這間教室的電腦十時候還是會累格。
void setup(){
size(600,600);
background(0);
}
void draw(){
fill(33,137,255);
rect(250,250,100,100);
fill(255,138,60);
ellipse(mouseX,mouseY,50,50);
}
3.2
void setup(){
size(600,600);
}
float x=100,y=100;
void draw(){
background(138,60,120);
fill(30,60,90);
ellipse(mouseX,mouseY,90,130);
fill(255,255,0);
ellipse(x,y,50,50);
x=x*0.9 + mouseX*0.1;
y=y*0.9 + mouseY*0.1;
}
3.3
今天的進度大致上還OK,老師講解的也很詳細,但這間教室的電腦十時候還是會累格。
2012年9月18日 星期二
Week02,HW02,畫圖
1.
size(600,600);
for(int i=0;i<50;i++){
fill(random(255),random(255),random(255));
rect(random(500),random(500),random(500),random(500));
}
2.
size(400,300);
for(int i=0;i<40;i++){
for(int k=0;k<30;k++){
fill(i*255/40,0,k*255/30);
rect(i*10,k*10,10,10);
}}
3.
size(400,300);
noStroke();
for(int i=0;i<4;i++){
for(int k=0;k<3;k++){
fill(150,i*255/4,k*255/3);
ellipse(i*100+50,k*100+50,100,90);
fill(0,0,0);
ellipse(i*100+50,k*100+50,40,90);
}}
2012年9月11日 星期二
week01,HW01
size(500,500); PImage kitty; kitty = loadImage("http://carseatcoversforgirls.us/wp-content/uploads/2012/02/hello-kitty.jpg"); image(kitty ,20,20);
訂閱:
文章 (Atom)










