如何自制一个串口显示的图表
来源:网络收集 点击: 时间:2024-05-05下载processing和安装java,自行百度方法,字体选择MONO_SPACE可以设置中文注释
2/4串口发送数据的格式是以空格隔开
arduino示例如下施荡://这里是我自己的mpu6050库,你们参考数据格式就好。
#include Mpu6050_Kalman.h
void setup() {
// put your setup code here, to run once:
init_mpu6050();
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
getXYZ_mpu6050(1.05,1,1.0); //好
Serial.print(agx); Serial.print( );
Serial.print(agy); Serial.print( );
Serial.println(agz);
delay(50);
}
3/4processing代码如下:
import processing.serial.*;
Serial myPort;
int xPos = 1;
char classflag=A; //做什么样的图形
int linenum; //判断有几条线段
float SerialData= new float,SerialData_last= new float;
void setup () {
size(1200, 600); //在这里定义了height和width
println(Serial.list());
myPort = new Serial(this, Serial.list(), 9600);//选择串口
myPort.bufferUntil(\n);
background(0);
textSize(20);
textAlign(CENTER);
}
void draw () {
text(classflag:,48,20);
text( ,100,20);
text(classflag,100,20);
text(linenum:,48,40);
text(linenum,100,40);
text(color:yellow blue white,110,80);
switch(classflag)
{
压诸驾 case A:
for(int i=0;ilinenum;i++)
{
choose(i);
line(xPos,height,xPos,height-SerialData);
}
break;
case B:
for(int i=0;ilinenum;i++)
{
strokeWeight(1);
choose(i);
line(xPos,height-SerialData,xPos,height-SerialData_last);
激侨 }
break;
case C:
for(int i=0;ilinenum;i++)
{
strokeWeight(8);
choose(i);
point(xPos,height-SerialData);
}
break;
}
if (xPos = width) {
xPos = 0;
background(0);
} else {
xPos++;
}
}
void choose(int Color)//选择线或者点的颜色
{
switch(Color)
{
case 1:
stroke(226, 190, 137);//黄
break;
case 2:
stroke(7, 16, 240);//蓝色
break;
case 3:
stroke(255, 255, 255);//白色
break;
default:
stroke(255, 255, 255);//白色
break;
}
}
//串口事件
void serialEvent (Serial myPort) {
String inString = myPort.readStringUntil(\n);
if (inString != null)
{
SerialData_last=SerialData;
inString = trim(inString);
SerialData=float(split(inString, ));
linenum=SerialData.length;
println( );
for(int i=0;iSerialData.length;i++)
{
println(SerialData);
SerialData= map(SerialData, -180, 180, 0, height);
}
println( );
}
}
//按键事件,选择显示的类型
void keyPressed()
{
switch(key)
{
case A:
classflag=A;
break;
case B:
classflag=B;
break;
case C:
classflag=C;
break;
}
background(0);
xPos=0;
}
4/4放一张图

processing中代码含义可以参考手册
arduino只是示范格式而已,你们参考就好,其他单片机亦可
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_683813.html