সুচিপত্র:

聲納: 4 টি ধাপ
聲納: 4 টি ধাপ

ভিডিও: 聲納: 4 টি ধাপ

ভিডিও: 聲納: 4 টি ধাপ
ভিডিও: ⚡【S4】第四季完整版!秦羽手握外挂澜风,强闯青云路,得逆央先帝认可!【星辰变 Stellar Transformations】 2024, নভেম্বর
Anonim
聲納
聲納

: Https: //aboutsciences.com/blog/arduino-radar-using…

在 原本 聲納 聲納 加裝 了 了 以 以 達到

: Arduino uno, 感測器 感測器, 馬達,: 掃描 到 物品 物品 並 傳 述 到 接近 接近 接近 接近 10cm 時 喇叭 警告

ধাপ 1: ধাপ 1

ধাপ 1
ধাপ 1

ধাপ 2: ধাপ 2 寫 程式 (arduino)

ধাপ 2 寫 ar (arduino)
ধাপ 2 寫 ar (arduino)

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

ধাপ 3: ধাপ 3 寫 processing (প্রক্রিয়াকরণ)

আমদানি প্রক্রিয়াকরণ সিরিয়াল।*;

java.awt.event. KeyEvent আমদানি করুন; java.io. IOException আমদানি করুন;

সিরিয়াল myPort; PFont orcFont; int iAngle; int iDistance; অকার্যকর সেটআপ () {আকার (1000, 500); মসৃণ (); myPort = নতুন সিরিয়াল (এটি, "COM7", 9600); myPort.clear (); myPort.bufferUntil ('\ n');

} অকার্যকর ড্র () {পূরণ (98, 245, 31); noStroke (); পূরণ করুন (0, 4); রেকট (0, 0, প্রস্থ, 0.935 * উচ্চতা); পূরণ করুন (98, 245, 31); DrawRadar (); রেখা অংকন করুন(); DrawObject (); DrawText (); } void serialEvent (Serial myPort) {try {String data = myPort.readStringUntil ('n'); যদি (data == null) {return; } int commaIndex = data.indexOf (","); স্ট্রিং এঙ্গেল = data.substring (0, commaIndex); স্ট্রিং দূরত্ব = data.substring (commaIndex+1, data.length ()-1); iAngle = StringToInt (কোণ); iDistance = StringToInt (দূরত্ব); } ধরা (RuntimeException e) {}} অকার্যকর DrawRadar () {pushMatrix (); অনুবাদ করুন (প্রস্থ/2, 0.926 * উচ্চতা); noFill (); স্ট্রোকওয়েট (2); স্ট্রোক (98, 245, 31); // আর্ক লাইন আঁকে DrawRadarArcLine (0.9375); DrawRadarArcLine (0.7300); DrawRadarArcLine (0.5210); DrawRadarArcLine (0.3130); // কোণ রেখা আঁকে চূড়ান্ত int halfWidth = width/2; লাইন (-আধা প্রস্থ, 0, অর্ধ প্রস্থ, 0); জন্য (int কোণ = 30; কোণ <= 150; কোণ+= 30) {DrawRadarAngledLine (কোণ); } লাইন (-হালফাইথ * cos (রেডিয়ান (30)), 0, অর্ধ প্রস্থ, 0); popMatrix (); } অকার্যকর DrawRadarArcLine (চূড়ান্ত ফ্লোট সহগ) {arc (0, 0, coefficient * width, coefficient * width, PI, TWO_PI); } অকার্যকর DrawRadarAngledLine (চূড়ান্ত int কোণ) {লাইন (0, 0, (-উইথ/2) * cos (রেডিয়ান (কোণ)), (-উইথ/2) * পাপ (রেডিয়ান (কোণ))); } অকার্যকর DrawObject () {pushMatrix (); অনুবাদ করুন (প্রস্থ/2, 0.926 * উচ্চতা); স্ট্রোকওয়েট (9); স্ট্রোক (255, 10, 10); int pixsDistance = int (iDistance * 0.020835 * height); যদি (iDistance 40? "আউট অফ রেঞ্জ": "রেঞ্জের মধ্যে"), 0.125 * প্রস্থ, 0.9723 * উচ্চতা); পাঠ্য ("কোণ:" + iAngle + "°", 0.52 * প্রস্থ, 0.9723 * উচ্চতা); পাঠ্য ("দূরত্ব:", 0.74 * প্রস্থ, 0.9723 * উচ্চতা); যদি (iDistance <40) {টেক্সট ("" + iDistance + "cm", 0.775 * প্রস্থ, 0.9723 * উচ্চতা); } textSize (25); পূরণ করুন (98, 245, 60); অনুবাদ করুন (0.5006 * প্রস্থ + প্রস্থ/2 * cos (রেডিয়ান (30)), 0.9093 * উচ্চতা - প্রস্থ/2 * পাপ (রেডিয়ান (30))); ঘোরান (-রাডিয়ান (-60)); পাঠ্য ("30 °", 0, 0); resetMatrix (); অনুবাদ করুন (0.497 * প্রস্থ + প্রস্থ/2 * cos (রেডিয়ান (60)), 0.9112 * উচ্চতা - প্রস্থ/2 * পাপ (রেডিয়ান (60))); ঘোরান (-রাডিয়ান (-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') {মান *= 10; মান += (string.charAt (i) - '0'); }} ফেরত মূল্য;}

প্রস্তাবিত: