“(RB-13K033)愛(ài)上Processing 互動(dòng)入門(mén)套件”的版本間的差異
(→?Processing與Arduino互動(dòng)例程) |
|||
第65行: | 第65行: | ||
</pre> | </pre> | ||
程序效果:輸出窗口顯示為灰色畫(huà)面,然后在輸出窗口移動(dòng)鼠標(biāo)橢圓跟隨光標(biāo)移動(dòng),點(diǎn)擊鼠標(biāo)任意鍵橢圓變成黑色跟隨光標(biāo)移動(dòng)。 | 程序效果:輸出窗口顯示為灰色畫(huà)面,然后在輸出窗口移動(dòng)鼠標(biāo)橢圓跟隨光標(biāo)移動(dòng),點(diǎn)擊鼠標(biāo)任意鍵橢圓變成黑色跟隨光標(biāo)移動(dòng)。 | ||
? | === | + | ===Processing與Arduino互動(dòng)之LED指示燈=== |
+ | ====所需硬件==== | ||
+ | * Arduino LED發(fā)光模塊 食人魚(yú)燈 綠色高亮*1個(gè) | ||
+ | * Arduino LED發(fā)光模塊 食人魚(yú)燈 紅色高亮*1個(gè) | ||
+ | * Arduino LED發(fā)光模塊 食人魚(yú)燈 黃色高亮*1個(gè) | ||
+ | * Carduino UNO 控制器*1個(gè) | ||
+ | * Arduino Sensor Shield V5.0 傳感器擴(kuò)展板*1個(gè) | ||
+ | * 3P傳感器連接線*3條 | ||
+ | ====例子程序==== | ||
+ | Processing程序:<br/> | ||
+ | <pre style='color:blue'> | ||
+ | import processing.serial.*; | ||
+ | Serial myPort; // 創(chuàng)建串口名稱(chēng) | ||
+ | PFont font;//創(chuàng)建字體變量 | ||
+ | void setup() | ||
+ | { | ||
+ | size(230, 200);//畫(huà)布大小 | ||
+ | myPort = new Serial(this,"COM6",9600);//串口初始化 | ||
+ | font = createFont("楷體",48,true);//載入系統(tǒng)字體 | ||
+ | } | ||
+ | void draw() { | ||
+ | background(255);//背景顏色 | ||
+ | if (mouseOverRectR() == true) { // 判斷鼠標(biāo)是否在方塊上 | ||
+ | fill(255,0,0);// 方塊填充綠色 | ||
+ | myPort.write('R'); // 串口發(fā)送‘R’ | ||
+ | rect(20, 120, 50, 50);// 繪制一個(gè)方塊 | ||
+ | }else{ | ||
+ | fill(125); | ||
+ | rect(20, 120, 50, 50);// 繪制一個(gè)方塊 | ||
+ | fill(255,0,0);// 方塊填充藍(lán)色 | ||
+ | textFont(font,50);//設(shè)置字體大小 | ||
+ | text("紅", 20, 165); | ||
+ | } | ||
+ | if (mouseOverRectG() == true) {// 判斷鼠標(biāo)是否在方塊上 | ||
+ | fill(0,255,0);// 方塊填充綠色 | ||
+ | myPort.write('G');// 串口發(fā)送‘G’ | ||
+ | rect(20+20+50, 120, 50, 50);// 繪制一個(gè)方塊 | ||
+ | } else{ | ||
+ | fill(125); | ||
+ | rect(20+20+50, 120, 50, 50);// 繪制一個(gè)方塊 | ||
+ | fill(0,255,0);// 方塊填充藍(lán)色 | ||
+ | textFont(font,50);//設(shè)置字體大小 | ||
+ | text("綠", 20+20+50, 165); | ||
+ | } | ||
+ | if (mouseOverRectY() == true) {// 判斷鼠標(biāo)是否在方塊上 | ||
+ | fill(255,255,0);// 方塊填充黃色 | ||
+ | myPort.write('Y');// 串口發(fā)送‘B’ | ||
+ | rect(20+20+50+20+50, 120, 50, 50);// 繪制一個(gè)方塊 | ||
+ | }else{ | ||
+ | fill(125); | ||
+ | rect(20+20+50+20+50, 120, 50, 50);// 繪制一個(gè)方塊 | ||
+ | fill(255,255,0);// 方塊填充黃色 | ||
+ | textFont(font,50);//設(shè)置字體大小 | ||
+ | text("黃", 20+20+50+20+50, 165); | ||
+ | } | ||
+ | fill(255,125,255); | ||
+ | textFont(font,25);//設(shè)置字體大小 | ||
+ | text("把鼠標(biāo)移動(dòng)到方塊上", 3, 50); | ||
+ | } | ||
+ | boolean mouseOverRectR() { // 測(cè)試鼠標(biāo)是否在方塊上 | ||
+ | return ((mouseX >= 20) && (mouseX <= 20+50) && (mouseY >= 120) && (mouseY <= 120+50)); | ||
+ | } | ||
+ | boolean mouseOverRectG() { // 測(cè)試鼠標(biāo)是否在方塊上 | ||
+ | return ((mouseX >= 20+20+50) && (mouseX <= 20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); | ||
+ | } | ||
+ | boolean mouseOverRectY() { // 測(cè)試鼠標(biāo)是否在方塊上 | ||
+ | return ((mouseX >= 20+20+50+20+50) && (mouseX <= 20+50+20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); | ||
+ | } | ||
+ | </pre> | ||
+ | 將上面的程序文件復(fù)制到Processing編譯器中,注意其中的“COM6”需要根據(jù)每個(gè)人電腦中UNO的串口不同而各異。 |
2015年9月17日 (四) 12:01的版本
目錄 |
產(chǎn)品概述
Processing 是一種具有革命前瞻性的新興計(jì)算機(jī)語(yǔ)言,它的概念是在電子藝術(shù)的環(huán)境下介紹程序語(yǔ)言,并將電子藝術(shù)的概念介紹給程序設(shè)計(jì)師。她是 Java 語(yǔ)言的延伸,并支持許多現(xiàn)有的 Java 語(yǔ)言架構(gòu),不過(guò)在語(yǔ)法 (syntax) 上簡(jiǎn)易許多,并具有許多貼心及人性化的設(shè)計(jì)。Processing 可以在 Windows、MAC OS X、Linux 等操作系統(tǒng)上使用。以 Processing 完成的作品可在個(gè)人本機(jī)端作用,或以Java Applets 的模式外輸至網(wǎng)絡(luò)上發(fā)布。Processing 的源代碼是開(kāi)放的,和近來(lái)廣受歡迎的 Linux 操作系統(tǒng)、Mozilla 瀏覽器、或 Perl 語(yǔ)言等一樣,用戶(hù)可依照自己的需要自由裁剪出最合適的使用模式。另外Processing 的應(yīng)用非常豐富,而且它們?nèi)孔袷亻_(kāi)放源代碼的規(guī)定,這樣的設(shè)計(jì)大幅增加了整個(gè)社群的互動(dòng)性與學(xué)習(xí)效率。
Carduino UNO 技術(shù)參數(shù)
- 微處理器:ATmega328
- Flash 內(nèi)存:32 KB (ATmega328 其中0.5 KB 用于引導(dǎo)程序)
- 工作電壓:5V
- 輸入電壓:接上USB 時(shí)無(wú)須外部供電或外部7V~12V DC 輸入
- 輸出電壓:5V DC 輸出和3.3V DC 輸出和外部電源輸入
- 時(shí)鐘頻率:16 MHz
- 輸入電壓:7-12V(推薦)
- 輸入電壓:6-20V(限制)
- 支持USB 接口協(xié)議及供電(不需外接電源)
- 支持ISP 下載功能
- 數(shù)字I/O 端口:14(6 個(gè)PWM 輸出口)
- 模擬輸入端口:6
- 直流電流:40mA(I/O 端口)
- 直流電流:50mA(3.3V 端口)
- EEPROM:1 KB (ATmega328)
- SRAM:2 KB (ATmega328)
- 尺寸:75x55x15mm
編譯環(huán)境介紹
Processing 軟件介紹
1.軟件下載與安裝
Processing軟件官方下載地址
軟件是綠色版本,軟件解壓縮后即可使用。目前最新版已經(jīng)更新到3.0
2.Processing 軟件使用說(shuō)明
打開(kāi)軟件只需雙擊執(zhí)行Processing.exe 執(zhí)行文件,就可以看到如下程序編譯窗口:
工具欄快捷按鈕說(shuō)明:
- 序號(hào)1:用來(lái)測(cè)試程序運(yùn)行的結(jié)果和作品展示。也可以使用Ctrl+R 快捷鍵。
- 序號(hào)2:停止執(zhí)行:點(diǎn)擊按鈕可以停止當(dāng)前運(yùn)行的程序。
- 序號(hào)3:新建文件:點(diǎn)擊按鈕會(huì)打開(kāi)一個(gè)新程序窗口。
- 序號(hào)4:打開(kāi):點(diǎn)擊按鈕會(huì)出現(xiàn)Processing 自帶的例子文件和自己創(chuàng)建的文件名稱(chēng)。
- 序號(hào)5:保存:點(diǎn)擊保存當(dāng)前程序代碼。第一次存儲(chǔ)會(huì)要求輸入保存位置和文件名稱(chēng)。
- 序號(hào)6:導(dǎo)出:導(dǎo)出功能會(huì)在文件夾所在的路徑中生成一個(gè)applet 文件夾舊版Processing 會(huì)生成多種格式文件html、gif、jar、java、pde 這些格式是為了方便在瀏覽器中瀏覽作品而生成的。新版的Processing 在輸出的時(shí)候會(huì)出現(xiàn)導(dǎo)出選項(xiàng)方便導(dǎo)出在在各種系統(tǒng)中運(yùn)行的文件。
Arduino IDE 軟件介紹
Arduino入門(mén)教程
Carduino UNO 驅(qū)動(dòng)安裝方法
Arduino編程參考手冊(cè)
Processing基本語(yǔ)言
Processing 使用起來(lái)要比其他編譯軟件更易懂,與Arduino 開(kāi)發(fā)環(huán)境很相似,Processing 的編程語(yǔ)言更為簡(jiǎn)單和人性化,Processing 編程語(yǔ)言基于JAVA 語(yǔ)言,但也可以使用其他語(yǔ)言,主要由于它將一些常用語(yǔ)句組合函數(shù)化。
Processing 程序基本架構(gòu)
與Arduino 一樣一個(gè)Processing 程序分為兩部分;
void setup()
在這個(gè)函數(shù)里放置初始化Processing 的程序,使主循環(huán)程序在開(kāi)始之前設(shè)置好相關(guān)參數(shù)。
void draw()
這是Processing 的主函數(shù)。這套程序會(huì)一直重復(fù)執(zhí)行,直到點(diǎn)擊停止按鈕。
注:這里介紹的是Processing 程序的基本架構(gòu)并不是一定要包含這兩個(gè)部分。
使用方法
第一個(gè)Processing程序
打開(kāi)軟件,將下面代碼復(fù)制到軟件中,然后單擊運(yùn)行按鈕,會(huì)出現(xiàn)顯示輸出窗口
void setup() { size(500, 500);//設(shè)置畫(huà)布大小500*500像素 } void draw() { if (mousePressed) {//檢測(cè)鼠標(biāo)按鍵是否按下 fill(0);//填充黑色 } else { fill(255);//填充白色 } ellipse(mouseX, mouseY, 60, 80);//以鼠標(biāo)坐標(biāo)為圓心畫(huà)橢圓
程序效果:輸出窗口顯示為灰色畫(huà)面,然后在輸出窗口移動(dòng)鼠標(biāo)橢圓跟隨光標(biāo)移動(dòng),點(diǎn)擊鼠標(biāo)任意鍵橢圓變成黑色跟隨光標(biāo)移動(dòng)。
Processing與Arduino互動(dòng)之LED指示燈
所需硬件
- Arduino LED發(fā)光模塊 食人魚(yú)燈 綠色高亮*1個(gè)
- Arduino LED發(fā)光模塊 食人魚(yú)燈 紅色高亮*1個(gè)
- Arduino LED發(fā)光模塊 食人魚(yú)燈 黃色高亮*1個(gè)
- Carduino UNO 控制器*1個(gè)
- Arduino Sensor Shield V5.0 傳感器擴(kuò)展板*1個(gè)
- 3P傳感器連接線*3條
例子程序
Processing程序:
import processing.serial.*; Serial myPort; // 創(chuàng)建串口名稱(chēng) PFont font;//創(chuàng)建字體變量 void setup() { size(230, 200);//畫(huà)布大小 myPort = new Serial(this,"COM6",9600);//串口初始化 font = createFont("楷體",48,true);//載入系統(tǒng)字體 } void draw() { background(255);//背景顏色 if (mouseOverRectR() == true) { // 判斷鼠標(biāo)是否在方塊上 fill(255,0,0);// 方塊填充綠色 myPort.write('R'); // 串口發(fā)送‘R’ rect(20, 120, 50, 50);// 繪制一個(gè)方塊 }else{ fill(125); rect(20, 120, 50, 50);// 繪制一個(gè)方塊 fill(255,0,0);// 方塊填充藍(lán)色 textFont(font,50);//設(shè)置字體大小 text("紅", 20, 165); } if (mouseOverRectG() == true) {// 判斷鼠標(biāo)是否在方塊上 fill(0,255,0);// 方塊填充綠色 myPort.write('G');// 串口發(fā)送‘G’ rect(20+20+50, 120, 50, 50);// 繪制一個(gè)方塊 } else{ fill(125); rect(20+20+50, 120, 50, 50);// 繪制一個(gè)方塊 fill(0,255,0);// 方塊填充藍(lán)色 textFont(font,50);//設(shè)置字體大小 text("綠", 20+20+50, 165); } if (mouseOverRectY() == true) {// 判斷鼠標(biāo)是否在方塊上 fill(255,255,0);// 方塊填充黃色 myPort.write('Y');// 串口發(fā)送‘B’ rect(20+20+50+20+50, 120, 50, 50);// 繪制一個(gè)方塊 }else{ fill(125); rect(20+20+50+20+50, 120, 50, 50);// 繪制一個(gè)方塊 fill(255,255,0);// 方塊填充黃色 textFont(font,50);//設(shè)置字體大小 text("黃", 20+20+50+20+50, 165); } fill(255,125,255); textFont(font,25);//設(shè)置字體大小 text("把鼠標(biāo)移動(dòng)到方塊上", 3, 50); } boolean mouseOverRectR() { // 測(cè)試鼠標(biāo)是否在方塊上 return ((mouseX >= 20) && (mouseX <= 20+50) && (mouseY >= 120) && (mouseY <= 120+50)); } boolean mouseOverRectG() { // 測(cè)試鼠標(biāo)是否在方塊上 return ((mouseX >= 20+20+50) && (mouseX <= 20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); } boolean mouseOverRectY() { // 測(cè)試鼠標(biāo)是否在方塊上 return ((mouseX >= 20+20+50+20+50) && (mouseX <= 20+50+20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); }
將上面的程序文件復(fù)制到Processing編譯器中,注意其中的“COM6”需要根據(jù)每個(gè)人電腦中UNO的串口不同而各異。