সুচিপত্র:

যানবাহনের জন্য ইমপ্যাক্ট রেকর্ডার: 18 টি ধাপ (ছবি সহ)
যানবাহনের জন্য ইমপ্যাক্ট রেকর্ডার: 18 টি ধাপ (ছবি সহ)

ভিডিও: যানবাহনের জন্য ইমপ্যাক্ট রেকর্ডার: 18 টি ধাপ (ছবি সহ)

ভিডিও: যানবাহনের জন্য ইমপ্যাক্ট রেকর্ডার: 18 টি ধাপ (ছবি সহ)
ভিডিও: 極上のクラウンAdvanced Leather Package  TOYOTA CROWN CROSSOVER G Advanced Leather Package 本革シート 2024, ডিসেম্বর
Anonim
যানবাহনের জন্য ইমপ্যাক্ট রেকর্ডার
যানবাহনের জন্য ইমপ্যাক্ট রেকর্ডার

ইমপ্যাক্ট রেকর্ডার ড্রাইভিং বা স্থির অবস্থায় গাড়ির উপর স্থায়ী প্রভাব রেকর্ড করার জন্য ডিজাইন করা হয়েছে। প্রভাবগুলি ডাটাবেসে রিডিং এবং ভিডিও/ছবির আকারে সংরক্ষণ করা হয়। রিমোট ব্যবহারকারীর উপর প্রভাব পড়লে রিয়েল টাইমে যাচাই করা যায়, এবং দূরবর্তী ব্যবহারকারী সংরক্ষিত ভিডিও দেখতে বা পাই ক্যামেরায় রিমোট অ্যাক্সেস নিতে পারে এবং সেই অনুযায়ী ইভেন্টগুলি দেখতে পারে ।

ধাপ 1: যন্ত্রাংশ এবং আনুষাঙ্গিক

(1) রাস্পবেরি পাই 3 বা আরও ভাল: কম্পিউটেশনাল পাওয়ার প্রয়োজন

(2) রাস্পবেরী পাই ইন্দ্রিয় টুপি

(3) রাস্পবেরি পাই ক্যামেরা / ইউএসবি ক্যামেরা

(4) সর্বশেষ রাস্পবিয়ান চিত্র সহ মেমরি কার্ড (নোড লাল সমর্থন করা উচিত, প্রায় প্রতিটি সর্বশেষ চিত্র করে)

(5) কমপক্ষে 2.1 এ পাওয়ার সাপ্লাই (আমি গাড়িতে স্বতন্ত্র অপারেশনের জন্য ব্যাটারি ব্যাংক ব্যবহার করেছি)

ধাপ 2: যন্ত্রাংশ বর্ণনা: সেন্স হাট

যন্ত্রাংশের বর্ণনা: সেন্স হাট
যন্ত্রাংশের বর্ণনা: সেন্স হাট

সেন্স HAT এর একটি 8 × 8 RGB LED ম্যাট্রিক্স, একটি পাঁচ-বোতাম জয়স্টিক এবং এতে নিম্নলিখিত সেন্সর রয়েছে:

  • জাইরোস্কোপ
  • অ্যাকসিলরোমিটার
  • ম্যাগনেটোমিটার
  • তাপমাত্রা
  • ব্যারোমেট্রিক
  • চাপ
  • আর্দ্রতা

সেন্স টুপি নিয়ে কাজ করার বিষয়ে আরও তথ্য নিচের লিঙ্কগুলি থেকে পাওয়া যেতে পারে: সেন্স_হ্যাট

Sense_hat_API এ ইন্দ্রিয় টুপি জন্য হোস্ট করা হয়

সেন্স-হ্যাট প্রোগ্রামিংয়ের কোড পরবর্তী ধাপে আচ্ছাদিত। সেন্স টুপি সিমুলেটর হোস্ট করা সিমুলেটারেও সেন্স হ্যাট কোড তৈরি করা যায়

ধাপ 3: একত্রিত করা: ইমপ্যাক্ট রেকর্ডার

একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
একত্রিত করা: ইমপ্যাক্ট রেকর্ডার
  • একত্রিত করা সহজ কারণ ইন্দ্রিয়ের টুপিটি পাইয়ের উপর স্ট্যাক করা প্রয়োজন (মনোনীত মাউন্ট করা বোল্টগুলি সেন্স টুপি দিয়ে দেওয়া হয়)।
  • ইউএসবি ক্যামেরা বা পাই ক্যামেরা সংযুক্ত করা যেতে পারে। টিউটোরিয়ালে, পাই ক্যামেরা বিবেচনা করা হয় এবং সেই অনুযায়ী কোডিং করা হয়।
  • মেমরি কার্ড andোকান এবং পাইথন কোড এবং নোড -রেড কনফিগার করুন (কনফিগারেশন এবং কোড আরও ধাপে আচ্ছাদিত)

উপরের ছবিটি দেখায় যে পাই-ক্যামেরা ফ্ল্যাট রিবন ক্যাবলের মাধ্যমে পাইতে সংযুক্ত

ধাপ 4: একত্রিত করা: গাড়ির ড্যাশ বোর্ডে ইমপ্যাক্ট রেকর্ডার

অ্যাসেম্বলিং: গাড়ির ড্যাশ বোর্ডে ইমপ্যাক্ট রেকর্ডার
অ্যাসেম্বলিং: গাড়ির ড্যাশ বোর্ডে ইমপ্যাক্ট রেকর্ডার

রেকর্ডার মাউন্ট করার জন্য, আমি ডবল পার্শ্বযুক্ত টেপ ব্যবহার করেছি, সুবিধা হল রেকর্ডারটি সহজেই বিভিন্ন অবস্থানে স্থানান্তরিত হতে পারে, যেটি আপনার গাড়ির জন্য উপযুক্ত।

আরও ক্যামেরা উল্লম্বভাবে মাউন্ট করা হয়েছে যেমন দেখানো হয়েছে, একই ডবল সাইড টেপ ব্যবহার করে, পরবর্তী লাইনটি একটি প্রস্তুত ইন্টারনেট সংযোগের সাথে একটি পাওয়ার সোর্স (10, 000 mAH পাওয়ার ব্যাংক) সংযুক্ত করা

MQTT আবেদনের জন্য ইন্টারনেট সংযোগের প্রয়োজন হবে (MQTT- এর বিবরণ পরবর্তী ধাপে অন্তর্ভুক্ত

ধাপ 5: ইমপ্যাক্ট রেকোডার: কাজ এবং অ্যাপ্লিকেশন

সেন্স টুপি থেকে, অ্যাক্সিলারেশন এবং জাইরোস্কোপ ব্যবহার করা হয় যে কোডে কাঁচা মান নির্ধারিত সীমার বাইরে কিনা তা পরীক্ষা করতে।

অ্যাকসিলরোমিটার: অ্যাক্সিলারোমিটার x, y & z অক্ষের প্রতিটিতে কাজ করে মহাকর্ষীয় বলের (G- বল) পরিমাণ বলে, যদি কোন অক্ষ দ্রুত গতি সনাক্ত করা যায় তার চেয়ে 1G বলের বেশি পরিমাপ করে। (অনুগ্রহ করে নোট করুন যে নিচের দিকে নির্দেশ করা অক্ষের 1g মান থাকবে এবং পাইথন কোড অনুসারে এটি বিবেচনা করা প্রয়োজন)।

জাইরোস্কোপ; জাইরোস্কোপটি কৌণিক গতি পরিমাপ করতে ব্যবহৃত হয়, যেমন তীক্ষ্ণ মোড় নেওয়ার সময় সেন্সর সক্রিয় হতে পারে (কোডের সেটিংয়ের উপর নির্ভর করে), তাই গাড়ির তীব্র ঘূর্ণনকারী ব্যক্তি ধরা পড়বে !!

নির্ধারিত সীমার যেকোনো অ্যাক্টিভেশন ইন্দ্রিয় টুপি LED ম্যাট্রিক্সে "!" ত্বরণ জন্য লাল এবং জাইরোস্কোপ সক্রিয়করণের জন্য সবুজ

ধাপ 6: সফ্টওয়্যার বর্ণনা: নোড লাল

নোড-রেড একটি প্রবাহ-ভিত্তিক প্রোগ্রামিং টুল, মূলত আইবিএম এর উদীয়মান প্রযুক্তি সার্ভিসেস টিম দ্বারা তৈরি এবং এখন জেএস ফাউন্ডেশনের একটি অংশ।

নোড লাল সম্পর্কে আরও তথ্য নিম্নলিখিত লিঙ্কের মাধ্যমে পাওয়া যেতে পারে: নোড-রেড

আমাদের ক্ষেত্রে আমরা নিম্নলিখিত ক্রিয়াকলাপগুলির জন্য নোড -রেড ব্যবহার করব

(1) ক্যামেরা ফাংশন শুরু করার জন্য জয়স্টিকের সাথে ইন্টারঅ্যাক্ট করা

(2) যানবাহনের উপর প্রভাবগুলি পর্যবেক্ষণ করা এবং MQTT নিযুক্ত করে শেষ ব্যবহারকারীর কাছে তথ্য সরবরাহ করা এবং MQTT এর মাধ্যমে শেষ ব্যবহারকারীর আদেশগুলি গ্রহণ করা এবং pi- এ প্রয়োজনীয় আবেদন শুরু করা

(3) কিছু মৌলিক জিনিস সম্পাদন করা যেমন পাই বন্ধ করা

পরবর্তী পদক্ষেপগুলি নোড-রেডে প্রয়োগ করা প্রবাহ চিত্রের জন্য বিস্তারিত তথ্য দেয়

অনুগ্রহ করে লক্ষ্য করুন নোড-রেড ফ্লো ডায়াগ্রামগুলি পাইথন কোডের সাথে ইন্টারঅ্যাক্ট করে, অতএব পরবর্তী অংশটি পাইথন কোডের দিকগুলিকে আচ্ছাদিত করে।

ধাপ 7: নোড-রেড বুনিয়াদি

নোড-লাল বুনিয়াদি
নোড-লাল বুনিয়াদি
নোড-লাল বুনিয়াদি
নোড-লাল বুনিয়াদি
নোড-লাল বুনিয়াদি
নোড-লাল বুনিয়াদি

একটি ফ্ল্যাশে নোড-রেড শুরু করার জন্য কিছু মৌলিক পদক্ষেপগুলি হাইলাইট করা হয়েছে, তবে হ্যাঁ নোড-রেড অ্যাপ্লিকেশনগুলি শুরু করা এবং কাজ করা খুব সহজ।

  • নোড-রেড শুরু হচ্ছে: https:// localhost: 1880।
  • Pi ইন্টারনেটের সাথে সংযুক্ত হলে নোড-রেড শুরু হচ্ছে https:// ip address>: 1880

ধাপ 8: নোড-লাল: প্রবাহ _1a

নোড-লাল: প্রবাহ _1a
নোড-লাল: প্রবাহ _1a

ফ্লো _1a, CSV ফাইলের কোন পরিবর্তন পর্যবেক্ষণ করে এবং পরিবর্তনের ভিত্তিতে, যেমন প্রভাব ধরা পড়ে, ক্যামেরা ভিডিও রেকর্ডিং মোডে সেট করা হয় এবং আরও ব্যবহারকারীকে ইন্টারনেটে জানানো হয় যে একটি প্রভাব ঘটেছে

ধাপ 9: নোড রেড: Flow_1b

নোড লাল: Flow_1b
নোড লাল: Flow_1b

উল্লিখিত প্রবাহে, জয়স্টিক টিপে যে কোনও সময়ে ভিডিও রেকর্ডিং শুরু করা যেতে পারে

ধাপ 10: নোড রেড: Flow_2a

নোড লাল: Flow_2a
নোড লাল: Flow_2a

উল্লিখিত প্রবাহে, যখনই কোনও নতুন ছবি বা ভিডিও সঞ্চয় করা হয়/ডিরেক্টরিতে আপলোড করা হয় তখন তথ্যটি নিবন্ধিত ব্যবহারকারীর কাছে ইন্টারনেটে পাঠানো হয়

ধাপ 11: নোড রেড: Flow_2b

নোড লাল: Flow_2b
নোড লাল: Flow_2b

এই প্রবাহটি প্রাথমিকভাবে দূরবর্তী ব্যবহারকারীর জন্য ডিজাইন করা হয়েছে, যাতে ডিভাইসটি নিম্নলিখিত পদ্ধতিতে নিয়ন্ত্রণ করা যায়

(ক) শাটডাউন ডিভাইস

(খ) ছবি তোলা

(গ) রেকর্ড ভিডিও

(d) প্রধান কোড শুরু করুন (ডেটালগার কোড হল মূল কোড যা প্রভাব গণনা করে)

ধাপ 12: নোড লাল; প্রবাহ_3

নোড লাল; প্রবাহ_3
নোড লাল; প্রবাহ_3

প্রবাহটি স্থানীয় অ্যাক্সেসের জন্য ডিজাইন করা হয়েছে, যাতে মূল কোড বা শাটডাউন ডিভাইসটি শুরু করা যায়

ধাপ 13: MQTT

এমকিউটিটি (মেসেজ কিউইং টেলিমেট্রি ট্রান্সপোর্ট) একটি টিসিপি/আইপি প্রোটোকল, যেখানে প্রকাশক এবং গ্রাহক মিথস্ক্রিয়া করে।

আমাদের ক্ষেত্রে Pi হল প্রকাশক, যেখানে আমাদের মোবাইল/পিসিতে ইনস্টল করা অ্যাপ্লিকেশনটি গ্রাহক হবে।

এইভাবে যে কোনো প্রভাব তৈরির ক্ষেত্রে, তথ্য দূরবর্তীভাবে ব্যবহারকারীর কাছে পৌঁছে দেওয়া হয় (একটি কার্যকরী ইন্টারনেট সংযোগ আবশ্যক)

এমকিউটিটি সম্পর্কে আরও তথ্য নিম্নলিখিত লিঙ্ক থেকে অ্যাক্সেস করা যেতে পারে: এমকিউটিটি

MQTT ব্যবহার শুরু করার জন্য, আমাদের প্রথমে নিবন্ধন করতে হবে, টিউটোরিয়ালের জন্য আমি ক্লাউডএমকিউটিটি (www.cloudmqtt.com) ব্যবহার করেছি, "কিউট ক্যাট" এর অধীনে একটি ফ্রি প্ল্যান আছে, এটাই সব।

নিবন্ধনের পরে একটি উদাহরণ তৈরি করুন "পাই" বলুন যার পরে আপনি নিম্নলিখিত বিবরণ পাবেন

  • সার্ভার নাম
  • বন্দর
  • ব্যবহারকারীর নাম
  • পাসওয়ার্ড

মোবাইল/পিসির মাধ্যমে সাবস্ক্রাইব করার সময় উপরোক্ত প্রয়োজন

আমার আবেদনের জন্য, আমি গুগল প্লে স্টোর থেকে এমকিউটিটি অ্যাপ্লিকেশন ব্যবহার করেছি (অ্যান্ড্রয়েড সংস্করণ)

ধাপ 14: MQTT: গ্রাহক

MQTT: গ্রাহক
MQTT: গ্রাহক

মোবাইলে চলমান MQTT অ্যাপ্লিকেশন (অ্যান্ড্রয়েড সংস্করণ)

পাইতে সনাক্ত করা প্রভাবটি পুনরায় চালু করা হয়

ধাপ 15: MQTT: নোড-রেডে বৈশিষ্ট্য সম্পাদনা

MQTT: নোড-রেডে এডিটিং প্রোপার্টি
MQTT: নোড-রেডে এডিটিং প্রোপার্টি

এমকিউটিটি নোড নির্বাচন করার পরে নোড-রেডে, "সার্ভারের নাম" এবং "বিষয়" উল্লেখ করতে হবে। গ্রাহকদের শেষে এটি একই হওয়া উচিত

ধাপ 16: পাইথন কোড:

কোডের কার্যকারিতা সংযুক্ত ফ্লোচার্ট অনুযায়ী

ধাপ 17: চূড়ান্ত কোড

পাইথন কোড সংযুক্ত করা হয়েছে

আমাদের পাইথন স্ক্রিপ্টটি টার্মিনাল থেকে চালানোর জন্য, আমাদের তাদের chmod +x datalogger.py হিসাবে এক্সিকিউটেবল করতে হবে, কোডের উপরের অংশে নিম্নলিখিত "শেবাং" লাইন #থাকা উচিত! /usr/bin/python3 (এটি প্রয়োজন যাতে নোড-রেড থেকে ফাংশন চালানো যায়)

#!

ইন্দ্রিয় = SenseHat ()

csv আমদানি করুন

টাইমস্ট্যাম্প = datetime.now ()

বিলম্ব = 5 // বিলম্ব সংজ্ঞায়িত করা হয়েছে data.csv ফাইলে ডাটা সঞ্চয় করতে লাল = (255, 0, 0) সবুজ = (0, 255, 0) হলুদ = (255, 255, 0)

#GPIO.setmode (GPIO. BCM)

#GPIO.setup (17, GPIO. OUT)

def get_sense_impact ():

sense_impact = acc = sense.get_accelerometer_raw () sense_impact.append (acc ["x"]) sense_impact.append (acc ["y"]) sense_impact.append (acc ["z"])

gyro = sense.get_gyroscope_raw ()

sense_impact.append (gyro ["x"]) sense_impact.append (gyro ["y"]) sense_impact.append (gyro ["z"])

রিটার্ন sens_impact

def effect (): // ফাংশন প্রভাব সনাক্ত করতে #GPIO.setmode (GPIO. BCM) #GPIO.setup (4, GPIO. OUT) ত্বরণ = sense.get_accelerometer_raw () x = ত্বরণ ['x'] y = ত্বরণ ['y'] z = ত্বরণ ['z'] x = abs (x) y = abs (y) z = abs (z)

gyro = sense.get_gyroscope_raw ()

গাইরক্স = গাইরো ["x"] গাইরয় = গাইরো ["y"] গাইরোজ = গাইরো ["z"]

গাইরক্স = গোল (গাইরক্স, 2)

গাইরয় = গোল (গাইরয়, 2) গাইরোজ = গোল (গাইরোজ, 2)

প্রভাব = get_sense_impact ()

যদি x> 1.5 বা y> 1.5 বা z> 1.5: // প্রকৃত রাস্তায় পুনরাবৃত্তির পরে মানগুলি সেট করা হয় তাহলে বিভিন্ন ধরনের এবং ড্রাইভিং দক্ষতার জন্য খোলা ('impact.csv', 'w', newline = ' ') f: data_writer = writer (f) data_writer.writerow ([' acc x ',' acc y ',' acc z ',' gyro x ',' gyro y ',' gyro z ']) #GPIO। আউটপুট (4, GPIO. HIGH) sense. clear () sense.show_letter ("!", লাল) data_writer.writerow (প্রভাব)

elif gyrox> 1.5 বা gyroy> 1.5 বা gyroz> 1.5: // মানগুলি যে গতিতে খোলা ('impact.csv', 'w', newline = '') দিয়ে f: data_writer = writer (f) data_writer.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO.output (4, GPIO উচ্চ) sense. clear () sense.show_letter ("!", Green) data_writer.writerow (effect)

অন্য:

# GPIO.output (4, GPIO. LOW) sense. clear ()

def get_sense_data (): // ফাংশন সেন্সর সেন্স_ডাটা = থেকে রেকর্ড এবং সঞ্চয় করতে

sense_data.append (sense.get_temperature ()) sense_data.append (sense.get_pressure ()) sense_data.append (sense.get_humidity ())

অভিযোজন = sense.get_orientation ()

sense_data.append (ওরিয়েন্টেশন ["yaw"]) sense_data.append (ওরিয়েন্টেশন ["পিচ"]) sense_data.append (ওরিয়েন্টেশন ["রোল"])

acc = sense.get_accelerometer_raw ()

sense_data.append (acc ["x"]) sense_data.append (acc ["y"]) sense_data.append (acc ["z"]) mag = sense.get_compass_raw () sense_data.append (mag ["x"]) sense_data.append (ম্যাগ ["y"]) sense_data.append (ম্যাগ ["z"])

gyro = sense.get_gyroscope_raw ()

sense_data.append (gyro ["x"]) sense_data.append (gyro ["y"]) sense_data.append (gyro ["z"])

sense_data.append (datetime.now ())

রিটার্ন সেন্স_ডাটা

খোলা ('data.csv', 'w', newline = '') হিসাবে f:

data_writer = লেখক (f)

data_writer.writerow (['temp', 'pres', 'hum', 'yaw', 'pitch', 'roll', 'acc x', 'acc y', 'acc z', 'mag x', ' ম্যাগ ওয়াই ',' ম্যাগ জেড ',' গাইরো এক্স ',' গাইরো ওয়াই ',' গাইরো জেড ',' ডেটটাইম '])

যখন সত্য:

প্রিন্ট (get_sense_data ()) ইভেন্টের জন্য sense.stick.get_events (): # চেক করুন যদি জয়স্টিকটি চাপানো হয় কিনা event.action == "pressed": # কোন দিকটি দেখুন যদি event.direction == "up": # sense.show_letter ("U") # Up arrow acceleration = sense.get_accelerometer_raw () x = ত্বরণ ['x'] y = ত্বরণ ['y'] z = ত্বরণ ['z'] x = বৃত্তাকার (x, 0) y = বৃত্তাকার (y, 0) z = বৃত্তাকার (z, 0)

# X == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) else: sense.set_rotation (0) sense. clear () t = sense.get_temperature () t = round (t, 1) message = "T:" + str (t) sense.show_message (বার্তা, text_colour = লাল, scroll_speed = 0.09) elif event.direction == "down": acceleration = sense.get_accelerometer_raw () x = ত্বরণ ['x'] y = ত্বরণ ['y'] z = ত্বরণ ['z'] x = বৃত্তাকার (x, 0) y = বৃত্তাকার (y, 0) z = বৃত্তাকার (z, 0)

# X == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) else: sense.set_rotation (0) # sense.show_letter ("D") # down arrow sense.clear () h = sense.get_humidity () h = round (h, 1) message = "H:" + str (h) sense.show_message (message, text_colour = green, scroll_speed = 0.09) p = sense.get_pressure () p = round (p, 1) message = "P:" + str (p) sense.show_message (বার্তা, text_colour = হলুদ, scroll_speed = 0.09)

# elif event.direction == "left":

#ত্বরণ = sense.get_accelerometer_raw () #x = ত্বরণ ['x'] #y = ত্বরণ ['y'] #z = ত্বরণ ['z'] #x = বৃত্তাকার (x, 0) #y = বৃত্তাকার (y, 0) #z = বৃত্তাকার (z, 0)

#ডিসপ্লের ঘূর্ণন আপডেট করুন কোন পথে আপডেট করে // ব্যবহার করা হয় না এবং নোড -রেড দ্বারা নিয়ন্ত্রিত হয় না #if x == -1: sense.set_rotation (90) #elif y == 1: sense.set_rotation (270) #elif y == -1: sense.set_rotation (180) #else: sense.set_rotation (0) # sense.show_letter ("L") # বাম তীর # elif event.direction == "right": # sense.show_letter ("K") # ডান তীর # elif event.direction == "middle": # sense. clear ()

প্রভাব ()

ডেটা = get_sense_data ()

dt = data [-1] - টাইমস্ট্যাম্প হলে dt.seconds> বিলম্ব: data_writer.writerow (data) টাইমস্ট্যাম্প = datetime.now ()

ধাপ 18: লাইভ ভিডিও পর্যবেক্ষণ

ইমপ্যাক্ট রেকর্ডার লাইভ ভিডিও মনিটরিং করতেও ব্যবহার করা যেতে পারে, কারণ MQTT এর মাধ্যমে যেকোনো সময় ভিডিও শুরু করা যায়

আমরা ভিডিও স্ট্রিম করতে ভিএলসি প্লেয়ার ব্যবহার করব, ডিফল্টরূপে সর্বশেষ রাস্পবিয়ানে ভিএলসি প্রি-ইন্সটল করা আছে, অন্যথায় নীচে ভিএলসি ইনস্টল করুন

নেটওয়ার্ক স্ট্রিম দেখার বিষয়ে আরও তথ্য ভিএলসি নেটওয়ার্ক স্ট্রীমের মাধ্যমে অ্যাক্সেস করা যায়

পড়ার জন্য আপনাকে ধন্যবাদ!!

ইফেক্ট রেকর্ডার আরো অনেক কিছু করতে পারে..

বাধা ম্যাপিং করতে চৌম্বক ক্ষেত্র বিশ্লেষণের জন্য পরবর্তী স্থানটি দেখুন

প্রস্তাবিত: