Mundarija:

Ultrasonik asosli joylashishni aniqlash tizimi: 4 qadam (rasmlar bilan)
Ultrasonik asosli joylashishni aniqlash tizimi: 4 qadam (rasmlar bilan)

Video: Ultrasonik asosli joylashishni aniqlash tizimi: 4 qadam (rasmlar bilan)

Video: Ultrasonik asosli joylashishni aniqlash tizimi: 4 qadam (rasmlar bilan)
Video: Производство биодизеля с использованием сонореакторов Hielscher 2024, Noyabr
Anonim
Ultrasonik asosli joylashishni aniqlash tizimi
Ultrasonik asosli joylashishni aniqlash tizimi

Arduino qurilmalari uchun topilgan ultratovushli radarlarning barcha versiyalari (Arduino - Radar/Ultrasonik detektor, Arduino ultratovushli radar loyihasi) juda yaxshi radarlar, lekin ularning hammasi "ko'r". Aytmoqchimanki, radar biror narsani aniqlaydi, lekin u nimani aniqlaydi?

Shuning uchun men o'zimni ob'ektlarni aniqlaydigan va ularni aniqlaydigan tizimni ishlab chiqishni taklif qilaman. Boshqacha qilib aytganda, GPS qurilmalarini ishlatmasdan, ultratovushli detektorlar yordamida joylashishni aniqlash tizimi.

Bu natija umid qilamanki sizga yoqadi.

1 -qadam: Bu qanday ishlaydi?

Bu qanday ishlaydi?
Bu qanday ishlaydi?

Joylashtirish tizimlari ultratovushli detektorlar va id_node 1, 2 va 3 ga ega bo'lgan uchta sensorli stantsiyalardan iborat bo'lib, ular 90º burchakli to'rtburchaklar yoki kvadrat hosil qiladi va ular orasidagi masofalar 1 -rasmda ko'rsatilgandek.

const float distancebetween1and2 = 60.0;

const float distancebetween2and3 = 75.0;

Bu sensorlar id_node 3 dan katta bo'lgan boshqa ob'ektlarning masofasi va burchagini o'lchaydi, shuningdek, ultrasonik detektorga ega, u 170 ° burchakni supuradi.

Ularning barchasi masofalarni, o'lchangan burchaklarni va id_node -ni simsiz aloqa yordamida boshqa master -stantsiyaga yuboradi, ularni trigonometriya yordamida ob'ektlarning holatini hisoblab chiqadi va aniqlaydi.

Shovqinlarni oldini olish uchun bosh stansiya barcha ultratovushli detektorlarni sinxronlashtiradi, bunda har bir lahzada faqat bitta ultrasonik detektor o'lchanadi.

Shundan so'ng va ketma -ket aloqadan foydalanib, asosiy stansiya natijalarni tuzish uchun ma'lumotlarni (burchak, masofa, id_object) qayta ishlash eskiziga yuboradi.

2 -qadam: uchta sensorli stantsiyani va ob'ektlarni qanday sozlash kerak

Uch sensorli stantsiya va ob'ektlarni qanday sozlash kerak
Uch sensorli stantsiya va ob'ektlarni qanday sozlash kerak
Uch sensorli stantsiya va ob'ektlarni qanday sozlash kerak
Uch sensorli stantsiya va ob'ektlarni qanday sozlash kerak

Har bir sensorli stantsiyaning yagona vazifasi - ob'ektlarni aniqlash va o'lchangan masofa, burchak va id tugunlarining ro'yxatini asosiy stansiyaga yuborish.

Aniqlashni yaxshilash va aniqlash zonasini cheklash uchun ruxsat etilgan maksimal masofani ("valid_max_distance") va minimal masofani ("valid_min_distance") (santimetr) yangilashingiz kerak:

int valid_max_distance = 80;

int valid_min_distance = 1;

Bu sensorlar stantsiyalarining identifikator tugunlari (quyidagi koddagi "this_node") 1, 2 va 3 va bosh stansiyaning id tugunlari 0 ga teng.

const uint16_t this_node = 01; // Tugunimizning sakkizlik formatidagi manzili (Node01, Node02, Node03)

const uint16_t other_node = 00; // Sakkizlik formatidagi asosiy tugunning manzili (Node00)

Har bir sensorli stantsiya suzadi va burchagi 100º (pastdagi kodda "maksimal burchak")

#min_angle 0 ni belgilang

#max_angle 100 ni aniqlang

Yuqoridagi kabi, ob'ektning yagona vazifasi - ob'ektlarni aniqlash va o'lchangan masofalar, burchaklar va id ob'ektlari ro'yxatini asosiy stansiyaga yuborish. Bitta ob'ektning identifikatori (quyidagi koddagi "this_node") 3dan katta bo'lishi kerak.

Har bir ob'ekt 170º burchak va yuqoridagi kabi, maksimal va minimal aniqlash masofasini yangilashi mumkin.

const uint16_t this_node = 04; // Sakkizlik formatdagi tugunimizning manzili (Node04, Node05, …)

const uint16_t other_node = 00; // Asosiy tugunning (Node00) sakkizlik formatidagi manzili int valid_max_distance = 80; int valid_min_distance = 1; 170

3 -qadam: Magistral stantsiyani qanday sozlash kerak

Magistral stantsiyani qanday sozlash kerak
Magistral stantsiyani qanday sozlash kerak
Magistral stantsiyani qanday sozlash kerak
Magistral stantsiyani qanday sozlash kerak
Magistral stantsiyani qanday sozlash kerak
Magistral stantsiyani qanday sozlash kerak

Asosiy stansiyaning vazifasi - sensorlar va ob'ektlarning uzatilishini qabul qilish va natijalarni ketma -ket port yordamida ishlov berish eskiziga yuborish. Bundan tashqari, shovqinlarni oldini olish uchun barcha ob'ektlar va uchta sensorli stantsiyalarni sinxronlashtiradi, shunda ulardan faqat bittasi o'lchanadi.

Birinchidan, sensor 1 va 2 orasidagi masofani (santimetr) va 2 va 3 orasidagi masofani yangilashingiz kerak.

const float distancebetween1and2 = 60.0;

const float distancebetween2and3 = 70.0;

Eskizda ob'ektlarning joylashuvi quyidagicha hisoblanadi:

  • Ob'ektlarning barcha uzatilishi uchun (id_node 3 dan katta) ultratovushli sensorlarning har bir uzatilishida bir xil masofani qidiring (id_node 1, 2 yoki 3).
  • Bu nuqtalarning barchasi "nomzodlar" ro'yxatini tuzadi (masofa, burchak, id_node) bitta ob'ektning joylashuvi bo'lishi kerak ("eskizdagi" jarayon_nuqtasi_to'liq_sozlari ").
  • Oldingi ro'yxatdagi har bir "nomzod" uchun "nomzod_selected_between_sensor2and3" funktsiyasi ultratovush sensori 2 va 3 nuqtai nazaridan qaysi biri quyidagi trigonometriya holatiga mos kelishini hisoblab chiqadi (2 va 3 -rasmlarga qarang).

suzuvchi masofa2 = sin (radian (burchak)) * masofa;

float distancefroms3 = cos (radianlar (burchak_kandidati)) * masofa_kandidati; // Trigonometriya sharti 1 abs (masofa2 + masofa3 - masofa2 va3) <= suzuvchi (maksimal_diference_distance)

Yuqoridagi kabi, oldingi ro'yxatdagi har bir "nomzod" uchun "nomzod_selected_between_sensor1and2" funktsiyasi ultratovush sensori 1 va 2 nuqtai nazaridan ularning qaysi biri quyidagi trigonometriya munosabatlariga mos kelishini hisoblab chiqadi (2 va 3 -rasmlarga qarang)

suzuvchi masofa1 = sin (radian (burchak)) * masofa; suzuvchi masofa2 = cos (radian (burchak_kandidati)) * masofa_kandidati; // Trigonometriya sharti 2 abs (masofa1 + masofa2 - masofa1 va 2) <= suzuvchi (max_diference_distance)

Faqat 1 va 2 trigonometriya shartlariga mos keladigan nomzodlar (masofa, burchak, id_node) 1, 2 va 3 -sonli sensorli stansiyalar tomonidan aniqlangan ob'ektlardir

Shundan so'ng, natijalar bosh stantsiya tomonidan ularni tuzish uchun qayta ishlash eskiziga yuboriladi.

4 -qadam: Materiallar ro'yxati

Image
Image

Bir sensorli stantsiya yoki bitta ob'ekt uchun zarur bo'lgan materiallar ro'yxati:

  • Nano karta
  • Ultrasonik sensor
  • Mikro servo dvigatel
  • NRF24L01 simsiz moduli
  • NRF24L01 adapter

va asosiy stantsiya uchun materiallar ro'yxati quyidagicha:

  • Nano karta
  • NRF24L01 simsiz moduli
  • NRF24L01 adapter

Tavsiya: