加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
用arduino制做超声波雷达
布布卡2013/08/22电子技术 IP:河北
先看这贴
[创新资料]自制USB雷达 ------------ 架设你自己的导弹防御系统
https://www.kechuang.org/t/54197
之后查找了资料 发现有processing编写的上位机






于是:
所需材料:arduino控制板(mini版需要转usb)、步进电机及驱动板 、SR04之类的超声波测距模块、电脑一台。
130822-130548.jpg 130822-130703.jpg 130822-130638.jpg








  arduino说明:
vcc 接D2           TRIG接 D3         ECHO接 D4            GND接D5
捕获5.png
程序不带步进电机部分(我手头的电机很奇怪 五根线 测量其电阻关系很奇葩。。你要按情况加上)












上位机程序用的processing(你可以不下载processing,我编译出来windows 32的可执行程序)
串口发来一个信号扫描一帧 所以最好用步进电机
串口要是用我编译好的需要改成最靠前的串口。图上的com4是对于我机子而言的
















捕获3.png
捕获7.png







固定模块手渐渐远离






捕获.png




文件   捕获6.png
捕获2.png
+400  科创币    game00over    2013/08/22 好帖!!
+25  科创币    badboy-fly    2013/08/22
+200  科创币    ms1175555    2013/08/22 高质量发帖
+25  科创币    delete    2013/08/22 不懂编程,但看起来十分实用。
+25  科创币    yurifreeman    2013/08/22 好东西!!
来自:电子信息 / 电子技术
37
1
新版本公告
~~空空如也
badboy-fly
11年10个月前 IP:未同步
562681
我觉得导弹防御就免了。。。。。做一个雷达防半夜查房的老妈和老师最好是可以连接手机用。。不用电脑
+10
科创币
奇侠
2013-08-22
好主意~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
562684
arduino






串口发数据要用 Serial.write!!








processing






下载 5.44 MB 百度网盘 :
在等几分钟
还是算了 论坛上传 百度网盘 115网盘都不能上传。。。
需要java支持
processing下载
  http://pan.baidu.com/share/link?shareid=1480590828&uk=3608661149
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
562690
回 1楼(badboy-fly) 的帖子
红外热式传感器 +315收发(接口需要用俩三极管转换电平)+你想要的[s:274]
成本低
或者直接红外激光来回反射 再返回来(隐蔽)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
badboy-fly
11年10个月前 IP:未同步
562743
回 3楼(布布卡) 的帖子
问题是手机的软件。。。是个难题啊!我不会说我现在还不会编程。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
xldfs
11年10个月前 IP:未同步
562744
arduino——这个翻译成中文是不是  安卓 的意思啊?
+1
科创币
布布卡
2013-08-22
Android=Arduino??安卓=阿杜伊诺??
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
562756
回 4楼(badboy-fly) 的帖子
用手机不一定是最好的方案 1传输问题(距离 成本等等)2体积安装隐蔽性 3待机时间 4丢失成本5手机系统。。。。。。
如果用红外热释传感器+315遥控(不对码 发射端用一个较高频率的音频振荡器调制)   感应到后接收端收到震荡信号 放大后给喇叭(音量 频率调好后穿透力极弱 可以达到门外听不见。。年龄大对高频不感冒)             成本低      可多间宿舍“共享”[s:274]


processing 可以编译出安卓程序
http://wiki.processing.org/w/Android(研究了一段时间也没研究明白[s:275]) 以processing android可以搜出一大些相关资料
具体安卓上只干过用蓝牙串口通信( 这个十分简单 就是 arduino上接上蓝牙模块 安卓上打开蓝牙串口软件 选好端口。。之后发送接收数据。。[s:275] )可以到安卓开发论坛问问 www.apkbus.com
另外编程还是简单学学 很有意思 比如上面这个程序 其实就是画直线和红点 。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
badboy-fly
11年10个月前 IP:未同步
562757
回 6楼(布布卡) 的帖子
我的想法是不是这样啊……我是想以那个火箭弹为基础将电脑监控移到手机上……然后去掉发射台用来做雷达监控周围移动的物体……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
562767
回 7楼(badboy-fly) 的帖子
这个东西现在只是玩具级。。超声测距没精度没速度的 上午买了片线性ccd 尝试做激光测距 (同样做好后一改就成二维激光雷达)
移到手机上  应该是可以的 不过我没成功(需要下的软件挺多)现在在安卓模式出错。
捕获.png
+1
科创币
yurifreeman
2013-08-23
android的要有SDK才行。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
badboy-fly
11年10个月前 IP:未同步
562773
回 8楼(布布卡) 的帖子
哇!感觉好复杂啊!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
562849
话说我的步进电机也是5根线的..........
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563294
回 10楼(yurifreeman) 的帖子
驱动成功了  随便接上就转了。。
安卓上也尝试了一下 编了个小程序运行了(按照http://wiki.processing.org/w/Android一步步操作) 但是不能用串口。。。晕死 晕死。。。
+40
科创币
badboy-fly
2013-08-24
加油啊!
+10
科创币
yurifreeman
2013-08-24
加油
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
563332
我也做了个试了一下,但是不知为什么processing运行时没有出现图上的那个绿圈..........
代码完全是复制粘贴过去的,应该没问题,但是为什么会出现这种情况?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563334
回 12楼(yurifreeman) 的帖子
截图   processing下方 选对com口了吗?
捕获.png
将com口对应编号写在代码里
另外arduino串口发送数据时才能不断绘图
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563338
现在尝试激光雷达 先要完成激光测距模块 先要完成线阵ccd模块 先要完成ccd的电路
搭好了电路 下一步尝试用一片51单片机产生时钟信号并完成信号二值化   130824-181931.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
563345
回 13楼(布布卡) 的帖子
额................确实搞错了.............
又试了一下,不知为何达不到图上的效果,distance的那个地方一直是0
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563349
回 15楼(yurifreeman) 的帖子
arduino部分咋么布置的?安装测距模块了吗?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563351
回 15楼(yurifreeman) 的帖子
要不然现将arduino中最后面的 Serial.write(echocm);  改为 Serial.println(echocm);    先用自带的串口查看是否返回正确的距离值(单位厘米)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
563358
回 16楼(布布卡) 的帖子
照着图上装的。后来想测试一下模块是不是坏了,但是以前编的程序找不着了........... [s:275]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
563362
回 17楼(布布卡) 的帖子
用此方法试过了,distance卡在48就不动了.........
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563372
回 19楼(yurifreeman) 的帖子
刚才出去了趟
卡在48就不动了,1你是用的什么程序看的  2你的源代码发上来我看一看
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
563375
回 20楼(布布卡) 的帖子
1:processing
2:arduino代码,自己稍改了一下
const int TrigPin = 3;
const int EchoPin = 4;

float SR04cm;
float m;
float dis=0;
float dis2=0;
float SR04()
{
      digitalWrite
      (TrigPin, LOW);
      delayMicroseconds(2);  
      digitalWrite(TrigPin, HIGH);
      delayMicroseconds(12);
      digitalWrite(TrigPin, LOW);  
      SR04cm = pulseIn(EchoPin, HIGH) / 58.00; //算成厘米 //
      SR04cm = (int(m * 100.0)) / 100.0; //保留两位小数
      delayMicroseconds(2);return SR04cm;}
void setup()
{
      Serial.begin(9600);  
      pinMode(TrigPin, OUTPUT);
      pinMode(EchoPin, INPUT);
}
void loop()
{
      int echocm=SR04();
      Serial.println(echocm);
      delay(10);
}

processing代码,没改过

import processing.serial.*;
Serial myPort=new Serial(this, Serial.list()[1], 9600);

float r=250;
float a=0;
float x, y;
void setup()
{  
     size(600, 600);  
     background(0);  
     smooth();  
     stroke(255);  
     frameRate(100);  
     println(Serial.list());
}
void draw()
{  
     displayX();  
     displayY();  
     fill(0,3);  
     noStroke();  
     rect(0, 0, width, height);  
     x=r*cos(a);  
     y=r*sin(a);  
     if (myPort.available()>0)
     {    
         int data;    
         data=myPort.read();      
         fill(255);    
         text("DISTANCE:", 30, 50);    
         text(data, 100, 50);    
         stroke(0, 200, 0);    
         strokeWeight(4);    
         line(width/2, height/2, width/2+x, height/2+y);//步进电机转一下,扫描线转一下    
         a=a+0.0124;//弧度增加    
         if (data<=50)
         {      
            stroke(255, 0, 0);      
            strokeWeight(10);      
            float locx, locy;      
            locx=5*(data-1)*cos(a);      
            locy=5*(data-1)*sin(a);      
            point(width/2+locx, height/2+locy);    
          }  
      }
}
void displayX()
{  
     for (int i=-250;i<300;i+=50)
     {    
         fill(255);    
         if (i<=0)      
           text(i, i+300, 300);    
         else      
           text(i, i+285, 300);  
      }
}
void displayY()
{  
      for (int i=250;i>=-250;i-=50)
      {    
          if (i!=0)
          {      
              fill(255);      
              text(i, 300, 300-i);    
           }  
       }
}
截图:
QQ图片20130824204751.jpg



加载全文
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563381
回 21楼(yurifreeman) 的帖子
arduino 的源代码有问题复制时估计 “//”错位了。。

之后有个变量m 在SR04中重写了上一句的数值(保留两位小数那句)
用这个(直接在processing用)
attachment icon SR04.zip 0.41KB ZIP 66次下载
+5
科创币
yurifreeman
2013-08-24
ok了。多谢。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yurifreeman
11年10个月前 IP:未同步
563392
ok了。多谢。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563401
回 23楼(yurifreeman) 的帖子
其实是我粘代码时格式出了点问题 粘乱了  现在编辑了。删了些调试时留下的无用语句
ps 论坛上传好慢。。。5mb文件传不上来 我用的无线网络 难道无线网络上传很慢?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563403
关于步进电机(用6 7 8 9口) 要在setup()中加入

for(int i=6;i<=9;i++)
   {
     pinMode(i,OUTPUT);
   }
  
      for(int i=6;i<=9;i++)
   {
      digitalWrite(i,1);
   }
}
再在 loop() 中加入步进一步的代码
for(int i=6;i<=9;i++)
    {
       digitalWrite(i,0);
       delay(5);  //改小了电机快 但太小了就成震动了。。
       digitalWrite(i,1);
      
     }
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563430
电机接线图
235029zpovx7f1b4rsw7yb.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gurite
11年10个月前 IP:未同步
563478
[s:313]是不是只有3米的范围
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563501
回 27楼(gurite) 的帖子
这个看测距模块 并且要在程序中改数值
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
奇侠
11年10个月前 IP:未同步
563509
Re:回 28楼(布布卡) 的帖子
引用第28楼布布卡于2013-08-25 11:26发表的 回 27楼(gurite) 的帖子 :
这个看测距模块 并且要在程序中改数值  

