Përmbajtje:

Hapi: 4 hapa
Hapi: 4 hapa

Video: Hapi: 4 hapa

Video: Hapi: 4 hapa
Video: Happy Mlinga - Hapa Hapa (Official Music Video) 2024, Dhjetor
Anonim
聲納
聲納

改作:

我 在 原本 聲納 的 基礎 下 加裝 了 喇叭 以 達到 警告 的 作用

Emri: arduino uno, 感測器, 驅動 馬達, 喇叭

功能: 掃描 加速 cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm cm 10cm 時 喇叭 會

Hapi 1: Hapi 1

Hapi 1
Hapi 1

是 電路圖

Hapi 2: Hapi 2 ar 程式 (arduino)

Hapi 2 ar ar (arduino)
Hapi 2 ar ar (arduino)

create.arduino.cc/editor/dwdawdad/ef6b26a2-3f40-410d-9fdd-3413816090fe/preview

Hapi 3: Hapi 3 程式 程式 (përpunimi)

përpunimi i importit.serial.*;

import java.awt.event. KeyEvent; import java.io. IOException;

Seriali myPort; PFont orcFont; int iAngle; int iDistance; void setup () {madhësia (1000, 500); qetë (); myPort = Serial i ri (kjo, "COM7", 9600); myPort.clear (); myPort.bufferUntil ('\ n');

} void barazim () {mbush (98, 245, 31); noStroke (); mbush (0, 4); drejt (0, 0, gjerësi, 0.935 * lartësi); mbush (98, 245, 31); DrawRadar (); DrawLine (); DrawObject (); DrawText (); } void serialEvent (Seriali myPort) {try {String data = myPort.readStringUntil ('\ n'); if (data == null) {return; } int commaIndex = data.indexOf (","); Këndi i vargut = data.substring (0, commaIndex); Distanca e vargut = data.substring (presje Indeksi+1, data.length ()-1); iAngle = StringToInt (këndi); iDistance = StringToInt (distanca); } catch (RuntimeException e) {}} void DrawRadar () {pushMatrix (); përkthe (gjerësia/2, 0.926 * lartësia); joFill (); goditje Pesha (2); goditje (98, 245, 31); // vizaton linjat e harkut DrawRadarArcLine (0.9375); DrawRadarArcLine (0.7300); DrawRadarArcLine (0.5210); DrawRadarArcLine (0.3130); // vizaton vijat e këndit int int halfWidth = width/2; vija (-gjatësia Gjerësia, 0, gjysmaWidth, 0); për (int kënd = 30; kënd <= 150; kënd+= 30) {DrawRadarAngledLine (kënd); } line (-gjatësia Gjerësia * cos (radianët (30)), 0, gjysmaWidth, 0); popMatrix (); } void DrawRadarArcLine (koeficienti i notimit përfundimtar) {hark (0, 0, koeficienti * gjerësia, koeficienti * gjerësia, PI, TWO_PI); } void DrawRadarAngledLine (këndi int i fundit) {rreshti (0, 0, (-width/2) * cos (radianët (këndi)), (-gjerësia/2) * sin (radianët (këndi))); } void DrawObject () {pushMatrix (); përkthe (gjerësia/2, 0.926 * lartësia); goditje Pesha (9); goditje (255, 10, 10); int pixsDistance = int (iDistance * 0.020835 * lartësi); nëse (iDistanca 40? "Jashtë rrezes": "Në rreze"), 0.125 * gjerësi, 0.9723 * lartësi); tekst ("Këndi:" + iAngle + "°", 0.52 * gjerësi, 0.9723 * lartësi); tekst ("Distanca:", 0.74 * gjerësi, 0.9723 * lartësi); nëse (iDistance <40) {tekst ("" + iDistance + "cm", 0.775 * gjerësi, 0.9723 * lartësi); } TextSize (25); mbush (98, 245, 60); përkthe (0.5006 * gjerësi + gjerësi/2 * cos (radianë (30)), 0.9093 * lartësi - gjerësi/2 * sin (radianë (30))); rrotullohen (-radianët (-60)); tekst ("30 °", 0, 0); resetMatrix (); përkthe (0.497 * gjerësi + gjerësi/2 * cos (radianë (60)), 0.9112 * lartësi - gjerësi/2 * sin (radianë (60))); rrotullohen (-radianët (-30)); tekst ("60 °", 0, 0); resetMatrix (); përkthe (0.493 * gjerësi + gjerësi/2 * cos (radianë (90)), 0.9167 * lartësi - gjerësi/2 * sin (radianë (90))); rrotullohen (radianët (0)); tekst ("90 °", 0, 0); resetMatrix (); përkthe (0.487 * gjerësi + gjerësi/2 * cos (radian (120)), 0.92871 * lartësi - gjerësi/2 * sin (radian (120))); rrotullohen (radianët (-30)); tekst ("120 °", 0, 0); resetMatrix (); përkthe (0.4896 * gjerësi + gjerësi/2 * cos (radianë (150)), 0.9426 * lartësi - gjerësi/2 * sin (radianë (150))); rrotullohen (radianët (-60)); tekst ("150 °", 0, 0); popMatrix (); }

int StringToInt (String string) {int vlera = 0; për (int i = 0; i = '0' && string.charAt (i) <= '9') {vlera *= 10; vlera += (string.charAt (i) - '0'); }} vlera e kthimit;}

Recommended: