Evde Nasıl Robot Yapılır?

Bu Makalede:Robotu BirleştirmekRobotu KablolamakGücü KablolamakArduino Yazılımını YüklemekRobotu Programlamak6 Referans

Kendi robotunu nasıl yapacağını öğrenmek istiyor musun? Piyasada kendi başına yapabileceğin çok farklı çeşitlerde robot türü bulunuyor. Çoğu kişi, robotun bir A noktasından B noktasına gitmesi gibi basit görevler yaptığını görmek ister. Tamamen analog bileşenlerle bir robot yapabilir ya da sıfırdan bir başlangıç seti alabilirsin! Kendi robotunu yapmak, elektroniğin yanında bilgisayar programlamasını öğrenmek için harika bir yoldur.

Kısım 1
Robotu Birleştirmek

  1. 1
    Parçaları bir araya getir. Basit bir robot yapmak için birkaç basit parçaya ihtiyacın olacak. Hepsi olmasa da, çoğu parçayı elektronik hobi mağazalarında veya İnternette bulabilirsin. Bazı temel setlerde bu parçaların hepsi bulunabilir. Bu robotun yapımında lehimlemeye ihtiyaç yoktur:
    • Arduino Uno (ya da diğer mikrodenetleyiciler)[1]
    • 2 adet sürekli dönebilen servo motor
    • 2 adet servolara uygun teker
    • 1 adet sarhoş teker
    • 1 adet küçük lehimsiz devre tahtası (her iki ucunda iki tane negatif ve pozitif hat bulunan bir devre tahtası olmalı)
    • 1 adet mesafe sensörü (dört pin bağlantı kablolu)
    • 1 adet mini basma düğmeli anahtar
    • 1 adet 10kΩ direnç
    • 1 adet USB A-B kablo
    • 1 takım ayrılabilen erkek header
    • 1 adet 9V DC uçlu 6 x AA pil yatağı
    • 1 kutu atlama kablosu veya 22 awg montaj kablosu
    • Güçlü çift taraflı bant veya sıcak silikon
  2. 2
    Pil kutusunu, düz olan arka kısmı yukarıda olacak şekilde ters çevir. Robotun gövdesini pil kutusunun üzerine inşa edeceksin.
  3. 3
    İki servo motoru pil kutusunun arka ucuna hizala. Bu, pil kutusu kablolarının çıktığı uç olmalı. Servolar alt kısma temas etmeli ve dönme mekanizmaları pil kutusunun kenarlarından dışa bakmalıdır. Tekerlerin düz gitmesi için servoların düzgün bir biçimde hizalanması önemlidir. Servolara bağlanacak kabloların pil kutusunun arkasından çıkması gerekir.
  4. 4
    Bant veya yapıştırıcı ile servoları yapıştır.[2] Bunların pil kutusuna sağlam bir şekilde bağlandığından emin ol. Servoların arka kısımları pil kutusunun arkasıyla bir hizada olmalıdır.
    • Şu anda, servolar pil kutusunun arkasının yarısını kaplamış olmalı.
  5. 5
    Devre tahtasını dik şekilde pil takımındaki boş alana yapıştır. Devre tahtası, pil takımının ön kısmının biraz üzerinde durması gerekir ve her iki kenarından biraz taşacaktır. Devam etmeden önce devre tahtasının güvenli bir şekilde bağlandığından emin ol. "A" satırı servoların en yakınında olmalıdır.
  6. 6
    Arduino mikrodenetleyicisini servoların üstüne tak. Servoları doğru bir şekilde taktıysan onların oluşturuğu düz bir alan bulunmalıdır. Arduino kartını, Arduino'nun USB ve Güç bağlantıları arkaya (devre tahtasının tersi yönüne) bakacak şekilde bu düz alana yapıştır. Arduino'nun ön kısmı, devre tahtası ile çok az örtüşüyor olmalıdır.
  7. 7
    Tekerlekleri servolara tak. Tekerlekleri servonun döner mekanizmaları üzerine sıkıca bastır. Tekerlekler, en iyi çekiş için mümkün olduğu kadar sıkı oturacak şekilde tasarlandığından, tekerlekleri takmak için önemli miktarda güç gerekebilir.
  8. 8
    Sarhoş tekeri devre tahtasının altına tak. Kasayı ters çevirirsen devre tahtasının pil kutusunu bir miktar geçtiğini görmelisin. Gerekirse yükseltici kullanarak tekeri bu uzanan parçaya yapıştır. Sarhoş teker, robotun her yöne rahatça dönmesini sağlayan ön teker işlevini görür.[3]
    • Eğer bir set satın aldıysan sarhoş tekerin yanında yere ulaşmasını sağlamak için kullanabileceğin birkaç yükseltici bulunabilir.

Kısım 2
Robotu Kablolamak

  1. 1
    İki parça 3 pinli header kır. Bunları servoları devre tahtasına bağlamak için kullanacaksın. Pinleri aşağı doğru iterek her iki tarafta eşit mesafede olacak şekilde ayarla.
  2. 2
    İki headerı devre tahtasının E satırındaki 1-3 ve 6-8 pinlerine yerleştir. Sıkıca yerleştiklerinden emin ol.[4]
  3. 3
    Soldaki siyah kabloyla servo kablolarını headerlara bağla (pin 1 ve 6). Bu, servoları devre tahtasına bağlar. Sol servonun sol headera, sağ servonun sağ headera bağlı olduğundan emin ol.
  4. 4
    Kırmızı atlama kablolarını C2 ve C7 pinlerinden kırmızı (pozitif) ray pinlerine bağla. Devre tahtasının arkasındaki (şasinin geri kalanına daha yakın) kırmızı rayı kullandığından emin ol.
  5. 5
    Siyah atlama kablolarını B1 ve B6 pinlerinden mavi (toprak) ray pinlerine bağla. Devre tahtasının arkasındaki mavi rayı kullandığından emin ol. Bunları kırmızı ray pinlerine bağlama.
  6. 6
    Beyaz atlama kablolarını Arduino'daki 12 ve 13 numaralı pinlerden A3 ve A8'e bağla. Bu, Arduino'nun servoları kontrol etmesini ve tekerlekleri döndürmesini sağlayacaktır.
  7. 7
    Sensörü devre tahtasının önüne tak. Bu, devre tahtasındaki dış güç raylarına değil, ilk harfli pimlerin (J) içine takılır. Sensörü tam ortaya yerleştirdiğinden ve her iki tarafta eşit sayıda pin bulunduğundan emin ol.
  8. 8
    Pim I14'ten sensörün solundaki mevcut ilk mavi ray pinine siyah bir atlama kablosu bağla. Bu, sensörü topraklayacaktır.
  9. 9
    Pim I17'den sensörün sağındaki mevcut ilk kırmızı ray pinine kırmızı bir atlama kablosu bağla. Bu, sensöre güç verecektir.
  10. 10
    Beyaz atlama kablolarını Arduino'daki pin I15'ten pin 9'a ve I16'dan pin 8'e bağla. Bu, sensörden mikrodenetleyiciye bilgi aktaracaktır.

Kısım 3
Gücü Kablolamak

  1. 1
    Robotu kutudaki pilleri görebilecek şekilde ters çevir. Pil kutusu kablosunu sol alttan gelecek şekilde yönlendir.
  2. 2
    Sol alttan ikinci yaya kırmızı bir kablo bağla. Pil kutusunun doğru yerleştirildiğinden kesinlikle emin ol.
  3. 3
    Sağ alt kısımdaki son yaya siyah bir kablo bağla. Bu iki kablo, Arduino'ya doğru voltajın sağlanmasına yardımcı olacaktır.[5]
  4. 4
    Kırmızı ve siyah telleri devre tahtasının arkasındaki en sağda yer alan kırmızı ve mavi pinlere bağla. Siyah kablo, pin 30'daki mavi ray pinine takılmalıdır. Kırmızı kablo, pin 30'daki kırmızı ray pinine takılmalıdır.
  5. 5
    Arduino'daki GND pininden siyah bir kabloyu arka mavi raya bağla. Onu mavi raydaki pin 28'e bağla.
  6. 6
    Arka mavi rayın 29. pininden mavi ön rayın 29. pinine siyah bir kablo bağla. Sakın kırmızı rayları birbirine bağlama, Arduino'ya zarar verebilirsin.
  7. 7
    30. pindeki ön kırmızı raydan Arduino'daki 5V pinine kırmızı bir kablo bağla. Bu, Arduino'ya güç sağlayacaktır.
  8. 8
    Basma düğmeli anahtarını 24-26 pinlerdeki sıralar arasındaki boşluğa yerleştir. Bu anahtar, gücü kesmeden robotu kapatmanı sağlayacak.
  9. 9
    H24'ten kırmızı rayda yer alan sensörün sağındaki ilk uygun pine kırmızı bir kablo bağla. Bu, düğmeye güç verecektir.
  10. 10
    H26'yı mavi raya bağlamak için direnci kullan. Bunu, birkaç adım önce bağladığın siyah kablonun hemen yanındaki pine bağla.
  11. 11
    G26'dan Arduino'daki pin 2'ye beyaz bir kablo bağla. Bu, Arduino'nun basmalı düğmeyi kaydetmesini sağlayacaktır.

Kısım 4
Arduino Yazılımını Yüklemek

  1. 1
    Arduino IDE yazılımını indir ve dışarı çıkar. Bu, Arduino’nun geliştirme ortamıdır ve daha sonra Arduino mikrodenetleyicine yükleyebileceğin talimatları programlamanı sağlar. Yazılımı arduino.cc/en/main/software adresinden ücretsiz indirebilirsin. İndirilen dosya üzerine çift tıklayarak ve içindeki klasörü erişimi kolay bir konuma taşıyarak dışarı çıkar. Aslında programı yüklemeyeceksin. Bunun yerine, çıkardığın klasörde yer alan arduino.exe’ye çift tıklayarak programı çalıştıracaksın.[6]
  2. 2
    Pil kutusunu Arduino’ya bağla. Güç vermek için pil kutusunun fişini Arduino'daki yuvasına tak.
  3. 3
    Arduino'yu USB ile bilgisayarına bağla. Windows muhtemelen aygıtı tanımayacaktır.
  4. 4
    . Win+R ve devmgmt.msc yaz. Bu, Aygıt Yöneticisini açacaktır.
  5. 5
    "Diğer cihazlar" bölümündeki "Bilinmeyen aygıt"a sağ tıkla ve "Sürücü Yazılımını Güncelleştir"i seç. Eğer bu seçeneği görmüyorsan bunun yerine "Özellikler"e tıkla, "Sürücü" sekmesini seç ve ardından "Sürücüyü Güncelleştir"e tıkla.
  6. 6
    "Sürücü yazılımı için bilgisayarımı tara"ya tıkla. Bu, Arduino IDE ile gelen sürücüyü seçmeni sağlayacaktır.
  7. 7
    "Gözat" düğmesine tıkla ve daha önce çıkardığın klasöre git. İçinde bir "drivers" klasörü göreceksin.
  8. 8
    "Drivers" klasörünü seç ve "Tamam"a tıkla. Bilinmeyen yazılım uyarısı alırsan devam etmek istediğini onayla.

Kısım 5
Robotu Programlamak

  1. 1
    IDE klasöründeki arduino.exe’ye çift tıklayarak Arduino IDE yazılımını başlat. Boş bir proje açılacaktır.
  2. 2
    Robotun düz gitmesi için aşağıdaki kodu yapıştır. Aşağıdaki kod, Arduino’nun sürekli ileri gitmesini sağlayacaktır.
    #include <Servo.h> // bu, programa "Servo" kütüphanesini ekler
    
    // aşağıdakiler iki servo nesnesi oluşturur
    Servo leftMotor;
    Servo rightMotor;
    
    void setup()
    {
        leftMotor.attach(12); // eğer servoların pin sayılarını yanlışlıkla değiştirdiysen numaraları buradan değiştirebilirsin
        rightMotor.attach(13);
    }
    
    
    void loop()
    {
        leftMotor.write(180); // sürekli dönüş ile 180, servoya tam hızda "ileri" gitmesini söyler.
        rightMotor.write(0); // bunların ikisi de 180'de ise, robotlar bir daire içine girer çünkü servolar ters döner. "0", tam hızda "geriye" doğru gitmesini söyler.
    }
    
  3. 3
    Programı oluştur ve yükle. Programı oluşturup bağlı Arduino’ya yüklemek için sol üst köşedeki sağ ok düğmesine tıkla.
    • Program yüklendiğinde robot sürekli ileri gideceğinden robotu zeminden kaldırmak isteyebilirsin.
  4. 4
    Acil anahtarı işlevini ekle. Acil anahtarı kodunu etkinleştirmek için kodunun "write()" işlevlerinin üstündeki "void loop()" bölümüne aşağıdaki kodu ekle.
    if(digitalRead(2) == HIGH) // bu, Arduino'nun 2 numaralı pinindeki düğmeye basıldığında kayda alır
    {
        while(1)
        {
            leftMotor.write(90); // "90" servolar için nötr konumdur; onlara durmalarını söyler
            rightMotor.write(90);
        }
    }
    
  5. 5
    Kodu yükle ve test et. Acil anahtar kodu eklendikten sonra kodu yükleyip robotu test edebilirsin. Robot, anahtara basana kadar ileri doğru hareket etmeye devam etmeli, anahtara bastığın anda hareketini durdurmalıdır. Kodun tamamı şöyle olmalı:
    #include <Servo.h>
    
    // aşağıdakiler iki servo nesnesi oluşturur
    Servo leftMotor;
    Servo rightMotor;
    
    void setup()
    {
        leftMotor.attach(12); 
        rightMotor.attach(13);
    }
    
    
    void loop()
    {
        if(digitalRead(2) == HIGH) 
        {
            while(1)
            {
                leftMotor.write(90); 
                rightMotor.write(90);
            }
        }
    
        leftMotor.write(180); 
        rightMotor.write(0); 
    }
    

Örnek

Aşağıdaki kod, robotun bir engelle karşılaştığında sola dönmesini sağlamak için robota bağlı sensörü kullanacaktır. Her bir kısmın ne yaptığı hakkında ayrıntılar için koddaki yorumlara bak. Aşağıdaki kod, programın tamamıdır.

#include <Servo.h>

Servo leftMotor;
Servo rightMotor;

const int serialPeriod = 250;       // bu, konsol çıktısını her 1/4 saniyede bir ile sınırlar
unsigned long timeSerialDelay = 0;

const int loopPeriod = 20;          // bu, sensörün okuma yapma sıklığını 20ms’ye ayarlar; okumalar 50 Hz'lik bir frekansla yapılır
unsigned long timeLoopDelay   = 0;

// bu TRIG ve ECHO işlevlerini Arduino'daki pinlere atar. Farklı bir şekilde bağlanırsan buradaki numaralarda ayarlamalar yap
const int ultrasonic2TrigPin = 8;
const int ultrasonic2EchoPin = 9;

int ultrasonic2Distance;
int ultrasonic2Duration;

// Bu, robot için olası iki durumu tanımlar: ileri sürüş veya sola dönüş
#define DRIVE_FORWARD     0
#define TURN_LEFT         1

int state = DRIVE_FORWARD; // 0 = ileri git (VARSAYILAN), 1 = sola dön

void setup()
{
    Serial.begin(9600);
  
    // bunlar sensörlerin pin yapılandırmalarıdır
    pinMode(ultrasonic2TrigPin, OUTPUT);
    pinMode(ultrasonic2EchoPin, INPUT);
    
    // bu, motorları Arduino pinlerine atar
    leftMotor.attach(12);
    rightMotor.attach(13);
}


void loop()
{
    if(digitalRead(2) == HIGH) // bu acil anahtarını algılar
    {
        while(1)
        {
            leftMotor.write(90);
            rightMotor.write(90);
        }
    }

    debugOutput(); // bu, seri konsola hata ayıklama mesajlarını yazdırır
    
    if(millis() - timeLoopDelay >= loopPeriod)
    {
        readUltrasonicSensors(); // bu, sensöre ölçülen mesafeleri okuma ve kaydetme talimatını verir
        
        stateMachine();
        
        timeLoopDelay = millis();
    }
}


void stateMachine()
{
    if(state == DRIVE_FORWARD) // herhangi bir engel tespit edilmezse
    {
        if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // robotun önünde hiçbir şey yoksa. Eğer engel yoksa, ultrasonicDistance bazı ultrasonikler için negatif olacaktır
        {
            // ileri sür
            rightMotor.write(180);
            leftMotor.write(0);
        }
        else //  eğer önümüzde bir nesne varsa
        {
            state = TURN_LEFT;
        }
    }
    else if(state == TURN_LEFT) // bir engel tespit edilirse sola dön
    {
        unsigned long timeToTurnLeft = 500; // 90 derece dönmek yaklaşık 0.5 saniye sürer. Tekerleklerin örnekten farklı bir boyuttaysa bunu ayarlaman gerekebilir
        
        unsigned long turnStartTime = millis(); // dönmeye başladığımız zamanı kaydet

        while((millis()-turnStartTime) < timeToTurnLeft) // timeToTurnLeft süresi doluncaya kadar bu döngüde kal
        {
            // sola dön, her ikisinin de "180" olarak ayarlandığında döneceğini unutma.
            rightMotor.write(180);
            leftMotor.write(180);
        }
        
        state = DRIVE_FORWARD;
    }
}


void readUltrasonicSensors()
{
    // bu ultrasonik 2 içindir. Farklı bir sensör kullanıyorsan bu komutları değiştirmen gerekebilir.
    digitalWrite(ultrasonic2TrigPin, HIGH);
    delayMicroseconds(10);                  // trig pimini en az 10 mikrosaniye boyunca yüksek tutar
    digitalWrite(ultrasonic2TrigPin, LOW);
    
    ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH);
    ultrasonic2Distance = (ultrasonic2Duration/2)/29;
}

// aşağıdaki, konsolda hataları ayıklama içindir.
void debugOutput()
{
    if((millis() - timeSerialDelay) > serialPeriod)
    {
        Serial.print("ultrasonic2Distance: ");
        Serial.print(ultrasonic2Distance);
        Serial.print("cm");
        Serial.println();
        
        timeSerialDelay = millis();
    }
}

Makale Bilgisi

wikiHow bir “wiki”dir. Bu, makalelerimizin çoğunun birden fazla yazar tarafından ortaklaşa yazıldığı anlamına gelir. Bu makaleyi oluşturmak için, zaman içinde makaleyi düzenlemek ve iyileştirmek üzere bazıları isimsiz, 78 kişi çalıştı.

Kategoriler: Bilgisayar ve Elektronik Cihazlar

Diğer dillerde:

English: Build a Robot at Home, Italiano: Costruire a Casa un Robot, 中文: 在家制作机器人, Русский: построить робота дома, Español: construir un robot en casa, Português: Construir um Robô em Casa, Deutsch: Einen Roboter bauen, Bahasa Indonesia: Membuat sebuah Robot di Rumah, Français: construire un robot chez soi, العربية: صنع إنسان آلي في المنزل, हिन्दी: घर पर रोबोट बनायें (Kaise, Kare, Robot), 日本語: 自宅でロボットを作る

Bu sayfaya 553 defa erişilmiş.
Bu makale işine yaradı mı?