考虑试试这个
http://item.taobao.com/item.htm?spm=a230r.1.14.40.cAdF6B&id=13735440810&initiative_new=1
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563512
回 29楼(奇侠) 的帖子
要精度和距离就用激光测距 2000左右  这种看过 学校里机器车使得就是这种( 不过是模拟输出0-5v 稳定性好200一个[s:275])
sr04 才六元。价格差16倍
注SR04参数:
探测距离:2cm-450cm    
精度:0.3cm
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
10班陈大葱22号
11年10个月前 IP:未同步
563520
超声波测距模块做不了雷达啊.. 那玩意测到是扇面内距离最近的物体的距离
除非用基恩士的300kHz频率超声波的那种,声波扩散角只有1度左右,不过测的距离就近很多,量程只有1m
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡作者
11年10个月前 IP:未同步
563995
回 31楼(10班陈大葱22号) 的帖子
大体玩玩可以的 的确有时还发生声波反射不回来的问题          
另外lcd现在还没驱动 arduino太慢。。4017分频波形也有问题
想用stm32(放学校了[s:275])jlink之前还烧了[s:273]。。后天开学[s:225]。。。作业没写[s:226]。。。
+25
科创币
wenrui
2013-08-27
真悲剧。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
茫羽
11年10个月前 IP:未同步
564369
回 5楼(xldfs) 的帖子
应该是安德鲁,前一阵子在学的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
boget8181
10年6个月前 IP:台湾
734560
可再给Processing的载点吗?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
3.14
10年6个月前 IP:四川
735295
好旧的贴。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
飞天狂想
10年6个月前 IP:广东
736402
引用 yurifreeman:
话说我的步进电机也是5根线的..........
5线 4相的···步进·
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
学员
9年0个月前 修改于 9年0个月前 IP:福建
819728
手机超声波processing代码
Other
// Proje Hocam - Radar Projesi // Murat DURAN - V2 import processing.serial.*; // kütüphane entegresi import java.awt.event.KeyEvent; import java.io.IOException;      Serial myPort;      String angle=""; String distance=""; String data=""; String noObject; float pixsDistance; int iAngle, iDistance; int index1=0; int index2=0; PFont orcFont;      void setup() {        size (1166, 500); smooth(); myPort = new Serial(this,"COM3", 9600); // Com portunu se?in myPort.bufferUntil('.');      }      void draw() {          fill(98,245,31);        noStroke();   fill(0,4);   rect(0, 0, width, 1010);          fill(98,245,31); // ye?il renk        drawRadar();   drawLine();   drawObject();   drawText(); }      void serialEvent (Serial myPort) {        data = myPort.readStringUntil('.');   data = data.substring(0,data.length()-1);          index1 = data.indexOf(",");   angle= data.substring(0, index1);   distance= data.substring(index1+1, data.length());               iAngle = int(angle);   iDistance = int(distance); }      void drawRadar() {   pushMatrix();   translate(683,700);   noFill();   strokeWeight(2);   stroke(98,245,31);   // draws the arc lines   arc(0,0,1300,1300,PI,TWO_PI);   arc(0,0,1000,1000,PI,TWO_PI);   arc(0,0,700,700,PI,TWO_PI);   arc(0,0,400,400,PI,TWO_PI);   // draws the angle lines   line(-700,0,700,0);   line(0,0,-700*cos(radians(30)),-700*sin(radians(30)));   line(0,0,-700*cos(radians(60)),-700*sin(radians(60)));   line(0,0,-700*cos(radians(90)),-700*sin(radians(90)));   line(0,0,-700*cos(radians(120)),-700*sin(radians(120)));   line(0,0,-700*cos(radians(150)),-700*sin(radians(150)));   line(-700*cos(radians(30)),0,700,0);   popMatrix(); }      void drawObject() {   pushMatrix();   translate(683,700);   strokeWeight(9);   stroke(255,10,10); // k?rm?z? renk   pixsDistance = iDistance*22.5;   // 40 cm ye kadar ?l?er   if(iDistance<40){ line(pixsdistance*cos(radians(iangle)),-pixsdistance*sin(radians(iangle)),700*cos(radians(iangle)),-700*sin(radians(iangle))); } popmatrix(); void drawline() { pushmatrix(); strokeweight(9); stroke(30,250,60); translate(683,700); line(0,0,700*cos(radians(iangle)),-700*sin(radians(iangle))); drawtext() if(idistance>40) {   noObject = "Out of Range";   }   else {   noObject = "In Range";   }   fill(0,0,0);   noStroke();   rect(0, 1010, width, 1080);   fill(98,245,31);   textSize(25);   text("10cm",800,690);   text("20cm",950,690);   text("30cm",1100,690);   text("40cm",1250,690);   textSize(40);   text("Object: " + noObject, 240, 1050);   text("Angle: " + iAngle +" °", 1050, 1050);   text("Distance: ", 1380, 1050);   if(iDistance<40) {   text("        " + idistance +" cm", 1400, 1050);   }   textsize(25);   fill(98,245,60);   translate(390+960*cos(radians(30)),780-960*sin(radians(30)));   rotate(-radians(-60));   text("30°",0,0);   resetmatrix();   translate(490+960*cos(radians(60)),920-960*sin(radians(60)));   rotate(-radians(-30));   text("60°",0,0);   translate(630+960*cos(radians(90)),990-960*sin(radians(90)));   rotate(radians(0));   text("90°",0,0);   translate(760+960*cos(radians(120)),1000-960*sin(radians(120)));   rotate(radians(-38));   text("120°",0,0);   translate(840+900*cos(radians(150)),920-960*sin(radians(150)));   rotate(radians(-60));   text("150°",0,0);   popmatrix(); }< code></40)></40){>

attachment icon processing.test.processing2reference.1399111264416.zip 608.61KB ZIP 78次下载
arduinoradarboardprojehocam.png
加载全文
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
布布卡
学者 机友 笔友
文章
100
回复
2384
学术分
4
2010/02/21注册,5时1分前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的