ROBOTDAN KEÇMƏYƏN DÜŞÜNCƏLİ maneə: 11 addım
ROBOTDAN KEÇMƏYƏN DÜŞÜNCƏLİ maneə: 11 addım

Video: ROBOTDAN KEÇMƏYƏN DÜŞÜNCƏLİ maneə: 11 addım

Video: ROBOTDAN KEÇMƏYƏN DÜŞÜNCƏLİ maneə: 11 addım
Video: Hören & Verstehen - Prüfungsvorbereitung B2/C1 2025, Yanvar
Anonim
ROBOTDAN KEÇMƏYƏN DÜŞÜNCƏLİ maneə
ROBOTDAN KEÇMƏYƏN DÜŞÜNCƏLİ maneə

Emosional robot. Bu robot, kədər, xoşbəxtlik, qəzəbli və qorxu kimi neopixel (RGB LED) ilə duyğuları nümayiş etdirir, eyni zamanda müəyyən duyğu zamanı maneələrdən qaça və müəyyən hərəkətlər edə bilər. Bu robotun beyni Arduino meqasıdır. Unutma ki, bu, indiyə qədər qurduğum ilk proqramlaşdırılmış robotumdur və məni proqramlaşdırmaya aşiq etdi, kodun özü çox başlanğıcdır və çox güman ki, sadələşdirilə bilər.

Addım 1: hissələr

PARÇALAR
PARÇALAR

-3.2 fut bir neopixel şeridi

-HC-SR04 Ultrasonik Sensor (və ya digər ultrasəs sensoru)

-till keçid

-3 3.7v lityum ion batareya (18650)

-gücləndirici çevirici (güc addımında izah olunur)

-foto rezistor (istənilən dəyər)

-analoq səs sensoru

-2 dc mühərriklər 6v

-l293d (motor sürücüsü)

-plastik təbəqə

-karton

-təkər

Addım 2: Neopiksellər

Neopiksellər
Neopiksellər
Neopiksellər
Neopiksellər

Sıx büdcədə olduğum üçün robotlarımın duyğularını canlandırmağın ən sadə və ən ucuz yolu neopikseldir, sahib olduqları 3 giriş və çıxışdan ibarətdir. girişdəki üç pin 5v, DIN (data in) və GND (torpaq) ilə etiketlənir; Çıxış, girişlə eyni olaraq etiketlənir, lakin yerinə DO -dakı məlumatlar (məlumat çıxışı). Bu ledləri bağlama üsulu onları bir -birinə paralel bağlamaqdır, buna görə 5v digər leddə 5v -ə, GND isə digər led GND -yə, birinci ledin DO -u ikinci ledin DIN -ə, sonra isə istədiyiniz led şerit uzunluğuna çatana qədər bu proses davam edir. Bütün bir neopiksel zolağı, girişdən yalnız bir rəqəmsal çıxış pininə ehtiyac duyur, bunun səbəbi DO və DIN uzun bir zəncirdə bağlandığı üçün məlumatları bir -biri ilə paylaşırlar. Xüsusi ledləri müəyyən vaxtlarda açıb söndürməyimiz lazım olduğu üçün bu lazımdır. NEOPIXEL HELP bu mövzuda faydalı bir təlimatdır

Addım 3: Şematik

Şematik
Şematik

Dövrə çox sadədir, çünki robotların çoxu sadəcə proqramlaşdırılmışdır, mühərriklər geriyə doğru irəliləməyi idarə etmək üçün l293d motor sürücüsü ilə 7v -ə yaxın işləyir. Digər əlaqələr Arduino ilə əlaqəli sensorlardır. Və bu qədər!

Addım 4: Kod

Etdiyim ilk şey, kodlamanı bir az asanlaşdırmaq üçün lazım olan kitabxanaları yükləmək idi, istifadə etdiyim kitabxanalar "FastLED.h" və "NewPing.h" dir. Sürətli ledlər ledlər üçün, yeni ping isə ultrasəs sensorlar üçündür. Etdiyim növbəti iş, istifadə etdiyim sancaqlar üçün bütün tərifləri vermək idi, bundan sonra boş quraşdırma, pin rejimlərini və "FastLED.addLeds (ledlər, NUM_LEDS)" neostripini qurduğum yerdir; NUM_LEDS -i 56 olaraq təyin etdim, çünki 56 led istifadə etdiyim üçün ledlərin konfiqurasiyası üz addımında izah ediləcək. Daha sonra robotumun irəli və geri hərəkət etməsi üçün bir sıra funksiyalar yaratdım və müəyyən duyğularım var, bundan sonra boşluq döngəsinə gəlirəm, bütün funksiyalarımı istədiyim müəyyən bir ardıcıllıqla çağırdığım yerdir, məsələn, Robotumun gülümsəməsini istəsəydim gülümsəyərdim ();. Mən müəyyən bir ledin açılmasını istəsəydim, leds [45] = CRGB:: Green;, bu 45 -in yaşıl olmasına səbəb olacaq. Rəngi qara rəngə qoyduğumda sadəcə sönmək deməkdir. İndi unutmayın ki, bu mənim ilk proqramlarımdan biridir, buna görə də mükəmməl deyil, amma yenə də işləmişdir.

KOD

Addım 5: Üz

Sifət
Sifət

