İçindekiler:

ROBOTTAN KAÇINAN DUYGUSAL ENGEL: 11 Adım
ROBOTTAN KAÇINAN DUYGUSAL ENGEL: 11 Adım

Video: ROBOTTAN KAÇINAN DUYGUSAL ENGEL: 11 Adım

Video: ROBOTTAN KAÇINAN DUYGUSAL ENGEL: 11 Adım
Video: KORONAVİRÜSÜN PSİKOLOJİK ETKİLERİ | Murat Tufan | Barış Gürkaş | 20.03.2020 2024, Kasım
Anonim
ROBOTTAN KAÇINAN DUYGUSAL ENGEL
ROBOTTAN KAÇINAN DUYGUSAL ENGEL

Duygusal robot. Bu robot üzüntü, mutluluk, kızgınlık, korkmuş gibi duyguları neopikseller (RGB LED'ler) ile gösterir, aynı zamanda belirli duygu sırasında engellerden kaçınabilir ve belirli hareketleri yapabilir. Bu robotun beyni bir Arduino mega. bu benim yaptığım ilk programlanmış robotum ve beni programlamaya aşık etti, kodun kendisi çok acemi ve büyük olasılıkla basitleştirilebilir.

Adım 1: PARÇALAR

PARÇALAR
PARÇALAR

-3.2ft bir neopiksel şeridi

-HC-SR04 Ultrasonik Sensör (veya başka bir ultrasonik sensör)

-eğim anahtarı

-3 3.7v lityum iyon pil (18650)

-boost dönüştürücü (güç adımında açıklanmıştır)

-foto direnç (herhangi bir değer)

-analog ses sensörü

-2 dc motor 6v

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

-plastik levha

-karton

-tekerlek

2. Adım: Neopikseller

Neopikseller
Neopikseller
Neopikseller
Neopikseller

Kısıtlı bir bütçem olduğu için robotlarımın duygularını hayata geçirmenin en basit ve en ucuz yolu neopiksellerdir, sahip oldukları tek şey 3 giriş ve çıkıştır. girişteki üç pin 5v, DIN(veri girişi) ve GND(toprak) olarak etiketlenmiştir; çıktı, girdi ile aynı şekilde etiketlenir, ancak DO'sunda (veri çıkışı) veri yerine etiketlenir. Bu ledleri bağlama şekliniz onları birbirine paralel bağlamaktır yani 5v diğer leddeki 5v'ye bağlanır ve GND diğer led'e bağlanır GND, ilk ledin DO'su ikinci ledin DIN'sine bağlanır ve ardından bu işlem istediğiniz led şerit uzunluğuna ulaşana kadar devam eder. Tüm bir neopiksel şeridi, girişten yalnızca bir dijital çıkış pimi gerektirir, bunun nedeni DO ve DIN'nin uzun bir zincire bağlı olmasıdır, bu nedenle hepsi birbiriyle veri paylaşır. Bu gereklidir çünkü belirli zamanlarda belirli ledleri açıp kapatmamız gerekir. Bu konuda yararlı bir talimat NEOPIXEL HELP

Adım 3: Şematik

şematik
şematik

Robotların çoğu yeni programlandığı için devre çok basittir, motorların ileri geri gitmesini kontrol etmek için motorlar bir l293d motor sürücüsü ile 7v'ye yakın çalışır. Diğer bağlantılar Arduino'nun sensörleridir. Ve bu kadar!

Adım 4: Kod

İlk yaptığım şey kodlamayı biraz daha kolaylaştırmak için gerekli kütüphaneleri indirmek oldu, kullandığım kütüphaneler "FastLED.h" ve "NewPing.h". Hızlı led olan ledler için, yeni ping olan ise ultrasonik sensörler içindir. Bir sonraki yaptığım şey, kullandığım pinler için tüm tanımlamaları yapmak oldu, bundan sonra void kurulumu oldu, pin modlarını ve neostrip'i "FastLED.addLeds(leds, NUM_LEDS);" kurdum. NUM_LEDS'i 56 olarak tanımladım, 56 led kullandığım için ledlerin konfigürasyonları yüz adımında anlatılacaktır. Daha sonra robotumun ileri geri hareket etmesi ve aynı zamanda belirli bir duyguya sahip olması için bir sürü fonksiyon yarattım, bundan sonra boşluk döngüsüne geliyorum, burası tüm fonksiyonlarımı istediğim belirli bir sırayla çağırdığım yer, örneğin, robotumun gülümsemesini isteseydim o zaman smile(); koyardım. Belirli bir ledin yanmasını isteseydim, leds[45] = CRGB::Green;, bu led 45'i yeşil olarak ayarlayacaktır. Rengi siyaha koyduğumda, sadece kapalı anlamına geliyor. Şimdi bunun benim ilk programlarımdan biri olduğunu unutmayın, bu yüzden açıkçası mükemmel değil, ama yine de işe yaradı.

KOD

Adım 5: Yüz

Yüz
Yüz

Yüz için neredeyse tam bir 3.2ft neopiksel şerit olan 56 led kullandım. Stripi 8 ledlik 7 şerit halinde kestim, ilk 3 şeridi gözler için son 4 şeridi ağız için kullandım. Şeritleri yılan şeklinde bağladım umarım şema ile daha iyi anlarsınız. Yüzü bitirdiğimde, led şeritlerin üzerine ince bir plastik tabaka (yaklaşık 2 mm kalınlığında) koydum.

Adım 6: Mutlu İşlev

Mutlu İşlev
Mutlu İşlev

Bu işlev, herhangi bir sensör kullanmadığı için en kolay olanıdır, bunun yerine botu açar açmaz anında size gülümser. Ama sadece gülümsemiyor; gülümsediğinde, engellerden kaçınma modunda da. Engelden kaçınma modu, kodumda dolaşım işlevi olarak temsil edilir. Engelden kaçınma modu veya gezinme, robot tarafında iki ultrasonik sensör kullanarak çalışır, sensör herhangi bir şeye 30 cm geldiğinde yedeklenir ve nesneye en yakın sensöre bağlı olarak sağa veya sola gider.

Adım 7: Üzücü İşlev

Üzücü İşlev
Üzücü İşlev
Üzücü İşlev
Üzücü İşlev

Robotun üzülmesi için bu robot için bir kişilik özelliği düşünmem gerekiyordu, bu yüzden onu karanlık bir ortamdayken üzmeye karar verdim. Bunu yapmak için ışığı algılamak için bir foto direnç kullandım. Ortam ne kadar karanlıksa direnç o kadar yüksek ve ortam ne kadar açıksa direnç o kadar düşük olur. Devre, +5v ve GND'ye seri bağlı iki rezistörlü bir devre olan bir voltaj bölücü olarak çalışır, direnç bağlantısının orta noktasında şu denklem ile belirlenebilen bir voltaj bulunur: giriş voltajı*(R2/R1+R2). Arduino Analog Pin bu değeri okuduğunda voltajı 0 ile 1023 arasında bir aralığa dönüştürür.

Adım 8: Kızgın İşlev

Kızgın İşlev
Kızgın İşlev
Kızgın İşlev
Kızgın İşlev

Robotu kızdırmak için çevirmeye/devirmeye karar verdim. Bu, bir eğim anahtarı kullanılarak çalışır ve bir eğim anahtarı temelde normal bir anahtardır, ancak bir düğme veya basmalı düğme yerine, belirli bir açıyla yatırıldığında iki kontağı birbirine bağlayacak ve açılacak olan bir cıva topunuz vardır; bu nedenle bundan elde edilen değer 0 veya 1, kapalı için 0 ve açık için 1'dir. Robot sinirlendiğinde, engellerden kaçınma modunu da yok sayar ve öfkesinden dolayı ileri yönde görünen her şeye çarpar.

9. Adım: Korkmuş İşlev

Korkmuş İşlev
Korkmuş İşlev
Korkmuş İşlev
Korkmuş İşlev

Robotun son işlevi, robotun tam üstüne yerleştirilmiş bir ses sensörünü kullanan korkutma işlevidir. Robot ne zaman bir yük sesi duyarsa korkar ve geriye doğru giderken titrer. Ses sensörü bir mikrofon olan bir yoğunlaştırıcı mikrofon kullanarak çalışır, sesleri veya titreşimleri algıladığında küçük bir voltaj oluşturur, genellikle yaklaşık 100mv, bu voltaj daha sonra yükseltilir ve Arduino'nun analog pininden okunur, voltaj ne kadar yüksek olursa veya ses ne kadar yüksekse, analog değer de o kadar yüksek olur ve bunun tersi de geçerlidir.

Adım 10: Güç

Güç
Güç
Güç
Güç

Artık güç sağlamak için ihtiyacınız olan her şeyi yaptığınıza göre, bunu başlangıçta 8 AA pille çalıştırmaya çalıştım, ancak çok hantal ve pratik değildi. Daha sonra her biri yaklaşık 3.5v tutan 3 lityum iyon pil kullandım, bir pili voltaj yükseltici olan bir yükseltici dönüştürücüye bağladım, bu Arduino'ya güç sağlamak için 3.5v'yi 5v'ye yükseltti, sonra pillerden ikisini kullandım ve doğrudan bağladım motorlara ve LED'lere, voltaj regüle edilmediğinden bu pek iyi bir fikir değil, ancak etrafta bir voltaj regülatörü yoktu, bunu dener ve inşa ederseniz, 5v yapabilen bir voltaj regülatörü kullanmanızı öneririm 2-3 amper civarında, buna bir örnek LM78S05'tir. Veya Arduino'ya güç sağlamak için LM7805'i kullanabilir ve bunun yerine voltajı düşürmek ve LED'lere ve motorlara güç sağlamak için bir düşürücü dönüştürücü veya dönüştürücü dönüştürücü alabilirsiniz.

Adım 11: Eğlenin!!

Umarım bu robotu yapar ve eğlenirsiniz, umarım siz de bu robota kendi dönüşünüzü yapar ve onu CANLI kılmak için kendi duygularınızı yaratırsınız!!!

Önerilen: