Агуулгын хүснэгт:

LD-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулах нь: 20 алхам (зурагтай)
LD-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулах нь: 20 алхам (зурагтай)

Видео: LD-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулах нь: 20 алхам (зурагтай)

Видео: LD-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулах нь: 20 алхам (зурагтай)
Видео: Ultrasonic Robot Sensors | MaxBotix Inc. 2024, Есдүгээр
Anonim
LV-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулж байна
LV-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулж байна
LV-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулж байна
LV-MaxSonar-EZ ба HC-SR04 Sonar Range Finder-ийг Arduino-той харьцуулж байна

Олон төслүүд (ялангуяа роботууд) объект хүртэлх зайг бодит цаг хугацаанд хэмжих шаардлагатай байдаг, эсвэл үр шимийг нь хүртэж чадна гэдгийг би олж мэдсэн. Sonar хүрээ илрүүлэгч нь харьцангуй хямд бөгөөд Arduino шиг микро контроллертой амархан холбогдож болно.

Энэхүү зааварчилгаа нь sonar-ийг олоход хялбар хоёр төхөөрөмжийг харьцуулж, тэдгээрийг Arduino-той хэрхэн холбох, тэдгээрийн утгыг уншихад ямар код шаардлагатай, өөр өөр нөхцөлд хэрхэн бие биенээ хэрхэн хэмжиж байгааг харуулдаг. Эндээс та дараагийн төсөлдөө хамгийн тохиромжтой төхөөрөмжийг ашиглахад туслах хоёр төхөөрөмжийн давуу болон сул талуудын талаар олж мэдэх болно гэж найдаж байна.

Би маш алдартай HC-SR04 (алдааны нүд) төхөөрөмжийг арай түгээмэл биш LV-MaxSonar-EZ төхөөрөмжтэй харьцуулж, хэзээ нөгөөгөөсөө илүү ашиглахыг хүсч байгаагаа харахыг хүссэн юм. Би олж мэдсэн зүйл, тохиргоогоо хуваалцахыг хүссэн бөгөөд ингэснээр та хоёуланг нь туршиж үзээд дараагийн төсөлдөө алийг нь ашиглахаа шийдэж болно.

Яагаад энэ хоёр…

Яагаад HC-SR04 вэ? 'Bug-Eye' HC-SR04 нь хэд хэдэн шалтгааны улмаас маш их алдартай болсон.

  • Энэ нь хямд байдаг - бөөнөөр худалдаж авсан бол 2 доллар ба түүнээс бага
  • Интерфэйстэй харьцах нь харьцангуй хялбар байдаг
  • Олон, олон төслүүд үүнийг ашигладаг тул үүнийг сайн мэддэг, сайн ойлгодог

Яагаад LV-MaxSonar-EZ гэж?

  • Интерфэйсийг холбоход маш хялбар байдаг
  • Энэ нь төсөлд оруулах сайн/хялбар хэлбэрийн хүчин зүйлтэй
  • Хэмжлийн өөр өөр шаардлагыг хангасан 5 хувилбартай (мэдээллийн хүснэгтийг үзнэ үү)
  • Энэ нь (ихэвчлэн) HC-SR04-ээс хамаагүй илүү нарийвчлалтай, найдвартай байдаг
  • Энэ нь боломжийн үнэтэй - 15-20 доллар

Нэмж дурдахад, миний бичсэн Arduino кодын хэсгүүд нь танай төслүүдэд харьцуулж үзэхэд хэрэгтэй зүйлүүдийг олох боломжтой гэж найдаж байна.

Таамаглал:

  • Та Arduino болон Arduino IDE -ийг сайн мэддэг
  • Arduino IDE нь таны сонгосон хөгжүүлэлтийн машин дээр суулгагдсан бөгөөд ажиллаж байгаа (PC/Mac/Linux)
  • Та Arduino IDE -ээс Arduino -тойгоо холбогдож програмуудаа ажиллуулж, харилцаж болно

Шаардлагатай бол танд туслах зааварчилгаа болон бусад эх сурвалжууд байдаг.

Хангамж

  • HC-SR04 'Алдааны нүд' хүрээ илрүүлэгч
  • LV-MaxSonar-EZ (0, 1, 2, 3, 4-Би '1' ашиглаж байна, гэхдээ бүх хувилбарууд ижил интерфэйстэй)
  • Ардуино НҮБ
  • Гагнуургүй талхны самбар
  • Зүү толгой - 7 зүү 90 ° (MaxSonar төхөөрөмжийн хувьд 180 ° ашиглахын тулд доороос * -ыг үзнэ үү)
  • Туузан кабель холбогч - 5 утас, эрэгтэй -эрэгтэй
  • Туузан кабель холбогч - 2 утас, эрэгтэй -эрэгтэй
  • Холбогч утас - эрэгтэй -эрэгтэй
  • Залгах утас - улаан, хар (Arduino -аас талх, талхны самбараас төхөөрөмж хүртэл цахилгаан тэжээлд зориулагдсан)
  • Arduino UNO -д холбогдох Arduino IDE болон USB кабель бүхий компьютер

* MaxSonar нь толгой хавсаргаагүй тул та төсөлдөө хамгийн тохиромжтой толгойг ашиглаж болно. Энэхүү зааварчилгааны хувьд би талхны самбарыг залгахад хялбар болгохын тулд 90 ° толгой ашигласан. Зарим төслүүдэд 180 ° (шулуун) толгой нь илүү дээр байж магадгүй юм. Үүнийг хэрхэн яаж холбохыг харуулахын тулд би зургийг орууллаа. Хэрэв та 180 ° толгой ашиглахыг хүсвэл миний зургаас үзэхэд холбохын тулд танд 7 утас бүхий эрэгтэй, эмэгтэй тууз кабелийн нэмэлт холбогч хэрэгтэй болно.

Git Hub репозитор: Төслийн файлууд

Алхам 1: Хөөх …

The Chase…
The Chase…

Та эдгээр хоёр гайхалтай төхөөрөмжийг туршиж үзэхийн тулд зүйлийг хэрхэн яаж холбох талаар нарийвчлан судлахаасаа өмнө энэхүү зааварчилгаа танд тусална гэж найдаж буй хэдэн зүйлийг тайлбарлахыг хүссэн юм.

MaxSonar төхөөрөмж нь HC-SR04 төхөөрөмжтэй харьцуулахад бага ашиглагддаг, ойлгомжгүй байдаг тул би дараахь зүйлийг харуулахыг хүссэн юм.

  • MaxSonar төхөөрөмжийг микро хянагчтай хэрхэн холбох вэ (энэ тохиолдолд Arduino)
  • MaxSonar төхөөрөмжийн янз бүрийн гаралтаас хэрхэн хэмжилт хийх вэ
  • MaxSonar төхөөрөмжийг HC-SR04 төхөөрөмжтэй харьцуулах
  • Янз бүрийн гадаргуутай объектуудын зайг хэмжих чадварыг туршиж үзээрэй
  • Та яагаад нэг төхөөрөмжийг нөгөөгөөсөө сонгож болох вэ (эсвэл хоёуланг нь зэрэгцүүлэн ашиглах)

Энэхүү зааварчилгаа нь энэхүү хөөцөлдөөнд танд тусална гэж найдаж байна …

Алхам 2: Эхлэх - Arduino -Breadboard -ийн тохиргоо

Эхлэх - Arduino -Breadboard -ийн тохиргоо
Эхлэх - Arduino -Breadboard -ийн тохиргоо

Хэрэв та Arduino-той прототип хийж байсан бол танд аль хэдийн тохирсон Arduino-Breadboard тохиргоо байгаа байх. Хэрэв тийм бол та үүнийг энэхүү зааварт ашиглах боломжтой гэдэгт итгэлтэй байна. Хэрэв тийм биш бол би уурхайг ингэж тохируулсан - үүнийг энэ болон ирээдүйн төслүүдэд хуулж аваарай.

  1. Би Arduino UNO болон жижиг утасгүй талхны хавтанг 3-3/8 "x 4-3/4" (8.6 x 12.0 см) хэмжээтэй хуванцар хэсэгт ёроолд нь резинэн хөлтэй холбодог.
  2. Би улаан, хар өнгийн 22-AWG залгах утсыг ашиглан +5V ба GND-ийг Arduino-аас талхны цахилгаан хуваарилах зурвас руу холбодог.
  3. Цахилгаан дуу чимээг багасгахын тулд би цахилгаан мандлын хуваарилах зурвас дээр 10 мкФ тантал конденсатор оруулсан (гэхдээ энэ төсөл үүнийг шаарддаггүй)

Энэ нь прототип хийхэд хялбар сайхан платформыг бий болгодог.

Алхам 3: LV-MaxSonar-EZ-ийг холбоно уу

LV-MaxSonar-EZ утсыг холбоно уу
LV-MaxSonar-EZ утсыг холбоно уу
LV-MaxSonar-EZ утсыг холбоно уу
LV-MaxSonar-EZ утсыг холбоно уу
LV-MaxSonar-EZ утсыг холбоно уу
LV-MaxSonar-EZ утсыг холбоно уу

MaxSonar төхөөрөмж дээр гагнасан 90 ° толгойтой бол түүнийг талхны самбар дээр залгахад хялбар байдаг. 5 зүү тууз кабель нь MaxSonar -ийг Arduino руу диаграммд үзүүлсэн шиг холбодог. Туузны кабелаас гадна би төхөөрөмжийг цахилгаан тэжээлээр хангахын тулд цахилгаан хуваарилах төмөр замын улаан, хар өнгийн богино утсыг ашигладаг.

Утас:

MaxSonar Ардуино Өнгө
1 (BW) Power-GND Шар
2 (PW) Дижитал-5 Ногоон
3 (AN) Аналог-0 Цэнхэр
4 (RX) Дижитал-3 Нил ягаан
5 (TX) Дижитал-2 Саарал
6 (+5) +5 BB-PWR төмөр зам Улаан
7 (GND) GND BB-PWR төмөр зам Хар

Тэмдэглэл:

Энэхүү зааварчилгаанд ашигласан холболтын тоо нь төслийнхөө MaxSonar -ийг авч үзэхэд саад болохгүй. Энэхүү зааварчилгаа нь MaxSonar интерфейсийн бүх сонголтыг ашиглан хэрхэн ажилладагийг харуулах, тэдгээрийг хооронд нь болон HC-SR04 төхөөрөмжтэй харьцуулах боломжийг олгодог. Тодорхой хэрэглээнд (интерфэйсийн сонголтуудын аль нэгийг ашиглан) төсөл нь ерөнхийдөө интерфэйсийн нэг буюу хоёр зүү (хүч ба газардуулгыг) ашигладаг.

Алхам 4: HC-SR04-ийг холбоно уу

HC-SR04 нь ихэвчлэн 90 ° толгойтой хавсаргасан байдаг тул үүнийг самбар дээр залгахад хялбар байдаг. 2 зүү тууз кабель нь HC-SR04-ийг диаграммд үзүүлсэн шиг Arduino-тэй холбодог. Туузны кабелаас гадна би төхөөрөмжийг цахилгаан тэжээлээр хангахын тулд цахилгаан хуваарилах төмөр замын улаан, хар өнгийн богино утсыг ашигладаг.

HC-SR04 Ардуино Өнгө
1 (VCC) +5 BB-PWR төмөр зам Улаан
2 (TRIG) Дижитал-6 Шар
3 (ECHO) Дижитал-7 жүрж
4 (GND) GND BB-PWR төмөр зам Хар

Алхам 5: 'HC-SR04' сонголтыг сонгоно уу

Би энэ төслийг эхлүүлэхдээ MaxSonar төхөөрөмжийн интерфэйсийн янз бүрийн сонголтыг туршиж үзэх зорилготой байсан. Үүнийг ажиллуулсны дараа би үүнийг хаа сайгүй байдаг HC-SR04 (bugeye) төхөөрөмжтэй харьцуулах нь зүйтэй гэж шийдсэн. Гэсэн хэдий ч би үүнийг оруулалгүйгээр ажиллуулж/туршиж үзэхийг хүсч байсан тул кодонд сонголт/тест нэмсэн.

Код нь оролтын зүүг шалгаж, HC-SR04 төхөөрөмжийг хэмжилтийн уншилт, гаралтад оруулах ёстой эсэхийг шалгадаг.

Диаграммд үүнийг унтраалга хэлбэрээр харуулсан боловч талхны самбар дээр би зүгээр л холбогч утсыг ашигладаг (зураг дээр харагдаж байгаа шиг). Хэрэв утас GND-т холбогдсон бол HC-SR04-ийг хэмжилтэд оруулна. Код нь Arduino-д 'татагддаг' (оролтыг өндөр/үнэн болгодог) бөгөөд ингэснээр хэрэв татахгүй бол (GND-тэй холбогдсон) HC-SR04 хэмжигдэхгүй болно.

Энэхүү зааварчилгаа нь хоёр төхөөрөмжийг харьцуулж харуулсан боловч би өөрийн төсөлд янз бүрийн төхөөрөмж/сонголтыг хэрхэн оруулах/оруулахгүй байхыг харуулахын тулд үүнийг орхихоор шийдлээ.

Талхны самбар Ардуино Өнгө
GND BB-PWR төмөр зам Дижитал-12 Цагаан

Алхам 6: Бүгдийг ажил хэрэг болгох …

Бүгдийг ажил хэрэг болгож байна…
Бүгдийг ажил хэрэг болгож байна…
Бүгдийг ажил хэрэг болгож байна…
Бүгдийг ажил хэрэг болгож байна…
Бүгдийг ажил хэрэг болгож байна…
Бүгдийг ажил хэрэг болгож байна…

Одоо бүх зүйл уялдаатай болсон тул бүх зүйлийг ажил хэрэг болгох цаг болжээ!

'Таамаглалд' дурдсанчлан - Би Arduino IDE хэрхэн ажилладаг, Arduino програмчлах талаар дэлгэрэнгүй тайлбарлахгүй байна.

Дараах хэсгүүд нь энэхүү төсөлд багтсан Arduino кодыг задална.

Бүрэн архивыг Arduino хөгжүүлэхэд ашигладаг байрандаа задална уу. MaxSonar-outputs.ino` кодыг Arduino IDE дээрээ ачаалж эхэлье!

Алхам 7: Төслийн зохион байгуулалт

Төсөлд LV-MaxSonar-EZ төхөөрөмж, хэлхээний схем, README, Arduino кодын тухай мэдээлэл багтсан болно. Хэлхээний диаграм нь Fritzing форматтай бөгөөд-p.webp

Алхам 8: Код оруулах

Энэхүү зааварт би кодын бүх талыг судалж чадахгүй. Би дээд түвшний зарим нарийн ширийн зүйлийг авч үздэг. Кодын дээд түвшний тайлбарыг уншиж, аргуудыг судалж үзэхийг танд зөвлөж байна.

Сэтгэгдлүүд нь би энд давтахгүй маш их мэдээлэл өгдөг.

'Тохиргоо' код дээр би онцлохыг хүсч буй хэдэн зүйл байна …

  • `_DEBUG_OUTPUT` - хувьсагч ба #тодорхойлолтын мэдэгдэл
  • Интерфейсэд ашиглагддаг Arduino 'pin -ийн тодорхойлолтууд
  • Тооцоонд ашигладаг хөрвүүлэх хүчин зүйлсийн тодорхойлолт

Дебаг хийх нь кодын туршид хэрэглэгддэг бөгөөд үүнийг хэрхэн динамикаар асаах/унтраахыг би харуулах болно.

Энэ тодорхойлолтыг бусад төслүүдэд ашиглахад хялбар болгох үүднээс Arduino -ийн зүү болон хөрвүүлэлтэд ашигладаг.

Дебаг хийж байна…

'Дебаг хийх' хэсэг нь хувьсагч болон зарим макрог тодорхойлдог бөгөөд энэ нь эрэлт хэрэгцээтэй байгаа тохиолдолд цуврал гаралт дээр дибаг хийх мэдээллийг оруулах боломжийг олгодог.

"_DEBUG_OUTPUT" логик хувьсагчийг кодонд худал гэж тохируулсан (үнэн болгож тохируулж болно) бөгөөд үүнийг "DB_PRINT…" макро дээр тест болгон ашигладаг. Үүнийг кодоор динамикаар өөрчилж болно ("setDebugOutputMode` аргыг харсан шиг).

Дэлхийн хэмжээний…

Тодорхойлолтын дараа код нь хэд хэдэн дэлхийн хувьсагч, объектыг үүсгэж эхлүүлдэг.

  • SoftwareSerial (дараагийн хэсгийг үзнэ үү)
  • _loopCount - 'n' мөр бүрт толгой гарчиг гаргахад ашигладаг
  • _inputBuffer - Боловсруулах сонголтуудад цуваа/терминал оролт цуглуулахад ашигладаг (дибаг хийх/унтраах)

Алхам 9: Arduino Програм хангамж-Цуваа …

MaxSonar интерфэйсийн сонголтуудын нэг нь цуваа өгөгдлийн урсгал юм. Гэсэн хэдий ч Arduino UNO нь зөвхөн ганц цуваа өгөгдлийн холболтыг хангадаг бөгөөд үүнийг Arduino IDE (хост компьютер) -тай холбогдохын тулд USB портоор ашигладаг/хуваалцдаг.

Аз болоход, Arduino IDE-д багтсан номын сангийн бүрэлдэхүүн хэсэг байдаг бөгөөд энэ нь Arduino дижитал I/O зүүг ашиглан цуваа интерфейсийг ашигладаг. MaxSonar цуваа интерфейс нь 9600 BAUD ашигладаг тул энэхүү "програм хангамж" интерфэйс нь харилцаа холбоог зохицуулах чадвартай.

Arduino-Mega (эсвэл олон HW цуваа порттой бусад төхөөрөмж) ашигладаг хүмүүсийн хувьд кодыг физик цуваа порт ашиглахын тулд тохируулж, SW-Serial-ийн хэрэгцээг арилгана уу.

"Тохиргоо" арга нь MaxSonar төхөөрөмжид ашиглах "SoftwareSerial" интерфейсийг эхлүүлдэг. Зөвхөн хүлээн авах (RX) шаардлагатай. MaxSonar -ийн гаралттай тохирох интерфэйс нь "урвуу" байна.

Алхам 10: Код - тохиргоо

Дээр дурдсанчлан, "тохируулах" арга нь "SoftwareSerial" интерфэйс, түүнчлэн физик цуваа интерфэйсийг эхлүүлдэг. Энэ нь Arduino I/O зүүг тохируулж, гарчиг илгээдэг.

Алхам 11: Код - Loop

`Loop` кодыг дараах байдлаар ажиллуулна.

  • Толгой гарчиг (дибаг хийх, плоттер хийхэд ашиглагддаг)
  • MaxSonar -ийг идэвхжүүлж хэмжилт хийнэ үү
  • MaxSonar Pulse-Width утгыг уншина уу
  • MaxSonar Serial-Data утгыг уншина уу
  • MaxSonar аналог утгыг уншина уу
  • 'HC-SR04' сонголтыг шалгаад идэвхжүүлсэн бол:

    HC-SR04 төхөөрөмжийг асааж, уншина уу

  • Өгөгдлийг цуваа плоттер ашиглаж болох табаар тусгаарлагдсан хэлбэрээр гаргана
  • Хангалттай хугацаа өнгөрөх хүртэл хүлээгээрэй, өөр хэмжилт хийх боломжтой болно

Алхам 12: Код - MaxSonar -ийг ажиллуулна уу. PW утгыг уншина уу

MaxSonar нь "өдөөгдсөн" ба "тасралтгүй" гэсэн хоёр горимтой.

Энэхүү зааварчилгаа нь "өдөөгдсөн" горимыг ашигладаг боловч олон төсөл "тасралтгүй" горимыг ашигласнаар ашиг тустай байдаг (мэдээллийн хүснэгтийг үзнэ үү).

"Гох" горимыг ашиглах үед анхны хүчин төгөлдөр гаралт нь Pulse-Width (PW) гаралтаас гардаг. Үүний дараа үлдсэн гаралтууд хүчин төгөлдөр болно.

`TiggerAndReadDistanceFromPulse` нь MaxSonar төхөөрөмж дээрх гох зүүг импульслэж, үүссэн импульсийн өргөний зайны утгыг уншдаг.

Бусад олон төрлийн дуу авианы төхөөрөмжүүдээс ялгаатай нь MaxSonar нь хоёр талт хөрвүүлэлтийг зохицуулдаг тул унших зай нь зорилтот хүртэлх зай юм.

Энэ арга нь төхөөрөмжийн бусад гаралт хүчин төгөлдөр болоход (цуваа, аналог) хангалттай удаан хугацаагаар хойшлуулдаг.

Алхам 13: Код - MaxSonar цувралын утгыг уншина уу

MaxSonar -ийг ажиллуулсны дараа (эсвэл "тасралтгүй" горимд байх үед), хэрэв цуваа гаралтын сонголтыг идэвхжүүлсэн бол ('BW - Pin -1' удирдлагаар) "R nnn" хэлбэрээр цуваа өгөгдлийн урсгалыг илгээнэ. ачааны машин-буцах '\ r'. 'Nnn' нь объектын инчийн утга юм.

"ReadDistanceFromSerial" арга нь цуваа өгөгдлийг (Програм хангамжийн цуваа портоос) уншиж, 'nnn' утгыг аравтын бутархай болгон хөрвүүлдэг. Үүнд серийн утгыг хүлээж аваагүй тохиолдолд аюулгүй ажиллах хугацаа орно.

Алхам 14: Код - MaxSonar аналог утгыг уншина уу

MaxSonar аналог порт нь хамгийн сүүлд хэмжсэн зайд пропорциональ гаралтын хүчдэлийг өгдөг. Энэ утгыг төхөөрөмжийг эхлүүлсний дараа хүссэн үедээ уншиж болно. Утга нь хамгийн сүүлчийн зайны уншлагаас 50 м -ийн дотор шинэчлэгддэг (идэвхжүүлсэн эсвэл тасралтгүй горим).

Утга нь инч тутамд (Vcc/512) байна. Тиймээс, 5 вольтын Arduino -аас Vcc -ийн хувьд утга нь ~ 9.8mV/in байх болно. "ReadDistanceFromAnalog" арга нь Arduino аналог оролтын утгыг уншиж, "инч" утга болгон хөрвүүлдэг.

Алхам 15: Код - HC -SR04 -ийг идэвхжүүлж уншина уу

HC-SR04-ийг унших номын сан байдаг ч би заримыг нь туршиж үзсэн янз бүрийн төхөөрөмжүүдийн хувьд найдваргүй гэж үзсэн. Би sr04ReadDistance аргад оруулсан кодыг энгийн бөгөөд илүү найдвартай гэж үзсэн (хямд үнэтэй HC-SR04 төхөөрөмж байж болох юм).

Энэ арга нь HC-SR04 төхөөрөмжийг тохируулж, идэвхжүүлж, буцах импульсийн өргөнийг хэмжих хүртэл хүлээнэ. Импульсийн өргөнийг хэмжих нь HC-SR04-ийн зорилтыг олж чадаагүй тохиолдолд маш удаан импульсийн үргэлжлэх хугацааг шийдвэрлэх хугацаа юм. Зорилтот зайнаас ~ 10 футын урттай импульсийн өргөнийг ямар ч объект эсвэл таних боломжгүй объект гэж үздэг. Хэрэв хугацаа хэтэрсэн бол '0' утгыг зай болгон буцаана. Энэхүү 'зай' (импульсийн өргөн) -ийг #define утгыг ашиглан тохируулж болно.

Импульсийн өргөнийг объект руу хүрэх зай болгон буцааж өгөхөөс өмнө дугуй хоорондын зайд хөрвүүлнэ.

Алхам 16: Код - Arduino IDE цуваа плоттерын дэмжлэг

Код - Arduino IDE цуваа плоттерын дэмжлэг
Код - Arduino IDE цуваа плоттерын дэмжлэг

Одоо гаралтын хувьд!

`Loop` арга нь хоёр төхөөрөмжөөс зайны хэмжилтийг цуглуулахад хүргэдэг, гэхдээ бид үүнийг юу хийх вэ?

Мэдээжийн хэрэг, бид консол дээр үзэхийн тулд үүнийг илгээх болно, гэхдээ бид илүү ихийг хүсч байна!

Arduino IDE нь мөн цуваа плоттер интерфэйсийг өгдөг. Бид үүнийг ашиглан хоёр төхөөрөмжийн гаралтаас объект хүртэлх зайны бодит цагийн графикийг гаргах болно.

Цуваа плоттер нь утгын шошго агуулсан толгойг хүлээн зөвшөөрч, дараа нь тусгаарлагдсан утгуудын олон мөрийг график хэлбэрээр зурна. Хэрэв утгыг тогтмол гаргадаг бол (ийм олон секунд тутамд нэг удаа) график нь тухайн объект хүртэлх зайг тодорхой хугацаанд харуулдаг.

`Loop` арга нь MaxSonar-аас авсан гурван утгыг болон HC-SR04-ийн утгыг табаар тусгаарлагдсан форматаар гаргадаг бөгөөд үүнийг цуваа плоттерт ашиглаж болно. 20 мөр тутамд толгойг гаргадаг (хэрэв цуваа плоттер дунд дамжуулалтыг идэвхжүүлсэн бол).

Энэ нь саад тотгор хүртэлх зайг төсөөлөх, мөн хоёр төхөөрөмжийн буцааж өгсөн утгын ялгааг харах боломжийг танд олгоно.

Алхам 17: Код - дибаг хийх …

Код - дибаг хийж байна …
Код - дибаг хийж байна …
Код - дибаг хийж байна …
Код - дибаг хийж байна …

Дебаг хийх нь зайлшгүй шаардлагатай зүйл юм. Аливаа зүйл хүлээж байсны дагуу ажиллахгүй байгаа тохиолдолд та асуудлыг хэрхэн шийдвэрлэх вэ?

Эхний ойлголтын мөр бол юу болж байгааг илтгэх "энгийн" текст гаралт юм. Асуудлыг илрүүлэхийн тулд шаардлагатай үед, хаана тэдгээрийг код дээр нэмж, дараа нь асуудлыг шийдсэний дараа устгаж болно. Гэсэн хэдий ч кодыг нэмэх, хасах нь цаг хугацаа их шаарддаг бөгөөд өөрөө өөр асуудалд хүргэж болзошгүй юм. Заримдаа эх кодыг ганцааранг нь үлдээх замаар үүнийг динамикаар идэвхжүүлж, идэвхгүй болгох нь илүү дээр юм.

Энэхүү гарын авлагад би Arduino IDE Serial Monitor -ээс уншсан оролтоос дибаг хийх (цуваа гаралт) мэдэгдлийг динамикаар идэвхжүүлэх, идэвхгүй болгох механизмыг оруулсан болно (удахгүй гарах хувилбар дээр Serial Plotter энэ оролтыг өгөх болно).

'_DEBUG_OUTPUT` boolean нь код дотор ашиглаж болох олон тооны #тодорхойлох хэвлэх аргад хэрэглэгддэг. _DEBUG_OUTPUT хувьсагчийн утгыг хэвлэх (гаралтыг илгээх) идэвхжүүлэхэд ашигладаг. "SetDebugOutputMode" аргын адил утгыг код дотор динамикаар өөрчилж болно.

"SetDebugOutputMode" аргыг цуваа оролтоос хүлээн авсан оролт дээр үндэслэн "давталтаас" дууддаг. Дебаг хийх горимыг идэвхжүүлэх/идэвхгүй болгохын тулд "дибаг хийх/унтраах | үнэн/худал" -тай таарч байгаа эсэхийг харахын тулд оролтыг задлан шинжилнэ.

Алхам 18: Дүгнэлт

Энэхүү энгийн тоног төхөөрөмжийн тохиргоо, жишээ код нь HC-SR04 ба LV-MaxSonar-EZ төхөөрөмжүүдийн ялгааг ойлгоход тусална гэж найдаж байна. Хоёуланг нь ашиглахад тун хялбар бөгөөд тус бүр өөрийн гэсэн давуу талтай гэдэгт би итгэдэг. Хэзээ бусдыг ашиглахаа мэдэх нь төслийг амжилттай хэрэгжүүлэхэд чухал үүрэг гүйцэтгэдэг.

BTW-Би LV-MaxSonar-EZ-ийг ашиглан объект хүртэлх зайг нарийн хэмжих маш хялбар аргыг зааж өгсөн … Та аналог гаралт (нэг утас) болон тасралтгүй хэмжих горимыг ашиглан энгийн үед зайгаа уншиж болно. кодыг Arduino аналог оролтоос шууд "readDistanceFromAnalog" -д оруулна уу. Нэг утас ба (хураангуй) нэг мөр код!

Алхам 19: MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)

MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)
MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)
MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)
MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)
MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)
MaxSonar -ийн өөр холболт (180 ° толгой ашиглан)

Миний хэлсэнчлэн MaxSonar толгой холбогдоогүй байна. Тиймээс, та өөрийн төсөлд хамгийн тохиромжтой холболтыг ашиглаж болно. Зарим тохиолдолд 180 ° (шулуун) толгой нь илүү тохиромжтой байж болох юм. Хэрэв тийм бол би үүнийг энэхүү зааварчилгаагаар хэрхэн ашиглахаа хурдан харуулахыг хүссэн юм. Энэхүү төөрөгдөл нь MaxSonar-ийг шулуун толгойтой талхтай тал дээр эрэгтэй, эмэгтэй туузаар холбож, дараа нь өгүүллийн үлдсэн хэсэгт дурдсаны дагуу Arduino-тэй холбосон болохыг харуулж байна.

Алхам 20: Arduino код

Arduino код нь төслийн 'MaxSonar-гаралт' хавтсанд Sonar Range-Finder харьцуулалтад байгаа

Зөвлөмж болгож буй: