Sistem koordinat ultrasonik 2.0
Tentang apa artikel ini: Artikel ini menjelaskan prinsip-prinsip pengoperasian sistem penentuan koordinat saya, dan pengalaman saya dalam pembuatannya. Artikel ini bukan instruksi untuk pembuatan sistem navigasi, karena tidak begitu mudah untuk dijelaskan dalam satu artikel.

Artikel ini adalah pengembangan dari ide-ide artikel saya sebelumnya:
habr.com/en/post/451408Struktur sistem
Sistem penentuan koordinat memiliki diagram struktural berikut:

Fig. 1 - Diagram skematis dari sistem ultrasound untuk menentukan koordinat.
Mari kita perhatikan setiap elemen lebih dekat.
Penerima ultrasonik



Fig. 2 - Pengembangan penerima ultrasound (atas ke bawah).
Awalnya, penerima terdiri dari satu modul dan memiliki area cakupan yang sangat kecil di ruangan itu, pada masa itu saya tidak mendigitalkan sinyal, tetapi hanya menerima dari sensor panjang yang diberikan oleh pengontrol biasa.
Kemudian, untuk meningkatkan jangkauan, saya memutuskan untuk membuat modul tiga sensor, data yang darinya secara digital didigitalkan dan dikirim ke PC, di mana jarak dan koordinat dihitung. Setelah menguji penerima tiga komponen, saya melihat bahwa satu penerima sudah cukup jika Anda memproses sinyal sendiri.
Hasilnya, receiver kembali menjadi satu komponen, tetapi karena saya sedang memproses sinyal, area jangkauan menjadi cukup besar. Sinyal sekarang diproses dalam STM32 setelah digitasi, hanya menghasilkan jarak ke keluaran.
Komposisi:
- STM32 - digunakan untuk mendigitalkan sinyal ultrasonik dan menghitung jarak ke emitor;
- HC-SR04 - Saya memodifikasinya sedikit dan sekarang saya dapat menerima sinyal dari inputnya, ditunjukkan pada Gambar 3;
- RS485 - untuk mentransmisikan jarak ke emitor ke PC.

Fig. 3 - Sinyal ultrasonik digital.

Fig. 4 - sinyal USG di area 4700 - 5200 dari gambar di atas.
Pemancar ultrasonik



Fig. 5 - Pengembangan emitor (atas ke bawah).
Seperti yang dapat Anda lihat dari Gambar 5, pada awalnya saya hanya menarik kaki Trig pada sensor HC-SR04, itu bukan sistem terbaik, jika hanya karena saya tidak bisa menentukan berapa banyak gelombang ultrasonik yang bisa saya buat, saya tidak bisa mengubah kekuatannya, dan emitor ini cukup besar.
Kemudian saya membuat versi kedua, yang jauh lebih rumit, tetapi saya sudah bisa mengatur semuanya dengan STM32 dan L293D, yang terhubung langsung ke speaker ultrasound. Sekarang, bukannya 5 volt standar, saya menerapkan 17, dan ini sangat meningkatkan area kerja. Saya juga menambahkan modul radio dan antarmuka RS485, yang membuat modul ini berdiri sendiri.
Setelah serangkaian tes, saya memutuskan untuk mengurangi emitor ke ukuran yang layak dan menyatukannya lebih erat, sebagai hasil dari apa yang Anda lihat pada gambar terakhir.
Komposisi:- STM32 - menerima perintah Trig (mulai mengukur jarak) melalui saluran radio dan memancarkan sinyal ultrasonik, juga mentransmisikan perintah yang diterima dari modul radio ke RS485 (Saya menggunakannya untuk remote control platform mobile);
- RS485 - antarmuka informasi perangkat untuk pengguna;
- DC-DC boost - mengubah catu daya 5V ke 17V untuk emitor;
- L293D - Saya gunakan untuk menghasilkan sinyal ultrasonik yang kuat dengan tegangan 17V;
- nRF24 - saluran radio;
- Emitter - 6 emitter yang dikeluarkan dari modul HC-SR04.
Modul dasar

Fig. 6 - Modul dasar.
Komposisi:- STM32 - mengirim Trig ke emitor dan penerima, menerima perintah USB dari PC untuk transmisi melalui saluran radio ke emitor (alias modul seluler);
- nRF24 - mentransmisikan Trig ke emitor dan mengirimkan perintah ke emitor.
Modul PC
PC melalui adaptor RS485 terhubung ke semua penerima ultrasonik, pada antarmuka ini menerima semua panjang dari mereka dan menghitung koordinat modul mobile. Melalui USB terhubung ke modul dasar dan melaluinya mentransfer perintah kontrol ke modul seluler.
Lokasi modul di area kerja
Peta ruangan dengan penerima ultrasound yang ditempatkan di sudutnya terlihat seperti ini:

Fig. 7 - Gagasan umum lokasi sensor.

Fig. 8 - Tampilan teratas pada skala (lingkaran, dengan angka di dalamnya, sensor ditunjukkan).
Algoritma kerja sistem penentuan koordinat ultrasonik
- Modul dasar mengirimkan perintah Trig ke emitor (over the air) dan penerima (over the wire).
- Emitor mulai mengeluarkan, dan penerima mulai mendengarkan siaran.
- Setiap penerima, setelah mendengar sinyal ultrasonik, mencatat waktu antara perintah Trig dan waktu penerimaan sinyal ini dan menerjemahkannya ke kejauhan.
- Penerima RS485 mengirim jarak dari emitor ke diri mereka di PC.
- PC menghitung koordinat emitor.
Operasi sistem
Menjalankan ini semua, kita mendapatkan koordinat objek, akurasi tergantung pada tempat di ruangan itu. Di tempat terbaik, kesalahan tidak melebihi beberapa sentimeter, dan yang terburuk ... yah, Anda sendiri dapat melihat semuanya pada Gambar 9.

Fig. 9 - Memindahkan emitor di sekitar ruangan.
Ada empat set koordinat dalam gambar ini, karena kita memiliki empat penerima, dan untuk menentukan koordinat dalam ruang tiga dimensi kita hanya membutuhkan tiga, maka kita memiliki empat kombinasi penerima.
Seperti dapat dilihat dari gambar, secara umum, sistem menentukan koordinat dengan benar, tetapi di tempat yang berbeda kesalahannya berbeda. Saya memindahkan paralel emitor ke sumbu X dan Y, di suatu tempat dengan interval antara garis dalam satu meter, di suatu tempat dalam setengah meter, ini dapat dilihat pada gambar. Keakuratan terbaik ada di tengah, dan di tepi semuanya buruk, karena dari sana sinyal ultrasonik jatuh pada penerima pada sudut yang besar, dan ini menciptakan distorsi pada sinyal digital.
Setelah memfilter dan rata-rata empat pasang koordinat, kita mendapatkan gambar berikut:

Fig. 10 - Lintasan rata-rata.
Bukan es, tapi apa yang ada di sana.
Untuk bersenang-senang, saya akan menunjukkan kepada Anda bagaimana semuanya terlihat dalam 3D, karena kami juga memiliki koordinat ketiga, meskipun tidak diperlukan dalam proyek saya, karena robot seluler hanya bergerak di dalam pesawat.

Fig. 11 - lintasan 3D.
Seperti yang bisa kita lihat, semua titik terletak kira-kira di pesawat yang sama, dan ini benar, karena saya mengemudikan emitor melintasi lantai tanpa melepasnya.
Dan ini adalah contoh dari kegagalan platform mobile dengan emitor, lintasannya terlihat jelas. Menurut rencana, platform itu seharusnya kembali ke titik awal, setelah melewati jalan persegi panjang, tetapi tidak berhasil, dalam artikel berikut saya akan memberi tahu Anda alasannya.

Fig. 12 - Lintasan pergerakan platform seluler.
Masalah aktual
Saat ini saya memiliki sejumlah masalah mendesak, dan jika seseorang dapat menyarankan sesuatu, silakan tulis ini di komentar atau di VK:
vk.com/b__s__v1.
Apa cara terbaik untuk menerima sinyal ultrasound? Sensor HC-SR04 yang sekarang saya gunakan untuk menerima dan memperkuat sinyal ultrasound bukan pilihan terbaik. Pertama, karena mereka selalu menerima sinyal dengan hanya satu frekuensi dan Anda tidak dapat membuat pemisahan frekuensi sumber sinyal dari mereka (yang menarik bagi saya untuk dicoba), mereka juga terlalu besar, dan saya sangat bergantung pada mereka.
2.
Bagaimana cara menghilangkan distorsi koordinat di berbagai sudut ruangan? Pada grid yang saya gambar di lantai, dapat dilihat bahwa kadang-kadang garis lurus mulai menyimpang, meskipun saya selalu memindahkan modul ponsel dengan lancar, dan entah bagaimana saya harus menyingkirkannya.
3.
Untuk nRF24, sinyal menghilang. Ketika modul ditutup, maka tidak ada masalah, tetapi perlu menyebar beberapa meter dan berdiri di antara mereka sendiri, saat pesan mencapai satu. Saya tidak perlu mengirim ulang pesan di sana, karena saya mengirimkan sinyal jam pada saluran ini, dan pesan itu harus selalu datang dalam detik yang sama. Saya memiliki modul dengan antena eksternal, dan yang ada di modul dasar berfungsi lebih baik tanpa antena daripada dengan itu. Saya tidak mengerti apa-apa, daya maksimum.
4.
Tempat promosi proyek. Jika seseorang mengetahui situs internasional seperti Habr dalam bahasa Inggris, harap abaikan tautannya, jika tidak saya tidak menemukan sesuatu yang layak, tetapi stackoverflow, ini hanya pertanyaan dan jawaban, tidak cukup untuk memposting artikel seperti itu.
5.
Komentar dan saran. Jika seseorang ingin berbicara, saya akan senang menerima kritik dan saran.
Ini masih jauh dari akhir proyek saya, meskipun waktu hampir berakhir, tetapi jika ada minat, saya akan menulis artikel tentang bagaimana robot seluler melakukan perjalanan berdasarkan sistem ini pada koordinat yang diberikan di kamar saya.