Mündəricat:

Arduino istifadə edən ultrasəsdən qaçınma robotu: 7 addım
Arduino istifadə edən ultrasəsdən qaçınma robotu: 7 addım

Video: Arduino istifadə edən ultrasəsdən qaçınma robotu: 7 addım

Video: Arduino istifadə edən ultrasəsdən qaçınma robotu: 7 addım
Video: Ultrasəs məsafəölçən ilə siqnalizasiya 2024, Noyabr
Anonim
Image
Image
Arduino istifadə edən ultrasəsdən qaçınma robotu
Arduino istifadə edən ultrasəsdən qaçınma robotu

Bu təlimatda, robotdan qaçaraq öz maneənizi necə düzəldəcəyinizi sizə göstərəcəyəm! Arduino UNO lövhəsindən və ultrasəs sensorundan istifadə edəcəyik. Robot kiçik bir servo mühərrikin köməyi ilə qarşısındakı bir obyekti algılarsa, dönməyin ən yaxşı yolunu tapmaq üçün sola və sağa tarar. Həm də bir bildiriş LEDi, bir obyekt aşkar edildikdə bir ton çalmaq üçün bir siqnal və robotun funksiyasını dəyişdirmək üçün bir düymə (dayanmış/irəli hərəkət edən) var.

Bunu etmək çox asandır!

Addım 1: Ediləcək şeylər

Ediləcək şeylər!
Ediləcək şeylər!
Ediləcək şeylər!
Ediləcək şeylər!
Ediləcək şeylər!
Ediləcək şeylər!
Ediləcək şeylər!
Ediləcək şeylər!

Bu layihə üçün sizə lazım olacaq:

  1. Arduino UNO (onu gearbest.com saytından alın)
  2. Mini çörək taxtası (gearbest.com saytından alın)
  3. L298 motor sürücü modulu (gearbest.com saytından alın)
  4. HC-SR04 təkərli ultrasəs sensoru olan 2x DC mühərrikləri (gearbest.com saytından alın)
  5. Mikro servo motor (gearbest.com saytından alın)
  6. Düymə Qırmızı LED220 Ohm müqavimət 9V batareya tutacağı (elektrik cekli və ya olmadan)
  7. 8 boşluq (kişi-qadın),
  8. 8 ədəd qoz -fındıq və 8 vida da bir böyükə (metal) ehtiyacınız olacaq.

arxa dayaq təkəri etmək üçün ataç və muncuq.

Robot bazası üçün Aliexpress -dən bir Akril Chasis istifadə etdim. Bir ağac və ya metaldan (və ya iki elektrik lövhəsindən) də istifadə edə bilərsiniz.

Bütün layihənin qiyməti təxminən 20 dollardır

Alətlər: Qazma maşını super yapışqan ekipaj sürücüsü isti silah yapışqan (isteğe bağlı) Güc:

Kiçik və ucuz olduğu üçün robotumuzu işə salmaq üçün 9V batareyadan istifadə edəcəyik, lakin çox güclü deyil və təxminən bir saat sonra boşalacaq. Daha güclü olacaq, eyni zamanda 9V batareyadan daha bahalı və daha böyük olacaq təkrar doldurulan bir batareya (min 6V, maksimum 7V) istifadə etmək istədiyinizi düşünün.

Addım 2: Anlayışları Anlamaq

Anlayışları Anlamaq
Anlayışları Anlamaq
Anlayışları Anlamaq
Anlayışları Anlamaq
Anlayışları Anlamaq
Anlayışları Anlamaq

Məqsəd, robotu qarşısındakı maneələri xəbərdar etməkdir ki, istiqaməti dəyişə və onlardan qaça bilsin. Əvvəlki məqalədə robotu hərəkətə gətirdik - indi ona bir az muxtariyyət verəcəyik.

Ultrasonik sensor

HC-SR04, ultrasəs dalğaları istifadə edərək 4 metrə qədər olan obyektlərə olan məsafəni ölçə bilən bir dövrədir. Ping göndərir (sualtı kimi) və bir şeyi geri göndərməklə almaq arasındakı vaxtı (mikrosaniyələrdə) ölçür. Dalğa irəli və irəli hərəkət edərkən bu zaman 2 -ə bölünür. Və sonra santimetr (və ya düym üçün 74) məsafə əldə etmək üçün 29 -a bölün, çünki səs hər santimetrdə 29.4µs (340 m/s) məsafədə hərəkət edir. Sensor ~ 3 mm dözümlülüklə çox dəqiqdir və Arduino ilə inteqrasiyası asandır.

AVR Mikrokontrolör ilə Ultrasonik Sensor Arası

Hər hansı bir avtonom robotun qarşısını almaq üçün bir maneə və məsafə ölçmə sensoru olmalıdır. İQ ötürücü cütü və ya boz rəngli sensor 1sm-10sm aralığında maneələrin aşkarlanması üçün asanlıqla işləyə bilər. IR uzaq məsafə axtaranlar (məsələn, kəskindən olanlar) ən yaxın maneəyə qədər olan məsafəni 100 sm -ə qədər ölçə bilir. Bununla birlikdə, IR sensorlar günəş işığı və digər işıq mənbələrindən təsirlənir. IR aralığını tapanların daha az diapazonu var və gördüyü işlərə görə də bahalıdır. Ultrasonik sensorlar (geeks üçün ultrasəs yaxınlıq sensoru və ya sonar olaraq da bilinir) bu vəzifələri həm məqbul bir qiymətlə, həm də müstəsna dəqiqliklə yerinə yetirirlər. Aralığı ~ 3 mm dəqiqliklə 3 sm -dən 350 sm -ə qədərdir. Bu ultrasəs sensorlarından birini robotumuza bağlayaraq həm maneə aradan qaldırıcı, həm də məsafə ölçmə sensoru kimi çıxış edə bilər.

"Ultrasonik" səs, səsli səslərin tezliyindən yuxarı olan hər şeyi ifadə edir və nominal olaraq 20 000 Hz və ya 20 kHz -dən yuxarı olan hər şeyi ehtiva edir! Robototexnika üçün istifadə olunan ucuz Ultrasonik sensorlar ümumiyyətlə 40 kHz -dən 250 kHz -ə qədər, tibbi avadanlıqlarda istifadə olunanlar isə 10 MHz -ə qədər işləyir.

Addım 3: Lazımi vasitələr

Alətlər Lazımdır
Alətlər Lazımdır
Alətlər Lazımdır
Alətlər Lazımdır
Alətlər Lazımdır
Alətlər Lazımdır
Alətlər Lazımdır
Alətlər Lazımdır
  1. Multimetr
  2. Çörək lövhəsi
  3. İğne burun kəlbətinləri
  4. Tel çıxarıcı
  5. Tel kəsici
  6. Yapışqan Tabancası

Multimetre, əslində gərginliyi və müqaviməti ölçmək və bir dövrənin bağlı olub olmadığını müəyyən etmək üçün istifadə olunan sadə bir cihazdır. Kompüter kodunu düzəltmək kimi, Multimetr də elektron sxemlərinizi "düzəltməyə" kömək edir.

Tikinti materiallari

Mexaniki çərçivəni düzəltmək üçün hazır ağac və/və ya pleksiglas tədarükü çox faydalıdır. Alüminium və polad kimi metallar tez -tez maşın emalatxanasına çıxışı olanlarla məhdudlaşdırılır, baxmayaraq ki, nazik alüminium qayçı ilə kəsilərək əllə əyilə bilər. Mexanik çərçivələr hətta plastik qablar kimi ev əşyalarından da tikilə bilər.

Plastik kimi digər materiallar (Pleksiglasdan başqa) və ya fiberglas və karbon lifi kimi ekzotik materiallar mümkün olsa da, bu təlimatda nəzərə alınmayacaq. Bir neçə istehsalçı, həvəskarların çoxunun öz mexaniki hissələrini istehsal etməsinin asan olmadığını və modul mexaniki hissələr yaratdığını qeyd etdi. Bunun lideri Lynxmotion, geniş bir robot dizaynı və öz xüsusi robotlarınızı hazırlamaq üçün lazım olan hissələri təqdim edir.

Əl alətləri

Müxtəlif növ və ölçüdə tornavidalar və penslər (zərgərin alət dəsti də daxil olmaqla: dollar mağazalarında satılan kiçik tornavidalar) lazımdır. Bir qazma (tercihen düz deliklər üçün bir qazma maşını) da vacibdir. Tikinti materiallarının (və ya marşrutlaşdırıcının) kəsilməsi üçün əl testerəsi də vacib bir varlıqdır. Büdcə imkan verərsə, kiçik bir masa üstü lent mişarı (200 dollar aralığında) mütləq nəzərə alınacaq bir vasitədir.

