Სარჩევი:

ორობითი ხე მორსის დეკოდირება: 7 ნაბიჯი (სურათებით)
ორობითი ხე მორსის დეკოდირება: 7 ნაბიჯი (სურათებით)

ვიდეო: ორობითი ხე მორსის დეკოდირება: 7 ნაბიჯი (სურათებით)

ვიდეო: ორობითი ხე მორსის დეკოდირება: 7 ნაბიჯი (სურათებით)
ვიდეო: ძებნის ორობითი ხე - BST 2024, ნოემბერი
Anonim
Image
Image
Წრიული დიაგრამა
Წრიული დიაგრამა

ეს ინსტრუქცია განმარტავს, თუ როგორ უნდა გაიშიფროთ მორსის კოდი Arduino Uno R3 გამოყენებით.

დეკოდერს, რომელიც ავტომატურად ერგება გაგზავნის სიჩქარეს, შეუძლია მორსის დეკოდირება წუთში მინიმუმ 80 სიტყვისა.

შემომავალი კოდი ნაჩვენებია როგორც ტექსტი თქვენს Arduino სერიულ მონიტორზე (ან TFT ეკრანზე, თუ დამონტაჟებულია)

თუ თქვენ გსურთ ივარჯიშოთ მორსის გაგზავნაში, ჩართულია ტონის ოსცილატორი.

დეკოდირების მახასიათებლები:

  • 320 x 240 TFT ჩვენების მოდული [1]
  • Goertzel ციფრული bandpass ფილტრი არასასურველი სიგნალების გამოყოფისთვის.
  • "ორობითი მორსის ხე" სიგნალის დეკოდირებისთვის
  • ავტომატური სიჩქარის თვალყურის დევნება
  • მოსმენილი გამოსავალი მორსის ვარჯიშისას
  • ნაჩვენებია როგორც შემომავალი, ასევე გამავალი ტექსტი.

აღიარებულია შემდეგი სიმბოლოები და სიმბოლოები:

  • [A.. Z]
  • [0..9]
  • [., ? ' ! / () &:; = + - _ " @]

მორსის დეკოდირების ფარის სავარაუდო ღირებულება, TFT ეკრანის გამოკლებით, 25 დოლარია. [1]

სურათები

  • გარეკანზე გამოსახულია სრულად აწყობილი ერთეული
  • ვიდეოში ნაჩვენებია დეკოდირების მუშაობა

შენიშვნები

[1]

  • TFT ჩვენების მოდული არჩევითია, რადგან მთელი ტექსტი იგზავნება თქვენს Arduino „სერიულ მონიტორზე“.
  • TFT მოდული აღწერილია ჩემს სასწავლო ინსტრუქციაში

ნაბიჯი 1: ნაწილების სია

შემდეგი ნაწილები მოპოვებულია

Arduino UNO R3– ის მხოლოდ 1 პროტოტიპის ფარი, 2.54 მმ მოედანზე

შემდეგი ნაწილები იქნა მიღებული ადგილობრივად:

  • მხოლოდ 1 LM358 ორმაგი opamp
  • მხოლოდ 1 მწვანე მწვანე
  • მხოლოდ 1 LED კლიპი
  • მხოლოდ 1 ელექტრო მიკროფონის კაფსულა
  • მხოლოდ 1 ჩვეულებრივ გახსნილი ღილაკი
  • 1 მხოლოდ 8 პინიანი DIP სოკეტი
  • 2 მხოლოდ 330 ohm რეზისტორი
  • მხოლოდ 2K2 რეზისტორი
  • 5 მხოლოდ 10K ohm რეზისტორები
  • 2 მხოლოდ 56K ohm რეზისტორი
  • 2 მხოლოდ 1uF კონდენსატორი
  • 1 მხოლოდ 10uF კონდენსატორი

შემდეგი ნაწილები არჩევითია:

  • 1 მხოლოდ 2.2 დიუმიანი TFT SPI LCD ჩვენების მოდული 240*320 ILI9341 SD ბარათის სლოტით Arduino Raspberry Pi 51/AVR/STM32/ARM/PIC [1]
  • მორსის ღილაკი / ღილაკი
  • 1 მხოლოდ BC548 NPN ტრანზისტორი
  • მხოლოდ 1 დიუმიანი დინამიკი
  • 1 მხოლოდ 33K ohm რეზისტორი
  • 1 მხოლოდ 3.5 მმ მონო დანამატი (მორსის გასაღებისთვის)
  • 1 მხოლოდ 3.5 მმ მონო სოკეტი (მორსის გასაღებისთვის)
  • 3 მხოლოდ 9 მმ M3 ნეილონის შუასადებები
  • 1 მხოლოდ 130 x 68 x 44 მმ ABS პლასტიკური ყუთი
  • 5 მხოლოდ 2 პინიანი მარჯვენა კუთხის კონექტორი

მორსის დეკოდირების ფარის სავარაუდო ღირებულება, გამოკლებული TFT დისპლეი, არის $ 25. [1]

შენიშვნები

[1]

ნაწილების ჩამონათვალი სურვილისამებრ 320 x 240 TFT ჩვენების მოდულისთვის არის ჩამოთვლილი ჩემს სასწავლო ინსტრუქციაში

[2]

თუ გსურთ გამგზავნის გამოყენება, საჭიროა მორსის გასაღები ან მტკიცე ღილაკი.

ნაბიჯი 2: სქემის დიაგრამა

Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა

სურათები

ფოტო 1 აჩვენებს სქემის დიაგრამას მორსის დეკოდირებისთვის. 330 ოჰმეტიანი რეზისტორი მორსის გასაღებით ზღუდავს D4 გამომავალ დენს შემთხვევით მოკლედ მიწაზე … მისი მნიშვნელობის გაზრდა ამცირებს სპიკერიდან აუდიო გამომავალს. ამ მიზეზით მე არ დავამატე იგი ფარი, მაგრამ მიმაგრებულია პირდაპირ მორსის ღილაკზე, მორგების სიმარტივისთვის

ფოტო 2 გვიჩვენებს შესაფერის ფარს. ფარი არის ჩემი სასწავლო https://www.instructables.com/id/Arduino-TFT-Grap…, რომელსაც დავამატე მიკროფონის გამაძლიერებელი და ტონის ოსცილატორი. [1]

ფოტო 3 გვიჩვენებს დასრულებულ ფარს, რომელიც ერთვის არდუინოს. სხვა კომპონენტები არ არის საჭირო, თუ ტექსტი უნდა ნახოთ თქვენს Arduino– ს „სერიულ მონიტორზე“

ფოტო 4 გვიჩვენებს დეკოდერს ნაწილობრივ ყუთში. ეკრანის დასათვალიერებლად სახურავზე ამოჭრილია ხვრელი. სპიკერი და მიკროფონი ქეისზე ცხელი წებოა. დინამიკის დამონტაჟებამდე ხვრელი გაახურეთ სახურავზე. სახურავის ცენტრალური ბუდე განკუთვნილია გაფართოების მიკროფონისთვის … ამის გარეშე დეკოდერი უნდა იყოს მოთავსებული დინამიკთან ახლოს, რაც ყოველთვის არ არის შესაძლებელი

ფოტო 5 გვიჩვენებს TFT ეკრანს. შავი ელექტრული ლენტი მიმაგრებულია ეკრანის კიდეებზე … ეს ლენტი აფერხებს სინათლის გაჟონვას და ნიღბავს ეკრანისა და სახურავის გახსნას შორის არსებულ უთანასწორობას

Მნიშვნელოვანი

[1]

Arduinos დიდი USB კონექტორით მოითხოვს ელექტრული ლენტის ფენას USB კონექტორსა და Arduino ფარს შორის. შემთხვევითი შორტები შესაძლებელია ფირის გარეშე, რადგან კლირენსი მცირეა. ფირზე არ არის საჭირო არდუინოსთვის, რომელსაც აქვს პატარა კონექტორები

ნაბიჯი 3: თეორია

თეორია
თეორია
თეორია
თეორია
თეორია
თეორია

მორსის თითოეული ასო შეიცავს მოკლე და გრძელი ტონების სერიას, სახელწოდებით "წერტილები" და "ტირე".

  • წერტილი (.) არის 1 ერთეული სიგრძის
  • ტირე (_) არის 3 ერთეული სიგრძეში
  • ასოთა ელემენტებს შორის სივრცე არის 1 ერთეული
  • ასოებს შორის მანძილი არის 3 ერთეული
  • სიტყვებს შორის მანძილი არის 7 ერთეული

ჩვენ შეგვიძლია განვსაზღვროთ შემომავალი ტონი არის წერტილი თუ ტირე მისი ხანგრძლივობის შედარებისას 2 ერთეული სიგრძის საცნობარო ტონთან.

  • წერტილი არის 2 ერთეულზე ნაკლები
  • ტირე 2 ერთეულზე მეტია

წერტილებისა და ტირეების შემომავალი ნიმუშის დეკოდირების ორი მკაფიოდ განსხვავებული მეთოდი არსებობს:

  • ხაზოვანი ძებნა
  • ორობითი ხე (ასევე ცნობილია როგორც დიქოტომიური ძებნა)

ხაზოვანი ძებნა

ერთი გავრცელებული მეთოდია პერსონაჟების მასივის შექმნა და მათი მორსის მორგებული ნიმუშების შექმნა. მაგალითად, თითოეული შემდეგი სიმბოლო შეინახება როგორც:

  • ა _
  • ბ _. რა რა
  • C _. _.
  • 0 _ _ _ _ _
  • 1. _ _ _ _
  • 2.. _ _ _

თითოეული ასო მოითხოვს 6 უჯრედს… 1 ასო თავად და 5 ასო (.) და (_). ამისათვის ჩვენ გვჭირდება ასოების [36] [6] სიმბოლოების მასივი, სულ 216 უჯრედით. გამოუყენებელი უჯრედები ჩვეულებრივ ივსება ნულით ან ცარიელით.

შემომავალი წერტილებისა და ტირეების გაშიფვრის მიზნით, ჩვენ უნდა შევადაროთ თითოეული შემომავალი ასოს წერტილი/ტირე ჩვენი საცნობარო სიმბოლოების ნიმუშებს.

მიუხედავად იმისა, რომ ეს მეთოდი მუშაობს, ის ძალიან ნელია.

ვთქვათ, რომ ჩვენ გვაქვს 26 ასო ('A',.. 'Z') და ციფრები ('0',… '9') მასივში შენახული, შემდეგ უნდა შევასრულოთ 36 ძებნა, თითოეულს 5-მდე ქვე-ძიება, რაც სულ 36*5 = 180 ძიებაა რიცხვის '9' დეკოდირებისთვის.

ორობითი ხე

ორობითი ძებნა ბევრად უფრო სწრაფია, რადგან არ არის საჭირო ძებნა.

ხაზოვანი ძიებისგან განსხვავებით, რომელიც მოითხოვს როგორც პერსონაჟის, ასევე მორსის შაბლონების შენახვას, ორობითი ხე ინახავს მხოლოდ სიმბოლოებს, რაც იმას ნიშნავს, რომ მასივის ზომა უფრო მცირეა.

ჩემი ორობითი ხე (ფოტო 1) ორ ნაწილად გავყავი (ფოტო 2 და 3), რათა ის უფრო წაკითხული იყოს.

პერსონაჟის საპოვნელად ჩვენ ვამოძრავებთ მაჩვენებელს მარცხნივ ყოველ ჯერზე, როდესაც ჩვენ გვესმის წერტილი და ვატარებთ მაჩვენებელს მარჯვნივ ყოველ ჯერზე, როდესაც ჩვენ ვიგებთ ტირე. ყოველი ნაბიჯის შემდეგ ჩვენ ვანახევრებთ მაჩვენებლის მანძილს შემდეგი ნაბიჯისათვის … აქედან გამომდინარე სახელი ორობითი ხე.

ასო "9" (ტირე, ტირე, ტირე, ტირე, წერტილი) დეკოდირებისთვის საჭიროა 5 ნაბიჯი … 4 მარჯვნივ, ხოლო 1 მარცხნივ, რომელიც ტოვებს მაჩვენებელს პირდაპირ "9" -ზე.

ხუთი ნაბიჯი მნიშვნელოვნად უფრო სწრაფია ვიდრე 180 ძებნა !!!!!

ორობითი სიმბოლოების მასივი ასევე უფრო მცირეა … 26 ასო და 10 ციფრი მოითხოვს მხოლოდ 64 x 1 ხაზის მასივს. მე ავირჩიე 128 სიმბოლოს მასივის შექმნა, რათა პუნქტუაციის დეკოდირება შემიძლია.

ნაბიჯი 4: დიზაინის შენიშვნები

დიზაინის შენიშვნები
დიზაინის შენიშვნები
დიზაინის შენიშვნები
დიზაინის შენიშვნები
დიზაინის შენიშვნები
დიზაინის შენიშვნები
დიზაინის შენიშვნები
დიზაინის შენიშვნები

მორსის გაშიფვრა ძნელია ჩარევის სიგნალების არსებობისას. არასასურველი სიგნალები უნდა უარყოს … ეს მოითხოვს ერთგვარ ფილტრს.

ბევრი შესაძლებლობა არსებობს:

  1. ფაზაში ჩაკეტილი მარყუჟები
  2. ინდუქტორ-კონდენსატორის ფილტრები
  3. რეზისტორ-კონდენსატორის აქტიური ფილტრები
  4. ციფრული სიგნალის დამუშავება, როგორიცაა სწრაფი ფურიეს ტრანსფორმაცია, ან გოერცელის ფილტრი.

მეთოდები 1, 2, 3 მოითხოვს გარე კომპონენტებს, რომლებიც მოცულობითია.

მეთოდი 4 არ საჭიროებს გარე კომპონენტებს … სიხშირეები გამოვლენილია მათემატიკური ალგორითმების გამოყენებით.

ფურიეს სწრაფი ტრანსფორმაცია (FFT)

კომპლექსურ ტალღოვან ფორმაში ტონის არსებობის გამოვლენის ერთ -ერთი მეთოდია სწრაფი ფურიეს ტრანსფორმაციის გამოყენება

ფოტო 1 გვიჩვენებს, თუ როგორ ყოფს FFT (სწრაფი ფურიეს ტრანსფორმაცია) აუდიო სპექტრს "ურნებში".

ფოტო 2 გვიჩვენებს, თუ როგორ რეაგირებს FFT „ურნები“სიგნალზე … ამ შემთხვევაში 800 ჰც. თუ მეორე სიგნალი, ვთქვათ, 1500Hz იყო, ჩვენ ვნახავთ ორ პასუხს … ერთი 800Hz და მეორე 1500Hz.

თეორიულად მორსის კოდის დეკოდირების გაკეთება შესაძლებელია კონკრეტული FFT სიხშირის კოლოფის გამომავალი დონის მონიტორინგით … დიდი რიცხვი წარმოადგენს წერტილის ან ტირის არსებობას … მცირე რიცხვი არ წარმოადგენს სიგნალს.

მორსის კოდის ასეთი დეკოდირება შეიძლება გაკეთდეს ფოტოში "bin 6" მონიტორინგით, მაგრამ ამ მიდგომასთან დაკავშირებით ბევრი რამ არის არასწორი:

  • ჩვენ გვინდა მხოლოდ ერთი სიხშირის ყუთი … დანარჩენი ტყუილად გამოთვლებია
  • სიხშირის ყუთები შეიძლება არ გამოჩნდეს ზუსტად ინტერესის სიხშირეზე
  • ის შედარებით ნელია (20mS Arduino მარყუჟზე)

კიდევ ერთი მეთოდია Goertzel ფილტრის გამოყენება.

გოერცელის ფილტრი

Goertzel ფილტრი მსგავსია FFT– ს, მაგრამ აქვს მხოლოდ ერთი სიხშირის ყუთი.

ფოტო 3 გვიჩვენებს Goertzel ფილტრის სიხშირის პასუხს დისკრეტული აუდიო ნაბიჯებისთვის.

ფოტო 4 არის ერთი და იგივე ფილტრის გაწმენდა იმავე სიხშირის დიაპაზონში.

მე გადავწყვიტე "წასვლა" გოერცელის ალგორითმით, როგორც:

  • Arduino მარყუჟის () დრო Goertzel ალგორითმის გამოყენებით იყო 14mS (მილიწამი) 20mS- ის წინააღმდეგ (milliseconds) FFT გადაწყვეტისთვის Arduino- ს "fix_FFT" ბიბლიოთეკის გამოყენებით.
  • ადვილია Goertzel bandpass ფილტრის ცენტრალური სიხშირის დაყენება.
  • გამტარუნარიანობა დაახლოებით 190 Hz.

სურათი 5 გვიჩვენებს რიცხვითი გამომავალი 900 ჰერც Goertzel ფილტრიდან, როდესაც ტონი გამოვლინდა. მე დავადგინე ჩემი ტონის ბარიერი 4000 – ის მნიშვნელობაზე … 4000 – ზე ზემოთ მნიშვნელობები მიუთითებს ტონზე.

თეორიულად თქვენ უბრალოდ უნდა მოაწყოთ თქვენი ფილტრი კომფორტულ მოსმენის სიხშირეზე. სამწუხაროდ, ჩემი 1 ინჩიანი მონიტორინგის სპიკერის აუდიო გამოსავალი სწრაფად იკლებს 900 ჰც -ზე დაბლა. პრობლემების თავიდან ასაცილებლად, მე ვიყენებ ფილტრის სიხშირეს 950 Hz. ფილტრის ალტერნატიული სიხშირეების გამოსათვლელად საჭირო ფორმულები მოცემულია ჩემს კოდის სათაურში.

დეკოდირება

წერტილებისა და ტირეების გაშიფვრა არც ისე ადვილია, როგორც ერთი შეხედვით ჩანს.

სრულყოფილი მორსი განისაზღვრება, როგორც:

  • წერტილი = 1 ერთეული
  • ინტერვალი წერილის შიგნით = 1 ერთეული
  • ტირე = 3 ერთეული
  • ასოებს შორის მანძილი = 3 ერთეული
  • სიტყვებს შორის მანძილი = 7 ერთეული

სრულყოფილი მორსის დეკოდირებისთვის ჩვენ უბრალოდ გვჭირდება საცნობარო ტონის ხანგრძლივობა 2 ერთეული

  • წერტილი <2 ერთეული
  • ელემენტის სივრცე <2 ერთეული
  • ტირე> 2 ერთეული
  • წერილი _ სივრცე> 2 ერთეული
  • word_space> 6 ერთეული (ანუ 3 x საცნობარო ერთეული)

ეს მუშაობს მანქანური მორსისთვის, მაგრამ "რეალურ სამყაროში":

  • გაგზავნის სიჩქარე იცვლება
  • თითოეული წერტილის ხანგრძლივობა განსხვავდება
  • ხანგრძლივობა თითოეული ტირე განსხვავდება
  • ასოები E, I, S, H, 5 შეიცავს მხოლოდ წერტილებს, რომლებიც საშუალოდ წერტილის ხანგრძლივობას შეადგენს
  • ასოები T, M, O, 0 შეიცავს მხოლოდ ტირეებს, რომლებიც საშუალოდ ტირის ხანგრძლივობას შეადგენს
  • სიტყვების ხარვეზები შეიძლება არ მოვიდეს
  • ქრებოდა ქმნის შეცდომებს, საიდანაც დეკოდირი უნდა აღდგეს.
  • კორუფციული სიგნალები ჩარევის გამო

მხოლოდ წერტილებისა და ტირეების შემცველი წერილები ნაწილობრივ წყდება, თუ:

ჩვენ ვაფასებთ მითითების ხანგრძლივობას მანამ, სანამ არ მივიღებთ მოქმედ წერტილს და მართებულ ტირეს. მე ვიყენებ 200 მილიწამს, რომელიც მოქმედებს თუ გაგზავნის სიჩქარეა 6 WPM (სიტყვა წუთში) და 17 WPM. შეიძლება დაგჭირდეთ ამ მნიშვნელობის გაზრდა, თუ მორსს სწავლობთ. სიჩქარის ცხრილი შედის პროგრამულ უზრუნველყოფაში

სიჩქარის ცვალებადობა წყდება, თუ:

  • ჩვენ ვასრულებთ მოძრავ საშუალოს თითოეულ წერტილზე და თითოეულ ტირეზე და
  • ხელახლა გამოთვალეთ მითითების ხანგრძლივობა თითოეული სიმბოლოს მიღების შემდეგ

სიტყვების ხარვეზები და სიტყვების უფსკრული არ მოდის, თუ ჩვენ:

  • დაიმახსოვრე ბოლო უკანა ნაწილის გადასვლის დრო (ტონიდან არა ტონამდე),
  • გადატვირთეთ ალგორითმი ყოველი ასოს შემდეგ,
  • გამოთვალეთ გასული დრო, სანამ ელოდებით მომდევნო წამყვან ზღვარს (არა ტონი ტონამდე) გადასვლას და
  • ჩადეთ სივრცე, თუ 6 დროის ერთეული გადააჭარბა.

მორსის ოსცილატორი

თავდაპირველად ვცადე რამდენიმე პიეზოს ზუზუნი, მაგრამ აღმოვაჩინე:

  • სიხშირე დაფიქსირდა
  • გამომავალი სიხშირე ძალიან მაღალი იყო ხანგრძლივი მოსმენისათვის
  • პიეზოსი მიდიოდა გოტერცელის გასასვლელი ზოლიდან

შემდეგ ვცადე აკუსტიკური გადამყვანის მართვა 750 ჰც კვადრატული ტალღით, მაგრამ აღმოვაჩინე, რომ მას ჰქონდა რეზონანსი, რომელიც გაფილტრული იყო 1 და 3 ჰარმონიკით. ფოტო 6 გვიჩვენებს მიკროფონის გამაძლიერებლის გამოსვლას 750Hz კვადრატულ ტალღაზე … ჩვენ ვხედავთ მე -5 ჰარმონიას !!!

შემდეგ მივმართე პატარა დინამიკის გამოყენებას. ფოტო 7 გვიჩვენებს მიკროფონის გამოსვლას 750Hz კვადრატულ ტალღაზე, რომელიც გადაეგზავნა პატარა სპიკერს … ამჯერად ჩვენ ვხედავთ ფუნდამენტურ… არა მე -5 ჰარმონიულს. Goertzel ფილტრი იგნორირებას უკეთებს ნებისმიერ ჰარმონიკას.

შენიშვნები

[1]

en.wikipedia.org/wiki/Goertzel_algorithm

www.embedded.com/the-goertzel-algorithm/

ნაბიჯი 5: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

ინსტალაცია

  • ჩამოტვირთეთ თანდართული ფაილი MorseCodeDecoder.ino [1]
  • დააკოპირეთ ამ ფაილის შინაარსი Arduino– ს ახალ ესკიზში
  • შეინახეთ ესკიზი როგორც "MorseCodeDecoder" (ბრჭყალების გარეშე)
  • შეადგინეთ და ატვირთეთ ესკიზი თქვენს არდუინოში

პროგრამული უზრუნველყოფის განახლება 2020 წლის 23 ივლისი

შემდეგი მახასიათებლები დაემატა თანდართულ ფაილს "MorseCodeDecoder6.ino"

  • "ზუსტი შავკანიანი" ფანჯარა [2]
  • "ხმაურის დამცავი"

მორგება:

  • გაზარდეთ მიმღების აუდიო დონე, სანამ LED არ დაიწყებს ციმციმებას და შემდეგ გამორთავთ
  • ახლა დაარეგულირეთ თქვენი მიმღები, სანამ LED არ აანთებს თანმიმდევრულ მორს
  • Noise_blanker დაყენებულია იმისათვის, რომ იგნორირება მოახდინოს ხმაურის ამოფრქვევამდე 8mS– მდე (ერთი მარყუჟის დრო)
  • ხმაურის ბარიერი შეიძლება მორგებული იყოს Debug = true და თქვენი სერიული შემქმნელის ყურებით

შენიშვნა

[1]

თუ გსურთ, თქვენც შეგიძლიათ ნახოთ თქვენი ტექსტი Arduino სერიული მონიტორის 115200 ბაუდზე.

[2]

  • ფოტო 1… ზუსტი ბლექმენის ფანჯარა
  • ფოტო 2… Goertzel ფილტრი ზუსტი Blackman ფანჯრის გარეშე
  • ფოტო 3,,, Goertzel ფილტრი ზუსტი Blackman ფანჯრით გამოყენებულია

ნაბიჯი 6: ოპერაცია

დეკოდირება

მორსის მოსმენისას განათავსეთ მოწყობილობა თქვენი დინამიკის გვერდით.

  • ელექტრული მიკროფონის კაფსულა იღებს მორსის სიგნალს თქვენი სპიკერიდან.
  • ელექტრული მიკროფონის გამომუშავება შემდეგ გაძლიერდება 647 -ჯერ (56 დბ), სანამ არდუინოს გადაეცემა დამუშავებისთვის.
  • Goertzel ციფრული bandpass ფილტრი ამოიღებს მორსის სიგნალს ხმაურისგან.
  • დეკოდირება ხდება ორობითი ხის გამოყენებით.
  • დეკოდირების გამომუშავება ნაჩვენებია ტექსტის სახით 320 x 240 პიქსელიანი TFT ეკრანზე. ის ასევე იგზავნება თქვენს Arduino "სერიულ მონიტორზე", თუ არ გსურთ ეკრანის გამოყენება.

მორსის გამგზავნი

მორსის გამომგზავნიც შედის. ეს საშუალებას გაძლევთ ივარჯიშოთ მორსის გაგზავნისას და მუშაობს შემდეგნაირად:

  • Arduino pin 4 -ზე წარმოიქმნება მუდმივი მოსასმენი ტონი.
  • ჩვენ გვესმის ეს ტონი დეკოდერის ხმამაღალი სპიკერის საშუალებით, როდესაც მორსის ღილაკს ვაწკაპუნებთ.
  • ტონი დაყენებულია იმავე სიხშირით, როგორც გოერცელის ფილტრი, რომელიც ატყუებს დეკოდერს და ფიქრობს, რომ ის უსმენს ნამდვილ მორსს … რასაც თქვენ გამოგზავნით გამოჩნდება ეკრანზე დაბეჭდილი ტექსტის სახით.

თქვენი გაგზავნა გაუმჯობესდება, რადგანაც დეკოდირი იღებს ისეთ საერთო შეცდომებს, როგორიცაა:

  • ძალიან ბევრი სივრცე სიმბოლოებს შორის. (მაგალითი: Q pinted as MA)
  • ძალიან ბევრი სივრცე ასოებს შორის (მაგალითი: ახლა დაბეჭდილია NO W)
  • არასწორი კოდი

ნაბიჯი 7: შეჯამება

დეკოდირება

ეს ინსტრუქცია აღწერს, თუ როგორ უნდა გააკეთოთ მორსის დეკოდერი, რომელიც გარდაქმნის მორსის კოდს დაბეჭდილ ტექსტად.

  • დეკოდერს შეუძლია მორსის გაშიფვრა მინიმუმ 80 WPM (სიტყვა წუთში)
  • დეკოდირება ავტომატურად აკონტროლებს მიღებული გაგზავნის სიჩქარის ვარიაციებს.
  • ტექსტი ნაჩვენებია თქვენს სერიულ მონიტორზე (ან 320 x 240 TFT ჩვენების მოდულზე, თუ ის დამონტაჟებულია) [1]

გამგზავნი

მორსის გამომგზავნიც შედის

  • გამგზავნი დაგეხმარებათ გააუმჯობესოთ თქვენი მორსის გაგზავნის ხარისხი.
  • დეკოდირება ადასტურებს რომ თქვენ მიერ გამოგზავნილი არის სწორი

ნაწილების ღირებულება

მორსის დეკოდირების ფარის სავარაუდო ღირებულება, გამოკლებული TFT დისპლეი, არის 25 $.

დააწკაპუნეთ აქ, რომ ნახოთ ჩემი სხვა ინსტრუქციები.

აუდიო გამოწვევა 2020
აუდიო გამოწვევა 2020
აუდიო გამოწვევა 2020
აუდიო გამოწვევა 2020

მეორე პრიზი აუდიო გამოწვევაში 2020

გირჩევთ: