Arduino Radar项目

在这个Arduino教程中,我将向您展示如何使用Arduino Board和处理开发环境来使这款酷炫的雷达。您可以观看以下视频或阅读下面的书面教程以获取更多详细信息。

概述


你所需要的一切Arduino项目是一种用于检测物体的超声波传感器,是一个用于旋转传感器的小型爱好者伺服电机和用于控制它们的Arduino板。您可以观看以下视频或阅读下面的书面教程。

这个Arduino项目所需的组件


您可以从下面的任何网站获取这些组件:

必威外围提钱披露:这些是联盟链接。作为亚马逊助理,我从合格购买中获得。

建立设备


  • 首先,我制作了一个用于将超声波传感器连接到伺服电机的纸板支架。我折叠它就像它在下面的图片上所示,用这样的螺丝粘在一起并固定到伺服电机上。

Arduino-雷达 - 纸板架

  • 此外,我还附上了一个针头标题,我焊接了4个跳线,用于连接传感器。

Arduino-radar-pin-meber

  • 最后,我使用弹性带将伺服电机固定到Arduino板上。

arduino-radar-complete

邦神超声波传感器也有专门的安装支架。你可以从以下链接获得:

超声波传感器 - 安装支架

Arduino雷达电路原理图


我将超声波传感器HC-SR04连接到引脚数10和11以及伺服电机到Arduino板上的引脚12号。

Arduino-Radar-Circuit方法

源代码


现在我们需要制作代码并将其上传到将启用Arduino与处理IDE之间的交互的Arduino板。了解如何连接工作点击此处访问我的Arduino和处理教程

Arduino-and-Procession-IDE

以下是Arduino源代码,其中包含代码的每一行:

//包含Servo库#include 。//定义超声波传感器的Tirg和Echo引脚const int trigPin = 10;const int echoPin = 11;//持续时间和距离长持续时间的变量;int距离;伺服myServo;//创建一个伺服对象来控制伺服电机void setup() {pinMode(trigPin, OUTPUT);//将trigPin设置为输出pinMode(echoPin, INPUT);//将echoPin设置为输入序列begin(9600);myServo.attach (12); // Defines on which pin is the servo motor attached } void loop() { // rotates the servo motor from 15 to 165 degrees for(int i=15;i<=165;i++){ myServo.write(i); delay(30); distance = calculateDistance();// Calls a function for calculating the distance measured by the Ultrasonic sensor for each degree Serial.print(i); // Sends the current degree into the Serial Port Serial.print(","); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing Serial.print(distance); // Sends the distance value into the Serial Port Serial.print("."); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing } // Repeats the previous lines from 165 to 15 degrees for(int i=165;i>15;i--){ myServo.write(i); delay(30); distance = calculateDistance(); Serial.print(i); Serial.print(","); Serial.print(distance); Serial.print("."); } } // Function for calculating the distance measured by the Ultrasonic sensor int calculateDistance(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds distance= duration*0.034/2; return distance; }

现在,我们将使用传感器从Arduino板上测量的角度和距离的值使用SeriaLevent()函数从串行端口读取数据,我们将把角度和距离的值放入变量IANGLE和IDISTANCE。这些变量将用于绘制雷达,线,检测到的对象和一些文本。
Radar-Print-Screen-02

用于绘制雷达,我制作了这个功能drawRadar ()这包括弧()(行)功能。

