فهرست مطالب:

: 4 مرحله
: 4 مرحله

تصویری: : 4 مرحله

تصویری: : 4 مرحله
تصویری: اجمد لوحه 4 مرحله من رخصها هتشتريها 2024, دسامبر
Anonim
聲納
聲納

改作:

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

材料: arduino uno ، 感測器 ، 驅動 馬達 ،

功能: 掃描 物品 時 加速 並 傳 cm cm cm cm cm cm cm cm 10cm 時 喇叭 會

مرحله 1: مرحله 1

مرحله 1
مرحله 1

這 是 電路圖

مرحله 2: مرحله 2 (arduino)

مرحله 2 (آردوینو)
مرحله 2 (آردوینو)

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

مرحله 3: مرحله 3 (پردازش)

پردازش واردات. سریال.*؛

واردات java.awt.event. KeyEvent ؛ واردات java.io. IOException؛

سریال myPort ؛ PFont orcFont؛ int iAngle؛ int iDistance ؛ void setup () {اندازه (1000 ، 500) ؛ صاف()؛ myPort = سریال جدید (این ، "COM7" ، 9600) ؛ myPort.clear ()؛ myPort.bufferUntil ('\ n')؛

} void draw () {fill (98، 245، 31)؛ noStroke ()؛ پر (0 ، 4) ؛ راست (0 ، 0 ، عرض ، 0.935 * ارتفاع) ؛ پر کنید (98 ، 245 ، 31) ؛ DrawRadar ()؛ DrawLine ()؛ DrawObject ()؛ DrawText ()؛ } void serialEvent (Serial myPort) {try {String data = myPort.readStringUntil ('\ n')؛ if (data == null) {return؛ } int commaIndex = data.indexOf ("،")؛ زاویه رشته = data.substring (0 ، کاما ایندکس) ؛ فاصله رشته = data.substring (کاما ایندکس+1 ، data.length ()-1) ؛ iAngle = StringToInt (زاویه) ؛ iDistance = StringToInt (فاصله) ؛ } catch (RuntimeException e) {}} void DrawRadar () {pushMatrix ()؛ ترجمه (عرض/2 ، 0.926 * ارتفاع) ؛ noFill ()؛ سکته مغزی وزن (2) ؛ سکته مغزی (98 ، 245 ، 31) ؛ // خطوط قوس را رسم می کند DrawRadarArcLine (0.9375) ؛ DrawRadarArcLine (0.7300) ؛ DrawRadarArcLine (0.5210) ؛ DrawRadarArcLine (0.3130) ؛ // رسم خطوط زاویه int intWWthth = width/2؛ خط (-halfWidth ، 0 ، halfWidth ، 0) ؛ برای (زاویه int = 30 ؛ زاویه <= 150 ؛ زاویه+= 30) {DrawRadarAngledLine (زاویه) ؛ } line (-halfWidth * cos (رادیان (30)) ، 0 ، halfWidth ، 0) ؛ popMatrix ()؛ } void DrawRadarArcLine (ضریب شناور نهایی) {arc (0 ، 0 ، ضریب * عرض ، ضریب * عرض ، PI ، TWO_PI) ؛ } void DrawRadarAngledLine (زاویه int نهایی) {line (0، 0، (-width/2) * cos (radians (angle))، (-width/2) * sin (radians (angle)))؛ } void DrawObject () {pushMatrix ()؛ ترجمه (عرض/2 ، 0.926 * ارتفاع) ؛ سکته مغزی وزن (9) ؛ سکته مغزی (255 ، 10 ، 10) ؛ int pixsDistance = int (iDistance * 0.020835 * ارتفاع) ؛ if (iDistance 40؟ "Out of Range": "In Range") ، 0.125 * عرض ، 0.9723 * ارتفاع) ؛ متن ("زاویه:" + iAngle + "°" ، 0.52 * عرض ، 0.9723 * ارتفاع) ؛ متن ("فاصله:" ، 0.74 * عرض ، 0.9723 * ارتفاع) ؛ if (iDistance <40) {text ("" + iDistance + "cm" ، 0.775 * عرض ، 0.9723 * ارتفاع) ؛ } textSize (25) ؛ پر کنید (98 ، 245 ، 60) ؛ ترجمه (0.5006 * عرض + عرض/2 * cos (رادیان (30)) ، 0.9093 * ارتفاع - عرض/2 * گناه (رادیان (30))) ؛ چرخش (-radian (-60)) ؛ متن ("30 درجه" ، 0 ، 0) ؛ resetMatrix ()؛ ترجمه (0.497 * عرض + عرض/2 * cos (رادیان (60)) ، 0.9112 * ارتفاع - عرض/2 * گناه (رادیان (60))) ؛ چرخش (-radian (-30)) ؛ متن ("60 درجه" ، 0 ، 0) ؛ resetMatrix ()؛ ترجمه (0.493 * عرض + عرض/2 * cos (رادیان (90)) ، 0.9167 * ارتفاع - عرض/2 * گناه (رادیان (90))) ؛ چرخش (رادیان (0)) ؛ متن ("90 درجه" ، 0 ، 0) ؛ resetMatrix ()؛ ترجمه (0.487 * عرض + عرض/2 * cos (رادیان (120)) ، 0.92871 * ارتفاع - عرض/2 * گناه (رادیان (120))) ؛ چرخش (رادیان (-30)) ؛ متن ("120 درجه" ، 0 ، 0) ؛ resetMatrix ()؛ ترجمه (0.4896 * عرض + عرض/2 * cos (رادیان (150)) ، 0.9426 * ارتفاع - عرض/2 * گناه (رادیان (150))) ؛ چرخش (رادیان (-60)) ؛ متن ("150 درجه" ، 0 ، 0) ؛ popMatrix ()؛ }

int StringToInt (رشته رشته) {int value = 0؛ برای (int i = 0؛ i = '0' && string.charAt (i) <= '9') {value *= 10؛ مقدار += (string.charAt (i) - '0')؛ }} مقدار بازگشت ؛}

توصیه شده: