صنع مودم سونار بسيط

مرحبا عزيزي!


في هذه المقالة ، سوف نخبرك حسب الطلب الشائع بكيفية صنع مودم صوتي بسيط: القليل من معالجة الإشارات الرقمية ، وقليلًا من البرمجة ، ولوحات الدوائر المطبوعة الصغيرة محلية الصنع ، وقطرات الهيدرولوجيا العملية.

لجميع المهتمين - نطلب منك أن تكون موضع ترحيب في ظل الخفض ، في عالم صامت من الاتصالات تحت الماء!

وهنا هي الصورة ذات الصلة ، لجذب الانتباه:



"في نهاية المطاف ، فإن معنى وجودنا هو إنفاق الطاقة ... وإذا أمكن ، كما تعلمون ، فهذا أمر مثير للاهتمام لنفسك وللآخرين."
(ج) ABS ، منتصف النهار ، القرن الثاني والعشرين

وفر وقتك - ملخص


  • لا يتم بيع أجهزة المودم الصوتية بعد على Aliexpress
  • هناك طريقة بسيطة وغير مستهلكة لموارد الحوسبة لاكتشاف نغمة ، ترددها أقل 4 مرات من تردد أخذ العينات ؛ اردوينو يكفي للتنفيذ
  • رمز عينة للكمبيوتر تقع على جيثب
  • نصنع هوائيات الاستقبال والإرسال من ملتقطي فطائر كل منهما 10 ص
  • نشتري (أو نفعل ذلك بأنفسنا) لوحة مكبر للصوت على TDA2030 على علي مقابل 50 روبل
  • نصنع مضخم صوت LUT-أوم ، بتكلفة إجمالية قدرها 100 روبل
  • نحن نتواصل ونذهب إلى البركة
  • نفرح

مقدمة تحفيزية


الآن يمكنك شراء أي شيء تقريبا على Aliexpress أو موقع ئي باي. خاصةً الكثير من الأشياء المختلفة للتصنيع المستقل لشيء إلكتروني يعتمد على Arduino. يمكنك جعل (إذا كنت لا تشتريه فقط للاهتمام) محطة للطقس توقف مع اتصال إنترنت ، وحدة تغذية القط التلقائي ، وحدة تحكم مصنع الجعة المنزل ، ولكن لا يزال لا يمكنك شراء مودم سونار ، مصمم لتصنيعها ، أو على الأقل وحدة adruino. حسنا و جيد! لا - الآن سنخبرك بكيفية تصنيعها ، ونقول أيضًا كيف تعمل.

فكرنا في المختبر بأكمله لفترة طويلة في تقديم ما يمكن تقديمه إلى عشاق صناعة مستقلة. شيء بسيط للغاية ، يمكن جمعه من قبل طالب ومن عصا وحبل ما لدى الجميع في متناول اليد ، ولكن في نفس الوقت يمثل بالضرورة قيمة عملية أو تعليمية على الأقل.

شيء يعد بتحسن طويل ومثير ، وهو ما يمكن نقله لاحقًا حتى إلى اردوينو ، إذا كان غير صحيح .

إذا تعاملنا مع المشكلة من الناحية المادية ، نود تقديم برنامج تعليمي مفصل لتصنيع جهاز بسيط يكون أكثر أو أقل قدرة على نقل البيانات في جسم مائي ضحل (قناة السونار الضحلة هي الأكثر تعقيدًا) ، مما يعني أقصى إنتاج لوحة دوائر مطبوعة باستخدام LUT ، بتكلفة إجمالية لا تتجاوز بضع مئات من روبل في الحد الأدنى من النقاط.

ماذا سنفعل اليوم؟


  • تذكر كيفية صنع هوائي سونار مناسب وتكوين زوجين ؛
  • قم بتوصيل أحد الهوائيات بجهاز الكمبيوتر من خلال مكبر للصوت على TDA مقابل 50 روبل تقريبًا واحصل على جهاز إرسال ؛
  • للمرة الثانية ، سنقوم بإنشاء مكبر صوت بمساعدة LUT مقابل حوالي 100 روبل ؛
  • سنكتب (لقد كتبت كل شيء بالفعل ووضعته على Git) مودم بسيط في C # ونجرب كل شيء في أقرب مسطح مائي ؛

ماذا نحتاج لهذا؟


  • عنصرين كهرضغطية. على سبيل المثال ، من ساعة أو بطاقة بريدية ؛
  • كابل RG-174 / U (أو ما شابه) ~ 5 أمتار ؛
  • تسرب الخليك.
  • ورنيش مقاوم للماء
  • احباط النسيج ، ما مجموعه حوالي 100x200 ملم ؛
  • مكبر للصوت ل TDA2030 (على سبيل المثال ، واحد لمدة 50 روبل) ؛
  • مكونات preamp

كيف يعمل؟


تم بناء الفكرة بأكملها من أبسط المودم ، مرة أخرى ، على أبسط (صدفة؟) للكشف عن لهجة معينة ، والتي ، لعاري ، لم أسمع. أخبرني عنه بالكامل بالصدفة andrey_9999a . بالمناسبة ، قدم أيضا لوحة المضخم.

في هذا الصدد ، تذكرت مقولة من كتاب ليونارد ساسكيند "معركة الثقب الأسود":
"كخبير في النبيذ ، أنا متأكد إلى حد ما من أنه حتى مع عيني مغلقة يمكنني التمييز بين الأحمر والأبيض. حتى أكثر موثوقية ، وأنا أميز النبيذ من البيرة. ولكن بعد ذلك سوف يخذلني الذوق ".
أستطيع أن أقول لنفسي أنني كمهندس إلكتروني حقيقي ، أنا متأكد أو أكثر من قدرتي على أن أتمكن بالتأكيد من لحام سلكين كثيفين. وبشكل أكثر موثوقية ، فإنني أميز بين مكواة لحام ساخنة من مكواة باردة حتى مع عيني مغلقة ، ولكن المهارة ستخيبني. لذلك ، فإن كل ما يتعلق بتطوير وتصنيع الألواح هو عمل رفاقي وزملائي و rey_9999a و StDmitriev .

لذا ، عد إلى الكاشف. إنها حالة خاصة مبسطة لحساب التكامل فورييه:

 int0Tf(x)sin( omegat)dt


في حالة وجود إشارة رقمية ، لحساب سعة التوافقي التعسفي ، سيكون من الضروري إجراء تحويل فورييه المنفصل ، بالنسبة إلى Arduina ، يكون هذا صعبًا ، لكن الحيلة هي أنه إذا كنت تأخذ Fc كتردد مشغل ، فسيكون ذلك أقل بمقدار 4 مرات من تردد أخذ العينات Fs ، السعة من هذا التوافقي يمكن حسابها أسهل شياطين.

في هذه الحالة ، dt = 2π * (Fs / 4) / Fs = π / 2 ، وتندرج 4 عينات فقط في فترة الموجة الحاملة:



إذا تم تبديل كل شيء بمقدار π / 4 ، فستأخذ العينات قيمتين فقط: /2 / 2 و -2 / 2 ، وللبساطة سنترك فقط العلامات - "+" و "-" .

جوهر الطريقة هو أننا نمثل مرحلة الجيب كسلسلة من العلامات "+" "+" "" "" " ، ومرحلة جيب التمام باسم " + "" - "" - "" + " .

دع إشارة الإدخال تكون في المخزن المؤقت sn ، لدينا اثنين من المخازن المؤقتة حلقة المتوسط ​​لمراحل الجيب وجيب التمام - bs و bc من الحجم N. مؤشرات إلى الرأس والذيل شائعة بالنسبة لهم - bH و bT . في اللحظة الأولى من الوقت ، bH = N-1 ، bT = 0 . حساب متوسط ​​دورة C = 0 .

نأخذ 4 عينات من المخزن المؤقت الإدخال وإضافتها وفقا لتسلسل الأحرف.

مثال رمز
a = sn(i)
bs(bH) = a
bc(bH) = a
s1 = s1 + a - bs(bT)
s2 = s2 + a - bc(bT)
bH = (bH + 1) % N
bT = (bT + 1) % N

a = sn(i+1)
bs(bH) = a
bc(bH) = -a
s1 = s1 + a - bs(bT)
s2 = s2 - a - bc(bT)
bH = (bH + 1) % N
bT = (bT + 1) % N

a = sn(i+2)
bs(bH) = -a
bc(bH) = -a
s1 = s1 - a - bs(bT)
s2 = s2 - a - bc(bT)
bH = (bH + 1) % N
bT = (bT + 1) % N

a = sn(i+3)
bs(bH) = -a
bc(bH) = a
s1 = s1 - a - bs(bT)
s2 = s2 + a - bc(bT)
bH = (bH + 1) % N
bT = (bT + 1) % N


بعد كل أربع عينات تم معالجتها ، نتحقق من عداد دورات المتوسط ​​وإذا تجاوز N ، فإننا نحسب سعة الموجة الحاملة cA :

 if ++cycle >= N cA = sqrt(s1 * s1 + s2 * s2) cycle = 0 end 

هذه هي الطريقة التي تبدو بها إشارة مثالية:



تظهر الإشارة نفسها باللون الأزرق ، وتظهر قيم سعة الموجة الحاملة باللون الأحمر (يتم تقليل كل شيء إلى المدى -1 .1). في هذه الحالة ، N = 2 منذ لا يوجد ضوضاء وكل شيء يعمل بشكل جيد على أي حال.

أضف الآن بعض الضوضاء البيضاء وشاهد كيف سيستجيب كاشفنا لهذا:



أضفت ضوضاء بيضاء بحيث تكون نسبة الإشارة إلى الضوضاء 0 ديسيبل. في الشكل أعلاه ، تظهر الإشارة الصاخبة باللون الأزرق ، وإشارة المصدر باللون الأخضر ، وقيمة السعة باللون الأحمر. في هذه الحالة ، فإن الكاشف عند N = 2 لم يكتشف أي شيء بالفعل ، والحد الأدنى N الذي يعمل فيه بشكل صحيح هو 32. وهذا هو ، كان حجم نافذة المعالجة في العينات 32 * 4 = 128 عينة.

وهذا يعني أنه يمكننا الآن تحليل إشارة الدخل وتقييم المعلمة التي تحدد وجود تردد ، أي أقل أربع مرات من تردد أخذ العينات. إذا قمت بتعيين قيمة عتبة معينة لهذه المعلمة ، عندئذٍ يمكن تحريك كل شيء ، والتحدث بطريقة بسيطة ، يمكننا الإجابة على السؤال: هل هناك نغمة معينة في إشارة الإدخال أم لا؟

هذا جيد جدًا ، لكننا نحتاج إلى نقل وحدات البت ، ويمكن أن تأخذ وحدات البت قيمتين.

إن تطبيق نظام به حالتان للإشارة بمساعدة واحدة هو فكرة على هذا المنوال ، لذلك لن نقوم بتشفير إحدى الولايات بصمت (توقف مؤقت). هذا من شأنه أن يجعل عملية الكشف صعبة للغاية: سيكون من الضروري إبراز بداية الفرض بطريقة أو بأخرى ، ومعرفة كيفية ترتيب نهايته ، إلخ.

بدلاً من ذلك ، "1" و "0" سنقوم بتشفير نبضات ذات أطوال مختلفة ، بين البتات هناك ما يسمى فترة الحماية - لأننا ما زلنا بحاجة إلى التعامل مع انتشار المسيرات المتعددة والتردد. بعبارات بسيطة ، فإن الفاصل الزمني للحراسة هو المكان (الوقت) الذي تختفي فيه جميع انعكاسات البتة السابقة ، وكل الأصوات اللاحقة والأصداء.

بالنظر إلى المستقبل ، نلاحظ أنه بفضل بنية الإشارة هذه ، فإن خوارزمية تشغيل المستقبِل مبسطة إلى حد كبير: ننتظر ظهور النغمة ، نلاحظ البداية ، ننتظر حتى تختفي النغمة ونلاحظ الوقت - إذا كان الوقت المستقبلي يشبه طول "1" ، ربما أخذنا بعض الشيء بقيمة "1" ، إذا كان يبدو أكثر مثل "0" - ثم يبدو أننا أخذنا بعض الشيء بقيمة "0".

بشكل عام ، يمكننا أن نقول أن هذا هو نوع من رمز مورس.

جزء البرنامج من المودم


من أجل الصبر - مثال يكمن في جيثب . تم تهيئته في C # (لأنني أكتب للكمبيوتر الخاص بي وهو أكثر ملاءمة وأسرع بالنسبة لي).

تُستخدم مكتبة NAudio الرائعة لتشغيل الصوت والتقاطه من مدخل الميكروفون.

كل منطق المودم موجود في فئة SUAModem (مودم صوتي بسيط تحت الماء).

يتم تمرير المعلمات التالية إلى المنشئ:

sRateHz مزدوجة - معدل أخذ العينات في هيرتز ؛
كثافة العمليات - حجم نافذة المعالجة في العينات ؛
int oneMultiplier - كم عدد "windows" التي تدوم قليلاً بقيمة "1"
int zeroMultiplier - كم عدد "windows" التي تدوم قليلاً بقيمة "0"
eThreshold - عتبة ، دعنا نتحدث عنها لاحقًا

لإنشاء إشارة من صفيف وحدات البايت ، هناك طريقة ModulateData (بيانات البايت []) ، والتي تُرجع صفيفًا من العينات الموقعة ذات 16 بت.

بيانات عامة قصيرة [] ModulateData (بايت)
 public short[] ModulateData(byte[] data) { double alpha = 0; double phase = 0; List<short> samples = new List<short>(); BitArray bits = new BitArray(data); for (int i = 0; i < bits.Length; i++) { int sLim = (bits[i]) ? oneDurationSmp : zeroDurationSmp; alpha = 0; phase = 0; for (int sIdx = 0; sIdx <= sLim; sIdx++) { alpha = Math.Sin(phase); phase += delta; if (phase >= alimit) phase -= alimit; samples.Add(Convert.ToInt16(alpha * short.MaxValue)); } samples.AddRange(new short[defenseIntervalSmp]); } return samples.ToArray(); } 


في الحلقة الرئيسية بالبتات المرسلة ، يتم ملء قائمة العينات. اعتمادًا على البتة المرسلة الحالية ، يتم تعيين طول sLim للإشارة المولدة في العينات. تتم إضافة فاصل حارس بعد كل بت.

بالطبع ...
قد يلاحظ الكثيرون أنه عند إنشاء إشارة يمكن للمرء الاستغناء عن وظيفة الجيب ، لكن هذا المثال يسمح ، من خلال تغيير قيمة دلتا تبعا لذلك ، بتغيير وتيرة النغمة المولدة.

لتوليد لهجة مع تردد Fnبمعدل أخذ العينات معين Fsالقيمة المقابلة  دلتامحسوب ببساطة:

 delta=2 piFn/Fs



لإنشاء إشارة وإرسالها ، هناك طريقة TransmitData (بيانات البايت []) ، والتي تستدعي ModulateData داخليًا:

بيانات TransmitData (بايت) العامة مزدوجة
 public double TransmitData(byte[] data) { var samples = ModulateData(data); double txTime = ((double)samples.Length) / SampleRateHz; var rawBytes = new byte[samples.Length * 2]; for (int i = 0; i < samples.Length; i++) { var bts = BitConverter.GetBytes(samples[i]); rawBytes[i * 2] = bts[0]; rawBytes[i * 2 + 1] = bts[1]; } using (var ms = new MemoryStream(rawBytes)) { using (var rs = new RawSourceWaveStream(ms, new WaveFormat(Convert.ToInt32(SampleRateHz), 16, 1))) { using (var wo = new WaveOutEvent()) { wo.Init(rs); wo.Play(); while (wo.PlaybackState == PlaybackState.Playing) { Thread.SpinWait(1); } } rs.Close(); } ms.Close(); } return txTime; } 


تقارير فئة SUAModem قبول البايت التالي باستخدام الحدث DataReceivedEventHandler.

يتم إرسال عينات المدخلات إلى التحليل باستخدام أسلوب ProcessInputSignal (بيانات قصيرة) ، حيث تتم كتابتها إلى المخزن المؤقت الحلقي. يتم التحليل في خيط منفصل ، في طريقة الاستقبال.

والمستقبل نفسه يعيش في طريقة التلقي:

تلقي الفراغ الخاص ()
 private void Receive() int a; while (rCnt >= 4) { a = ring[rRPos]; rRPos = (rRPos + 1) % rSize; rCnt--; dRing1[rHead] = a; dRing2[rHead] = a; s1 += a - dRing1[rTail]; s2 += a - dRing2[rTail]; rHead = (rHead + 1) % windowSize; rTail = (rTail + 1) % windowSize; a = ring[rRPos]; rRPos = (rRPos + 1) % rSize; rCnt--; dRing1[rHead] = a; dRing2[rHead] = -a; s1 += a - dRing1[rTail]; s2 += -a - dRing2[rTail]; rHead = (rHead + 1) % windowSize; rTail = (rTail + 1) % windowSize; a = ring[rRPos]; rRPos = (rRPos + 1) % rSize; rCnt--; dRing1[rHead] = -a; dRing2[rHead] = -a; s1 += -a - dRing1[rTail]; s2 += -a - dRing2[rTail]; rHead = (rHead + 1) % windowSize; rTail = (rTail + 1) % windowSize; a = ring[rRPos]; rRPos = (rRPos + 1) % rSize; rCnt--; dRing1[rHead] = -a; dRing2[rHead] = a; s1 += -a - dRing1[rTail]; s2 += a - dRing2[rTail]; rHead = (rHead + 1) % windowSize; rTail = (rTail + 1) % windowSize; if (++cycle >= windowSize) { cycle = 0; currentEnergy = Math.Sqrt(s1 * s1 + s2 * s2) / windowSize; double de = currentEnergy - prevEnergy; #region analysis if (skip > 0) skip -= windowSize * 4; else { if (isRise) { if (de > -Threshold) { riseSmp += windowSize * 4; } else { // analyse symbol isRise = false; double oneDiff = Math.Abs(oneDurationSmp - riseSmp); double zeroDiff = Math.Abs(zeroDurationSmp - riseSmp); if (oneDiff > zeroDiff) { // Mostly likely "0" AddBit(false); } else { // Mostly likely "1" AddBit(true); } samplesSinceLastBit = 0; skip = defenseIntervalSmp / 2; } } else { if (de > Threshold) { isRise = true; riseSmp = windowSize * 4; } } } #endregion prevEnergy = currentEnergy; if (bPos > 0) { samplesSinceLastBit += 4 * windowSize; if (samplesSinceLastBit >= defenseIntervalSmp * 2 + zeroDurationSmp + oneDurationSmp) { DiscardBits(); } } } } } 


يمكن أن يتبين من الكود أن التحليل يتم في 4 عينات ، إذا كنت ترغب في ذلك ، يمكنك حفظ الحالة ومعالجة عينة واحدة ، والتي ستكون مفيدة عند النقل إلى بعض عضو الكنيست الضعيف.
عند تلقي البيانات ، تُحسب قيمة السعة s عند تردد sRateHz / 4. يتم احتساب الفرق بين القيم السابقة والحالية للسعة ثم مقارنة مع حد معين ، تم اختياره تجريبياً. مثال يسمح لك بتغيير هذا الحد في الوقت الحقيقي.

تشير الزيادة الحادة في السعة إلى بداية "بت" ، بينما يشير الانخفاض الحاد (أقل حدة إلى حد ما بسبب الارتداد) إلى نهاية "البت".

بعد تلقي الشيء التالي ، نعمل على تحديد الفاصل الوقائي - نتخطى العدد المحدد من العينات - هناك كل أنواع الأصداء الموجودة فيها ، وسوف تتداخل معنا فقط.

الجزء الحديدي من المودم


لذلك ، مع بنية الإشارة ، كل شيء واضح ، وكيفية الحصول عليها بشكل واضح للغاية. الشيء الصغير هو معرفة كيفية إشعاع إشارة في الماء واستقبالها من الماء.

إذا لم يكن لديك هوائيات سونار بعد ، فقد حان الوقت للقيام بها في برنامجنا التعليمي السابق .

مكثت معهم منذ ذلك الوقت ، لذلك تخطيت هذه الخطوة.

نقوم بتوصيل الهوائي المخصص للإرسال إلى لوحة مكبر للصوت مع aliexpress . بالنسبة إلى عدة عشرات من الأمتار (ربما حتى المئات) ، هذا يكفي بالنسبة لنا. لا توجد حيل هنا - يذهب إخراج بطاقة الصوت الخاصة بالكمبيوتر المحمول إلى مدخلات مكبر الصوت ، الذي يتم تشغيله بواسطة بطارية حمض الرصاص بقوة 12 فولت 4 آه. يتم توصيل هوائي الإرسال الصوتي لدينا من مكبر الصوت بيزو إلى الإخراج. في حالتي ، يبدو الأمر كما يلي:





في الصورة أعلاه ، يوجد على الشاشة جناح صغير للمقال التالي. في المرة القادمة على نفس الغدد ، سنحاول مرة أخرى نقل صوت "الفيديو" عبر الماء ، ولكن بطريقة مختلفة تمامًا عن المرة الأخيرة .

مع هوائي الاستقبال هو أكثر تعقيدا إلى حد ما. على الرغم من أن مكبرات الصوت بيزو حساسة للغاية ، فإن هذا لا يزال غير كافٍ. سيكون لدينا لتجميع لوحة المضخم مع مرشح على النطاق 5-35 كيلو هرتز.
المكسب الذي نتخذه هو 1000.

توجد الدائرة ، وتصميم لوحة الدائرة ، وقائمة مكونات المضخم على GitHub: الدائرة ، المسارات - الطبقة العليا والطبقة السفلية ، BOM .

لقد نوقشت تكنولوجيا LUT مئات المرات ، ولكن دعونا أيضًا نقوم بدورنا.

الصورة العملية
لذلك ، نأخذ مجلة مناسبة ، لم يكن لدينا سوى هذه المجلة:



نأخذ بضع صفحات من هناك ونطبع الطبقات عليها باستخدام طابعة ليزر.



يُمزج مع الإبر والغراء على جانب واحد ، كما هو موضح في الصورة:



قبل استخدام المكواة ، نبلل الحبر بكحول الأيزوبروبيل:



الحديد من خلال ورقة A4 مطوية أربع مرات:



نقع في الماء الدافئ تحت الصنبور:



ونغسل بقايا الورق. بعد ذلك نحصل على قطعة عمل جاهزة للنقش:



لقد قمنا بقطع الزائدة بمقص للمعادن أو لمن أصبح أكثر ملاءمة.

نحن السم في كلوريد الحديديك. خاصة بالنسبة للمقال ، لقد ألقينا نظرة جديدة ، فقد تبين أنه من الصعب إرضاءه بحيث تأتي الفقاعات بنشاط من لوحة المستقبل:



نتيجة لذلك ، بعد حفر الحبر وغسله ، نحصل على مثل هذا المنتج شبه النهائي:





بعد لحام المكونات والغسيل ، تبدو اللوحة هكذا.



ويبدو أن تجميع الجزء المتلقي. يتم توفير الطاقة من بطارية الرصاص نفسها التي تبلغ 12 فولتًا:



تصفية إخلاء صغير
إذا كان القارئ يريد تغيير النطاق ، فنحن نقترح إعادة حساب مرشح الترتيب الثامن الذي تم تجميعه على TL084C opamp 4 قنوات رخيصة (DA2 في الرسم التخطيطي ) ، المقاومات R10-R13 ، R15-R23 والمكثفات C5-C8 ، C11 ، C12 ، C14 و C15.

فقط في هذه الحالة ، إليك استجابة التردد لتنفيذ الفلتر الحالي:



وهنا مشروع آخر لهذا الفلتر تم إنشاؤه في تطبيق Qucs

الخبرات والاختبارات


للاتصال بجهاز كمبيوتر محمول ، نستخدم جاك 3.5 مم عاديًا ، الطرف هو إشارة ، والوسط الأوسط غير متصل ، والأرض - الغبار إلى الغبار على الأرض. يجب إيقاف تشغيل جميع التضخمات وأي تأثيرات للميكروفون ، ويجب تشغيل مستوى الصوت لتحقيق المستوى الأمثل. يجب أن يحدث الإيقاع عند لمس الهوائي المتصل بمضخم الإصبع بإصبعك والتلصص عليه برفق.

إذا وضعت ببساطة قطعة واحدة على أخرى بدون مضخم صوت ومضخم صوت مسبق وقمت بتوصيلهما بإدخال الصوت والإخراج ، فكل شيء يعمل بشكل مثالي. يوجد أدناه جزء من الإشارة ويمكنك حتى تحديد العين بالعينات التالية:



تظهر الإشارة نفسها باللون الأزرق ، والفرق بين القيم الحالية والقيم السابقة للسعة (المقدمة) باللون الأحمر ، والفرق بين القيم السابقة والقيم الحالية (انخفاض) باللون الأخضر. يمكنك بسهولة "إزالة تشكيل" هذا الجزء من الفرضية: 1 0 0 0 1 1 0. صفر لدينا هو ضعف طول الوحدة ، ومدة الفاصل الحارس يساوي مدة الصفر.

علاوة على ذلك ، أيضًا بدون مكبر للصوت ومضخم الصوت ، نقوم بتقليل هوائياتنا إلى خزان معدني بأبعاد 3 × 1.5 × 1.5. لدينا هذا في المختبر ، ولقد توصلنا إلى قاعدة مفادها أننا لا نقوم بأي اتصال إذا كانت غير قادرة بطريقة أو بأخرى على العمل في هذا الخزان. والحقيقة هي أنه في مثل هذا الحجم المغلق من الطاقة لا يوجد مكان نذهب إليه - ينعكس الصوت بشكل رائع ومتكرر من الجدران المعدنية وعند نقطة الحصول على عصيدة الاستقبال. وبالنظر إلى حقيقة أننا عادة ما نتحقق من الأجهزة الجاهزة بالطاقة المحسوبة لآلاف الأمتار ، يمكنك أن تتخيل ما يجري هناك.

على سبيل المثال ، يعمل اثنان من أجهزة المودم RedLINE الخاصة بنا بثبات في هذا الخزان فقط على مسافة لا تزيد عن مترين ، ويعمل اثنان من أجهزة UWAVE بثبات على بعد حوالي متر واحد. في حين أن الأول في المياه المفتوحة يعمل ما يصل إلى 8000 متر ، والثاني - ما يصل إلى كيلومتر .
بالطبع ، لا تستخدم جميع المنتجات التجارية مخططات التعديل البدائية هذه ، والتي تمت مناقشتها في المقالة وأكثر تعقيدًا ، ولكن من المهم بالنسبة لنا الآن أن نفهم الأساسيات ونفعل شيئًا مفيدًا بأيدينا.

بشكل عام ، نقوم بخفض الهوائيات في الخزان لمسافة حوالي 50 سنتيمترًا ونحصل بالفعل على شيء أقل جمالًا من الاتصال الهوائي المباشر:



على الرغم من استخدام فاصل حماية أطول بكثير هنا ، إلا أنه لا يزال من الواضح أن الصدى يسير تقريبًا إلى الجزء التالي ، حيث تكون الجبهات وخاصة الانخفاضات ضبابية للغاية. ولكن لا يزال بإمكانك تحديد محتوى الرسالة: 1 0 0 0 1 1 0

في كلتا الحالتين ، أرسلت الرسالة "123" وهذه البتات السبع تنتمي إلى رمز الوحدة.
بدا الأمر مثل هذا ، ثم تم إعادة بناء الواجهة قليلاً



من الشاشة أعلاه يمكن أن نرى أنه مع هذه الإعدادات ، ونقل الرسالة "مرحبا ، habr !!! :-) "يتكون من 19 بايت يستغرق 9.132 ثانية ، أي ، كانت سرعة النقل 16.6 بت / ثانية. بالمناسبة ، لكي يعمل المودم في خزاننا ، كان علينا زيادة فاصل الحماية بحيث تنخفض سرعة النقل إلى ~ 3 بت / ثانية.

فحصنا العمل منزلي الصنع في حمام السباحة ، حيث كسب بثبات 10 أمتار.



نحن أيضا منغمس في العمل محلية الصنع على البركة. لقد استعملت جهازًا نشطًا مشابهًا جدًا في تصميمه للذي اقترح في المقالة ، وبدلاً من استخدام مكبر صوت بيزو كان هناك جهاز استشعار من أجهزة استشعار وقوف السيارات ، تم تركيب البطارية هناك في ملف ملفوف عليه الكبل:





ينحدر هوائي المستلم والارسال مباشرة من الشاطئ ، ويصل العمق هناك بحدة من 0.5 إلى 2 متر. الغريب ، في التجربة الموضحة في الصورة أعلاه ، كانت أسوأ الظروف ، كانت المسافة هناك حوالي 5 أمتار فقط - كان هذا هو الإعداد الأولي عمومًا. من بين الرسائل الـ 20 المرسلة ، 3 بايت لكل منها ، في ست منها تم ضرب بايت واحد.

ثم ، عندما قمنا بتوصيل جهاز الاستقبال بجهاز كمبيوتر محمول آخر ونقلناه إلى الجانب الآخر من البركة (مسافة حوالي 30 مترًا) ، أصبح ناقل الحركة أفضل كثيرًا - لم يكن هناك سوى بضعة أخطاء مع 40 رسالة يتراوح حجمها من 3 إلى 13 بايت.



في الصورة التالية على الخريطة ، تظهر الأماكن التي توجد بها الهوائيات.



خاتمة ومزيد من البحث


كما وعدنا ، لبضع روبل قمنا بتجميع جهاز العمل. على الرغم من أن قيمتها العملية مشكوك فيها ، فإن عملية التصنيع والتوليف في البركة ستكون مفيدة للغاية للمبتدئين. باستخدام طريقة الكشف عن الموجة الحاملة الموصوفة ، من الممكن تمامًا التوصل إلى أنظمة تنقل بسيطة مختلفة لاستخدام الهواة ، والأمر الجميل بشكل خاص ، أن التعقيد الحسابي يسمح لك بتنفيذ الطريقة على متحكم بسيط.

لكي لا تكون لا أساس لها من الصحة فيما يتعلق ببناء أنظمة الملاحة على إشارات بسيطة ، ألق نظرة على العمل المثير للاهتمام الذي قاموا ببناء نظام ملاحة طويل المدى به. في هذا النظام ، يتم تحديد موضع الزنجبيل الذي ينقل عمقه بشكل دوري. يتم تشفير قيمة العمق من خلال المسافة بين نبضين بسيطين على تردد معين. نعم ، نعم ، لا تحترق الأواني من قِبَل الآلهة ، فالطريق سيغمره الممشى والصبر والعمل والدراسة والدراسة والدراسة - هذا كل شيء.

ربما ، إذا كان لدينا وقت ، فسوف نقوم بتنفيذ مشروع DIY لتحديد موقع زنجبيل مستقل ينبعث منه إشارات بسيطة. لقد قمنا بالفعل بشيء مشابه ، ولكن ليس DIY ، على أساس أجهزة المودم uWAVE الخاصة بنا ، والتي حاولنا حتى تصوير فيديو عنها . سيكون من المثير للاهتمام للغاية أن تسمع آرائك حول هذا الأمر - من المهم للغاية أن تتأكد من أنك تفعل شيئًا دون جدوى.

ومع ذلك ، بالعودة إلى الموضوع الرئيسي ، نلاحظ ما يمكن تحسينه في المخطط المقترح:

  • جعل حساب العتبة على التكيف
  • تحليل عرض إشارة تلقائيا
  • حاول استخدام أطوال مختلفة لمجموعات بت مختلفة
  • تشديد خطأ تصحيح الترميز
  • نقل كل شيء إلى اردوينو
  • يجب أن تكون وحدة التخزين والعتبة طويلة ومملة لتحديدها ، لذا سيكون من الجيد إضافة AGC إلى المضخم

في هذا الاجتماع ، سأعلن اختتامها ، وإذا كنت مهتمًا بالموضوع ، فإليك قائمة بمقالاتنا السابقة:

GPS تحت الماء من الصفر كل عام
GPS تحت الماء على روبوت تحت الماء: تجربة
لقد صنعنا أصغر مودم سونار في العالم
على تأثير البكتيريا الزرقاء على وظائف خطاب الرئيس
صنع هوائي بسيط السونار من القمامة
جلسة نقل الفيديو للصوت عبر الماء مع التعرض
GPS تحت الماء على اثنين من أجهزة الإرسال والاستقبال
الملاحة تحت الماء: تحمل لا تحمل - أنت محكوم النجاح
GPS تحت الماء: تابع

PS


كما هو الحال دائمًا ، يسعدنا سماع التعليقات والاقتراحات والنقد والصيحات والهتافات)

PPS


لا تقم بإزالة الغدد - في المرة القادمة سوف نستخدمها مرة أخرى لنقل "الفيديو" عبر الماء.

Source: https://habr.com/ru/post/ar451800/


All Articles