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

Төсөл 3: SonarDuino: 9 алхам
Төсөл 3: SonarDuino: 9 алхам

Видео: Төсөл 3: SonarDuino: 9 алхам

Видео: Төсөл 3: SonarDuino: 9 алхам
Видео: Shine uy - НАРИЙН БИЧИГ || hoshin shog 2024, Есдүгээр
Anonim
Image
Image

Эрхэм хүндэт хоббичин, Энэхүү төсөлд бид объект илрүүлэх 360 градусын радарын системтэй болох боломжийг судлах болно. Энэхүү модулийг тусад нь байрлуулснаар таны зүтгүүр робот эргэн тойрныхоо хил хязгаарыг илрүүлэх боломжтой болно. Энэ нь харанхуйд навигацийн хэрэгсэл болж чаддаг, гэхдээ хангалттай удаан алхах үед л; х

Алхам 1: Танд хэрэгтэй зүйл

Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ
Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ

Энэхүү бүтцийг бий болгохын тулд та дараахь зүйлийг худалдаж авах хэрэгтэй болно.

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZp: rk: 2: pf: 0

Прототип хийх самбар: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item4cg8a70 ~ Zbl232: rk: 13: pf: 0

Servo Motors: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter- Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Хэт авианы мэдрэгч: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=it27 ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

Алхам 2: Баримтжуулалт

Та нарын зарим нь үүнийг мэдэж байгаа байх, энэ төслийг Дежаны хийсэн "Мехатроникийг хэрхэн яаж хийх вэ" гэсэн доорх линкээр хийсэн "Arduino Radar Project" нэртэй өөр эх сурвалжтай төслөөс санаа авсан болно: https://howtomechatronics.com/projects/arduino -радар төсөл/

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

Adafruit-GFX-Номын сан:

Adafruit_SSD1306:

С кодыг үнэхээр ойлгохын тулд дээрх хоёр номын сангийн зарим бичиг баримтыг бүрдүүлэх шаардлагатай болно. Үүнээс гадна, миний кодонд ашигласан функцууд нь юу хийж байгааг нь харуулсан нэртэй байдаг.

Алхам 3: Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ

Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ
Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ
Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ
Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ
Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ
Хэт авианы мэдрэгчийн дэмжлэгийг бэлтгэ

Аливаа картон цаасыг аваад эхний зурагт үзүүлсэн шиг мэдрэгч дээр хавсаргасан холболтын кабелийн хэмжээг харгалзан хайчилж ав. Үүний дараа үүнийг сүүлд нь нугалаад servo моторын тулгуур дээр наа. Үүнийг хийсний дараа сүүлийн зургийн дагуу хоёр хэт авианы мэдрэгчийг наа. Мэдрэгчийн толгойг кабелийг мэдрэгчийн өмнө гадагш гаргахын тулд гагнах ёстойг анхаарна уу. Энэ нь 360 градусын эргэлтийг хэрэгжүүлэх үед мэдрэгч кабелиуд хоорондоо саад учруулахгүй байх боломжийг олгоно.

Алхам 4: Бүгдийг прототип хийх самбар дээр суулгаарай

Бүгдийг прототип хийх самбар дээр суулгаарай
Бүгдийг прототип хийх самбар дээр суулгаарай
Бүгдийг прототип хийх самбар дээр суулгаарай
Бүгдийг прототип хийх самбар дээр суулгаарай
Бүгдийг прототип хийх самбар дээр суулгаарай
Бүгдийг прототип хийх самбар дээр суулгаарай

Энэ алхамд та өмнөх шатанд бэлтгэсэн толгойг харгалзах servo моторт холбож эхэлнэ. Серво моторыг сайтар дасгасны дараа та бүх зүйлийг прототип хийх самбар дээр холбох болно. Та Arduino Nano -ийг гагнах, дараа нь servo -ийг яг хажууд нь нааж эхлүүлэх болно. Эцэст нь та жижиг OLED дэлгэцийг самбарын нөгөө ирмэг дээр гагнах болно.

Алхам 5: Эцсийн холболт хийх

Эцсийн холболт хийх
Эцсийн холболт хийх
Эцсийн холболт хийх
Эцсийн холболт хийх
Эцсийн холболт хийх
Эцсийн холболт хийх

Энэ алхам нь энэ төслийн тоног төхөөрөмжийн талыг дуусгах болно. Шаардлагатай бүх холболтыг бий болгохын тулд та өгсөн схемийг дагаж мөрдөх шаардлагатай болно.

Алхам 6: Хөтөлбөрийг эхлүүлэх

Програмыг ачаалж байна
Програмыг ачаалж байна

Та ачаалах шаардлагатай хоёр код байдаг

Arduino (C):

Боловсруулалт (java):

Кодыг ажиллуулахдаа танд хоёр сонголт байх болно:

Сонголт 1: OLED дэлгэцийг ашиглахын тулд та C код дахь MODE хувьсагчийг 0 болгож тохируулах шаардлагатай болно.

Сонголт 2: Монитороо ашиглахын тулд та C код дахь MODE хувьсагчийг 1 болгож тохируулах шаардлагатай болно. Үүнээс гадна та Processing development орчныг татаж аваад энэ линкээс радар фонтыг татаж авах хэрэгтэй болно: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Мөн энэ файлыг боловсруулах кодын файл дээрээ нэмж оруулаарай, ингэснээр таны java код дуудлага хийхдээ фонтыг таних болно.

Алхам 7: С кодыг ойлгох

С кодыг ойлгох
С кодыг ойлгох

Код нь ихэвчлэн "for" гэсэн хоёр гогцооноос бүрдэнэ. Нэг нь урагш дамжуулалттай, нөгөө нь арын дамжуулалттай холбоотой. Тэдгээрийн аль алиных нь дотор радарын шугамыг зурах draw_scanner () функцийг олон удаа дууддаг. Олон тооны тохиргоог туршиж үзсэний дараа бид устгахын тулд t+1 үед цагаан өнгийн радар шугамыг t+1 үед хар өнгийн ижил радар шугамаар дарж бичих хэрэгтэй гэсэн дүгнэлтэд хүрсэн. Үгүй бол шинэ пикселийн сүлжээг дарахаасаа өмнө дэлгэцийг "clearDisplay ()" функцийг ашиглан цэвэрлэх бүрт анивчих болно. Дизайн зорилгоор 7 шугамтай ажиллахдаа би элемент бүрийг радарын төвийн хоорондох радиусыг илрүүлсэн объект руу байрлуулсан 7 элементийн бүхэл массивыг хадгалж, дамжуулах ёстой байв. Үүнийг харгалзан кодын үлдсэн хэсгийг ойлгоход хялбар байх ёстой.

Алхам 8: Java кодыг ойлгох

Боловсруулах явцад би зөвхөн COM нэртэй цуваа порттой ажилладаг serialEvent () функцийн дуудлагыг алгасах шаардлагатай болсон. Намайг Mac дээр ажиллаж байх үед миний цуваа портууд өөр нэртэй байсан. Үүнийг хэлэхэд би энэ функцийг "draw ()" боловсруулах үндсэн функц болгон задалсан. Бусад бүх зүйлийн хувьд би хувьсгалын бүрэн загварыг хангахын тулд програмаа шинэчилсэн. Эцэст нь би зурсан бүх хэлбэр, текстийг дэлгэцийн өргөнтэй нийцүүлэн шинэчилсэн бөгөөд ингэснээр эцсийн бүтээгдэхүүн нь өөр өөр дэлгэцийн нягтралтай нийцэх болно. Би үүнийг 1000X1000 ба 500X500 нарийвчлалтай туршиж үзсэн бөгөөд энэ нь сайн ажилласан:).

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

Энэ ажлыг 3 хэт авианы мэдрэгчтэй болгож, тус бүр нь 120 харах өнцөг, эсвэл бүр 4 мэдрэгчтэй (90 градус*4) -> 360 градус илүү хурдан болгох боломжтой. скан хийх.

Та мөн радарыг 40 см -ээс 60 см хүртэл, бүр 80 см хүртэл сунгаж болно. Би pulseIn функцийг биечлэн туршиж үзээд 40 см -ийн хувьд TIMEOUT хувьсагчийг тохируулсан. Энэ хувьсагч нь импульсийн урт, импульс тусах объектын гадаргуу гэх мэт олон хүчин зүйлээс хамаардаг.

Эцэст нь хэлэхэд, дараагийн алхам бол эргэн тойрныхоо периметрийг сканнердах робот бүхий radarDuino -ийг ашиглах явдал юм.

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