Cuprins:
Video: 聲納: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
改作:
我 在 原本 聲納 的 基礎 下 加裝 了 喇叭 以 達到 警告 的 作用
材料: arduino uno, 超音波 感測器, 驅動 馬達, 喇叭
功能: 掃描 到 物品 時 加速 並 傳 述 到 電腦 , 物品 接近 10cm 時 喇叭 會 警告
Pasul 1: Pasul 1 電路圖
這 是 電路圖
Pasul 2: Pasul 2 寫 程式 (arduino)
create.arduino.cc/editor/dwdawdad/ef6b26a2-3f40-410d-9fdd-3413816090fe/preview
Pasul 3: Pasul 3 processing 程式 (procesare)
procesare import.serial. *;
import java.awt.event. KeyEvent; import java.io. IOException;
Serial myPort; PFont orcFont; int iAngle; int iDistance; void setup () {dimensiune (1000, 500); neted(); myPort = Serial nou (acesta, "COM7", 9600); myPort.clear (); myPort.bufferUntil ('\ n');
} void draw () {fill (98, 245, 31); noStroke (); umplere (0, 4); rect (0, 0, lățime, 0,935 * înălțime); umplutură (98, 245, 31); DrawRadar (); DrawLine (); DrawObject (); DrawText (); } void serialEvent (Serial myPort) {try {String data = myPort.readStringUntil ('\ n'); if (date == nul) {return; } int commaIndex = data.indexOf (","); Unghiul șirului = data.substring (0, commaIndex); String distance = data.substring (commaIndex + 1, data.length () - 1); iAngle = StringToInt (unghi); iDistance = StringToInt (distanță); } catch (RuntimeException e) {}} void DrawRadar () {pushMatrix (); traducere (lățime / 2, 0,926 * înălțime); noFill (); greutate accident vascular cerebral (2); accident vascular cerebral (98, 245, 31); // desenează liniile de arc DrawRadarArcLine (0.9375); DrawRadarArcLine (0,7300); DrawRadarArcLine (0,5210); DrawRadarArcLine (0.3130); // desenează liniile unghiulare finale int halfWidth = width / 2; line (-halfWidth, 0, halfWidth, 0); for (int angle = 30; angle <= 150; angle + = 30) {DrawRadarAngledLine (angle); } line (-halfWidth * cos (radiani (30)), 0, halfWidth, 0); popMatrix (); } void DrawRadarArcLine (coeficientul de plutire final) {arc (0, 0, coeficient * lățime, coeficient * lățime, PI, TWO_PI); } void DrawRadarAngledLine (unghiul int final) {line (0, 0, (-width / 2) * cos (radians (angle)), (-width / 2) * sin (radians (angle))); } void DrawObject () {pushMatrix (); traducere (lățime / 2, 0,926 * înălțime); greutate accident vascular cerebral (9); accident vascular cerebral (255, 10, 10); int pixsDistance = int (iDistance * 0,020835 * înălțime); if (iDistance 40? "Out of Range": "In Range"), 0,125 * lățime, 0,9723 * înălțime); text ("Unghi:" + iAngle + "°", 0,52 * lățime, 0,9723 * înălțime); text („Distanță:”, 0,74 * lățime, 0,9723 * înălțime); if (iDistance <40) {text ("" + iDistance + "cm", 0,775 * lățime, 0,9723 * înălțime); } textSize (25); umplutură (98, 245, 60); traduce (0,5006 * lățime + lățime / 2 * cos (radiani (30)), 0,9093 * înălțime - lățime / 2 * sin (radiani (30))); rotire (-radians (-60)); text („30 °”, 0, 0); resetMatrix (); traducere (0.497 * lățime + lățime / 2 * cos (radiani (60)), 0.9112 * înălțime - lățime / 2 * sin (radiani (60))); rotire (-radians (-30)); text („60 °”, 0, 0); resetMatrix (); traduce (0,493 * lățime + lățime / 2 * cos (radiani (90)), 0,9167 * înălțime - lățime / 2 * sin (radiani (90))); rotire (radiani (0)); text („90 °”, 0, 0); resetMatrix (); traduce (0,487 * lățime + lățime / 2 * cos (radiani (120)), 0,92871 * înălțime - lățime / 2 * sin (radiani (120))); rotire (radiani (-30)); text („120 °”, 0, 0); resetMatrix (); traduce (0.4896 * lățime + lățime / 2 * cos (radiani (150)), 0.9426 * înălțime - lățime / 2 * sin (radiani (150))); rotire (radiani (-60)); text („150 °”, 0, 0); popMatrix (); }
int StringToInt (String string) {valoare int = 0; for (int i = 0; i = '0' && string.charAt (i) <= '9') {valoare * = 10; valoare + = (string.charAt (i) - '0'); }} valoare returnată;}
Recomandat:
Cum să faci 4G LTE dublă antenă BiQuade Pași simpli: 3 pași
Cum să fac 4G LTE Double BiQuade Antenna Pași simpli: De cele mai multe ori mă confrunt, nu am o putere de semnal bună pentru lucrările mele de zi cu zi. Asa de. Căut și încerc diferite tipuri de antenă, dar nu funcționează. După un timp pierdut, am găsit o antenă pe care sper să o fac și să o testez, pentru că nu se bazează pe principiul
Design de joc în Flick în 5 pași: 5 pași
Designul jocului în Flick în 5 pași: Flick este un mod foarte simplu de a crea un joc, în special ceva de genul puzzle, roman vizual sau joc de aventură
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Detectarea feței pe Raspberry Pi 4B în 3 pași: 3 pași
Detectarea feței pe Raspberry Pi 4B în 3 pași: În acest instructabil vom efectua detectarea feței pe Raspberry Pi 4 cu Shunya O / S folosind Biblioteca Shunyaface. Shunyaface este o bibliotecă de recunoaștere / detectare a feței. Proiectul își propune să obțină cea mai rapidă viteză de detectare și recunoaștere cu
Cum să faci un contor de pași ?: 3 pași (cu imagini)
Cum să fac un contor de pași ?: obișnuiam să performez bine la multe sporturi: mersul pe jos, alergatul, mersul pe bicicletă, jocul de badminton etc. Îmi place să călăresc să călătoresc în preajmă. Ei bine, uită-te la burtica mea ostilă …… Ei bine, oricum, decid să reîncep să fac mișcare. Ce echipament ar trebui să pregătesc?