Lehimsiz Çörək Paneli

Lehimsiz çörək taxtası, planınızı optimallaşdırmağa və komponentləri asanlıqla birləşdirməyə imkan verir. Lehimsiz çörək taxtası ilə yanaşı, lehimsiz çörək taxtası ilə istifadə üçün nəzərdə tutulmuş əvvəlcədən kəsilmiş və əyilmiş tellərdən ibarət əvvəlcədən formalaşdırılmış tullanan tel dəsti satın almalısınız. Bu əlaqələri çox asanlaşdırır.

Kiçik tornavida dəsti

Bu kiçik tornavidalar elektronika ilə işləyərkən lazımdır. Onları çox məcbur etməyin - ölçüləri onları daha kövrək edir.

Daimi tornavida dəsti

Bütün emalatxanalarda düz / Phillips və digər tornavida başlıqlarını ehtiva edən çox alətli və ya alət dəstinə ehtiyac var.

İğne burun kəlbətinləri

iynə burun pensləri dəsti kiçik komponentlər və hissələrlə işləyərkən inanılmaz dərəcədə faydalıdır və alətlər qutunuza çox ucuz bir əlavədir. Kiçik sahələrə girə biləcək bir nöqtəyə gəldikləri üçün bunlar adi kəlbətinlərdən fərqlənir.

Tel çıxarıcılar/kəsicilər

Hər hansı bir tel kəsməyi planlaşdırırsınız, bir tel soyucu sizə xeyli vaxt və səy sərf edəcək. Düzgün istifadə edildikdə, bir tel soyucu yalnız bir kabel izolyasiyasını çıxaracaq və heç bir əyilmə və ya keçiriciyə zərər verməyəcək. Bir tel soyucunun digər alternativi, nəticəsi qarışıq ola bilsə də, bir qayçıdır. Qayçı, hökmdar, qələm, marker qələmi, Exacto bıçağı (və ya digər əl kəsmə aləti) Bunlar hər hansı bir ofis üçün zəruridir.

Addım 4: AVR kodlaşdırma anlayışları

AVR kodlaşdırma anlayışları
AVR kodlaşdırma anlayışları

Ultrasonik sensorlara nisbətən səs sürətinin hesablanması

Kiçik riyaziyyat, amma qorxma. Düşündüyünüzdən daha sadədir.

Otaq temperaturunda (~ 20 ° C) quru havada səs sürəti = 343 metr/saniyə

Səs dalğasının vurması və yaxınlıqdakı obyektə gediş -gəliş etməsi üçün = 343/2 = 171.5 m/ucuz ultrasəs sensorunun maksimum diapazonu 5 metrdən çox olmadığından (gediş -dönüş), vahidləri santimetr və mikrosaniyələrə dəyişdirin.

1 Metr = 100 santimetr 1 saniyə = 10^6 mikrosaniyə = (s/171.5) x (m/100 sm) x ((1x10^6)/s) = (1/171.5) x (1/100) x (1000000/ 1) = 58.30903790087464 us/cm = 58.31 us/cm (hesablamaları asanlaşdırmaq üçün iki rəqəmə yuvarlaqlaşdırmaq)Bu səbəbdən bir nəbzin bir cisimə gedib 1 santimetr geri sıçraması üçün çəkilən vaxt 58.31 mikrosaniyədir.

AVR saat dövrü haqqında kiçik məlumat

AVR saat dövrlərini başa düşmək üçün tamamilə fərqli bir fəsil lazımdır, ancaq hesablamalarımızı asanlaşdırmaq üçün necə işlədiyini qısaca anlayacağıq.

Nümunəmiz üçün 8 bitlik AVR-Atmega328P mikrokontrolörlü AVR Draco lövhəsindən istifadə edəcəyik. İşləri asanlaşdırmaq üçün bir mikro nəzarətçinin parametrlərini dəyişdirməyəcəyik. Sigorta bitlərinə toxunulmadı; Xarici kristal əlavə edilmir; Baş ağrısı yoxdur. Zavod parametrlərində, a /8 prescaler ilə daxili 8MHz osilatorda işləyir; Bütün bunları başa düşmürsənsə, bu, sadəcə olaraq mikrokontrolörün 1MHz daxili RC Osilatorda işlədiyi və hər saat dövrü 1 mikrosaniyəni tutduğu anlamına gəlir.

1 2 1MHz = saniyədə 1000000 dövrə görə 1s/1000000 = 1/1000000 = 1us

AVR saatları və məsafə çevrilməsi

Demək olar ki, oradayıq! AVR saat dövrlərini səs dalğalarının keçdiyi məsafəyə necə çevirəcəyimizi bildikdən sonra məntiqi bir proqramda tətbiq etmək çox asandır.

İdeal mühitdə ultrasəs səsinin sürətini bilirik: 58.31 us/sm

AVR mikrokontrolörünün qətnaməsinin 1us/saat dövrü olduğunu bilirik (CLK)

Buna görə də, səs dövrəsinin saata düşdüyü məsafə (CLK):

1 2 3 = (58.31 us/ cm) x (1us/ clk) = 58.31 saat dövrü/ sm və ya = 1/ 58.31 sm/ clk

Səsin hərəkət etməsi və geri dönməsi üçün lazım olan saat dövrlərinin sayı məlumdursa, məsafəni asanlıqla hesablaya bilərik. Məsələn, sensor hərəkət etmək və geri dönmək üçün 1000 saat dövrü çəkirsə, o zaman sensordan ən yaxın obyektə olan məsafə = 1000/58.31 = 17.15 sm -dir (təxminən.)

İndi hər şeyin mənası varmı? Yox? Yenidən oxuyun

Yuxarıda göstərilən bütün məntiqlə aydınsınızsa, AVR Arduino lövhəmizə ucuz bir HC-SR04 ultrasəs sensoru bağlayaraq bunu real dünya ssenarisində həyata keçirəcəyik.

Addım 5: Avadanlıq Bağlantıları:

Avadanlıq Əlaqələri
Avadanlıq Əlaqələri
Avadanlıq Əlaqələri
Avadanlıq Əlaqələri
Avadanlıq Əlaqələri
Avadanlıq Əlaqələri
Avadanlıq Əlaqələri
Avadanlıq Əlaqələri

Arduino Board, hər hansı bir xarici sensoru birləşdirməyi və nəticələrini LCD -də izləməyi asanlaşdırır. Ultrasonik diapazon algılaması üçün ucuz bir HC-SR04 modulundan istifadə edirik. Modulda mikrokontrolör lövhəsinə qoşula bilən 4 pin var: VCC, TRIG, ECHO və GND.

VCC pinini 5V və GND pinini Arduino lövhəsində yerə bağlayın.

TRIG pin və ECHO pin lövhədə mövcud olan hər hansı bir sancağa bağlana bilər. Pimi tetiklemek üçün minimum 10us 'yüksək' siqnal göndərmək səkkiz 40 kHz səs dalğası göndərir və echo pinini yüksək çəkir. Səs yaxınlıqdakı bir obyektdən sıçrayır və geri qayıdırsa, ötürücü qəbul edilərək tutulur və əks -sancaq "aşağı" çəkilir.

Ultrasonik sensor modullarının digər variantları da yalnız 3 sancaqla mövcuddur. İş prinsipi yenə də eynidir, ancaq tetikleyicinin və yankı sancaqlarının funksionallığı tək bir pində birləşdirilir.

Bağlandıqdan sonra Trigger və Echo Pins proqram vasitəsi ilə konfiqurasiya edilə bilər. Bu nümunəni sadə saxlamaq üçün bu nümunədə heç bir kəsmə pinindən (və ya Giriş Çəkmə Pinindən) istifadə etməyəcəyik. Təyin olunmuş kəsmə pinlərindən istifadə etməmək, modulu lövhədəki mövcud pinlərə bağlamaq azadlığımızı da verir.

Addım 6: Kod

Kod Aşağıdakı kod, əvvəlki məqalədəki H-Bridge istifadə edərək DC motor idarəetməsinə yalnız "ultrasəs" uzantısını ehtiva edir. Robot qarşısındakı bir maneəni algıladığında (təsadüfi dərəcə) çevrilir və irəliləməyə davam edir. Bu funksiya eyni zamanda maneələri döndərmək və aşkar etmək üçün asanlıqla uzadıla bilər - buna görə də robot təsadüfi dönməz, ancaq heç bir cisim aşkar edilmədikdə irəliləməyə başlayar.

Kodun izahı üçün Kanalda Listelenen Youtube Videolarına baxın.

Addım 7: Video

Bütün proses üçün videoya baxın.

Tövsiyə: