#include <Servo.
h>
#include <SPI.h>
#include "Ucglib.h"
#define trigPin 6
#define echoPin 5
#define ServoPin 3
int Ymax = 240;
int Xmax = 320;
int Xcent = Xmax / 2;
int base = 210;
int scanline = 185;
Servo baseServo;
//Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9,
/*cs=*/ 10, /*reset=*/ 8);
Ucglib_ILI9341_18x240x320_HWSPI ucg(/*cd=*/ 9, /*cs=*/ 10, /*reset=*/ 8);
void setup(void)
{
[Link](UCG_FONT_MODE_SOLID);
ucg.setRotate90();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
[Link](115200);
[Link](ServoPin);
[Link](UCG_FONT_MODE_TRANSPARENT);
[Link](0, 0, 100, 0);
[Link](1, 0, 100, 0);
[Link](2, 20, 20,20);
[Link](3, 20, 20, 20);
[Link](0, 0, 320, 240);
[Link](0);
[Link](0, 5, 0);
[Link](70,120);
[Link](ucg_font_logisoso32_tf);
[Link]("Mini Radar");
[Link](0, 255, 0);
[Link](70,120);
[Link]("Mini Radar");
[Link](ucg_font_courB14_tf);
[Link](20, 255, 20);
[Link](90,200);
[Link]("Testing...");
[Link](90);
for(int x=0;x<180;x+=5)
{ [Link](x);
delay(50);
}
[Link]("OK!");
delay(500);
[Link](0,0, 0, 0);
[Link](1,0, 0, 0);
[Link](2,0, 0, 0);
[Link](3,0, 0, 0);
[Link](0, 0, 320, 240);
delay(10);
//[Link]();
cls();
[Link](UCG_FONT_MODE_SOLID);
[Link](ucg_font_helvR08_hr); // or freedoomr10_tr
void cls()
{
[Link](0, 0, 0, 0);
for(int s=0;s<240;s++)
{
[Link](0,s,320);
delay(1);
}
//[Link](0, 0, 160, 60);
int calculateDistance()
{
long duration;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
return duration*0.034/2;
}
void fix_font()
{
[Link](0, 180, 0);
[Link](144,44);
[Link]("1.00");
[Link](144,100);
[Link]("0.60");
[Link](144,165);
[Link]("0.30");
}
void fix()
{
[Link](0, 180, 0);
[Link](Xcent, base+1, 3, UCG_DRAW_ALL);
[Link](Xcent, base+1, 210, UCG_DRAW_UPPER_LEFT);
[Link](Xcent, base+1, 210, UCG_DRAW_UPPER_RIGHT);
[Link](Xcent, base+1, 135, UCG_DRAW_UPPER_LEFT);
[Link](Xcent, base+1, 135, UCG_DRAW_UPPER_RIGHT);
[Link](Xcent, base+1, 70, UCG_DRAW_UPPER_LEFT);
[Link](Xcent, base+1, 70, UCG_DRAW_UPPER_RIGHT);
[Link](0, base+1, Xmax,base+1);
[Link](0, 180, 0);
for(int i= 40;i < 300; i+=2)
{
if (i % 10 == 0)
[Link](185*cos(radians(i))+Xcent,base - 185*sin(radians(i)) ,
205*cos(radians(i))+Xcent,base - 205*sin(radians(i)));
else
[Link](195*cos(radians(i))+Xcent,base - 195*sin(radians(i)) ,
205*cos(radians(i))+Xcent,base - 205*sin(radians(i)));
[Link](0,200,0);
[Link](0,0,0,36);
for(int i= 0;i < 5; i++)
{
[Link](0,random(200)+50,0);
[Link](2,i*8,random(28)+3,6);
}
[Link](0,180,0);
[Link](292,0,28,28);
[Link](0,60,0);
[Link](296,0,20);
[Link](292,4,20);
[Link](296,52,20);
[Link](318,4,20);
[Link](0,220,0);
[Link](296,4,8,8);
[Link](296,16,8,8);
[Link](308,16,8,8);
[Link](0,100,0);
[Link](308,4,8,8);
[Link](0,90,0);
[Link](124,220,116,230,196,230,204,220);
[Link](0,160,0);
[Link](134,220,126,230,186,230,194,220);
[Link](0,210,0);
[Link](144,220,136,230,176,230,184,220);
}
void loop(void)
{
int distance;
fix();
fix_font();
for (int x=180; x > 4; x-=2){
[Link](x);
int f = x - 4;
[Link](0, 255, 0);
[Link](Xcent, base, scanline*cos(radians(f))+Xcent,base -
scanline*sin(radians(f)));
f+=2;
[Link](0, 128, 0);
[Link](Xcent, base, scanline*cos(radians(f))+Xcent,base -
scanline*sin(radians(f)));
f+=2;
[Link](0, 0, 0);
[Link](Xcent, base, scanline*cos(radians(f))+Xcent,base -
scanline*sin(radians(f)));
[Link](0,200, 0);
distance = calculateDistance();
if (distance < 100)
{
[Link](255,0,0);
[Link](2.2*distance*cos(radians(x))+ Xcent,-
2.2*distance*sin(radians(x))+base, 1, UCG_DRAW_ALL);
}
else
{
[Link](255,255,0);
[Link](208*cos(radians(x))+Xcent,-208*sin(radians(x))+base, 1,
UCG_DRAW_ALL);
}
[Link](x);
[Link](" , ");
[Link](distance);
if (x > 70 and x < 110) fix_font();
[Link](255,255, 0);
[Link](20,230);
[Link]("DEG: ");
[Link](54,230);
[Link](x);
[Link](" ");
[Link](240,230);
[Link](" ");
[Link](distance);
[Link](" cm ");
}
//[Link]();
delay(50);
cls();
fix();
fix_font();
for (int x=1; x < 176; x+=2){
[Link](x);
int f = x + 4;
[Link](0, 255, 0);
[Link](Xcent, base, scanline*cos(radians(f))+Xcent,base -
scanline*sin(radians(f)));
f-=2;
[Link](0, 128, 0);
[Link](Xcent, base, scanline*cos(radians(f))+Xcent,base -
scanline*sin(radians(f)));
f-=2;
[Link](0, 0, 0);
[Link](Xcent, base, scanline*cos(radians(f))+Xcent,base -
scanline*sin(radians(f)));
[Link](0, 200, 0);
distance = calculateDistance();
if (distance < 100)
{
[Link](255,0,0);
[Link](2.2*distance*cos(radians(x))+Xcent,-
2.2*distance*sin(radians(x))+base, 1, UCG_DRAW_ALL);
}
else
{
[Link](255,255,0);
[Link](208*cos(radians(x))+Xcent,-208*sin(radians(x))+base, 1,
UCG_DRAW_ALL);
}
[Link](x);
[Link](" , ");
[Link](distance);
if (x > 70 and x < 110) fix_font();
[Link](255,255, 0);
[Link](20,230);
[Link]("DEG: ");
[Link](54,230);
[Link](x);
[Link](" ");
[Link](240,230);
[Link](" ");
[Link](distance);
[Link](" cm ");
}
//[Link](); //
delay(50);
cls();