İçindekiler:
- Adım 1: PARÇALAR
- 2. Adım: Neopikseller
- Adım 3: Şematik
- Adım 4: Kod
- Adım 5: Yüz
- Adım 6: Mutlu İşlev
- Adım 7: Üzücü İşlev
- Adım 8: Kızgın İşlev
- 9. Adım: Korkmuş İşlev
- Adım 10: Güç
- Adım 11: Eğlenin!!
Video: ROBOTTAN KAÇINAN DUYGUSAL ENGEL: 11 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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
-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
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
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 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
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
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
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
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üç
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:
Arduino Matrix Duygusal Yüzleri Gösterin: 4 Adım
Arduino Matrix Display Duygusal Yüzler: Bugün Arduino ve Matrix Display 8 x 8 ile farklı yüzler yapıyoruz
KENAR KAÇINAN ROBOT: 7 Adım
KENAR KAÇINAN ROBOT: KENAR KAÇINAN ROBOT
Duygusal Canavarım!: 8 Adım
Duygusal Canavarım!: Bu, duygularınızı sergileyen kendi tüylü canavar robotunuzu nasıl inşa edeceğinize dair bir Talimattır! Bunu yapmak için kontrplak, akrilik, iPad, seçtiğiniz kürk, Arduino ve aşağıda Adımda özetlenen diğer malzemelere ihtiyacınız olacak
ROBOTTAN KAÇINAN KENDİNE ENGELLER: 5 Adım (Resimlerle)
ROBOTTAN KAÇINAN KENDİNE ENGELLER: BU, ROBOTTAN KORUNAN BİR OSBTISCALES BU SADECE 5 KOLAY VE KÜÇÜK ADIMDA OLUŞTURUYORBu size 10 ila 20 dolara veya daha azına mal olabilir
Robottan Kaçınan Engel Nasıl Yapılır- Arduino Stili: 4 Adım
Robottan Kaçınan Bir Engel Nasıl Yapılır- Arduino Stili: Her zaman, temelde herhangi bir nesneden kaçınabilen o harika robotlardan birini yapmak istediniz. Yine de, tüm malzemelerin sizin için olduğu yerde zaten kesilmiş parçaları olan, gerçekten pahalı olanlardan birini satın almak için yeterli paranız yoktu. Eğer gibiysen