Mundarija:

3 -loyiha: SonarDuino: 9 qadam
3 -loyiha: SonarDuino: 9 qadam

Video: 3 -loyiha: SonarDuino: 9 qadam

Video: 3 -loyiha: SonarDuino: 9 qadam
Video: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Sentyabr
Anonim
Image
Image

Hurmatli havaskor hamkasbim, Ushbu loyihada biz ob'ektni aniqlash uchun 360 darajali radar tizimiga ega bo'lish imkoniyatini o'rganamiz. Ushbu modulni alohida o'rnatish sizning harakatlantiruvchi robotingizga o'z atrofining chegaralarini aniqlash imkonini beradi. U shuningdek, qorong'uda navigatsiya vositasi bo'lib xizmat qilishi mumkin, lekin faqat sekin yurganingizda; p

1 -qadam: Sizga nima kerak

Ultrasonik sensorli tayanchni tayyorlang
Ultrasonik sensorli tayanchni tayyorlang

Bunday qurilishni amalga oshirish uchun sizga quyidagilar kerak bo'ladi:

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

Prototip taxtalari: 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 va var

Ultrasonik sensorlar: 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 -qadam: Hujjatlar

Sizlardan ba'zilaringiz bilganingizdek, bu loyiha Dejan tomonidan "Mexatronikaga qanday o'tish kerak" dan olingan "Arduino Radar loyihasi" deb nomlangan boshqa ochiq manbali loyihadan ilhomlangan: https://howtomechatronics.com/projects/arduino -yo'l loyihasi/

Hujjatlarni talab qiladigan yana bir nuqta - quyidagi ikkita kutubxonani ishlab chiqish muhitiga yuklab olish.

Adafruit-GFX-kutubxonasi:

Adafruit_SSD1306:

Bu aytilganidek, C kodini chindan ham tushunish uchun yuqoridagi kutubxonalarning ikkalasini ham hujjatlashtirish kerak bo'ladi. Bundan tashqari, mening kodimda ishlatgan funktsiyalarda ular nima qilayotgani haqida ma'lumot beradigan ismlar bor.

3 -qadam: Ultrasonik sensorni qo'llab -quvvatlang

Ultrasonik sensorli tayanchni tayyorlang
Ultrasonik sensorli tayanchni tayyorlang
Ultrasonik sensorli tayanchni tayyorlang
Ultrasonik sensorli tayanchni tayyorlang
Ultrasonik sensorli tayanchni tayyorlang
Ultrasonik sensorli tayanchni tayyorlang

Har qanday kartonni oling va birinchi rasmda ko'rsatilgandek sensorga ulangan ulash kabellarining o'lchamiga qarab kesib oling. Shundan so'ng, uni oxirigacha katlayın va servo motor tayanchiga yopishtiring. Bu bajarilgandan so'ng, oxirgi rasmga muvofiq ikkita ultratovushli sensorni yopishtiring. E'tibor bering, datchiklar sarlavhasi datchik oldida kabellar tashqariga chiqib ketadigan tarzda lehimlanishi kerak. Bu 360 graduslik burilish amalga oshirilganda sensor kabellari bir -biriga xalaqit bermasligiga imkon beradi.

4 -qadam: Hammasini prototip taxtasiga joylashtiring

Hamma narsani prototip taxtasiga joylashtiring
Hamma narsani prototip taxtasiga joylashtiring
Hamma narsani prototip taxtasiga joylashtiring
Hamma narsani prototip taxtasiga joylashtiring
Hamma narsani prototip taxtasiga joylashtiring
Hamma narsani prototip taxtasiga joylashtiring

Bu bosqichda siz avvalgi bosqichda tayyorlangan sarlavhani tegishli servo dvigatelga o'rnatishdan boshlaysiz. Servo dvigatel ehtiyotkorlik bilan o'rganilgach, siz hamma narsani prototip taxtasiga o'rnatasiz. Siz Arduino Nano -ni lehimlashdan boshlaysiz, keyin servoni uning yoniga yopishtirishdan. Nihoyat, siz OLED -displeyni taxtaning boshqa chetiga lehimlaysiz.

5 -qadam: Yakuniy ulanishlarni o'rnatish

Yakuniy aloqalarni o'rnatish
Yakuniy aloqalarni o'rnatish
Yakuniy aloqalarni o'rnatish
Yakuniy aloqalarni o'rnatish
Yakuniy aloqalarni o'rnatish
Yakuniy aloqalarni o'rnatish

Ushbu qadam ushbu loyihaning apparat tomonini yakunlaydi. Barcha kerakli ulanishlarni o'rnatish uchun siz taqdim etilgan sxemalarga amal qilishingiz kerak bo'ladi.

6 -qadam: Dasturni yuklash

Dasturni yuklash
Dasturni yuklash

Siz yuklashingiz kerak bo'lgan ikkita kod mavjud

Arduino (C):

Qayta ishlash (java):

Kodni ishga tushirganda, siz ikkita variantni tanlashingiz kerak bo'ladi:

Variant 1: OLED displeyidan foydalanib, siz C kodidagi MODE o'zgaruvchisini 0 ga o'rnatishingiz kerak bo'ladi.

2 -variant: Monitoringizdan foydalanib, siz C kodidagi MODE o'zgaruvchisini 1 ga o'rnatishingiz kerak bo'ladi. Bundan tashqari, siz Processing development muhitini yuklab olishingiz va o'rnatishingiz va ushbu havoladan radar shriftini yuklab olishingiz kerak bo'ladi: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Va bu faylni ishlov berish kod fayliga qo'shing, shunda java kodingiz chaqirilganda shriftni taniydi.

7 -qadam: C kodini tushunish

C kodini tushunish
C kodini tushunish

Kod asosan ikkita "for" ko'chadan iborat. Biri oldinga o'tish bilan, ikkinchisi esa orqaga o'tish bilan bog'liq. Ularning ikkalasida ham radar chiziqlarini ekranga tortadigan draw_scanner () asosiy funktsiyasi ko'p marta chaqiriladi. Bir nechta konfiguratsiyani sinab ko'rganimdan so'ng, men shuni aniqladimki, biz t vaqtidagi oq radar chiziqlarini t+1 vaqtida qora rangdagi qora chiziqlar bilan qayta yozishimiz kerak. Agar shunday bo'lmasa, har safar yangi pikselli panjarani bosishdan oldin displeyni "clearDisplay ()" funksiyasi yordamida tozalashda miltillash paydo bo'ladi. Men 7 ta chiziq bilan ishlaganimda- dizayn maqsadlarida- men 7 elementdan iborat butun sonli massivni saqlashni va saqlashni davom ettirishim kerak edi, bu erda har bir element radar markazi orasidagi radiusni, agar mavjud bo'lsa. Shuni yodda tutgan holda, kodning qolgan qismi tushunarli bo'lishi kerak.

8 -qadam: Java kodini tushunish

Ishlov berishda men faqat COM nomli ketma -ket portlar bilan ishlaydigan serialEvent () funktsional chaqiruvini chetlab o'tishga majbur bo'ldim. Men Mac -da ishlayotganimda ketma -ket portlarim boshqa nom bilan atalgan. Aytgancha, men bu funktsiyani "draw ()" ni qayta ishlashning asosiy funktsiyasidan ochdim. Qolgan narsalarga kelsak, men inqilobning to'liq dizayniga mos keladigan ilovani yangiladim. Nihoyat, men chizilgan barcha shakllar va matnlarni ekranning kengligi bo'yicha yangiladim, shunda yakuniy mahsulot har xil ekran o'lchamlariga mos keladi. Men uni 1000X1000 va 500X500 o'lchamlari uchun shaxsan sinab ko'rdim va u yaxshi ishladi:).

9 -qadam: Xulosa

Bu ishni har biri 120 ko'rish burchagini qamrab oluvchi 3 ta ultrasonik datchik yoki hatto 4 ta sensor (90 daraja*4) -> 360 daraja tezroq bo'lishi mumkin. skanerlash.

Shuningdek, siz radarning diapazonini 40 sm dan 60 sm gacha yoki hatto 80 sm gacha kengaytirishingiz mumkin. Men pulseIn funktsiyasini shaxsan sinab ko'rdim va TIMEOUT o'zgaruvchisini 40 sm ga moslashtirdim. Bu o'zgaruvchi ko'p omillarga, shu jumladan puls yuborish uzunligi va puls aks etadigan ob'ekt yuzasiga bog'liq.

Nihoyat, yuqorida aytib o'tilganidek, keyingi qadam atrofdagi perimetrni skanerlash uchun radarDuino -ni harakatlantiruvchi robot bilan birlashtirishdir.

Tavsiya: