http://youtu.be/vLIgQD8mDwY
2014年1月12日 星期日
2013年12月8日 星期日
week14 期末作品企劃
大型音樂遊戲
投錢
興趣
自製
類似Morzarc &MuziBox
目前想法
上面撥放音樂影片
預想的遊戲畫面
PS.上面播放遊戲使用之音樂的影片
亦或是乾脆做出一台MuziBox
學長Talk
研發替代役?
大學研究所薪水差3000?
念研究所不太划算?
排除課業
有時間陪家人
待修=~=
補上MoziBox遊戲畫面
相關說明: http://home.gamer.com.tw/creationDetail.php?sn=1609300
2013年12月1日 星期日
week13 林佳芳 課堂練習
Project 05
#include <Servo.h>
Servo myServo;
int const potPin=A0;
int potVal;
int angle;
void setup(){
myServo.attach(9);
Serial.begin(9600);
}
void loop(){
potVal=analogRead(potPin);
Serial.print("potVal:");
Serial.print(potVal);
angle=map(potVal,0,1023,0,179);
Serial.print("angle:");
Serial.println(angle);
myServo.write(angle);
delay(15);
}
Project 06
int sensorValue;
int sensorLow=1023;
int sensorHigh=0;
const int ledPin=13;
void setup(){
pinMode(ledPin,OUTPUT);
digitalWrite(ledPin,HIGH);
while(millis()<5000){
sensorValue=analogRead(A0);
if(sensorValue>sensorHigh){
sensorHigh=sensorValue;
}
if(sensorValue<sensorLow){
sensorLow=sensorValue;
}
}
digitalWrite(ledPin,LOW);
}
void loop(){
sensorValue=analogRead(A0);
int pitch=map(sensorValue,sensorLow,sensorHigh,50,4000);
tone(8,pitch,20);
delay(10);
}
Project 07
int buttons[6]={2};
//buttons[0]={2};
int notes[]={
262,294,330,349};
void setup(){
Serial.begin(9600);
}
void loop(){
int keyVal=analogRead(A0);
Serial.println(keyVal);
if(keyVal==1023){
tone(8,notes[0]);
}
else if(keyVal>=990&& keyVal<=1010){
tone(8,notes[1]);
}
else if(keyVal>=505&&keyVal<=515){
tone(8,notes[2]);
}
else if(keyVal>=5&&keyVal<=10){
tone(8,notes[3]);
}
else{
noTone(8);
}
}
#include <Servo.h>
Servo myServo;
int const potPin=A0;
int potVal;
int angle;
void setup(){
myServo.attach(9);
Serial.begin(9600);
}
void loop(){
potVal=analogRead(potPin);
Serial.print("potVal:");
Serial.print(potVal);
angle=map(potVal,0,1023,0,179);
Serial.print("angle:");
Serial.println(angle);
myServo.write(angle);
delay(15);
}
影片
Project 06
int sensorValue;
int sensorLow=1023;
int sensorHigh=0;
const int ledPin=13;
void setup(){
pinMode(ledPin,OUTPUT);
digitalWrite(ledPin,HIGH);
while(millis()<5000){
sensorValue=analogRead(A0);
if(sensorValue>sensorHigh){
sensorHigh=sensorValue;
}
if(sensorValue<sensorLow){
sensorLow=sensorValue;
}
}
digitalWrite(ledPin,LOW);
}
void loop(){
sensorValue=analogRead(A0);
int pitch=map(sensorValue,sensorLow,sensorHigh,50,4000);
tone(8,pitch,20);
delay(10);
}
影片
Project 07
int buttons[6]={2};
//buttons[0]={2};
int notes[]={
262,294,330,349};
void setup(){
Serial.begin(9600);
}
void loop(){
int keyVal=analogRead(A0);
Serial.println(keyVal);
if(keyVal==1023){
tone(8,notes[0]);
}
else if(keyVal>=990&& keyVal<=1010){
tone(8,notes[1]);
}
else if(keyVal>=505&&keyVal<=515){
tone(8,notes[2]);
}
else if(keyVal>=5&&keyVal<=10){
tone(8,notes[3]);
}
else{
noTone(8);
}
}
影片
2013年11月24日 星期日
Week12上課內容 林佳芳
1.溫度感應
基礎溫度設25度
27左右則亮兩個
30度左右三顆LED亮
程式碼:
const int sensorPin =A0;
const float baselineTemp=25.0;
void setup(){
Serial.begin(9600);
for(int pinNumber=2;pinNumber<5;pinNumber++){
pinMode(pinNumber,OUTPUT);
digitalWrite(pinNumber,LOW);
}
}
void loop(){
int sensorVal=analogRead(sensorPin);
Serial.print("Sensor Value:");
Serial.print(sensorVal);
float voltage=(sensorVal/1024.0)*5.0;
Serial.print(",Volts:");
Serial.print(voltage);
Serial.print(",degrees C:");
float temperature=(voltage-.5)*100;
Serial.println(temperature);
if(temperature<baselineTemp){
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}
else if(temperature>=baselineTemp+2&& temperature<baselineTemp+4){
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}
else if(temperature>=baselineTemp+4&& temperature<baselineTemp+6){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
}
else if(temperature>=baselineTemp+6){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
}
delay(1);
}
影片
2.Color Mixing Lamp
const int greenLEDPin=9;
const int redLEDPin=11;
const int blueLEDPin=10;
const int redSensorPin=A0;
const int greenSensorPin=A1;
const int blueSensorPin=A2;
int redValue=0;
int greenValue=0;
int blueValue=0;
int redSensorValue=0;
int greenSensorValue=0;
int blueSensorValue=0;
void setup(){
Serial.begin(9600);
pinMode(greenLEDPin,OUTPUT);
pinMode(redLEDPin,OUTPUT);
pinMode(blueLEDPin,OUTPUT);
}
void loop(){
redSensorValue=analogRead(redSensorPin);
delay(5);
greenSensorValue=analogRead(greenSensorPin);
delay(5);
blueSensorValue=analogRead(blueSensorPin);
Serial.print("Raw Sensor Value \t Red");
Serial.print(redSensorValue);
Serial.print("\t Green");
Serial.print(greenSensorValue);
Serial.print("\t Blue");
Serial.print(blueSensorValue);
redValue=redSensorValue/4;
greenValue=greenSensorValue/4;
blueValue=blueSensorValue/4;
Serial.print("Mapped Sensor Value \t Red");
Serial.print(redValue);
Serial.print("\t Green");
Serial.print(greenValue);
Serial.print("\t Blue");
Serial.print(blueValue);
analogWrite(redLEDPin,redValue);
analogWrite(greenLEDPin,greenValue);
analogWrite(blueLEDPin,blueValue);
}
影片
3.*測試顏色
void setup(){
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop(){
int r=0,g=255,b=0;
analogWrite(10,r);
analogWrite(9,g);
analogWrite(11,b);
}
影片
基礎溫度設25度
27左右則亮兩個
30度左右三顆LED亮
程式碼:
const int sensorPin =A0;
const float baselineTemp=25.0;
void setup(){
Serial.begin(9600);
for(int pinNumber=2;pinNumber<5;pinNumber++){
pinMode(pinNumber,OUTPUT);
digitalWrite(pinNumber,LOW);
}
}
void loop(){
int sensorVal=analogRead(sensorPin);
Serial.print("Sensor Value:");
Serial.print(sensorVal);
float voltage=(sensorVal/1024.0)*5.0;
Serial.print(",Volts:");
Serial.print(voltage);
Serial.print(",degrees C:");
float temperature=(voltage-.5)*100;
Serial.println(temperature);
if(temperature<baselineTemp){
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}
else if(temperature>=baselineTemp+2&& temperature<baselineTemp+4){
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}
else if(temperature>=baselineTemp+4&& temperature<baselineTemp+6){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
}
else if(temperature>=baselineTemp+6){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
}
delay(1);
}
影片
2.Color Mixing Lamp
const int greenLEDPin=9;
const int redLEDPin=11;
const int blueLEDPin=10;
const int redSensorPin=A0;
const int greenSensorPin=A1;
const int blueSensorPin=A2;
int redValue=0;
int greenValue=0;
int blueValue=0;
int redSensorValue=0;
int greenSensorValue=0;
int blueSensorValue=0;
void setup(){
Serial.begin(9600);
pinMode(greenLEDPin,OUTPUT);
pinMode(redLEDPin,OUTPUT);
pinMode(blueLEDPin,OUTPUT);
}
void loop(){
redSensorValue=analogRead(redSensorPin);
delay(5);
greenSensorValue=analogRead(greenSensorPin);
delay(5);
blueSensorValue=analogRead(blueSensorPin);
Serial.print("Raw Sensor Value \t Red");
Serial.print(redSensorValue);
Serial.print("\t Green");
Serial.print(greenSensorValue);
Serial.print("\t Blue");
Serial.print(blueSensorValue);
redValue=redSensorValue/4;
greenValue=greenSensorValue/4;
blueValue=blueSensorValue/4;
Serial.print("Mapped Sensor Value \t Red");
Serial.print(redValue);
Serial.print("\t Green");
Serial.print(greenValue);
Serial.print("\t Blue");
Serial.print(blueValue);
analogWrite(redLEDPin,redValue);
analogWrite(greenLEDPin,greenValue);
analogWrite(blueLEDPin,blueValue);
}
影片
3.*測試顏色
void setup(){
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop(){
int r=0,g=255,b=0;
analogWrite(10,r);
analogWrite(9,g);
analogWrite(11,b);
}
影片
2013年11月17日 星期日
week11 林佳芳
(O) 0. 發 Arduino Starter Kit、Arduino Mega2560、Arduino Project Book, 每個人手上都有一個板子
(O) 1. 練習第一個範例 File-Examples-Basic-Blink
void setup(){
pinMode(13,OUTPUT);
}
void loop(){
digitalWrite(13,HIGH);//HIGH亮
delay(200);//亮0.2秒
digitalWrite(13,LOW);//LOW暗
delay(200);//暗0.2秒
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(200);
}
(O)2. 修改程式,變成展得比較特別的作法
3.
void setup(){
pinMode(13,OUTPUT);
pinMode(11,OUTPUT);
pinMode(2,OUTPUT);
}
void loop(){
digitalWrite(13,HIGH);//HIGH亮
delay(500);//亮0.2秒
digitalWrite(13,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(11,HIGH);//LOW暗
delay(200);//暗0.2秒
digitalWrite(11,LOW);//LOW暗
delay(100);//暗0.2秒
digitalWrite(2,HIGH);
delay(500);
digitalWrite(2,LOW);
delay(100);
digitalWrite(13,HIGH);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(13,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(2,HIGH);
delay(300);
digitalWrite(2,LOW);
delay(100);
digitalWrite(13,HIGH);//HIGH亮
delay(300);//亮0.2秒
digitalWrite(13,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(2,HIGH);//HIGH亮
delay(300);//亮0.2秒
digitalWrite(2,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(13,HIGH);//HIGH亮
digitalWrite(11,HIGH);//LOW暗
digitalWrite(2,HIGH);
delay(200);
digitalWrite(13,LOW);//HIGH亮
digitalWrite(11,LOW);//LOW暗
digitalWrite(2,LOW);
delay(200);
}
(O) 1. 練習第一個範例 File-Examples-Basic-Blink
void setup(){
pinMode(13,OUTPUT);
}
void loop(){
digitalWrite(13,HIGH);//HIGH亮
delay(200);//亮0.2秒
digitalWrite(13,LOW);//LOW暗
delay(200);//暗0.2秒
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(200);
}
(O)2. 修改程式,變成展得比較特別的作法
3.
void setup(){
pinMode(13,OUTPUT);
pinMode(11,OUTPUT);
pinMode(2,OUTPUT);
}
void loop(){
digitalWrite(13,HIGH);//HIGH亮
delay(500);//亮0.2秒
digitalWrite(13,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(11,HIGH);//LOW暗
delay(200);//暗0.2秒
digitalWrite(11,LOW);//LOW暗
delay(100);//暗0.2秒
digitalWrite(2,HIGH);
delay(500);
digitalWrite(2,LOW);
delay(100);
digitalWrite(13,HIGH);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(13,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(2,HIGH);
delay(300);
digitalWrite(2,LOW);
delay(100);
digitalWrite(13,HIGH);//HIGH亮
delay(300);//亮0.2秒
digitalWrite(13,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(2,HIGH);//HIGH亮
delay(300);//亮0.2秒
digitalWrite(2,LOW);//HIGH亮
delay(100);//亮0.2秒
digitalWrite(13,HIGH);//HIGH亮
digitalWrite(11,HIGH);//LOW暗
digitalWrite(2,HIGH);
delay(200);
digitalWrite(13,LOW);//HIGH亮
digitalWrite(11,LOW);//LOW暗
digitalWrite(2,LOW);
delay(200);
}
影片:
2013年11月11日 星期一
2013年10月20日 星期日
Week 07 林佳芳
1. 請列出你今天三個小時,要完成的事
把上禮拜做的基本程式加入
1.障礙物掉落
2.發射子彈
3.判斷碰撞部分
Total:把期中作品進度往前一部份
2. 你在期中作品要做到什麼程度
橫軸射擊遊戲,主角搭乘熱氣球在空中,需攻擊或躲避障礙物,利用滑鼠移動,點擊可射擊到達目的地即可過關。
3. Why? 你為什麼要做它
以前玩過一個遊戲"奇幻仙境",在冒險途中會遇到樂園,樂園裡面有小遊戲,是個2D橫軸射擊遊戲,在時間內主角坐著飛船躲避障礙物,或是利用螺旋槳發射攻擊取得高分,想做出一個類似射擊遊戲。
把上禮拜做的基本程式加入
1.障礙物掉落
2.發射子彈
3.判斷碰撞部分
Total:把期中作品進度往前一部份
2. 你在期中作品要做到什麼程度
橫軸射擊遊戲,主角搭乘熱氣球在空中,需攻擊或躲避障礙物,利用滑鼠移動,點擊可射擊到達目的地即可過關。
3. Why? 你為什麼要做它
以前玩過一個遊戲"奇幻仙境",在冒險途中會遇到樂園,樂園裡面有小遊戲,是個2D橫軸射擊遊戲,在時間內主角坐著飛船躲避障礙物,或是利用螺旋槳發射攻擊取得高分,想做出一個類似射擊遊戲。
2013年10月13日 星期日
2013年10月6日 星期日
2013年9月29日 星期日
2013年9月22日 星期日
Week03 林佳芳
1. 今天目標: 畫出一個五子棋
1.1. 使用 Tool- Color Selector, 挑出你要的顏色, 可用 R,G,B 來描述,也可用 #0B33FF 之類的像亂碼的數字來設定顏色1.2. 要畫外框,可以用 rect()來畫, 要修改填充的顏色可以用fill(), 要讓畫的內部不要填充, 可以查看 Help-Reference 後,在 fill()樓上樓下相關的地方找到你要的功能 (ex. noFill() )
1.3. 使用 stroke() 來調畫線stroke的顏色, 在 Help-Reference 裡面可以找 stroke 相關的功能,像是比較粗的 stroke 可以用 strokeWeight() 來設定權重粗細
2013年9月15日 星期日
Week02 林佳芳
2013年9月8日 星期日
Week01 林佳芳
0. 課程準備
0.1. 加入 課程FB社團
0.2. Google文件 填寫修課資料 (學號姓名,email,電話)
0.3. 加入 Blog, 設定
*編交作業方式:
tag: 000葉正聖老師, Week01, 00160011葉大明
(逗號隔開, 學號姓名間不要有空格)
1. 看一下去年學長姐們做的成果 (划船、吃角子老虎、數位手套、直昇機控制搖桿), 聖誔老公公下樓梯
2. 試著執行 Processing
size(600,600);//設定視窗大小
background(255,0,0);//背景色
rect(100,100,200,200);//在視窗100,100的位置畫200*200的四邊形
老師做的 Angry Birds Brick
http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/
size(600,600);//設定視窗大小
background(255,0,0);//背景色
rect(100,100,200,200);//在視窗100,100的位置畫200*200的四邊形
PImage imgBird=loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/bird.png");//載入圖片
PImage imgPig =loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/pig.gif");
//載入圖片
image(imgBird,0,0);//圖片放置視窗內 (變數,x,y,長,寬)
image(imgPig,200,200,100,100);//圖片放置視窗內 (變數,x,y,長,寬)
3.第三節課的範例
*Edit>Auto Format 自動排版(快速鍵:Ctrl+T)
PImage imgBird, imgPig; //宣告
void setup() {//設定函式
size(600, 600);//設定視窗大小
imgBird=loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/bird.png");//載入圖片
imgPig =loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/pig.gif");//載入圖片
imageMode(CENTER);//將滑鼠置中在圖片上
}
void draw() {
background(255, 0, 0);//背景可清除圖片殘影
image(imgBird, mouseX, mouseY);//圖片位置跟著滑鼠 *圖A程式碼寫在前面,則會被圖B覆蓋住
image(imgPig, 200, 200, 100, 100);//圖片放置視窗內 函式(變數,x,y,長,寬)
}
Cousera線上Processing教學(英):https://class.coursera.org/digitalmedia-001/lecture/index
0.1. 加入 課程FB社團
0.2. Google文件 填寫修課資料 (學號姓名,email,電話)
0.3. 加入 Blog, 設定
*編交作業方式:
tag: 000葉正聖老師, Week01, 00160011葉大明
(逗號隔開, 學號姓名間不要有空格)
1. 看一下去年學長姐們做的成果 (划船、吃角子老虎、數位手套、直昇機控制搖桿), 聖誔老公公下樓梯
2. 試著執行 Processing
size(600,600);//設定視窗大小
background(255,0,0);//背景色
rect(100,100,200,200);//在視窗100,100的位置畫200*200的四邊形
老師做的 Angry Birds Brick
http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/
size(600,600);//設定視窗大小
background(255,0,0);//背景色
rect(100,100,200,200);//在視窗100,100的位置畫200*200的四邊形
PImage imgBird=loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/bird.png");//載入圖片
PImage imgPig =loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/pig.gif");
//載入圖片
image(imgBird,0,0);//圖片放置視窗內 (變數,x,y,長,寬)
image(imgPig,200,200,100,100);//圖片放置視窗內 (變數,x,y,長,寬)
3.第三節課的範例
*Edit>Auto Format 自動排版(快速鍵:Ctrl+T)
PImage imgBird, imgPig; //宣告
void setup() {//設定函式
size(600, 600);//設定視窗大小
imgBird=loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/bird.png");//載入圖片
imgPig =loadImage("http://www.cmlab.csie.ntu.edu.tw/~jsyeh/processing/angryBirdsBrick/pig.gif");//載入圖片
imageMode(CENTER);//將滑鼠置中在圖片上
}
void draw() {
background(255, 0, 0);//背景可清除圖片殘影
image(imgBird, mouseX, mouseY);//圖片位置跟著滑鼠 *圖A程式碼寫在前面,則會被圖B覆蓋住
image(imgPig, 200, 200, 100, 100);//圖片放置視窗內 函式(變數,x,y,長,寬)
}
Cousera線上Processing教學(英):https://class.coursera.org/digitalmedia-001/lecture/index
訂閱:
文章 (Atom)































