2013年4月10日 星期三
Arduino + process
//Arduino 程式
int sensorPin=0;
int val=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val=analogRead(sensorPin)/4;
Serial.write(val); //老版本会用Serial.print(val,BYTE),现在已经不支持BYTE了。
delay(100);
}
/*Arduino控制器相连的电位计手把向一个方向拧动
Processing花布上的螺旋线不断放大,
电位计手把向反方向拧动,螺旋线不断缩小。*/
import processing.serial.*;//导入serial通信库
Serial duankou;//创建对象duankou
float data;//变量存储Arduino传来数据
float a;//螺旋线半径增量
void setup()
{
//设定通讯端口为COM3,波特率为9600
String arduinoPort = Serial.list()[1];//憒?[0]銝?嚗停?兞1]
duankou = new Serial(this, arduinoPort, 9600);
// duankou = new Serial(this,"COM7",9600);
size(600,600);//定义花布大小
noStroke();
smooth();
fill(0,255,0);//定义螺旋线的填充色为绿色
}
void draw()
{
background(0);
//当processing接受到Arduino传来的字节
if(duankou.available()>0)
{
//把Arduino传来的字节存入变量data
data=duankou.read();
//把Arduino传来的字节显示在控制台中
println(data);
//把电位计的类比值大小,正比转换成螺旋线半径增量大小
a=map(data,0,255,0.04,0.2);
}
float radius = 1.0;//螺旋线初始点半径
//螺旋线转动角度范围0到360*8
//螺旋线每转动2度,半径就增加一个增量
//通过for结构,产生螺旋线效果
for (int deg = 0; deg < 360*8; deg += 2) {
float angle = radians(deg);
float x = 300 + (cos(angle) * radius);
float y = 300 + (sin(angle) * radius);
//螺旋线上每个点都是一个绿色实心圆
ellipse(x, y, 6, 6);
//螺旋半径每转动2度增加一次
radius = radius + a;
}
}
訂閱:
張貼留言 (Atom)
2024_09 作業3 以Node-Red 為主
2024_09 作業3 (以Node-Red 為主 Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker 2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...
-
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 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言