Мазмуну:

Долбоор 3: SonarDuino: 9 кадам
Долбоор 3: SonarDuino: 9 кадам

Video: Долбоор 3: SonarDuino: 9 кадам

Video: Долбоор 3: SonarDuino: 9 кадам
Video: Бакыт Шаршеналиев & Жылдызбек Төрөканов // АЙТЫШ ТӨР - Жаңы долбоор // 3-чыгарылыш 2024, Ноябрь
Anonim
Image
Image

Урматтуу Хоббист жолдошум, Бул долбоордо биз объекттерди аныктоо үчүн 360 градустук радар системасына ээ болуу мүмкүнчүлүгүн изилдейбиз. Бул модулдун өзүнчө болушу сиздин локомотив роботуңузга анын тегерегинин чектерин аныктоого мүмкүндүк берет. Ал ошондой эле караңгыда навигациялык курал катары кызмат кыла алат, бирок сиз жай басканда гана; б

1 -кадам: Сизге эмне керек

Ultrasonic Sensor колдоо даярдоо
Ultrasonic Sensor колдоо даярдоо

Бул курулушту жасоо үчүн төмөнкүлөрдү сатып алышыңыз керек:

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

Прототиптоочу такталар: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70 ~ 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:

Бул айтылгандай, C кодун чындап түшүнүү үчүн жогорудагы эки китепкананын документтерин жасоо керек болот. Мындан тышкары, менин кодумда колдонгон функциялар эмне кылганын айтып бере турган аталыштарга ээ.

3 -кадам: Ultrasonic Sensor колдоо даярдоо

Ultrasonic Sensor колдоо даярдоо
Ultrasonic Sensor колдоо даярдоо
Ultrasonic Sensor колдоо даярдоо
Ultrasonic Sensor колдоо даярдоо
Ultrasonic Sensor колдоо даярдоо
Ultrasonic Sensor колдоо даярдоо

Картондун каалаган бөлүгүн алып, биринчи сүрөттө көрсөтүлгөндөй сенсорго тиркелген туташтыруучу кабелдердин өлчөмүнө жараша кесип алыңыз. Андан кийин, бул акыркы бүктөп жана servo мотор колдоо аны клей. Муну аткаргандан кийин, акыркы сүрөттөгүдөй эки УЗИ сенсорун клей менен жабыштырыңыз. Белгилей кетчү нерсе, сенсорлордун башы кабелдин сенсордун алдына сыртка чыгып кетиши үчүн ширетилиши керек. Бул 360 градус айлануу ишке ашырылганда сенсор кабелдер бири -бирине тоскоолдук кылбоого мүмкүндүк берет.

4 -кадам: Бардыгын прототиптөө тактасына орнотуңуз

Бардыгын прототиптөө тактасына орнотуңуз
Бардыгын прототиптөө тактасына орнотуңуз
Бардыгын прототиптөө тактасына орнотуңуз
Бардыгын прототиптөө тактасына орнотуңуз
Бардыгын прототиптөө тактасына орнотуңуз
Бардыгын прототиптөө тактасына орнотуңуз

Бул кадамда сиз мурунку баскычта даярдалган баштыкты тийиштүү servo моторуна орнотуудан баштайсыз. Серво мотору кылдат көнгөндөн кийин, сиз бардыгын прототипдөө тактасына бириктиресиз. Сиз Arduino Nano ширетүүдөн баштайсыз, андан кийин анын жанындагы сервону чаптоо менен. Акыр -аягы, тактанын башка четиндеги кичинекей 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 -кадам: C кодун түшүнүү

C кодун түшүнүү
C кодун түшүнүү

Код негизинен эки "for" циклинен турат. Бири алдыга өтүү менен, экинчиси артка өтүү менен байланыштуу. Экөөнүн ичинде экранда радардын сызыктарын тарта турган draw_scanner () негизги функциясы көп жолу аталат. Бир нече конфигурацияны текшергенден кийин, мен аларды жок кылуу үчүн t+1 убагында кара түстөгү ошол эле радар сызыктары менен ак радар сызыктарын кайра жазуу керек деген жыйынтыкка келдим. Болбосо, жаңы пикселдик торду түртүүдөн мурун "clearDisplay ()" функциясын колдонуп, дисплейди тазалаган сайын жылтылдап турат. Мен 7 линия менен иштеп жатканымда- дизайн максаттары үчүн- мен 7 элементтен турган бүтүн массивди сактоону улантууга туура келди, анда ар бир элемент радардын борборунун ортосундагы радиусту, эгер бар болсо. Муну эске алуу менен, коддун калган бөлүгү түшүнүү үчүн түз болушу керек.

8 -кадам: Java кодун түшүнүү

Иштетүүдө мен COME сериялык порттору менен гана иштеген serialEvent () функциясынын чакыруусун айланып өтүүгө туура келди. Мен Macта иштеп жатканымда, менин сериялык портторум башка ат менен аталды. Айтор, мен бул функцияны "draw ()" иштетүүдө негизги функцияга коштум. Калган нерселерге байланыштуу, мен толук революция дизайнына жооп берүү үчүн тиркемени жаңырттым. Акыр -аягы, мен бардык тартылган формаларды жана тексттерди экрандын туурасына карата жаңырттым, ошондо акыркы продукт ар кандай экран токтомдоруна туура келет. Мен аны жеке 1000X1000 жана 500X500 токтомдору үчүн сынап көрдүм жана ал жакшы иштеди:).

9 -кадам: Жыйынтык

Бул иш 3 УЗИ сенсорлоруна ээ боло алат, алардын ар бири 120 көрүү бурчун камтыйт, же 4 сенсор (90 градус*4) -> 360 градус тезирээк. сканерлөө.

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

Акыры, мурда айтылгандай, кийинки кадам - айланасындагы периметрди сканерлөө үчүн локомотив роботу менен radarDuino киргизүү.

Сунушталууда: