一步一步用arduino与Processing实现雷达扫描(1)

62 篇文章 28 订阅
37 篇文章 15 订阅

平时,我们在军事题材的电影中看到雷达扫描的画面,感觉很酷很炫,实际,对于今天的我们来说这个效果要实现并不是很难,只不过步骤较多而已。所以我们需要一步一步来实现,也就有了我这篇(或者要用几篇的篇幅来实现)《一步一步用arduino与Processing实现雷达扫描》。
整体效果我已经上传到优酷了
首先把我们要实现的步骤简单勾勒一下(我们要制作一个360度的雷达扫描):

一、软件实现
1、绘制雷达表盘
2、增加扫描线
3、实现拖影效果
4、实现目标扫描点显示(渐出效果)
二、硬件实现
1、准备器材(arduino UNO、360度舵机、超声波传感器、扩展板)
2、雷达平台
三、联合调试
1、串口通讯接受数据
2、扫描点的显示函数改造

废话不多说,我们就用Processing来绘制雷达扫描的表盘。实现后的效果如下:
在这里插入图片描述
步骤如下
1、我们首先在一个高宽均为600的画布中绘制一个半径为300的圆,并且依次递减半径产生6个同心圆;
2、绘制十字坐标
3、绘制刻度距离
4、绘制扫描线
代码如下:

int offset=10;
float x, y;
float r=300;
float a=0;
 float pi=3.141592697932;
void setup()
{
  size(600,600);

      background(0);
}


void draw()
{
  
  background(0);
  x=r*cos(a);
  y=r*sin(a);
  
  //绘制扫描线
  fill(0,180,0);             	//设置扫描线颜色
  line(width/2, height/2,    //扫描线的起点在屏幕中央
  width/2+x, height/2+y);    //x,y分别是两个方向上的增量
  
    //绘制坐标轴
  fill(0,110,0,50);          //设置四轴颜色
  for(int i=0;i<4;i++)
  {
   line( width/2, height/2,    //扫描线的起点在屏幕中央
   width/2+r*cos(i*pi/2), height/2+r*sin(i*pi/2));
  }
  
  //同心圆绘制
    //fill(0,0,110,2);
    stroke(0,110,0);
  for(int j=1;j<7;j++)
  ellipse(width/2,height/2,  
  2*50*j,2*50*j);
  
  //刻度标识距离
  fill(160,250,160);
  for(int ii=0;ii<4;ii++)
  {
    for(int t=0;t<6;t++)
    text(t*50,width/2+t*50*cos(ii*pi/2), height/2+t*50*sin(ii*pi/2));   
  }
  
  fill(0,180,00);
  text("Angle:"+(a/pi)*180,480,580);
  
  //扫描角度变化
  a=a+0.0124;
  
  
}

这里要注意,扫描线是动态变化的,需要用到cos和sin函数,好在Processing中不需要引入math库,直接可以使用cos和sin,的确很方便。

到现在为止,我们利用Processing完成了第一步,表盘的绘制和简单扫描线的实现。下一篇,我们实现扫描线的拖影效果和模拟扫描点的显示效果。
这里预告一下增加拖影及模拟扫描点的效果:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河西石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值