Üz üçün demək olar ki, tam 3.2ft neopixel şeridi olan 56 led istifadə etdim. Şeridi 8 leddən 7 zolağa kəsdim, ilk 3 zolağı gözlər üçün, son 4 -ü isə ağız üçün istifadə etdim. Şeritləri bir növ ilan şəklində bağladım, inşallah diaqramla daha yaxşı başa düşəcəksiniz. Üzü bitirdikdən sonra led şeritlərin üzərinə nazik bir plastik təbəqə (təxminən 2 mm qalınlığında) qoydum.

Addım 6: Xoşbəxt funksiya

Xoşbəxt funksiya
Xoşbəxt funksiya

Bu funksiya heç bir sensoru istifadə etmədiyi üçün ən asandır, bunun əvəzinə botu işə salan kimi dərhal sizə gülümsəyir. Ancaq təkcə gülümsəmək deyil; gülümsəyərkən, maneə qaçma rejimindədir. Maneədən qaçınma rejimi kodumda funksiya gəzintisi kimi təqdim olunur. Maneə və ya gəzintidən yayınma maneəsi, robotun tərəfindəki iki ultrasəs sensoru istifadə edərək işləyir, sensor 30 sm məsafəyə yaxınlaşdıqda və ya obyektə ən yaxın olan sensordan asılı olaraq sağa və ya sola gedir.

Addım 7: Kədərli funksiya

Kədərli funksiya
Kədərli funksiya
Kədərli funksiya
Kədərli funksiya

Robotun kədərlənə bilməsi üçün bu robotun şəxsiyyət xüsusiyyətini düşünməli oldum, ona görə də qaranlıq bir mühitdə olanda onu kədərləndirmək qərarına gəldim. Bunun üçün işığı hiss etmək üçün foto rezistordan istifadə etdim. Daha qaranlıq mühit, müqavimət nə qədər yüksəkdirsə, müqavimət də o qədər açıqdır. Dövrə, +5v və GND -ə ardıcıl olaraq bağlanan iki rezistorlu bir dövrə olan bir gərginlik bölücü kimi işləyir, rezistor bağlantısının ortasında bu tənlik ilə təyin edilə bilən bir gərginlik var: giriş gərginliyi*(R2/R1 +R2)). Arduino Analog Pin bu dəyəri oxuduqda, gərginliyi 0 ilə 1023 aralığına çevirir.

Addım 8: Qəzəbli Fonksiyon

Qəzəbli funksiya
Qəzəbli funksiya
Qəzəbli funksiya
Qəzəbli funksiya

Robotu qəzəbləndirmək üçün onu çevirmək/yıxmaq qərarına gəldim. Bu, bir əyilmə açarı istifadə edərək işləyir və əyilmə açarı əsasən normal bir açardır, ancaq bir düymə və ya çırpıcı yerinə, müəyyən bir açı ilə əyilmiş olsanız, iki kontaktı birləşdirəcək və açacaq bir civə topunuz var; buna görə də bunun dəyəri ya 0, ya da 1, söndürmə üçün 0 və açıq üçün 1 -dir. Robot qəzəbləndikdə, maneədən qaçmaq rejiminə məhəl qoymur və qəzəbinə görə irəlidə olan hər şeyi ram edir.

Addım 9: Qorxmuş funksiya

Qorxu funksiyası
Qorxu funksiyası
Qorxu funksiyası
Qorxu funksiyası

Robotun son funksiyası, robotun üstünə qoyulmuş bir səs sensoru istifadə edən qorxu funksiyasıdır. Robot bir yük səsi eşidəndə geriyə gedərkən qorxur və titrəyir. Səs sensoru mikrofon olan bir kondensator mikrofonu ilə işləyir, səsləri və ya titrəmələri hiss etdikdə kiçik bir gərginlik yaradacaq, ümumiyyətlə təxminən 100 mV, bu gərginlik daha sonra yüksəldilir və Arduinonun analoq pinindən oxunur. və ya daha yüksək səs, analoq dəyəri daha yüksəkdir və əksinə.

Addım 10: Güc

Güc
Güc
Güc
Güc

İndi onu gücləndirmək üçün lazım olan hər şeyi qurduğunuz üçün əvvəlcə 8 AA batareyası ilə işləməyə çalışdım, amma çox böyük və praktik deyildi. Daha sonra hər biri təxminən 3,5v tutan 3 lityum ion batareyadan istifadə etdim, bir batareyanı gərginlik gücləndiricisi olan bir gücləndirici çeviriciyə bağladım, bu Arduino -nu gücləndirmək üçün 3,5v -dan 5v -a qədər artırdı, sonra iki batareyadan istifadə etdim və birbaşa bağladım mühərriklərə və LED -lərə gəldikdə, bu yaxşı bir fikir deyil, çünki gərginlik tənzimlənməmişdir, amma ətrafımda bir gərginlik tənzimləyicisi yox idi, əgər cəhd etsəniz və qurarsanız 5v -dan daha çox bir voltaj tənzimləyicisi istifadə etməyi məsləhət görürəm. təxminən 2-3 amperdə buna bir nümunə LM78S05-dir. Yoxsa Arduino -nu gücləndirmək üçün LM7805 -dən istifadə edə bilərsiniz və bunun əvəzinə geriliyi azaltmaq və LED -ləri və mühərrikləri gücləndirmək üçün bir addım aşağıya çevirici və ya dollar çevirici əldə edə bilərsiniz.

Addım 11: Əylən !

Ümid edirəm ki, bu robotu qurub əyləncəli vaxt keçirəcəksiniz, həm də ümid edirəm ki, öz robotunuzu öz ətrafınıza qoyacaqsınız və onu canlı yaşamaq üçün öz duyğularınızı yaradacaqsınız !!!