“(RB-13K033)爱上Processing 互动入门套件”的版本间的差异
(→Processing与Arduino互动例程) |
|||
第65行: | 第65行: | ||
</pre> | </pre> | ||
程序效果:输出窗口显示为灰色画面,然后在输出窗口移动鼠标椭圆跟随光标移动,点击鼠标任意键椭圆变成黑色跟随光标移动。 | 程序效果:输出窗口显示为灰色画面,然后在输出窗口移动鼠标椭圆跟随光标移动,点击鼠标任意键椭圆变成黑色跟随光标移动。 | ||
− | === | + | ===Processing与Arduino互动之LED指示灯=== |
+ | ====所需硬件==== | ||
+ | * Arduino LED发光模块 食人鱼灯 绿色高亮*1个 | ||
+ | * Arduino LED发光模块 食人鱼灯 红色高亮*1个 | ||
+ | * Arduino LED发光模块 食人鱼灯 黄色高亮*1个 | ||
+ | * Carduino UNO 控制器*1个 | ||
+ | * Arduino Sensor Shield V5.0 传感器扩展板*1个 | ||
+ | * 3P传感器连接线*3条 | ||
+ | ====例子程序==== | ||
+ | Processing程序:<br/> | ||
+ | <pre style='color:blue'> | ||
+ | import processing.serial.*; | ||
+ | Serial myPort; // 创建串口名称 | ||
+ | PFont font;//创建字体变量 | ||
+ | void setup() | ||
+ | { | ||
+ | size(230, 200);//画布大小 | ||
+ | myPort = new Serial(this,"COM6",9600);//串口初始化 | ||
+ | font = createFont("楷体",48,true);//载入系统字体 | ||
+ | } | ||
+ | void draw() { | ||
+ | background(255);//背景颜色 | ||
+ | if (mouseOverRectR() == true) { // 判断鼠标是否在方块上 | ||
+ | fill(255,0,0);// 方块填充绿色 | ||
+ | myPort.write('R'); // 串口发送‘R’ | ||
+ | rect(20, 120, 50, 50);// 绘制一个方块 | ||
+ | }else{ | ||
+ | fill(125); | ||
+ | rect(20, 120, 50, 50);// 绘制一个方块 | ||
+ | fill(255,0,0);// 方块填充蓝色 | ||
+ | textFont(font,50);//设置字体大小 | ||
+ | text("红", 20, 165); | ||
+ | } | ||
+ | if (mouseOverRectG() == true) {// 判断鼠标是否在方块上 | ||
+ | fill(0,255,0);// 方块填充绿色 | ||
+ | myPort.write('G');// 串口发送‘G’ | ||
+ | rect(20+20+50, 120, 50, 50);// 绘制一个方块 | ||
+ | } else{ | ||
+ | fill(125); | ||
+ | rect(20+20+50, 120, 50, 50);// 绘制一个方块 | ||
+ | fill(0,255,0);// 方块填充蓝色 | ||
+ | textFont(font,50);//设置字体大小 | ||
+ | text("绿", 20+20+50, 165); | ||
+ | } | ||
+ | if (mouseOverRectY() == true) {// 判断鼠标是否在方块上 | ||
+ | fill(255,255,0);// 方块填充黄色 | ||
+ | myPort.write('Y');// 串口发送‘B’ | ||
+ | rect(20+20+50+20+50, 120, 50, 50);// 绘制一个方块 | ||
+ | }else{ | ||
+ | fill(125); | ||
+ | rect(20+20+50+20+50, 120, 50, 50);// 绘制一个方块 | ||
+ | fill(255,255,0);// 方块填充黄色 | ||
+ | textFont(font,50);//设置字体大小 | ||
+ | text("黄", 20+20+50+20+50, 165); | ||
+ | } | ||
+ | fill(255,125,255); | ||
+ | textFont(font,25);//设置字体大小 | ||
+ | text("把鼠标移动到方块上", 3, 50); | ||
+ | } | ||
+ | boolean mouseOverRectR() { // 测试鼠标是否在方块上 | ||
+ | return ((mouseX >= 20) && (mouseX <= 20+50) && (mouseY >= 120) && (mouseY <= 120+50)); | ||
+ | } | ||
+ | boolean mouseOverRectG() { // 测试鼠标是否在方块上 | ||
+ | return ((mouseX >= 20+20+50) && (mouseX <= 20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); | ||
+ | } | ||
+ | boolean mouseOverRectY() { // 测试鼠标是否在方块上 | ||
+ | return ((mouseX >= 20+20+50+20+50) && (mouseX <= 20+50+20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); | ||
+ | } | ||
+ | </pre> | ||
+ | 将上面的程序文件复制到Processing编译器中,注意其中的“COM6”需要根据每个人电脑中UNO的串口不同而各异。 |
2015年9月17日 (四) 12:01的版本
目录 |
产品概述
Processing 是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。她是 Java 语言的延伸,并支持许多现有的 Java 语言架构,不过在语法 (syntax) 上简易许多,并具有许多贴心及人性化的设计。Processing 可以在 Windows、MAC OS X、Linux 等操作系统上使用。以 Processing 完成的作品可在个人本机端作用,或以Java Applets 的模式外输至网络上发布。Processing 的源代码是开放的,和近来广受欢迎的 Linux 操作系统、Mozilla 浏览器、或 Perl 语言等一样,用户可依照自己的需要自由裁剪出最合适的使用模式。另外Processing 的应用非常丰富,而且它们全部遵守开放源代码的规定,这样的设计大幅增加了整个社群的互动性与学习效率。
Carduino UNO 技术参数
- 微处理器:ATmega328
- Flash 内存:32 KB (ATmega328 其中0.5 KB 用于引导程序)
- 工作电压:5V
- 输入电压:接上USB 时无须外部供电或外部7V~12V DC 输入
- 输出电压:5V DC 输出和3.3V DC 输出和外部电源输入
- 时钟频率:16 MHz
- 输入电压:7-12V(推荐)
- 输入电压:6-20V(限制)
- 支持USB 接口协议及供电(不需外接电源)
- 支持ISP 下载功能
- 数字I/O 端口:14(6 个PWM 输出口)
- 模拟输入端口:6
- 直流电流:40mA(I/O 端口)
- 直流电流:50mA(3.3V 端口)
- EEPROM:1 KB (ATmega328)
- SRAM:2 KB (ATmega328)
- 尺寸:75x55x15mm
编译环境介绍
Processing 软件介绍
1.软件下载与安装
Processing软件官方下载地址
软件是绿色版本,软件解压缩后即可使用。目前最新版已经更新到3.0
2.Processing 软件使用说明
打开软件只需双击执行Processing.exe 执行文件,就可以看到如下程序编译窗口:
工具栏快捷按钮说明:
- 序号1:用来测试程序运行的结果和作品展示。也可以使用Ctrl+R 快捷键。
- 序号2:停止执行:点击按钮可以停止当前运行的程序。
- 序号3:新建文件:点击按钮会打开一个新程序窗口。
- 序号4:打开:点击按钮会出现Processing 自带的例子文件和自己创建的文件名称。
- 序号5:保存:点击保存当前程序代码。第一次存储会要求输入保存位置和文件名称。
- 序号6:导出:导出功能会在文件夹所在的路径中生成一个applet 文件夹旧版Processing 会生成多种格式文件html、gif、jar、java、pde 这些格式是为了方便在浏览器中浏览作品而生成的。新版的Processing 在输出的时候会出现导出选项方便导出在在各种系统中运行的文件。
Arduino IDE 软件介绍
Arduino入门教程
Carduino UNO 驱动安装方法
Arduino编程参考手册
Processing基本语言
Processing 使用起来要比其他编译软件更易懂,与Arduino 开发环境很相似,Processing 的编程语言更为简单和人性化,Processing 编程语言基于JAVA 语言,但也可以使用其他语言,主要由于它将一些常用语句组合函数化。
Processing 程序基本架构
与Arduino 一样一个Processing 程序分为两部分;
void setup()
在这个函数里放置初始化Processing 的程序,使主循环程序在开始之前设置好相关参数。
void draw()
这是Processing 的主函数。这套程序会一直重复执行,直到点击停止按钮。
注:这里介绍的是Processing 程序的基本架构并不是一定要包含这两个部分。
使用方法
第一个Processing程序
打开软件,将下面代码复制到软件中,然后单击运行按钮,会出现显示输出窗口
void setup() { size(500, 500);//设置画布大小500*500像素 } void draw() { if (mousePressed) {//检测鼠标按键是否按下 fill(0);//填充黑色 } else { fill(255);//填充白色 } ellipse(mouseX, mouseY, 60, 80);//以鼠标坐标为圆心画椭圆
程序效果:输出窗口显示为灰色画面,然后在输出窗口移动鼠标椭圆跟随光标移动,点击鼠标任意键椭圆变成黑色跟随光标移动。
Processing与Arduino互动之LED指示灯
所需硬件
- Arduino LED发光模块 食人鱼灯 绿色高亮*1个
- Arduino LED发光模块 食人鱼灯 红色高亮*1个
- Arduino LED发光模块 食人鱼灯 黄色高亮*1个
- Carduino UNO 控制器*1个
- Arduino Sensor Shield V5.0 传感器扩展板*1个
- 3P传感器连接线*3条
例子程序
Processing程序:
import processing.serial.*; Serial myPort; // 创建串口名称 PFont font;//创建字体变量 void setup() { size(230, 200);//画布大小 myPort = new Serial(this,"COM6",9600);//串口初始化 font = createFont("楷体",48,true);//载入系统字体 } void draw() { background(255);//背景颜色 if (mouseOverRectR() == true) { // 判断鼠标是否在方块上 fill(255,0,0);// 方块填充绿色 myPort.write('R'); // 串口发送‘R’ rect(20, 120, 50, 50);// 绘制一个方块 }else{ fill(125); rect(20, 120, 50, 50);// 绘制一个方块 fill(255,0,0);// 方块填充蓝色 textFont(font,50);//设置字体大小 text("红", 20, 165); } if (mouseOverRectG() == true) {// 判断鼠标是否在方块上 fill(0,255,0);// 方块填充绿色 myPort.write('G');// 串口发送‘G’ rect(20+20+50, 120, 50, 50);// 绘制一个方块 } else{ fill(125); rect(20+20+50, 120, 50, 50);// 绘制一个方块 fill(0,255,0);// 方块填充蓝色 textFont(font,50);//设置字体大小 text("绿", 20+20+50, 165); } if (mouseOverRectY() == true) {// 判断鼠标是否在方块上 fill(255,255,0);// 方块填充黄色 myPort.write('Y');// 串口发送‘B’ rect(20+20+50+20+50, 120, 50, 50);// 绘制一个方块 }else{ fill(125); rect(20+20+50+20+50, 120, 50, 50);// 绘制一个方块 fill(255,255,0);// 方块填充黄色 textFont(font,50);//设置字体大小 text("黄", 20+20+50+20+50, 165); } fill(255,125,255); textFont(font,25);//设置字体大小 text("把鼠标移动到方块上", 3, 50); } boolean mouseOverRectR() { // 测试鼠标是否在方块上 return ((mouseX >= 20) && (mouseX <= 20+50) && (mouseY >= 120) && (mouseY <= 120+50)); } boolean mouseOverRectG() { // 测试鼠标是否在方块上 return ((mouseX >= 20+20+50) && (mouseX <= 20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); } boolean mouseOverRectY() { // 测试鼠标是否在方块上 return ((mouseX >= 20+20+50+20+50) && (mouseX <= 20+50+20+50+20+50) && (mouseY >= 120) && (mouseY <= 120+50)); }
将上面的程序文件复制到Processing编译器中,注意其中的“COM6”需要根据每个人电脑中UNO的串口不同而各异。