void drawradar(){pushmatrix();翻译(960、1000);//将启动协调员移动到新位置Nofill();中风(2);中风(98,245,31);//绘制弧线弧(0,0,1800,1800,PI,Two_pi);arc(0,0,1400,1400,pi,two_pi);arc(0,0,1000,1000,pi,twe_pi);弧(0,0,600,600,pi,twe_pi);//绘制角度线线(-960,0,960,0); line(0,0,-960*cos(radians(30)),-960*sin(radians(30))); line(0,0,-960*cos(radians(60)),-960*sin(radians(60))); line(0,0,-960*cos(radians(90)),-960*sin(radians(90))); line(0,0,-960*cos(radians(120)),-960*sin(radians(120))); line(0,0,-960*cos(radians(150)),-960*sin(radians(150))); line(-960*cos(radians(30)),0,960,0); popMatrix(); }

用于绘制沿着雷达移动的线,我制作了这个函数drawline().它的旋转核心与转换()函数设置,并使用Line()函数,其中使用IANGLE变量的行每度重新绘制该行。

void drawLine() {pushMatrix();strokeWeight (9);中风(30250、60);翻译(960、1000);//移动起始坐标到新的位置线(0,0,950*cos(弧度(iAngle)),-950*sin(弧度(iAngle)));//根据角度绘制线popMatrix();}

为了绘制检测到的对象,我做了这个drawobject()函数。它得到与超声波传感器的距离,将其转换为像素,并结合传感器的角度在雷达上绘制物体。

void drawObject() {pushMatrix();翻译(960、1000);//将起始坐标移动到新的位置strokeWeight(9);中风(255、10、10);//红色颜色pixsDistance = iDistance*22.5;/ /覆盖的距离传感器从cm像素/ /范围限制在40 cms如果(iDistance < 40){/ /吸引对象根据角度和距离线(pixsDistance * cos(弧度(iAngle)), -pixsDistance *罪(弧度(iAngle)) 950 * cos(弧度(iAngle)) -950 * sin(弧度(iAngle)));} popMatrix ();}

对于屏幕上的文本,我制作了drawText ()函数,在特定位置绘制文本。

所有这些函数都在主要中调用画()函数一直重复并绘制屏幕。在这里我正在使用这个填满()函数与2参数模拟运动模糊和缓慢褪色的移动线。

void draw(){填充(98,245,31);textfont(Orcfont);//模拟运动模糊和移动线Nostroke()的慢衰落;填充(0,4);矩形(0,0,宽度,1010);填充(98,245,31);//绿色//调用绘制雷达绘制的功能;drawline();drawobject();drawText(); }

这是雷达的最终外观:

Arduino雷达最终出现

以下是Arduino Radar的完整处理源代码:

导入处理。*;//导入串行通信导入java.awt.event.keyEvent的库;//导入用于从串行端口导入java.io.ioException读取数据的库;串行MyPort;//定义对象序列// defubes变量字符串角度=“”;字符串距离=“”;字符串数据=“”;string noobject;Float Pixsdistance;INT IANGRE,IDIASTANCE; int index1=0; int index2=0; PFont orcFont; void setup() { size (1920, 1080); smooth(); myPort = new Serial(this,"COM4", 9600); // starts the serial communication myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So actually it reads this: angle,distance. orcFont = loadFont("OCRAExtended-30.vlw"); } void draw() { fill(98,245,31); textFont(orcFont); // simulating motion blur and slow fade of the moving line noStroke(); fill(0,4); rect(0, 0, width, 1010); fill(98,245,31); // green color // calls the functions for drawing the radar drawRadar(); drawLine(); drawObject(); drawText(); } void serialEvent (Serial myPort) { // starts reading data from the Serial Port // reads the data from the Serial Port up to the character '.' and puts it into the String variable "data". data = myPort.readStringUntil('.'); data = data.substring(0,data.length()-1); index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1" angle= data.substring(0, index1); // read the data from position "0" to position of the variable index1 or thats the value of the angle the Arduino Board sent into the Serial Port distance= data.substring(index1+1, data.length()); // read the data from position "index1" to the end of the data pr thats the value of the distance // converts the String variables into Integer iAngle = int(angle); iDistance = int(distance); } void drawRadar() { pushMatrix(); translate(960,1000); // moves the starting coordinats to new location noFill(); strokeWeight(2); stroke(98,245,31); // draws the arc lines arc(0,0,1800,1800,PI,TWO_PI); arc(0,0,1400,1400,PI,TWO_PI); arc(0,0,1000,1000,PI,TWO_PI); arc(0,0,600,600,PI,TWO_PI); // draws the angle lines line(-960,0,960,0); line(0,0,-960*cos(radians(30)),-960*sin(radians(30))); line(0,0,-960*cos(radians(60)),-960*sin(radians(60))); line(0,0,-960*cos(radians(90)),-960*sin(radians(90))); line(0,0,-960*cos(radians(120)),-960*sin(radians(120))); line(0,0,-960*cos(radians(150)),-960*sin(radians(150))); line(-960*cos(radians(30)),0,960,0); popMatrix(); } void drawObject() { pushMatrix(); translate(960,1000); // moves the starting coordinats to new location strokeWeight(9); stroke(255,10,10); // red color pixsDistance = iDistance*22.5; // covers the distance from the sensor from cm to pixels // limiting the range to 40 cms if(iDistance<40){ // draws the object according to the angle and the distance line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),950*cos(radians(iAngle)),-950*sin(radians(iAngle))); } popMatrix(); } void drawLine() { pushMatrix(); strokeWeight(9); stroke(30,250,60); translate(960,1000); // moves the starting coordinats to new location line(0,0,950*cos(radians(iAngle)),-950*sin(radians(iAngle))); // draws the line according to the angle popMatrix(); } void drawText() { // draws the texts on the screen pushMatrix(); 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",1180,990); text("20cm",1380,990); text("30cm",1580,990); text("40cm",1780,990); 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(961+960*cos(radians(30)),982-960*sin(radians(30))); rotate(-radians(-60)); text("30°",0,0); resetMatrix(); translate(954+960*cos(radians(60)),984-960*sin(radians(60))); rotate(-radians(-30)); text("60°",0,0); resetMatrix(); translate(945+960*cos(radians(90)),990-960*sin(radians(90))); rotate(radians(0)); text("90°",0,0); resetMatrix(); translate(935+960*cos(radians(120)),1003-960*sin(radians(120))); rotate(radians(-30)); text("120°",0,0); resetMatrix(); translate(940+960*cos(radians(150)),1018-960*sin(radians(150))); rotate(radians(-60)); text("150°",0,0); popMatrix(); }

arduino雷达代码的新更新版本适合任何屏幕分辨率:

只需更改大小()函数中的值,屏幕分辨率就会。

/ * Arduino雷达项目* *更新版本。适合任何屏幕分辨率!*只需更改大小()函数中的值,*使用屏幕分辨率。* *由Dejan Nedelkovski,* www.howtbet188官方网站omechatronics.com * * /导入处理。*;//导入串行通信导入java.awt.event.keyEvent的库;//导入用于从串行端口导入java.io.ioException读取数据的库;串行MyPort;//定义对象序列// defubes变量字符串角度=“”;字符串距离=“”;字符串数据=“”; String noObject; float pixsDistance; int iAngle, iDistance; int index1=0; int index2=0; PFont orcFont; void setup() { size (1920, 1080); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION*** smooth(); myPort = new Serial(this,"COM4", 9600); // starts the serial communication myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So actually it reads this: angle,distance. orcFont = loadFont("OCRAExtended-30.vlw"); } void draw() { fill(98,245,31); textFont(orcFont); // simulating motion blur and slow fade of the moving line noStroke(); fill(0,4); rect(0, 0, width, height-height*0.065); fill(98,245,31); // green color // calls the functions for drawing the radar drawRadar(); drawLine(); drawObject(); drawText(); } void serialEvent (Serial myPort) { // starts reading data from the Serial Port // reads the data from the Serial Port up to the character '.' and puts it into the String variable "data". data = myPort.readStringUntil('.'); data = data.substring(0,data.length()-1); index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1" angle= data.substring(0, index1); // read the data from position "0" to position of the variable index1 or thats the value of the angle the Arduino Board sent into the Serial Port distance= data.substring(index1+1, data.length()); // read the data from position "index1" to the end of the data pr thats the value of the distance // converts the String variables into Integer iAngle = int(angle); iDistance = int(distance); } void drawRadar() { pushMatrix(); translate(width/2,height-height*0.074); // moves the starting coordinats to new location noFill(); strokeWeight(2); stroke(98,245,31); // draws the arc lines arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI); arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI); arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI); arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI); // draws the angle lines line(-width/2,0,width/2,0); line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30))); line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60))); line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90))); line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120))); line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150))); line((-width/2)*cos(radians(30)),0,width/2,0); popMatrix(); } void drawObject() { pushMatrix(); translate(width/2,height-height*0.074); // moves the starting coordinats to new location strokeWeight(9); stroke(255,10,10); // red color pixsDistance = iDistance*((height-height*0.1666)*0.025); // covers the distance from the sensor from cm to pixels // limiting the range to 40 cms if(iDistance<40){ // draws the object according to the angle and the distance line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle))); } popMatrix(); } void drawLine() { pushMatrix(); strokeWeight(9); stroke(30,250,60); translate(width/2,height-height*0.074); // moves the starting coordinats to new location line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // draws the line according to the angle popMatrix(); } void drawText() { // draws the texts on the screen pushMatrix(); if(iDistance>40) { noObject = "Out of Range"; } else { noObject = "In Range"; } fill(0,0,0); noStroke(); rect(0, height-height*0.0648, width, height); fill(98,245,31); textSize(25); text("10cm",width-width*0.3854,height-height*0.0833); text("20cm",width-width*0.281,height-height*0.0833); text("30cm",width-width*0.177,height-height*0.0833); text("40cm",width-width*0.0729,height-height*0.0833); textSize(40); text("Object: " + noObject, width-width*0.875, height-height*0.0277); text("Angle: " + iAngle +" °", width-width*0.48, height-height*0.0277); text("Distance: ", width-width*0.26, height-height*0.0277); if(iDistance<40) { text(" " + iDistance +" cm", width-width*0.225, height-height*0.0277); } textSize(25); fill(98,245,60); translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30))); rotate(-radians(-60)); text("30°",0,0); resetMatrix(); translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60))); rotate(-radians(-30)); text("60°",0,0); resetMatrix(); translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90))); rotate(radians(0)); text("90°",0,0); resetMatrix(); translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120))); rotate(radians(-30)); text("120°",0,0); resetMatrix(); translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150))); rotate(radians(-60)); text("150°",0,0); popMatrix(); }

356年响应

      • AD23

        亲爱的先生

        您所写的代码不会在我的Arduino IDE中编译。它显示“失踪作者”,你可以帮助我..我在哪里出错..

      • Dejan Nedelkovski.

        您是否尝试编译正确的代码,因为有代码,一个用于Arduino IDE,一个用于处理IDE,您是否正确复制了整个代码。我从未见过这样的错误。请再试一次。

      • 梅尔

        你好先生,我的雷达线没有从初始点移动它每次60度后被困扰。请帮我出来,什么是错误,我如何解决它

      • Waqar Ali.

        先生,你的代码不起作用可以给我你的电子邮件地址我会给你发给你的解决方案

      • Sai Kumar.

        先生,你好,
        IAM面临的问题在处理中,
        当我在处理中运行程序时,它突出显示程序=的行
        (orcfont = loadfont(“ocraexted-30.vlw”);)。它的原因是(无法加载字体ocraexted-30.vlw。确保通过处理所示的草图的数据文件夹已复制到“字体”。
        先生,帮帮我。

      • Dejan Nedelkovski.

        这个问题已经在下面的评论中得到了回答。
        在询问某事之前,您应该始终检查评论,因为通常有大多数人可能面临的问题答案。

      • 谢谢你的伟大项目。一切都完美无缺。我唯一可以添加到您的页面的是一个部分,您可以在其中谈论“ocraexted-30.vlw”字体的创建,以便处理代码无关。这比让人们通过评论部分挖掘答案会更好。

        再次感谢一个很棒的项目。

      • Mausam

        先生这个项目有一个问题。每当我使用CalculdistAnce()函数时,我的伺服电机开始缓慢旋转。但每当我消除伺服旋转的时候..为什么发生?

      • 4月Cyra C. Bala

        长官,怎么连接到监视器上?当你把arduino连接到电脑或笔记本电脑时,它会自动在屏幕上显示虚拟雷达吗?

      • oli.

        没有错误消息,但它没有显示红色雷达的东西

      • Dejan Nedelkovski.

        那么超声波传感器出问题了。你可能没有从传感器得到任何价值。首先在处理IDE上使用串行监视器检查传感器是否正常工作,并查看是否得到任何值。

      • 迈克

        代码完美地工作,但雷达没有通过处理完全绘制我如果我编译,我不会看到雷达的另一部分??为什么??

      • Dejan Nedelkovski.

        你应该调整屏幕分辨率。第一个代码用于1080p分辨率,但在本文的底部有一个更新版本,您可以根据您的PC分辨率设置程序的分辨率。

    • vic.

      我一直遇到字体错误。
      正在处理实际的工作格式吗?
      我需要开始创建字体之类的东西吗?
      我认为这是为了尝试编程代码。
      Arduino IDE从不打扰字体。是什么赋予了?
      这似乎是一个半烤制的系统。
      我最后一次被要求下载Java,它毁了计算机并在我的其他电脑上安装了病毒。现在我有一个受感染的电脑,让我盛大了一些盛大。
      为什么我不能只是复制和粘贴,命中运行并拥有它的工作?

      回复
    • 穆罕默德

      Q1。
      如果我们没有面向超声波的任何对象,则发送信号和接收信号是多少时间?

      Q2。
      为什么在代码中添加延迟(30)而不是更多或更少?

      回复
    • 布雷特

      只是一个恭维 - 优秀的网站,只刚刚找到它,保持良好的工作。

      回复
    • 乔尔

      这有什么类型的范围?是否适合为可以达到英里或更远的距离的船制造雷达?

      回复
    • 查理Grabow

      这个项目能和Arduino Uno一起工作吗?抱歉缺乏经验,我是一名学生,我目前只能访问那个模型,我想为一个项目做这个。谢谢你,顺便说一下,很棒的教程!

      回复
  1. 阿曼

    你好,先生。

    实际上我们在高中就这个项目进行了这个项目,所以我们需要原始项目的链接。我们没有很多时间去做,所以请尽快修复它。

    感谢您的关注。

    回复
  2. 啤酒

    我试图复制代码,但我可以从各地获得错误,你可以
    放置一个链接,任何人都可以复制所有代码

    回复
      • Rakib Anam.

        尊敬的先生,
        请帮助我了解我的项目有什么问题。
        我按照你在视频中展示的步骤来做。这是一个很棒的项目。
        我从这个网站复制了Arduino的代码,它的工作原理完美。超声波传感器很好地表示Arduino串行监视器中的距离和角度。问题在于处理代码。当我从处理器IDE运行代码时,它表示存在一些错误。我的处理IDE是版本为1.5.1我希望你的帮助和CO操作
        非常感谢

  3. 马克·G。

    嗨。我造这个雷达是为了给学校做实验。代码也兼容Arduino UNO吗?然后,最后的代码,必须放在处理IDE,而不是其他语言,对吗?
    谢谢

    回复
    • Dejan Nedelkovski.

      谢谢你的评论!是的,你是对的。我的教程和项目是免费的,所以每个人bet188me都可以使用它们,但如果有人在其他网站上使用它们,就像你说的那样,嗨应该提供与原始文章的链接。更重要的是,他甚至使用我的照片模糊我的徽标。

      回复
    • Dejan Nedelkovski.

      您不必使用该字体。如果在运行处理草图时发生此问题,这可以帮助您:
      问题可能是您应该首先在Processing IDE中生成字体。工具>创建字体,在这里选择字体和大小。这将在工作目录中生成适当的字体文件,以便您能够使用该字体。
      或者您可以在代码中删除这些行,处理将使用其默认字体。

      回复
    • Dejan Nedelkovski.

      如果你使用更新后的处理代码,可以在文章的底部找到,它可以适应任何屏幕分辨率。您只需要将屏幕分辨率的参数更改为您的屏幕分辨率。

      回复
  4. 阿布泰哈

    嘿..我完成了你所表现的东西。但我没有得到输出。在处理Windows中,雷达速度为零。它不会移动任何地方。你能帮我解决这个问题吗?

    回复
  5. 吉姆米

    我没有意识到Processing代码需要在processing.org的下载中执行。除此之外,我儿子和我都非常喜欢这个建筑。谢谢你!

    回复
  6. acerbusnyx.

    你能使用无线电器材公司的超声波测距传感器吗?它有3个像你用的一样的别针

    回复
    • Dejan Nedelkovski.

      是的,这是可能的。你必须修改这部分代码,而不是使用line(),而是使用椭圆(a, b, c,d)。a,b -椭圆的x,y坐标,c,d -椭圆的宽度和高度。

      回复
  7. 赫曼特

    嘿..我跟随你的步骤并完成了这个项目。在上传arduino上的草图后,我会在串行监视器上输出,但我无法在处理IDE上获取任何输出。雷达粘贴到一个固定点(零),它不会与电机同步移动。任何解决方案?

    回复
      • 赫曼特

        根本没有错误消息。雷达屏幕显示,但一切仍然仍然,即使设置正常工作,雷达中也不显示任何移动。

      • 赫曼特

        我还有一个问题。我使用arduino uno r3板,所以有没有可能这可能是它不工作的原因。我交叉检查了每一个连接,现在伺服也不动了。

      • 赫曼特

        伺服开始移动。因此,它是我为传感器制造的支持的怀疑,因为它没有移动。此外,我也没有使用面包板进行连接。伺服电缆连接到Arduino的5V引脚,传感器连接到9V电池。

  8. 迈克尔胡安

    嗨,我需要你的帮助。如果我想添加一些主动蜂鸣器和LED到你的代码,我试过一次,伺服转向真的很慢。你能教我代码,我可以加蜂鸣器和LED吗?

    回复
    • 迈克尔胡安

      看起来arduino的问题已经解决了,现在我可以正常工作了。现在的问题在于处理过程。如果我使用你的代码,它是很好的处理绘制声纳,但当我添加蜂鸣器和LED处理不会绘制声纳

      回复
  9. Vinay.

    先生
    代码在我的macbook pro上不起作用
    由于某些端口不可用的错误
    请给我一个解决方案

    回复
  10. 迈克尔

    德州,
    一个非常好的项目。
    我一直在一个美好的时光,从而全力以赴,学习一些“加工”的一些细节。
    做得好!

    我注意到,当停止和启动“Processing”时,串行通信有时会失败。如果接收到部分消息且结果字符串长度为0,则字符串处理可能会出现问题。

    我修改了代码,这样它就可以在"之前查找至少4个字符的字符串。”(即15 0)。

    ...
    data = myport.readstringuntil('。');
    if(data.length()> 4){//检查是否有足够的字符(即min“15,0。”)
    ...
    现有代码
    ...
    }
    }

    这似乎使串行链接更加可靠。

    还有许多其他方式处理异常,但这很简单

    干杯
    商务部

    回复
  11. 萨罗瓦

    运行arduino代码后,我得到以下消息:

    C:\ Users \ user \ documents \ arduino \ libraries \ sketch_jan09a \ sketch_jan09a.ino:2:19:警告:#include指令结尾的额外令牌[默认情况下]

    #包括 。

    素描使用6,138字节(2%)的程序存储空间。最大是253,952个字节。
    全局变量使用348字节(4%)的动态内存,为局部变量留下7,844个字节。最大是8,192字节。
    在c:\ users \ user \ documents \ arduino \ libraries \ sketch_jan09a:c:\ user \ user \ documents \ arduino \ libraries \ sketch_jan09a
    在c:\ users \ user \ documents \ arduino \ libraries \ sketch_jan09a:c:\ user \ user \ documents \ arduino \ libraries \ sketch_jan09a

    回复
  12. 亨利克

    嗨,是否可以使用USB作为串行端口,并重写代码?在编码时,我是漂亮的业余爱好者。

    回复
  13. bag

    SIR ..我有一个问题,它是“java.awt.event.keyEvent;它不存在。你可能错过了一个图书馆..

    回复
  14. 鲍里斯

    再会。这里有一些错误是怎么做的?
    Sketch_Jan10B:12:错误:'Import'不命名为类型

    导入java.awt.Event.keyEvent;//导入库从串行端口读取数据

    Sketch_Jan10B:13:错误:'Import'不命名为类型

    导入java.io.ioException;

    sketch_jan10b:14:错误:' Serial '没有命名类型

    串行MyPort;//定义对象序列

    Sketch_Jan10B:24:错误:'pfont'不命名为类型

    Pfont Orcfont;

    回复
    • Dejan Nedelkovski.

      我不知道为什么会发生这些错误。您可能正在做错事,再次重试与所描述的完全相同的过程,其中包含两个软件的最新版本。

      回复
  15. Akshay Agarwal.

    先生,我新arduino和之后的地面测量许多视频和网站我决定选择你的项目虽然我感到满意和非常退出,自己做一个,我做到了bt我面临的问题是一切工作大只出现在屏幕上的雷达不动和功能请先生帮我

    回复
    • Dejan Nedelkovski.

      给我一些关于你的问题的细节。它可以是任何东西。您是否正确将Arduino草图上传到Arduino,检查它是否与串行显示器正常工作。此外,您是否使用了在帖子底部的处理IDE代码的更新版本。

      回复
      • Akshay Agarwal.

        谢谢你的关心,正如你所说的,它真的帮助了我检查,我只是再次开始从一开始,使用新的加工草图,现在它正在工作,谢谢你,先生

    • induwara jayaweera

      这也发生在我身上。但是当我运行处理代码几次时,它开始正常工作了。可能是软件冻结了。

      回复
  16. Vinay.

    尊敬的先生,

    我的传感器以任何方式显示“0”距离。
    由于零读数,雷达显示出红色
    你能找到问题吗?

    回复
  17. 埃内斯托

    对不起,你能告诉我如何用这个相同的例子打开一个代码来打开一个代码,而是打开你想要的任何距离???
    你能帮我吗????

    回复
  18. L格林

    您好,我想尝试一下学校项目,但我想知道这是否适用于Arduino Yun?

    回复
    • Dejan Nedelkovski.

      是的,如果微控制器是ATMEGA32U4,并且Arduino Yun的销是5V。因为如果3.3V为3.3V,则可能对超声波传感器有问题,因为它在5V时工作。

      回复
      • L格林

        我尝试了一些东西,但是当我试图上传第一个代码时,我收到以下错误:

        Arduino: 1.6.6 (Mac OS X), Board:“Arduino/Genuino Uno”

        / Users / Usernwe / Schoolwerk / HKU /如果这是第1 / Code1 / Code1.ino:2:19:警告:#include指令结束时的额外令牌[默认情况下]
        #包括 。

        Sketch使用了5,136字节(15%)的程序存储空间。最大长度为32256字节。
        全局变量使用237字节(11%)的动态内存,为局部变量留下1,811个字节。最大值是2,048字节。
        avrdude: ser_open():不能打开设备“COM1”:没有这样的文件或目录
        ioctl(“TIOCMGET”):不适合设备的ioctl

    • L格林

      没关系其他评论,我想出来,一切都正常工作!谢谢你提出这个精彩的教程!

      回复
  19. 埃内斯托

    当我尝试copilet时,出现了这个问题“Error opening serial portCOM4:port not found”,你知道是什么问题吗?

    回复
    • 汤姆

      欧内斯托,我们有同样的问题。我们正在使用MAC电脑。现在我们将在Windows电脑上进行尝试。如果有用我会告诉你的。

      回复
  20. 尼尔瓦瓦

    先生,我需要一个led灯或蜂鸣器,当有物体进入射程时,你能告诉我怎么做吗?

    回复
    • Dejan Nedelkovski.

      它可以完成,但很抱歉我不能进行自定义代码。本教程和我的所有其他教程都在这里帮助您了解Arduino和一些编码,因此您可以实现为自己的项目制作自己代码所需的级别。

      回复
    • Obrelix

      嗨伴侣!
      您必须为您的电路添加压电
      选择一个你选择的引脚连接它
      然后将这些行添加到您的代码中

      const int piezopin = 8;

      int notes [] = {262,462,862,1662,3262};//在这里输入您喜欢的笔记

      每当您想要发出噪音时,请致电此功能

      void beep(){
      if(距离> 40){
      notone(piezopin);
      延迟(10);
      notone(piezopin);
      延迟(30);
      }
      否则if(距离30){
      口气(压脂,注意[1]);
      延迟(10);
      notone(piezopin);
      延迟(30);
      }
      Else if(距离20){
      音调(压浮蛋白,注意[2]);
      延迟(10);
      notone(piezopin);
      延迟(30);
      }
      否则if(距离10){
      音调(压脂,笔记[3]);
      延迟(10);
      notone(piezopin);
      延迟(30);
      }
      别的 {
      音调(压脂,注意[4]);
      延迟(10);
      notone(piezopin);
      延迟(30);
      }
      }
      我希望这能帮到您

      回复
  21. 牧童

    我希望超声波传感器覆盖10MTS或以上10米的范围,因此请提供传感器的细节,以便覆盖10MTS范围,以及我们必须在Arduino Board遮盖上建立连接的布局为了你的回复和感谢看见

    回复
  22. MJ.

    嗨,我的小沟乔丹。
    昨天我在建造雷达时,我在编码部分中有点混淆。我认为您的意思是复制Arduino代码并放在Arduino编码位置并将其上传在电路板上,然后复制并粘贴处理代码并执行相同的操作。但我有一个小问题。当我想上传处理的代码时,我会收到关于“MyPort = New Serial(这,”Com4“,9600)的这个错误;”在这个地方,我得到了问题。它说:错误打开串行端口COM4:未找到端口?
    Dejan请帮助我,我真的需要在一周内完成这个项目!!谢谢您的关注,先生

    回复
      • MJ.

        爵士爵士,我确实意识到COM在5中。但我现在确实改变了4个。但是发生了同样的事情就好像我没事......爵士的问题是什么问题?

  23. 亚当

    嗨Dejan。在将处理器上传到电路板时,我收到此错误“无法加载字体ocraexted-30.vlw。确保字体已被复制到草图的数据文件夹“意味着先生,谢谢。

    回复
  24. 先生,你好…
    你能分享如何改变雷达距离,我想改变1米......
    在您的项目中使用40厘米。
    谢谢你,先生。

    回复
  25. yash thakkar.

    在Ardunio Uno有什么需要改变的吗?或者我们需要遵循的相同的程序,有引脚变化或程序变化吗?

    先感谢您 ..

    回复
      • yash thakkar.

        Hey Dejan sir, nice project i was so excited to do and i started doing it but once i compiled code in both ardunio and proc it don’t gave error, but my servo doesn’t move once ardunio is compiled and once if i compile proc then it opens the Graph and that too moving can u fix it out.

        谢谢你的精彩份额。

  26. yash thakkar.

    我试图将引脚更改为8 9和10在我的uno中,但程序相同,那么它应该创建错误,但虽然没有错误,但没有移动。请帮助解决我的问题。

    回复
  27. 先生…
    如果更改距离的代码?
    我找了,但没找到。你能告诉我需要更改的代码在哪里吗?
    我需要你的建议
    感谢您的关注

    回复
  28. 仿血

    先生,你好!
    我们随后在学校进行测试,我们非常享受。但是,当我们尝试自己时,我们可以将所有程序与代码一起工作,并将代码进入Arduino Mega,但伺服电机变得非常缓慢,传感器不像它一样工作。处理屏幕只是显示红色,但与伺服相同的速度。你有什么建议吗?
    谢谢你的答案!

    回复
    • Dejan Nedelkovski.

      确保您的伺服电机正常使用不同的代码适用于伺服器,并确保您的超声波传感器正常工作(您可以通过针对特定主题的教程代码检查。至于伺服电机,您也可以尝试通过更改伺服循环中的Arduino代码中的延迟时间来更改旋转速度。至于处理IDE部件,请确保使用帖子底部的代码的最后一个(最新)更新版本。

      回复
  29. Enesh Fernando.

    可以有些人可以提及上述图书馆的下载链接。谢谢你!图书馆不可用。

    回复
      • Enesh Fernando.

        处理IDE无法正常工作。我认为屏幕分辨率可能存在问题。我修改了分辨率,但仍然处理不起作用。arduino代码没有问题。处理代码出现问题。你能澄清一下吗?

        谢谢

  30. andreas langberg.

    漂亮的指南!自己制作一个,它完美地工作。但是,在Linux中,您将定期从Tyyacm端口获取NullPointExceptions。只要你抛弃异常并让它继续,这不是一个问题,在你当前的版本中它没有。Simplest fix is to surround your serialEvent() function with a trycatch should make it skip less in windows as well.

    回复
  31. 爱迪生Kho.

    你好Dejan我有一个雷达半屏幕可能是我需要帮助的问题

    回复
  32. 杜阿丹

    嗨,呵呵,首先,我不得不说我看到你的其他项目,我很高兴看到我们在我们附近也有成功的Arduino开发人员bet188me。.现在我必须问你一些事情:我需要改变测量距离,使用最多6m的最大范围.PDE代码我需要修改的一部分(我知道我必须修改PIXSdistance但不知道如何)。我希望你能帮助我。
    祝你的项目顺利bet188me

    回复
    • Dejan Nedelkovski.

      谢谢!
      这是范围的重点:
      “PIXSDISTANCE = IVISTANCE *((高度 - 高度* 0.1666)* 0.025);//覆盖从cm到像素的传感器的距离“
      该行对应于40cm范围。“Invistance”是从CM的传感器的距离,“(高度 - 高度* 0.1666)”是根据屏幕分辨率的雷达的大小,这两种东西不需要变化。根据您的愿望范围,您需要更改的是“0.025”系数。
      让我们说你想要2米的范围,比40厘米更大5倍,所以在这种情况下,系数将是0.025 / 5 = 0.05。
      告诉我这对你是否有效。

      回复
  33. 玛丽亚

    你好,先生,你好,谢谢这个了不起的项目,我喜欢。但我没有经验,我想问你一件事,我上传arduino代码,它很好,上传,但在处理我得到错误:

    无法加载字体ocraextened-30.vlw。确保字体已复制到草图的数据文件夹

    回复
  34. Sandeep

    问候先生。
    我之前已复制并粘贴了处理IDE的代码,如前所述,但我无法获取每个代码之前显示的任何背景。
    对于样本,我尝试了您给生成弧的程序(第一个处理IDE程序)。
    但我在播放时我没有得到任何展示。
    arduino是否有必要连接到处理IDE中的显示器?

    回复
  35. 马略赫

    你好,谢谢你的努力,我只是想问,如果我必须实现雷达,但与电磁波,我怎么可以??

    回复
    • Dejan Nedelkovski.

      阅读本教程的其他评论,您将看到大多数人都有设施才能完成工作。所以该计划正在运作,问题必须与您同在,你可能会做错了什么。

      回复
  36. Abdul Rauf.

    先生,你好…!!
    我想尝试你的项目,但我有一个问题,我可以使用两个超声波传感器,而不是一个在360度达到我的雷达?

    回复
      • Abdul Rauf.

        谢谢你的回复先生,你能指导我有点修改。
        我会非常感谢你。

      • Abdul Rauf.

        void drawobject(){
        Pushmatrix();
        翻译(960、1000);//将启动协调员移动到新位置
        中风(9);
        中风(255、10、10);/ /红色
        PIXSDISTANCE = IVISTANCE * 22.5;//覆盖从cm到像素的传感器的距离
        //限制范围为40 CMS
        if(Idistance <40){
        //根据角度和距离绘制物体
        线(pixsDistance * cos(弧度(iAngle)), -pixsDistance *罪(弧度(iAngle)) 950 * cos(弧度(iAngle)) -950 * sin(弧度(iAngle)));
        }
        popmatrix();
        }
        我在将所有代码中复制到Arduino IDE之前,它在验证代码时提供以下错误。
        错误= " pushMatrix未在此范围内声明"
        请帮忙。

  37. 德阿隆

    pushMetrix()和popMetrix()在这个程序中没有声明。
    确保这些功能是否应该被声明。

    回复
  38. 阿尔本乔治

    先生,你好,
    虽然我正在尝试运行处理代码,但处理窗口获取挂起,并且显示了这些错误。
    无法运行草图(目标VM无法初始化)。
    有关更多信息,请阅读Revision.txt和帮助?故障排除。
    你能帮我解决这个错误吗?

    回复
    • 达摩斯山

      您应该根据您的Arduino连接到您的PC,更改COM端口的名称。

      回复
  39. 葡萄藤

    你好,先生,做这个项目很有趣。
    但是,你能告诉我如何增加雷达的范围超过40厘米。
    这里给出的项目的范围是40 CMS。
    好心的。

    回复
  40. Sai Krishna

    任何人都可以通过向这个程序添加Hall Sensor来告诉所述代码吗?

    回复
  41. girisankar

    导入处理。*;//导入串行通信库
    导入java.awt.Event.keyEvent;//导入库从串行端口读取数据
    导入java.io.ioException;
    她的arduino显示错误消息“导入”不会命名类型

    回复
    • Dejan Nedelkovski.

      你误解了这个项目的概念。
      Arduino代码需要上传到Arduino IDE。然后,处理IDE代码需要从处理IDE中“运行”,而不是Arduino IDE。

      回复
      • girisankar

        SIR我的处理显示一条消息无法加载字体OCraexted-30.vlw。确保已将字体复制到草图的数据文件夹中。那是什么意思?我在这个领域的新东西可以帮助我

  42. 桑潘穆克赫朱

    你好…。
    我在处理中的控制台窗口没有显示......无论我按运行多少次......我该怎么办?

    回复
    • 桑潘穆克赫朱

      我已经复制了Arduino的2个程序和给定的处理......但是在将Arduino UNO连接到我的笔记本电脑并运行CONSOLE窗口时未出现......程序在Arduino上传,连接是精细......我在串行监视器上得到了输出......我是一个初学者,所以我不确定我错了..

      回复
  43. 谢谢你的代码,它很好地工作。我们是否可以使用实验室视图来接口这个Anrduino和处理

    回复
  44. par

    你好先生! !
    有错误打开串行portcom3:端口很忙
    出现了空白窗口。我应该怎么办 ??

    回复
  45. 桑潘穆克赫朱

    如果给定的处理代码可以在处理3.0.2 ......。必须在运行代码后没有得到任何输出,因为或者在上传Arduino代码之前/之后需要采取任何其他步骤运行处理代码

    回复
  46. Imtiaz艾哈迈德

    先生,我没有在ide处理的屏幕上得到任何输出,它没有显示任何东西
    你能告诉我是否需要在PC中需要任何其他Java软件安装???
    java.lang.nullpointerexception我收到了这个错误

    回复
  47. 彼得

    如何使处理代码绘制更多的范围超过40?我不能正确地制作它(展示它会很高兴,如何使其显示60厘米等)

    回复
  48. Pankaj Singh.

    你好主席先生,当我上传我的arudino uno代码进入arduino软件程序时上传,但我的伺服电机没有旋转为什么先生。

    回复
  49. rks.

    我们已经逐字逐句地使用了你们的代码,甚至解决了字体和屏幕分辨率的错误。但最终我们面临着一个问题。当我们断开传感器时,绿线显示,但当我们连接传感器时,绿线消失,只有红线可见。传感器没有检测到任何东西,因为距离总是0,但红线从15-165度移动。我们认为传感器有问题,所以我们改变了它,但没有帮助。所以请帮助。

    回复
  50. Ahmed Moustafa.

    先生,你好,
    如何使用此代码为最近的对象驱动我的机器人?
    我有最近的物体角度和距离,但我不知道如何控制这个位置的电机

    回复
  51. Nausikaa.

    我尝试使用这个代码,但它的下半部分是Javascript,而不是c++或任何其他兼容的代码,所以它不会与我的Arduino工作。我该如何解决这个问题?

    回复
  52. 奥斯卡大卫

    你好
    我需要这个范围是1米,在处理代码中必须配置为具有该范围?

    回复
  53. abdeladem

    亲爱的呵呵
    非常感谢您的伟大的Projet,所以要使它有效我改变了:
    “COM4”到“COM12”在POCESSING代码中。
    “OCRAExtended-30。OCRAExtended-48 vlw“就”。它已经存在于我的电脑中。
    并且由于我不是具有IDE处理的父亲,我仍然尝试改变决议,以便(1920,1080)屏幕来到我猜的,以便使其与自己的1280 * 1024兼容。
    如果可以帮助我这会很棒。
    谢谢

    回复
  54. 里奇辛格

    Hello SIR,对于更新的显示代码,我得到了一个错误的错误:

    退出状态1.
    'Import'不会命名类型

    此错误是此代码“导入java.io.ioexception;”

    回复
      • RS

        我弄清楚了我做错了什么,这个项目正好运作。
        我可以在液晶显示屏上集成显示吗?
        我有Arduino Mega2560的3.2 ' TFTLCD Shield。
        另外,你对这个液晶显示器的代码和引脚连接有什么建议吗?

  55. 约翰

    你好
    我应该使用迷你伺服来实现这个procect吗?如果我使用更大的伺服,我是否需要修改代码中的任何内容?

    回复
  56. Haziq.

    您好爵士,我们如何使用笔记本电脑屏幕连接超声波传感器?我应该修改哪个代码?

    回复
  57. Marc Tran.

    你好德州,
    谢谢你的伟大项目!
    我对显示有一个问题。单击“处理”运行按钮后,我的显示只显示扫描雷达的部分屏幕。更改显示分辨率不会解决问题。我也改为不同的字体。请帮忙。
    提前致谢。

    回复
      • 马克

        谢谢您的回复,

        是的,我在文章底部使用了更新的代码。如指示,我按照我的显示设置的推荐将大小()更改为1600 x 900。

  58. vinay bhat.

    我使用ubuntu先生,我有这个处理代码的问题。它说端口错误!!
    帮助!!

    回复
  59. Ubernez.

    嗨,我的女儿即将与她的周末科学集团(所有12岁)进行这个项目。
    我只是想说代码和视频以及解释很棒,我认为这将是他们的一个很好的项目。

    我也将用它来介绍弧度的概念,作为侧面笔记。
    非常感谢您的所有努力和解释和教程。一个真正鼓舞人心的网站。

    回复
  60. 克里亚安

    先生,你好,

    我有问题的问题。上次我使用这个应用程序一切运行。现在雷达的绘图破裂了。我无法附上一张图片来向你展示正在发生的事情。当我打开处理时,雷达显得常规,但它不会扫描近乎环境。它只是从中心绘制一个粗体红线到扫描的开始程度。

    回复
      • 克里亚安

        The sensor is working , the servo-motor is working

      • 克里亚安

        我试图用销10和11改变传感器的测试程序中的销,传感器工作。你知道另一个像处理的软件吗?

  61. 克劳斯

    非常酷的项目!谢谢分享!在我修复了字体的问题后工作得很好。

    回复
  62. 皮埃尔

    嗨Dejan,

    感谢您提供此项目,它非常令人印象深刻。我们将其带到了一群大约60名学生,他们制作了它。所有结果都印象非常深刻。
    我在电脑上做过,效果很好。在学生的笔记本电脑上,有许多不同的设置,屏幕分辨率和操作系统,我们有一些问题。最主要的是决心。即使使用你的最后代码为所有屏幕分辨率,并改变“大小(1920,1080);线与各自的屏幕分辨率没有改变雷达图的大小。我们只能看到雷达的左上角,与基地和角度-距离屏幕。这主要发生在较低的屏幕分辨率,大约1360,768。我想其他反馈也提到了这一点,我正在尝试对我的电脑进行故障排除,但如果你能帮助我,那就太好了。
    在编译Arduino代码时,其他人正在获得错误消息,我认为它可以与他们的防病毒软件相关联,因为它们会得到它的提示。无论如何,我们将通过这个。

    再次感谢分享这个代码,让孩子们非常开心!

    回复
  63. 皮埃尔

    你好,我们又见面了,

    解决问题已解决。我想我已经使用过以前的代码版本,我看一下所有图形都适用于大小()函数的宽度和高度。

    谢谢!

    回复
  64. Daniel Fernandes.

    朋友你好!伟大的设计!
    代码将如何在TFT LCD屏幕3.2上显示这一点“?
    谢谢

    回复
  65. 建筑师14.

    伟大的项目!然而,我确实在下载屏幕处理草图时遇到了问题。你知道为什么吗?谢谢。

    回复
  66. 卡洛斯

    你好

    我使用arduino真的很新。我看到你给我们的代码有6个部分。我怎么搞混了?

    谢谢

    回复
  67. Slboys.

    有办法用三针超声波传感器做到这一点吗?或者,如果没有,第四个针是干什么用的?

    回复
  68. jonny.

    嗨Dejan我想知道你是如何设置屏幕的和如何连接它,以便在您可以解释我的情况下进行绿色雷达线,谢谢我已经滚动了其他评论...

    jonny.

    回复
      • jonny.

        嗨Dejan感谢您的快速回复,我正在尝试编译代码,但我收到错误,你能给我发一封最新代码的链接谢谢!

        jonny.

  69. jonny.

    嗨dejan我得到的错误消息是“导入”不命名一个类型我该怎么办?谢谢!

    回复
  70. vivek.

    嘿,伟大的项目!!!
    但我想知道我们如何使它旋转360度,因为伺服可以旋转高达190度。我们可以提供无线雷达配置,使其旋转360度或相当于360辐射图案的传感器?
    请帮帮我!
    谢谢你

    回复
  71. NAND

    嗨,我面临的一个基本疑惑,如果我在这里是一个愚蠢的话,请原谅我。

    从数据中测量的角度如何?考虑超声波传感器仅返回到对象的距离。

    回复
  72. Daniele.

    你好,德扬
    我可以在哪里下载雷达显示器的库?
    Ioexepition库
    KeyEvent图书馆
    谢谢您的帮助

    回复
  73. Valentin Uzunov.

    你好,
    真的有用的教程。
    我正在遇到真正嘈杂的HC-SR04数据。我想知道你是否经历过那个,如果是这样,你是怎么解决的。或者您对可能存在的问题有任何建议。

    回复
  74. Pankaj.

    先生,我们如何使用Arduino +蓝牙模块向Priossing发送数据,谢谢

    回复
  75. Zeeshan Saquib.

    嗨Dejan,
    伟大的项目。即使我已经跟着并完成了它。一切正常正常,但我面临的问题是我的伺服电机越热,1或2次旋转,它停止旋转,然后它不会旋转,直到它不会冷却。可能是第二天它开始工作,然后在2次收获后再次加热并停止。

    我想问你那个衡量的距离,我希望它上传到我的云,所以我可以这样做吗?你能帮我吗?请。!

    回复
    • Dejan Nedelkovski.

      你好,
      嗯,你可能有一个有缺陷的伺服电机。
      确定您可以存储测量值,但我没有关于将它们存储在云上的教程。如果将它们存储到MicroSD卡可以为您完成作业,您可以检查我的特定教程。

      回复
  76. 卡洛格拉诺

    嗨,先生,谢谢你的伟大教程!但我有一个问题。它在处理IDE中说:“无法加载字体ocraexted-30.vlw。确保字体已复制到草图的数据文件夹。“请问你能帮我先生吗?

    回复
  77. 哈坎

    先生,你好!
    我出了点小问题。绿线和红线根本没有移动,角度一直显示为0°。请给我一些解决这个问题的指导!

    感谢一个很酷的项目!

    回复
    • 乔什

      绘制的线只有红色,它始终在范围内,距离未计算在绘图上,它为零。我做了另一个项目来测试坑,它有效。我应该接下来怎么样?

      回复
  78. 隐腾料盒

    谢谢你,伙计,这是一个伟大的工作!!
    它适用完美我只需要改变2件事来让它在Ubuntu上工作,这是其中之一:

    我改变这个:
    MyPort = New Serial(这,“Com4”,9600);

    我的ubuntu系列:
    MyPort = New Serial(这个,“/ dev / ttyusb0”,9600);

    字体也是:
    myFont = createFont(" Georgia ", 32);

    但是,我改变了屏幕分辨率,void拉拉多尔的绘制比线条更小。

    如何修复屏幕分辨率以匹配?尺寸(1100,880);

    谢谢你这个伟大的教程,我真的很感激!

    回复
    • Dejan Nedelkovski.

      您是否使用正确的处理IDE代码,更新到每个屏幕分辨率上的工作,在帖子底部。如果您使用的是,您只需设置屏幕分辨率,并且所有其他图纸都将根据设置分辨率进行调整。

      回复
  79. 电子伙计们

    嗨dejan !!你能告诉我如何使用步进电机而不是使用伺服电机的类似雷达???

    回复
      • 电子伙计们

        这是通过使用步进电机的雷达是正确的还是不正确的代码: -

        //包含必需的库
        #include //步进库
        #include // Library For SONAR

        AF_STEPPER雷达(200,2);//端口号和步骤/革命的步进配置

        #define ping_pin 12 // Arduino引脚12连接到HC-SR04的Ping引脚

        纽平声纳(Ping_pin,ping_pin);//传感器配置

        unsigned int距离1;//存储感测距离的变量
        unsigned int distance2;

        void setup()
        {
        Serial.Begin(9600);//初始化9600bps的序列通信
        Radar.setspeed(20);//配置步进rpm
        }

        void循环()
        {
        For (int I = 0;我= 0;我)
        {
        Radar.step(1,落后,单);
        延迟(5);
        距离2 = sonar.ping()/ us_roundtrip_cm;
        延迟(5);
        serial.print(i * 1.8);
        serial.print(“,”);
        serial.print(距离2);
        serial.print(“。”);
        }

  80. 埃德森

    嗨。我做了这个项目。这是成功的。但是,我有一个问题。我需要用蓝牙做。你可以帮帮我吗?

    回复
  81. 纽维

    漂亮的教程!我想知道是否有可能在没有连接到计算机的情况下操作设备?

    回复
  82. Nicro.

    嘿,我真的很喜欢你拥有的这个项目,但是我有,就是为初学者屏幕出于某种原因不合适,但我的主要问题是当我运行程序时,红线没有向我出现。其他一切都在运行正常,绿线正在移动,但是当我在传感器前面放置时,没有出现红线。你知道如何解决这个问题吗?谢谢您的帮助

    回复
  83. 约翰

    我正在使用Arduino Nano,但服务器电机的速度非常慢。Pliz建议我。

    回复
  84. 詹姆斯韦恩

    你很棒的兄弟!我现在一个月正在寻找这个项目。我稍后会尝试测试这个,非常感谢!

    回复
  85. Gaautam Sagar.

    有用!!在最新处理IDE(3.2.3)中刚刚替换为“48”(在ORCFONT系列中)并调整屏幕尺寸。

    回复
  86. anh phan.

    我可以用液晶触摸屏2.8或3.2英寸制作雷达屏幕吗?如果答案是肯定的,则可以使用LCD屏幕(处理代码)给代码吗?非常感谢兄弟!

    回复
  87. okka.

    谢谢你分享先生。我试过它,对我来说非常有用。非常满意。非常感谢。

    回复
  88. Neelarjuna.

    你好,很抱歉打扰你。我可以用arduino uno r3代替arduino mega 2560吗?

    回复
  89. Neelarjuna.

    谢谢兄弟一切顺利。我很感谢您与我们分享这个项目。

    回复
  90. Rad.

    我需要为我的项目中最良好的精度,但此代码(处理代码)不是很精确。Arduino和Sonar正在运行良好,发送到串口的正确距离。处理IDE正在接收正确的距离,但雷达显示的结果不是!在“距离”附近显示的值是正确的,但红线错误3,有时4厘米。此外,从0点和10cm的段比10-20,20-30和30-40之间的段大得多。我还修改了处理代码以在一定距离(例如10cm)处仅显示红线,以便在从串行端口读取10cm时的红色线路恰好是多少,并且红线约为7 / 8cm(所以它在10cm段之前开始)。与20cm或任何其他距离相同。

    回复
    • Dejan Nedelkovski.

      这是真的,考虑到这个项目中使用的廉价电子元件以及处理IDE中的编码,这项项目并不准确。必威lol这一点是使其尽可能简单,因此每个人都可以轻松理解它并自己制作它,并确保任何要改进的项目都有空间。

      回复
  91. Akhil Anirudhan.

    SIR,我如何运行该图形代码?哪种软件用于雷达图形显示?

    回复
  92. 苛刻的Mehta.

    用于该项目的超声波传感器是HC-SR04。我读了它的数据表。传感器范围高达400厘米。那么为什么这段代码只能得到40厘米。如果我们认为其测量效率比理想的效率小,那么它也可以衡量到100cm的最小。如果我希望输出为400cm或100cm,则需要哪些代码更改。

    回复
  93. Stefan

    您好,谢谢您的这个项目,真的很好

    我有个问题,但除此之外一切都很好
    问题是伺服电机旋转不平稳,我总是要推它,强迫它旋转,它不能自己旋转
    你能帮助我吗?

    回复
  94. Stefan

    你好!

    你能解释距离使用的公式吗?

    距离=持续时间* 0.034 / 2;

    如果你可以请你怎么样?

    回复
  95. 我德詹,
    刚刚完成建立雷达程序。伟大的工作!喜欢它。只有字体和端口的问题。感谢您与我们分享。

    回复
  96. Aniket Roy.

    太谢谢你了,伙计!这个项目肯定有效。编码是没有错误的。不过,这里只做了一个小小的修改。您在处理IDE中使用的字体需要首先移动到sketch文件夹中,您似乎跳过了提到这一部分。
    除此之外,这个确实是一个令人敬畏的项目。
    干杯

    回复
  97. 嗨Dejan,
    我有时能让程序正常工作,但不是每次都这样。传感器通常会在80到90度左右的摆回(165到15度)上犹豫,然后在70到80度左右的摆前(15到165度)上犹豫。知道它为什么在摆动时前后摇摆吗?奇怪的是,有时它根本不会犹豫,但大多数时候它会。任何帮助都将不胜感激。

    回复
  98. 达伦

    你好,我想问一下,我能不能把声纳显示在手机之类的东西上,可以吗?

    回复
    • Dejan Nedelkovski.

      这是可能的,但您必须为您的手机提供合适的应用程序。我已经有一个关于如何使用MIT应用程序发明家制作自己的自定义Android应用程序的教程,因此您可以查看它并在那里查找更多详细信息。

      回复
  99. 达伦

    嗨,我只是想问我如何匹配声纳中检测到的对象的距离,因为我已经将传感器变为1米的距离,声纳给出的距离与传感器检测的距离相匹配

    回复
  100. Barlaas aziymey

    是否可以使用处理代码使它360,它是否可以与现有的arduino代码一起工作?

    回复
  101. 克里斯·弗拉纳根

    德国,该项目非常出色。代码所有工作以及指示和教程都是优秀的。我唯一的麻烦在发现如何清除处理中的字体错误,但快速的谷歌搜索教会了我如何创建字体。这是一个很棒的项目!

    回复
  102. 奥兹

    伟大的网站,伟大的项目,感谢你让一切变得有趣和容易。

    我只是想问一下,是否可以调整用于测量接近对象的速度的代码。我将扫描角度降低到60度,如果物体越来越接近传感器,我希望看到屏幕上的速度。让我开始的任何提示?

    提前致谢。

    回复
    • Dejan Nedelkovski.

      谢谢。这听起来像一个不错的项目想法,你可能会使它与这个或类似的传感器和设置。比较物体在某一特定时期内所接近的距离。

      回复
      • 罗伯特

        对不起,我发现了。但也在最新的“完整源代码”位,没有#include,我迷茫,我已经写了一半的代码,标题为红色字母。帮助!

  103. 大学教师

    真的很酷的项目!而且,只有最小的烂摊子,我很容易拉开。我只在3天前买了一个Arduino(Uno R3 +)。我经历了我买的起动器具套件中的所有教程,然后购买了其他一些东西来加入它(屏蔽,传感器等)。

    我非常感谢设置和处理处理的教程。之前我不知道这一点,但现在可以把它添加到我的学习中。谢谢!

    回复
  104. itssimsch.

    真的很酷的教程!
    我只是想知道是否有一种方法可以在3.1″TFT屏幕上使用GUI,你也做了一个教程?

    回复
    • 德扬

      谢谢!当然,Arduino一切都是可能的,但是,这将是为了提出适当的代码。您必须编写GUI以适应TFT屏幕。

      回复
  105. Karl Lewis.

    我意识到我只是在合唱团中的另一个声音,但我觉得我不得不说它:这是一个令人愉快的异想天开的项目。我做了“只是因为”,这很有趣。谢谢!稍后,我学会了可能会让OT有用的东西。

    回复
  106. ubab

    嗨,我想为我的学校项目构建它。但我只是有一个星期。它可以轻松做吗?除了我对Arduino设备的零知识。我应该跟随步骤吗?或者您的网站有更多的解释吗?诚实我真的很困惑

    回复
    • 德扬

      嗨,如果您遵循视频中的所有步骤以及项目应该工作的文章。没有任何隐藏的东西,虽然你需要一点知识,以防你连接有问题,因为你会想知道正在进行的。如果您完成初学者,请查看我的其他初学者教程。

      回复
  107. 谢谢你建立一个很好的项目。我能够遵循和我的项目工作。我发现扫描的唯一问题不是很快。我厌倦了减小角度,最后看着增加了串行波特率,这些波特率不会产生快速扫描。串行监视器始终显示出非常相同的读取速度。因此,与视频相比,框架上的雷达线移动非常缓慢,距离更新缓慢。

    回复
    • 德扬

      谢谢!嗯尝试通过调整“用于”循环中的延迟时间来提高伺服速度来驱动伺服。

      回复
      • Gherbi.

        好工作,这是一个好主意,了解雷达如何工作。

发表评论

您的电子邮件地址不会被公开。

受到推崇的

2019年初学者和爱好者的最佳进入级示波器

为初学者和爱好者最好的示波器

受到推崇的

2019年初学者的8个最佳Arduino Starter Kits

初学者的8个最佳Arduino Starter Kits

受到推崇的

用于初学者和爱好者的最佳3D打印机 -  3D打印

最好的3d打印机为初学者和爱好者