removed unused codes
This commit is contained in:
parent
af269dd20a
commit
bc33d84551
265
radar/radar.ino
265
radar/radar.ino
|
@ -1,15 +1,6 @@
|
||||||
//淘宝『创元素店』https://shop423015102.taobao.com/
|
|
||||||
//更新日期 2021/03/06
|
|
||||||
//MiniRadar 超声波雷达 程序
|
|
||||||
//本程序对应商品 https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-23815833841.8.4f231fe7qvLFZi&id=649834806872
|
|
||||||
|
|
||||||
//Github版链接: https://github.com/johnsonwust/MiniRadar
|
|
||||||
|
|
||||||
#include <Servo.h>
|
#include <Servo.h>
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
#include "Ucglib.h"
|
#include "Ucglib.h"
|
||||||
//显示屏的lib 如果没有该lib请按Ctrl+Shift+I 从 库管理器中搜索 ucglib,并安装
|
|
||||||
|
|
||||||
|
|
||||||
#define trigPin 6 //超声波模块的Trig口 6#
|
#define trigPin 6 //超声波模块的Trig口 6#
|
||||||
#define echoPin 5 //超声波模块的echo口 5#
|
#define echoPin 5 //超声波模块的echo口 5#
|
||||||
|
@ -29,193 +20,81 @@ Ucglib_ST7735_18x128x160_HWSPI ucg(/*cd=*/ 9, /*cs=*/ 10, /*reset=*/ 8);
|
||||||
|
|
||||||
void setup(void)
|
void setup(void)
|
||||||
{
|
{
|
||||||
|
ucg.begin(UCG_FONT_MODE_SOLID); //初始化屏幕
|
||||||
ucg.begin(UCG_FONT_MODE_SOLID); //初始化屏幕
|
ucg.setRotate90(); //设置成横屏 如果屏幕显示方向是反的,可以修改函数 setRotate90 或 setRotate270
|
||||||
ucg.setRotate90(); //设置成横屏 如果屏幕显示方向是反的,可以修改函数 setRotate90 或 setRotate270
|
pinMode(trigPin, OUTPUT); //设置trigPin端口模式
|
||||||
|
pinMode(echoPin, INPUT); //设置echoPin端口模式
|
||||||
pinMode(trigPin, OUTPUT); //设置trigPin端口模式
|
Serial.begin(9600); //设置串口传输率
|
||||||
pinMode(echoPin, INPUT); //设置echoPin端口模式
|
baseServo.attach(ServoPin); //初始化舵机
|
||||||
Serial.begin(9600); //设置串口传输率
|
baseServo.write(180);
|
||||||
baseServo.attach(ServoPin); //初始化舵机
|
ucg.clearScreen();
|
||||||
|
//cls();
|
||||||
//欢迎屏幕
|
ucg.setFontMode(UCG_FONT_MODE_SOLID);
|
||||||
// ucg.setFontMode(UCG_FONT_MODE_TRANSPARENT);
|
ucg.setFont(ucg_font_orgv01_hr);
|
||||||
// ucg.setColor(0, 0, 100, 0);
|
|
||||||
// ucg.setColor(1, 0, 100, 0);
|
|
||||||
// ucg.setColor(2, 20, 20,20);
|
|
||||||
// ucg.setColor(3, 20, 20, 20);
|
|
||||||
// ucg.drawGradientBox(0, 0, 160, 128);
|
|
||||||
// ucg.setPrintDir(0);
|
|
||||||
// ucg.setColor(0, 5, 0);
|
|
||||||
// ucg.setPrintPos(27,42);
|
|
||||||
// ucg.setFont(ucg_font_logisoso18_tf);
|
|
||||||
// ucg.print("Mini Radar");
|
|
||||||
// ucg.setColor(0, 255, 0);
|
|
||||||
// ucg.setPrintPos(25,40);
|
|
||||||
// ucg.print("Mini Radar");
|
|
||||||
// ucg.setFont(ucg_font_helvB08_tf);
|
|
||||||
// ucg.setColor(20, 255, 20);
|
|
||||||
// ucg.setPrintPos(40,100);
|
|
||||||
// ucg.print("Testing...");
|
|
||||||
baseServo.write(90);
|
|
||||||
|
|
||||||
//测试底座的运行情况,注意检测底座位置和转动姿态,是否有卡住(或者导线缠绕)的情况。
|
|
||||||
for(int x=0;x<180;x+=5)
|
|
||||||
{ baseServo.write(x);
|
|
||||||
delay(50);
|
|
||||||
}
|
|
||||||
//ucg.print("OK!");
|
|
||||||
delay(500);
|
|
||||||
|
|
||||||
|
|
||||||
//清屏
|
|
||||||
//ucg.clearScreen();
|
|
||||||
cls();
|
|
||||||
ucg.setFontMode(UCG_FONT_MODE_SOLID);
|
|
||||||
ucg.setFont(ucg_font_orgv01_hr);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void cls()
|
void cls()
|
||||||
{
|
{
|
||||||
//清屏
|
//清屏
|
||||||
ucg.setColor(0, 0, 0, 0);
|
ucg.setColor(0, 0, 0, 0);
|
||||||
|
|
||||||
for(int s=0;s<128;s+=8)
|
for(int s=0;s<128;s+=8)
|
||||||
for(int t=0;t<160;t+=16)
|
for(int t=0;t<160;t+=16)
|
||||||
{
|
{
|
||||||
ucg.drawBox(t,s,16,8);
|
ucg.drawBox(t,s,16,8);
|
||||||
// delay(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int calculateDistance()
|
int calculateDistance()
|
||||||
{
|
{
|
||||||
long duration;
|
long duration;
|
||||||
//trigPin断电 并 等待2微妙
|
digitalWrite(trigPin, LOW);
|
||||||
digitalWrite(trigPin, LOW);
|
delayMicroseconds(2);
|
||||||
delayMicroseconds(2);
|
digitalWrite(trigPin, HIGH);
|
||||||
//trigPin加电 延时 10微妙 再断电
|
delayMicroseconds(10);
|
||||||
digitalWrite(trigPin, HIGH);
|
digitalWrite(trigPin, LOW);
|
||||||
delayMicroseconds(10);
|
duration = pulseIn(echoPin, HIGH);
|
||||||
digitalWrite(trigPin, LOW);
|
return duration*0.034/2;
|
||||||
//读取echoPin返回声波的传播时间(微妙)
|
|
||||||
duration = pulseIn(echoPin, HIGH);
|
|
||||||
//将回声时间转换成距离数值
|
|
||||||
return duration*0.034/2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void fix_font()
|
void fix_font()
|
||||||
{
|
{
|
||||||
ucg.setColor(0, 180, 0);
|
ucg.setColor(0, 180, 0);
|
||||||
ucg.setPrintPos(70,46);
|
ucg.setPrintPos(70,46);
|
||||||
ucg.print("1.00");
|
ucg.print("1.00");
|
||||||
ucg.setPrintPos(70,66);
|
ucg.setPrintPos(70,66);
|
||||||
ucg.print("0.75");
|
ucg.print("0.75");
|
||||||
ucg.setPrintPos(70,86);
|
ucg.setPrintPos(70,86);
|
||||||
ucg.print("0.50");
|
ucg.print("0.50");
|
||||||
ucg.setPrintPos(70,106);
|
ucg.setPrintPos(70,106);
|
||||||
ucg.print("0.25");
|
ucg.print("0.25");
|
||||||
}
|
}
|
||||||
|
|
||||||
void fix()
|
void fix()
|
||||||
{
|
{
|
||||||
|
ucg.setColor(0, 40, 0);
|
||||||
ucg.setColor(0, 40, 0);
|
//画基线圆盘
|
||||||
//画基线圆盘
|
ucg.drawDisc(Xcent, base+1, 3, UCG_DRAW_ALL);
|
||||||
ucg.drawDisc(Xcent, base+1, 3, UCG_DRAW_ALL);
|
ucg.drawCircle(Xcent, base+1, outcircle, UCG_DRAW_UPPER_LEFT);
|
||||||
ucg.drawCircle(Xcent, base+1, outcircle, UCG_DRAW_UPPER_LEFT);
|
ucg.drawCircle(Xcent, base+1, outcircle, UCG_DRAW_UPPER_RIGHT);
|
||||||
ucg.drawCircle(Xcent, base+1, outcircle, UCG_DRAW_UPPER_RIGHT);
|
ucg.drawCircle(Xcent, base+1, midcircle, UCG_DRAW_UPPER_LEFT);
|
||||||
ucg.drawCircle(Xcent, base+1, midcircle, UCG_DRAW_UPPER_LEFT);
|
ucg.drawCircle(Xcent, base+1, midcircle, UCG_DRAW_UPPER_RIGHT);
|
||||||
ucg.drawCircle(Xcent, base+1, midcircle, UCG_DRAW_UPPER_RIGHT);
|
ucg.drawCircle(Xcent, base+1, midcircle2, UCG_DRAW_UPPER_LEFT);
|
||||||
ucg.drawCircle(Xcent, base+1, midcircle2, UCG_DRAW_UPPER_LEFT);
|
ucg.drawCircle(Xcent, base+1, midcircle2, UCG_DRAW_UPPER_RIGHT);
|
||||||
ucg.drawCircle(Xcent, base+1, midcircle2, UCG_DRAW_UPPER_RIGHT);
|
ucg.drawCircle(Xcent, base+1, incircle, UCG_DRAW_UPPER_LEFT);
|
||||||
ucg.drawCircle(Xcent, base+1, incircle, UCG_DRAW_UPPER_LEFT);
|
ucg.drawCircle(Xcent, base+1, incircle, UCG_DRAW_UPPER_RIGHT);
|
||||||
ucg.drawCircle(Xcent, base+1, incircle, UCG_DRAW_UPPER_RIGHT);
|
ucg.drawLine(0, base+1, Xmax,base+1);
|
||||||
ucg.drawLine(0, base+1, Xmax,base+1);
|
ucg.setColor(0, 120, 0);
|
||||||
|
|
||||||
ucg.setColor(0, 120, 0);
|
|
||||||
//画刻度表
|
|
||||||
// for(int i= 40;i < 140; i+=2)
|
|
||||||
// {
|
|
||||||
|
|
||||||
// if (i % 10 == 0)
|
|
||||||
// ucg.drawLine(105*cos(radians(i))+Xcent,base - 105*sin(radians(i)) , 113*cos(radians(i))+Xcent,base - 113*sin(radians(i)));
|
|
||||||
// else
|
|
||||||
|
|
||||||
// ucg.drawLine(110*cos(radians(i))+Xcent,base - 110*sin(radians(i)) , 113*cos(radians(i))+Xcent,base - 113*sin(radians(i)));
|
|
||||||
// }
|
|
||||||
|
|
||||||
//画一些装饰性图案
|
|
||||||
// ucg.setColor(0,200,0);
|
|
||||||
// ucg.drawLine(0,0,0,18);
|
|
||||||
// for(int i= 0;i < 5; i++)
|
|
||||||
// {
|
|
||||||
// ucg.setColor(0,random(200)+50,0);
|
|
||||||
// ucg.drawBox(2,i*4,random(14)+2,3);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ucg.setColor(0,180,0);
|
|
||||||
// ucg.drawFrame(146,0,14,14);
|
|
||||||
// ucg.setColor(0,60,0);
|
|
||||||
// ucg.drawHLine(148,0,10);
|
|
||||||
// ucg.drawVLine(146,2,10);
|
|
||||||
// ucg.drawHLine(148,13,10);
|
|
||||||
// ucg.drawVLine(159,2,10);
|
|
||||||
|
|
||||||
// ucg.setColor(0,220,0);
|
|
||||||
// ucg.drawBox(148,2,4,4);
|
|
||||||
// ucg.drawBox(148,8,4,4);
|
|
||||||
// ucg.drawBox(154,8,4,4);
|
|
||||||
// ucg.setColor(0,100,0);
|
|
||||||
// ucg.drawBox(154,2,4,4);
|
|
||||||
|
|
||||||
// ucg.setColor(0,90,0);
|
|
||||||
// ucg.drawTetragon(62,123,58,127,98,127,102,123);
|
|
||||||
// ucg.setColor(0,160,0);
|
|
||||||
// ucg.drawTetragon(67,123,63,127,93,127,97,123);
|
|
||||||
// ucg.setColor(0,210,0);
|
|
||||||
// ucg.drawTetragon(72,123,68,127,88,127,92,123);
|
|
||||||
|
|
||||||
// ucg.setColor(0,155, 0);
|
|
||||||
// ucg.setPrintPos(0,126);
|
|
||||||
// ucg.print("DEG: ");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void loop(void)
|
void loop(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
int distance;
|
int distance;
|
||||||
|
|
||||||
fix();
|
fix();
|
||||||
fix_font(); //重绘屏幕背景元素
|
fix_font(); //重绘屏幕背景元素
|
||||||
Serial.print("clear:");
|
Serial.print("clear:");
|
||||||
Serial.println(millis()-time);
|
Serial.println(millis()-time);
|
||||||
time=millis();
|
time=millis();
|
||||||
for (int x=180; x >= 0; x-=2){ //底座舵机从180~0度循环
|
for (int x=180; x >= 0; x-=2){ //底座舵机从180~0度循环
|
||||||
|
|
||||||
baseServo.write(x); //调整舵机角度
|
baseServo.write(x); //调整舵机角度
|
||||||
|
|
||||||
//绘制雷达扫描线
|
|
||||||
// int f = x - 4;
|
|
||||||
// ucg.setColor(0, 255, 0);
|
|
||||||
// ucg.drawLine(Xcent, base, scanline*cos(radians(f))+Xcent,base - scanline*sin(radians(f)));
|
|
||||||
// f+=2;
|
|
||||||
// ucg.setColor(0, 128, 0);
|
|
||||||
// ucg.drawLine(Xcent, base, scanline*cos(radians(f))+Xcent,base - scanline*sin(radians(f)));
|
|
||||||
// f+=2;
|
|
||||||
// ucg.setColor(0, 0, 0);
|
|
||||||
// ucg.drawLine(Xcent, base, scanline*cos(radians(f))+Xcent,base - scanline*sin(radians(f)));
|
|
||||||
// ucg.setColor(0,200, 0);
|
|
||||||
//测距
|
//测距
|
||||||
distance = calculateDistance();
|
distance = calculateDistance();
|
||||||
|
|
||||||
//根据测得距离在对应位置画点
|
//根据测得距离在对应位置画点
|
||||||
if (distance < 100)
|
if (distance < 100)
|
||||||
{
|
{
|
||||||
|
@ -227,35 +106,13 @@ void loop(void)
|
||||||
ucg.setColor(255,255,0);
|
ucg.setColor(255,255,0);
|
||||||
ucg.drawDisc((outcircle-1)*cos(radians(x))+Xcent,-(outcircle-1)*sin(radians(x))+base, 1, UCG_DRAW_ALL);
|
ucg.drawDisc((outcircle-1)*cos(radians(x))+Xcent,-(outcircle-1)*sin(radians(x))+base, 1, UCG_DRAW_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//调试代码,输出角度和测距值
|
|
||||||
//Serial.print(x);
|
|
||||||
//Serial.print(" , ");
|
|
||||||
//Serial.println(distance);
|
|
||||||
|
|
||||||
|
|
||||||
//if (x > 70 and x < 110) fix_font(); //扫描线和数字重合时,重绘数字
|
|
||||||
|
|
||||||
// ucg.setColor(0,155, 0);
|
|
||||||
// ucg.setPrintPos(0,126);
|
|
||||||
// ucg.print("DEG: ");
|
|
||||||
//ucg.setPrintPos(24,126);
|
|
||||||
//ucg.print(x);
|
|
||||||
// ucg.print(" ");
|
|
||||||
//ucg.setPrintPos(125,126);
|
|
||||||
// ucg.print(" ");
|
|
||||||
//ucg.print(distance);
|
|
||||||
// ucg.print("cm ");
|
|
||||||
//delay(10);
|
|
||||||
}
|
}
|
||||||
Serial.print("left:");
|
Serial.print("left:");
|
||||||
Serial.println(millis()-time);
|
Serial.println(millis()-time);
|
||||||
time=millis();
|
time=millis();
|
||||||
ucg.clearScreen(); //清屏 如果arduino供电不足,可能会引起白屏(显示信号中断)可以用 cls();函数代替 ucg.clearScreen();
|
ucg.clearScreen();
|
||||||
delay(50);
|
delay(50);
|
||||||
//cls(); //如有频繁白屏情况,可以使用该函数 。或者增加外部供电
|
//cls();
|
||||||
|
|
||||||
fix();
|
fix();
|
||||||
fix_font(); //重绘屏幕背景元素
|
fix_font(); //重绘屏幕背景元素
|
||||||
Serial.print("clear:");
|
Serial.print("clear:");
|
||||||
|
@ -263,21 +120,8 @@ void loop(void)
|
||||||
time=millis();
|
time=millis();
|
||||||
for (int x=0; x <= 180; x+=2){
|
for (int x=0; x <= 180; x+=2){
|
||||||
baseServo.write(x); //调整舵机角度
|
baseServo.write(x); //调整舵机角度
|
||||||
|
|
||||||
//绘制雷达扫描线
|
|
||||||
// int f = x + 4;
|
|
||||||
// ucg.setColor(0, 255, 0);
|
|
||||||
// ucg.drawLine(Xcent, base, scanline*cos(radians(f))+Xcent,base - scanline*sin(radians(f)));
|
|
||||||
// f-=2;
|
|
||||||
// ucg.setColor(0, 128, 0);
|
|
||||||
// ucg.drawLine(Xcent, base, scanline*cos(radians(f))+Xcent,base - scanline*sin(radians(f)));
|
|
||||||
// f-=2;
|
|
||||||
// ucg.setColor(0, 0, 0);
|
|
||||||
// ucg.drawLine(Xcent, base, scanline*cos(radians(f))+Xcent,base - scanline*sin(radians(f)));
|
|
||||||
// ucg.setColor(0, 200, 0);
|
|
||||||
//测距
|
//测距
|
||||||
distance = calculateDistance();
|
distance = calculateDistance();
|
||||||
|
|
||||||
//根据测得距离在对应位置画点
|
//根据测得距离在对应位置画点
|
||||||
if (distance < 100)
|
if (distance < 100)
|
||||||
{
|
{
|
||||||
|
@ -289,32 +133,11 @@ void loop(void)
|
||||||
ucg.setColor(255,255,0);
|
ucg.setColor(255,255,0);
|
||||||
ucg.drawDisc((outcircle-1)*cos(radians(x))+Xcent,-(outcircle-1)*sin(radians(x))+base, 1, UCG_DRAW_ALL);
|
ucg.drawDisc((outcircle-1)*cos(radians(x))+Xcent,-(outcircle-1)*sin(radians(x))+base, 1, UCG_DRAW_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
//调试代码,输出角度和测距值
|
|
||||||
//Serial.print(x);
|
|
||||||
//Serial.print(" , ");
|
|
||||||
//Serial.println(distance);
|
|
||||||
|
|
||||||
//if (x > 70 and x < 110) fix_font(); //扫描线和数字重合时,重绘数字
|
|
||||||
|
|
||||||
// ucg.setColor(0,155, 0);
|
|
||||||
// ucg.setPrintPos(0,126);
|
|
||||||
// ucg.print("DEG: ");
|
|
||||||
// ucg.setPrintPos(24,126);
|
|
||||||
// ucg.print(x);
|
|
||||||
// ucg.print(" ");
|
|
||||||
//ucg.setPrintPos(125,126);
|
|
||||||
// ucg.print(" ");
|
|
||||||
//ucg.print(distance);
|
|
||||||
// ucg.print("cm ");
|
|
||||||
//delay(10);
|
|
||||||
}
|
}
|
||||||
Serial.print("right:");
|
Serial.print("right:");
|
||||||
Serial.println(millis()-time);
|
Serial.println(millis()-time);
|
||||||
time=millis();
|
time=millis();
|
||||||
ucg.clearScreen(); //
|
ucg.clearScreen();
|
||||||
delay(50);
|
delay(50);
|
||||||
//cls();
|
//cls();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue