Mündəricat:

Layihə 3: SonarDuino: 9 addım
Layihə 3: SonarDuino: 9 addım

Video: Layihə 3: SonarDuino: 9 addım

Video: Layihə 3: SonarDuino: 9 addım
Video: Tezliklə Yasamalda Premium Layihə 3 otaq 55.000 Asan Emlakci (051)700-90-80 2024, Sentyabr
Anonim
Image
Image

Əziz hobbiçilər, Bu layihədə obyektlərin aşkarlanması üçün 360 dərəcə radar sisteminə malik olma imkanlarını araşdıracağıq. Bu modulun ayrıca qurulması lokomotiv robotunuzun ətrafının sərhədlərini aşkar etməsinə imkan verəcək. Qaranlıqda da naviqasiya vasitəsi kimi xidmət edə bilər, ancaq kifayət qədər yavaş gəzəndə; s

Addım 1: Nə lazımdır

Ultrasonik Sensor Dəstəyi hazırlayın
Ultrasonik Sensor Dəstəyi hazırlayın

Bu quruluşu hazırlamaq üçün aşağıdakıları almalısınız:

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

Prototipləşdirmə lövhələri: 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 və 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

Addım 2: Sənədləşmə

Bəzilərinizin bunu bildiyini bildiyiniz üçün, bu layihə Dejan tərəfindən "Mexatronikaya Necə" adlı @ aşağıdakı linkdən "Arduino Radar Layihəsi" adlı başqa bir açıq mənbə layihəsindən ilham almışdır: https://howtomechatronics.com/projects/arduino -radar layihəsi/

Sənəd tələb edən başqa bir məqam, aşağıdakı iki kitabxananı inkişaf mühitinizə yükləməkdir:

Adafruit-GFX-Kitabxanası:

Adafruit_SSD1306:

Deyilənə görə, C kodunu həqiqətən anlamaq üçün yuxarıdakı hər iki kitabxananın bəzi sənədlərini etməlisiniz. Bundan başqa, kodumda istifadə etdiyim funksiyaların nə etdiklərini izah edən adları var.

Addım 3: Ultrasonik Sensor Dəstəyi hazırlayın

Ultrasonik Sensor Dəstəyi hazırlayın
Ultrasonik Sensor Dəstəyi hazırlayın
Ultrasonik Sensor Dəstəyi hazırlayın
Ultrasonik Sensor Dəstəyi hazırlayın
Ultrasonik Sensor Dəstəyi hazırlayın
Ultrasonik Sensor Dəstəyi hazırlayın

İstənilən karton parçasını götürün və ilk şəkildə göstərildiyi kimi sensora bağlı olan birləşdirici kabellərin ölçüsünə görə kəsin. Bundan sonra, sonuncu qatlayın və servo motor dəstəyinə yapışdırın. Bunu etdikdən sonra, son şəkilə uyğun olaraq iki ultrasəs sensoru yapışdırın. Diqqət yetirin ki, sensorların başlığı kabellərin sensorun qarşısında kənara çıxmasına imkan verəcək şəkildə lehimlənməlidir. Bu, 360 dərəcə fırlanma tətbiq edildikdə sensor kabellərinin bir -birinə qarışmamasına imkan verəcək.

Addım 4: Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın

Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın
Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın
Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın
Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın
Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın
Hər şeyi Prototipləşdirmə lövhəsinə quraşdırın

Bu addımda əvvəlki addımda hazırlanan başlığı müvafiq servo motoruna quraşdıraraq başlayacaqsınız. Servo motor diqqətlə öyrəşdikdən sonra hər şeyi bir prototip lövhəsinə birləşdirəcəksiniz. Arduino Nano'ya lehimlə başlayacaqsınız, sonra servonun yanındakı yerə yapışdıraraq. Nəhayət, lövhənin digər kənarındakı kiçik OLED ekranı lehimləyəcəksiniz.

Addım 5: Son Əlaqələrin Qurulması

Son Əlaqələrin Qurulması
Son Əlaqələrin Qurulması
Son Əlaqələrin Qurulması
Son Əlaqələrin Qurulması
Son Əlaqələrin Qurulması
Son Əlaqələrin Qurulması

Bu addım, bu layihənin hardware tərəfini sona çatdıracaq. Bütün lazımi əlaqələri qurmaq üçün təqdim olunan sxemlərə əməl etməlisiniz.

Addım 6: Proqramın açılması

Proqramın yüklənməsi
Proqramın yüklənməsi

Yükləməyiniz lazım olan iki kod var

Arduino (C):

Qenerasiya (java):

Kodu işləyərkən seçim etmək üçün iki seçiminiz olacaq:

Seçim 1: OLED Ekranından istifadə etmək üçün C kodunda MODE dəyişənini 0 olaraq təyin etməlisiniz.

Seçim 2: Monitorunuzdan istifadə edərək bunun üçün C kodunda MODE dəyişənini 1 olaraq təyin etməlisiniz. Əlavə olaraq, Processing development mühitini yükləməli və quraşdırmalısınız və bu linkdən radar fontunu yükləməlisiniz: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Və bu faylı emal kod sənədinizə əlavə edin ki, java kodunuz çağırıldıqda fontu tanıysın.

Addım 7: C Kodunu Anlamaq

C kodunu başa düşmək
C kodunu başa düşmək

Kod əsasən iki 'for' döngəsindən ibarətdir. Biri irəli ötürmə ilə, digəri isə geriyə ötürmə ilə əlaqələndirilir. Hər ikisinin içərisində radarın xətlərini ekrana çəkəcək draw_scanner () əsas funksiyasına dəfələrlə deyilir. Birdən çox konfiqurasiyanı sınaqdan keçirdikdən sonra belə nəticəyə gəldim ki, onları silmək üçün t+1 vaxtında qara rəngli eyni radar xətləri ilə t vaxtındakı ağ radar xətlərinin üzərinə yazmalıyıq. Əks təqdirdə, yeni piksel ızgarasına basmadan əvvəl "clearDisplay ()" funksiyasından istifadə edərək ekranı hər dəfə təmizlədiyiniz zaman titrəmə baş verə bilər. 7 xəttlə məşğul olduğum müddətdə- dizayn məqsədləri üçün- hər bir elementin, əgər varsa, radarın mərkəzi ilə müəyyən edilmiş obyektə qədər olan radiusda dayandığı 7 elementdən ibarət tamsayı silsiləsini saxlamağa və ötürməyə davam etməliydim. Bunu nəzərə alaraq, kodun qalan hissəsini başa düşmək üçün düz olmalıdır.

Addım 8: Java Kodunu Anlamaq

İşlənərkən, yalnız COM adlı seriyalı portlarla işləyən serialEvent () funksiyası çağırışını aşmalı oldum. Mac üzərində işləyərkən serial portlarım fərqli bir ad aldı. Deyilənə görə, bu funksiyanı "draw ()" işlənməsində əsas funksiyaya daxil etdim. Qalan hər şeyə gəldikdə, inqilabın tam dizaynına cavab vermək üçün tətbiqi yenilədim. Nəhayət, son məhsulun fərqli ekran qətnamələrinə uyğun olması üçün bütün çəkilmiş şəkilləri və mətnləri ekranın genişliyinə görə yenilədim. Şəxsən həm 1000X1000, həm də 500X500 qətnamə üçün sınadım və yaxşı işləyir:).

Addım 9: Nəticə

Bu iş, hər biri 120 baxış bucağını əhatə edən 3 Ultrasonik sensora və ya hətta 4 sensora (90 dərəcə*4) -> daha sürətli 360 dərəcəyə malik ola bilər. tarama

Radarın diapazonunu 40 sm -dən 60 sm -ə və hətta 80 sm -ə qədər artıra bilərsiniz. PulseIn funksiyasını şəxsən sınaqdan keçirmişəm və TIMEOUT dəyişənini 40 sm -ə uyğun olaraq düzəltmişəm. Bu dəyişən nəbzin göndərilmə uzunluğu və nəbzin əks olunduğu cismin səthi də daxil olmaqla bir çox faktordan asılıdır.

Nəhayət, daha əvvəl də qeyd edildiyi kimi, növbəti addım ətraf perimetri taramaq üçün lokomotiv robotu ilə radarDuinonun birləşdirilməsidir.

Tövsiyə: