2013年4月10日 星期三
Arduino + process
//利用滑鼠左右鍵 控制顯示 橢圓或正方形 及控制可變電阻
int potPin = 0; // 宣告類比腳位輸入的PIN腳
int val = 0; // 宣告變數Val = 0
void setup() {
Serial.begin(9600); //設定SerialPort的速度9600 = 9600bit/s
}
void loop() {
val = analogRead(potPin); // 用analogRead()這個函式讀取特定腳位的數值到變數val
//1024/4=256 將0-1023 轉成 0-255範圍 Serial.print(val/4); //印出數值在Serial.Monitor
delay(150); //延遲讀入的時間為150ms
}
//利用滑鼠左右鍵 控制顯示 橢圓或正方形 及控制可變電阻
import processing.serial.*;
Serial port;
float val;
// 2D Array of objects
Cell[][] grid;
// Number of columns and rows in the grid
int cols = 10;
int rows = 10;
void setup()
{
String arduinoPort = Serial.list()[1];//憒?[0]銝?嚗停?兞1]
port = new Serial(this, arduinoPort, 9600);
size(600,600);
smooth();
grid = new Cell[cols][rows];
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
// Initialize each object
grid[i][j] = new Cell(i*60,j*60,60,60,i+j);
}
}
}
void draw()
{
if ( port.available()> 0) {
val = port.read();
if(mousePressed)
{
if(mouseButton==LEFT)
{
background(255);
noFill();
for(int d=0;d<75;d+=4)
{
for(int x1=0;x1<650;x1+=75)
{
for(int y1=0;y1<650;y1+=75)
{
stroke(random(255),random(255),120);
strokeWeight(4);
ellipse(x1+val,y1,d,d+val);
}
}
}
}
else if(mouseButton==RIGHT)
{
background(255);
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
// Oscillate and display each object
grid[i][j].oscillate();
grid[i][j].display();
}
}
}
}
}
}
// A Cell object
class Cell {
// A cell object knows about its location in the grid as well as its size with the variables x,y,w,h.
float x,y; // x,y location
float w,h; // width and height
float angle; // angle for oscillating brightness
// Cell Constructor
Cell(float tempX, float tempY, float tempW, float tempH, float tempAngle) {
x = tempX;
y = tempY;
w = tempW;
h = tempH;
angle = tempAngle;
}
// Oscillation means increase angle
void oscillate() {
angle += 0.08;
}
void display() {
stroke(255,10+val,20+val);
strokeWeight(2);
// Color calculated using sine wave
fill(127+(val/10)+127*sin(angle));
rect(x+val,y,w,h+val);
}
}
訂閱:
張貼留言 (Atom)
Messaging API作為替代方案
LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...
-
python pip 不是内部或外部命令 -- 解決方法 要安裝 Pyqt5 1. 首先,開啟命令提示字元。 2. 輸入 pip3 install pyqt5 好像不能執行 ! ! 錯誤顯示 : ‘ pip3 ’ 不是內部或外部命令、可執行的程式或批...
-
課程講義 下載 11/20 1) PPT 下載 + 程式下載 http://www.mediafire.com/file/cru4py7e8pptfda/106%E5%8B%A4%E7%9B%8A2-1.rar 11/27 2) PPT 下載...
-
• 認 識 PreFix、InFix、PostFix PreFix(前序式):* + 1 2 + 3 4 InFix(中序式): (1+2)*(3+4) PostFix(後序式):1 2 + 3 4 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言