Herkese iyi günler! Bu makale, elektronik, robotik ve çevredeki şeylere standart olmayan bir bakış açısına sahip insanlara adanacak!
Şimdi yaratım, montaj sürecini olabildiğince açık bir şekilde anlatmaya çalışacağım robot ile elektronik Arduino'da doldurma! Hadi gidelim!
Neye ihtiyacımız var:
Üç telli halka (3 adet). Daha özgün olmanız tavsiye edilir.
Sıradan teller
potansiyometreler
dirençler (220 ohm)
düğme
Pil Bölmesi
Prototip tahtası
Tabii ki, kendim arduinka
Ve ayrıca bir genişleme kartı - böyle bir şey MultiservoShieldçok sayıda servoyu kontrol etmek
Ve daha fazlası tasarımcırobotumuzun temeli olacak, bu yüzden "güçlü"
İhtiyacınız olan araçlardan:
Bir dizi tornavida, anahtar vb.
Bir havya, lehim ve akı
Hadi başlayalım!
Adım # 1. Ana çerçevenin üretimi
Başlamak için, "iki H harfi" toplayın Şuna benzer:
Sonra bazı inşaat hangi bizim robot duracak. Resimdeki gibi gerekli değildir - kendi takdirinize göre .. Şöyle ortaya çıktı:
"N" yi desteğe yüklüyoruz
Aşağıdan cıvataları sıkıyoruz
Diğer "H" de, gelecekteki robotumuzun kafalarını çevirmekten sorumlu ilk servoyu düzeltiyoruz
Aşağıdaki gibi bir şey ortaya çıkıyor:
Neredeyse çerçeve hazır! Bu iki yapıyı metal plakalarla sabitlemek ve robotun yüksekliğini sağlamak için kalır!
Adım # 2: Gelecekteki robot kulakları için bir çerçeve oluşturma
Bunu yapmak için, iki benzer yapı oluşturmamız ve servoları şekilde gösterildiği gibi sabitlememiz gerekir:
Ardından, cıvataları ve somunları kullanarak ana çerçeveye bağlayın. Aşağıdakiler ortaya çıkacaktır:
Üstten görünüm:
Robotun belirli bir prototipi neredeyse hazır! Devam et ..
Adım # 3. Gözlerimizi ve robotumuzun başını!
Bunun için eski ahizeyi dahili telefondan kullandım. Şahsen bana bir yüz hatırlatıyor! Daha fazlasını görün ..
İki delik açıyoruz ve servo için külbütörü tüpe tutturuyoruz
LED'leri hemen yanlara yapıştırıyoruz ve kabloları onlara lehimliyoruz
İnce olanlar kullandım:
Adım # 4 Kulak Yapımı
Küçük kutulardan sıradan kapaklar kullanacağız
Ayrıca sallanan sandalyeleri serv için sabitleyin
Şimdi robot gövdesinin parçalarını cesurca sunuculara sabitliyoruz
Bunun gibi:
Üstten görünüm:
arka:
Prensip olarak, şimdi robotun tadını çıkarabilirsiniz, ancak görevi zorlaştıracağız .. Potansiyometreleri ve arduinka'mızı kullanarak robotun gözlerini ve kulaklarını çevireceğiz
Adım # 5 Elektronik
Arduino'yu çoklu servis kalkanı ile birleştirerek, her servodan 9, 10, 11 pimlerine üç telli bir halka takıyoruz (robotu bize doğru koyarsanız, sol kulak, sağ kulak, Cent)
Sonra breadboard üzerinde bir potansiyometre, bir düğme, dirençler yüklüyoruz ... Tabii ki böyle görünecek, çirkin, ama asıl şey işe yarıyor)
Daha fazla ayrıntı!
Düğme nasıl kurulur:
Beyaz telin güç olduğu yerde, Kırmızı, mikro denetleyicinin No.6'nın dijital girişi ve direnç topraklanır (sarı tel)
Potansiyometre nasıl kurulur:
Kırmızı kablo - güç, Sarı - toprak, Beyaz - 0 numaralı mikrodenetleyici analog girişi (aynı şekilde başka bir potansiyometre bağlarız, sadece 1 numaralı denetleyicinin analog girişi)
Ayrıca LED'ler için dirençleri tahtaya da kuruyoruz:
akım arduino'nun 3 ve 5 pininden beslenecek ve sarı ve siyah tellerden gelecek ve dirençler yoluyla yere gidecektir (kontrolör GND)
Temel olarak her şey, elektronikle işimiz bitti! Sadece bir sonrakini indirmek için kalır eskiz ve robot ile oynamak !!
#include
#include
Multiservo MyServo1;
Multiservo myservo2;
Multiservo myservo3;
int b, k1, p1, p2;
int A = 0;
int i = 0;
işaretsiz uzun m2 = 0;
işaretsiz uzun m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
int h1 = 0;
int h = 0;
geçersiz kurulum ()
{
myservo1.attach (9); // sol kulak
myservo2. ek (10); // sağ kulak
myservo3.attach (11); // gözler
pinMode (6, GİRİŞ); // düğmesi
pinMode (3, ÇIKIŞ); // gözler ışıklar PWM
pinMode (5, ÇIKIŞ);
}
void loop ()
{
while (A == 0) // robot manuel kontrol döngüsü
{
b = digitalRead (6);
eğer (! b) k1 = 1;
eğer (b == 1 && k1 == 1)
{
gecikme (10);
b = digitalRead (6);
eğer (b == 1 && k1 == 1)
{
A 1;
k1 = 0;
}
}
p1 = int (analogOkuma (A0) / 6);
p2 = int (analogOkuma (A1) / 6);
myservo1.write (p1);
myservo2.write (p1);
myservo3.write (p2);
analogWrite (3, i);
analogWrite (5, i);
eğer (milis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = milis ();
eğer (i> 250) h1 = 1;
}
eğer (milis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = milis ();
eğer (i == 0) h1 = 0;
}
}
while (A == 1) // robot otonom çalışma döngüsü
{
digitalWrite (13.0);
b = digitalRead (6);
eğer (! b) k1 = 1;
eğer (b == 1 && k1 == 1)
{
gecikme (10);
b = digitalRead (6);
eğer (b == 1 && k1 == 1)
{
A, O'dır;
k1 = 0;
}
}
analogWrite (3, i);
analogWrite (5, i);
eğer (milis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = milis ();
eğer (i> 250) h1 = 1;
}
eğer (milis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = milis ();
eğer (i == 0) h1 = 0;
}
eğer (milis ()> = m2 + 15 && h == 0)
{
myservo1.write (r1);
myservo2.write (r2);
myservo3.write (r3);
r1 = r1 + 1;
r2 = r2-1;
r3 = r3 + 1;
eğer (r1 == 110) h = 1;
m2 = milis ();
}
eğer (milis ()> = m2 + 15 && h == 1)
{
myservo1.write (r1); // 110
myservo2.write (r2); // 70
myservo3.write (r3); // 110
r1 = r1-1;
r2 = r2 + 1;
r3 = r3-1;
eğer (r1 == 70) h = 0;
m2 = milis ();
}
}
}
Kod oldukça büyük, ama inan bana buna değer!
Kısaca, bu program ne yapıyor:
Sistemin 2 durumundan sorumlu bir düğmemiz var: ya robotu manuel olarak kontrol ediyoruz ya da önceden kaydedilmiş hareketleri gerçekleştiriyor. Bir düğmeye basıldığında, durumlar bizim için değişir ve kodda, karşılık gelen komutların kayıtlı olduğu kendi aralarında 2 döngü değişir. Robotumuzun gözleri yavaş yavaş yanar, daha parlak ve daha parlak hale gelir ve sonra kaybolur. bu yüzden LED'leri PWM - darbe genişliği modülasyonunu destekleyen pimlere taktık.
Robotun fotoğrafları:
küçük video kaydı, sonunda nasıl ve ne dönüyor:
Sonuç olarak, elbette, bu robotun uzun süre akla getirilebileceğini söylemek istiyorum, ancak bu her insanın tadı. Yap! İcat! Büyütün! Herkese iyi şanslar!