Мазмуну:
- 1 -кадам: Бул кантип иштейт?
- 2 -кадам: Үч сенсордук станцияны жана объекттерди кантип конфигурациялоо керек
- 3 -кадам: Master Station кантип конфигурацияланат
- 4 -кадам: Материалдардын тизмеси
Video: Ultrasonics негизделген жайгашуу системасы: 4 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Ардуино аппараттары үчүн тапкан УЗИ радарларынын бардык версиялары (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) абдан жакшы радарлар, бирок алардын баары "сокур". Айтайын дегеним, радар бир нерсени аныктайт, бирок ал эмнени аныктап жатат?
Ошондуктан мен өзүмдү объекттерди аныктай турган жана аларды аныктоочу системаны иштеп чыгууну сунуштайм. Башкача айтканда, GPS түзмөктөрүн, бирок УЗИ детекторлорун колдонбостон позициялоо системасы.
Бул жыйынтык сизге жагат деп үмүттөнөм.
1 -кадам: Бул кантип иштейт?
Позициялоо тутумдары УЗИ детекторлору жана id_node 1, 2 жана 3 менен үч сенсордук станциялар тарабынан түзүлөт, алар 90º бурчту шыпырып турган тик бурчтукту же чарчаны түзөт жана алардын ортосундагы аралык 1 -сүрөттө көрсөтүлгөндөй белгилүү.
const float distancebetween1and2 = 60.0;
const float distancebetween2and3 = 75.0;
Бул сенсорлор id_node 3төн чоң башка объектилердин алыстыгын жана бурчун өлчөйт, аларда 170 ° бурчту шыпырып турган УЗИ детектору бар.
Алардын баары аралыктарды, өлчөнгөн бурчтарды жана id_node'ду башка магистралдык станцияга зымсыз байланышты колдонуп анализдеп, тригонометриялык эсептөөнүн жардамы менен объекттердин абалын эсептеп, аныктайт.
Тоскоолдуктарды болтурбоо үчүн, башкы станция бардык УЗИ детекторлорун синхрондоштурат, ошентип ар бир учурда бир гана УЗИ детектору өлчөйт.
Андан кийин жана сериялык байланышты колдонуп, башкы станция жыйынтыктарды пландоо үчүн маалыматты (бурч, аралык, id_object) иштетүүчү эскизге жөнөтөт.
2 -кадам: Үч сенсордук станцияны жана объекттерди кантип конфигурациялоо керек
Ар бир сенсор станциясынын бирден бир милдети - объекттерди табуу жана ченелген аралыктын, бурчтун жана id түйүнүнүн тизмесин башкы станцияга жөнөтүү.
Андыктан аныктоону жакшыртуу жана аныктоо аймагын чектөө үчүн уруксат берилген максималдуу аныктоо аралыкты ("valid_max_distance") жана минималдуу ("valid_min_distance") (сантиметр) жаңыртуу керек:
int valid_max_distance = 80;
int valid_min_distance = 1;
Бул сенсор станциялардын id түйүнү (төмөндөгү коддогу "this_node") 1, 2 жана 3 жана башкы станциянын id түйүнү 0.
const uint16_t this_node = 01; // Octal форматындагы биздин түйүндүн дареги (Node01, Node02, Node03)
const uint16_t other_node = 00; // Башкы түйүндүн дареги (Node00) Octal форматында
Ар бир сенсор бекети шыпырылып, 100º бурчка ээ (төмөнкү коддо "max_angle")
#аныктоо min_angle 0
#аныктоо max_angle 100
Жогоруда айтылгандай, объектинин бирден -бир функциясы - объекттерди табуу жана ченелген аралыктардын, бурчтардын жана id объектинин тизмесин башкы станцияга жөнөтүү. Бир объекттин идентификатору (төмөнкү коддогу "this_node") 3төн чоң болушу керек.
Ар бир объект шыпырып жана 170º бурчка жана жогоруда айтылгандай, максималдуу жана минималдуу аныктоо аралыкты жаңыртууга болот.
const uint16_t this_node = 04; // Octal форматындагы биздин түйүндүн дареги (Node04, Node05,…)
const uint16_t other_node = 00; // Негизги түйүндүн дареги (Node00) Octal форматында int valid_max_distance = 80; int valid_min_distance = 1; 170
3 -кадам: Master Station кантип конфигурацияланат
Башкы станциянын милдети - сенсордук станциялардын жана объектилердин берүүлөрүн кабыл алуу жана жыйынтыгын сериялык порт аркылуу аларды иштетүү эскизине жөнөтүү. Мындан тышкары, бардык объектилерди жана үч сенсордук станцияны синхрондоштурат, алардын кийлигишүүсүнө жол бербөө үчүн ар бир убакта бирөө гана өлчөйт.
Биринчиден, сенсор 1 менен 2 ортосундагы аралыкты (сантиметр) жана 2 менен 3 ортосундагы аралыкты жаңыртуу керек.
const float distancebetween1and2 = 60.0;
const float distancebetween2and3 = 70.0;
Эскиз объекттердин ордун төмөнкүчө эсептейт:
- Объектилердин бардык берүүлөрү үчүн (id_node 3төн чоң) УЗИ сенсорлорунун ар бир берүүсүндө бирдей аралыкты издеңиз (id_node 1, 2 же 3).
- Бул пункттардын бардыгы "талапкерлердин" тизмесин түзөт (аралык, бурч, id_node) бир объекттин позициясы үчүн (эскиздеги "process_pointobject_with_pointssensor").
- Мурунку тизмедеги ар бир "талапкер" үчүн "кандидат_селектелген_бет ортосунда_сенсор2 жана 3" функциясы ультрадыбыштуу сенсордун 2 жана 3 көз карашынан эсептейт, алардын кайсынысы төмөнкү тригонометрия шартына дал келет (2 жана 3 -сүрөттөрдү караңыз)
сүзүү расстояние2 = sin (радиандар (бурч)) * аралык;
сүзүү расстояние3 = cos (радиандар (бурч_кандидаты)) * аралык_кандидат; // Тригонометрия шарты 1 абс (расстояние 2 + расстояние 3 - расстояние2 и3) <= калкып жүрүү (max_diference_distance)
Жогоруда айтылгандай, мурунку тизмедеги ар бир "талапкер" үчүн, "кандидат_селектелген_бет ортосунда_сенсор1 жана2" функциясы ультрадыбыштуу сенсордун 1 жана 2 көз карашы боюнча эсептейт, алардын кайсынысы төмөнкү тригонометрия байланышына туура келет (2 жана 3 -сүрөттү караңыз)
сүзүү расстояние1 = син (радиандар (бурч)) * аралык; сүзүү аралыгы2 = кос (радиандар (бурч_кандидаты)) * аралык_кандидат; // Тригонометрия шарты 2 абс (расстояние 1 + расстояние 2 - фосила1 и2) <= калкып жүрүү (max_diference_distance)
Тригонометриянын 1 жана 2 шарттарына дал келген талапкерлер (аралык, бурч, id_node) 1, 2 жана 3 сенсор станциялары тарабынан аныкталган объекттер
Андан кийин жыйынтыктар башкы станция тарабынан аларды пландоо үчүн кайра иштетүүчү эскизге жөнөтүлөт.
4 -кадам: Материалдардын тизмеси
Бир сенсор станциясына же бир объектке керектүү материалдардын тизмеси төмөнкүчө:
- Нано тактасы
- УЗИ сенсор
- Микро -servo мотор
- NRF24L01 зымсыз модулу
- NRF24L01 адаптер
жана башкы станция үчүн материалдардын тизмеси төмөнкүдөй:
- Нано тактасы
- NRF24L01 зымсыз модулу
- NRF24L01 адаптер
Сунушталууда:
"Уизлинин" жайгашуу сааты 4 кол менен: 11 кадам (сүрөттөр менен)
"Уизлинин" жайгашкан жери боюнча саат 4 кол менен: Ошентип, Raspberry Pi менен бир топко чейин тепкилеп жүргөндө, мен аны мыкты колдонууга мүмкүндүк бере турган жакшы долбоорду тапкым келди. Мен бул улуу Instructable Build Your Own Weasley жайгашуу саатын ppeters0502 менен жолуктурдум жана ойлодум
Түстөрдү сорттоо системасы: Arduino негизделген системасы эки кур менен: 8 кадам
Түстөрдү сорттоо системасы: Arduino негизделген эки белдемдүү система: Өнөр жай тармагындагы продукцияларды жана буюмдарды ташуу жана/же таңгактоо конвейердик линиялардын жардамы менен жүргүзүлөт. Бул курлар нерсени белгилүү бир ылдамдык менен бир чекиттен экинчи пунктка жылдырууга жардам берет. Кээ бир иштетүү же идентификациялык тапшырмалар болушу мүмкүн
Аба ырайына негизделген музыка генератору (ESP8266 негизделген Midi генератору): 4 кадам (сүрөттөр менен)
Аба ырайына негизделген музыка генератору (ESP8266 негизделген Midi генератору): Саламатсызбы, мен бүгүн өзүңүздүн кичинекей аба ырайына негизделген музыкалык генераторду кантип жасоону түшүндүрүп берем. жана жарыктын интенсивдүүлүгү. Бул бүтүндөй ырларды же аккорд программасын түзөт деп күтпөңүз
Кимдир бирөө мени сүйөт Жайгашуу сааты: 6 кадам (сүрөттөр менен)
Кимдир бирөө мени жакшы көрөт Жайгашуу сааты: Чет өлкөдөгү же штаттан тышкаркы жакындарым менен эч качан алар үчүн саат канча экенин билүүдөн көрө сен жөнүндө ойлонуп жатам деп эч нерсе айтпайт! Менин пенсиядагы кайнаталарым Берлинде, Германияда чиркөө миссиясын аткарууга даярданып жатышты, ал эми менин аялым
RFID коопсуздук системасы (Arduino негизделген): 6 кадам (сүрөттөр менен)
RFID Коопсуздук Системасы (Arduino негизделген): Үйүңүздө болушу мүмкүн болгон эң сонун аппарат