Kendi robotunuzu nasıl yapacağınızı öğrenmek ister misiniz? Kendiniz inşa edebileceğiniz birçok farklı robot türü vardır. Çoğu insan, A noktasından B noktasına hareket etmenin kolay işini yapan bir robot görmek ister. Tamamen analog bileşenlerden bir robot yapabilir veya bir başlangıç kiti satın alabilirsiniz. Kendi robotunuzu yapmak, elektronik ve bilgisayar programlamayı öğrenmenin harika bir yoludur.
Adım
Bölüm 1/5: Robotu Birleştirme
Adım 1. Bileşenlerinizi birleştirin
Basit bir robot yapmak için birkaç basit bileşene ihtiyacınız olacak. Bu bileşenlerin çoğunu veya tamamını yerel elektronik hobi mağazanızda veya bazı çevrimiçi perakendecilerde bulabilirsiniz. Bazı kitler bu bileşenlerin tümünü içerir. Bu robot herhangi bir lehimleme gerektirmez:
- Arduino Uno (veya başka bir mikrodenetleyici)
- 2 servo 360 derece
- 2 tekerlek eşleşen servo
- 1 serbest tekerlek
- Lehimlenmemiş 1 test tahtası (breadboard veya proje tahtası) (her iki tarafında iki pozitif ve negatif sıra bulunan bir test tahtası arayın)
- 1 yakınlık sensörü (dört pinli konnektör kablosu ile)
- 1 basmalı düğme anahtarı
- 1 direnç 10kΩ
- 1 USB A'dan B'ye kablo
- 1 set kırılabilir başlık
- 9V DC ile 1 6 x AA pil tutucu.güç soketi
- 1 paket 22. jumper kablo veya tek kablo
- İleri geri yalıtım (çift bant) veya tutkal tabancası
Adım 2. Pil bölmesini düz arka yüzü yukarı bakacak şekilde çevirin
Pil bölmesini taban olarak kullanarak robot gövdesini oluşturacaksınız.
Adım 3. Pil yuvasının sonunda iki servoyu aynı yöne bakacak şekilde düzenleyin
Bu uç, kablonun pilden çıktığı uçtur. Servolar tabana değmeli ve her bir servonun dönüş mekanizması pil bölmesinin kenarlarından dışarı bakmalıdır. Bu servoların tekerleklerin düz olması için doğru şekilde düzenlenmesi önemlidir. Servo için kablolar pil bölmesinin arkasından çıkmalıdır.
Adım 4. Servoları yalıtım veya yapıştırıcınızla yapıştırın
Servonun pil bölmesine sıkıca takıldığından emin olun. Servonun arkası, pil bölmesinin arkası ile hizalanmalıdır.
Şimdi, servolar pil yuvasının arkasındaki alanın yarısını kaplamalıdır
Adım 5. Test panosunu pil bölmesinde kalan boşluğa dik olarak yapıştırın
Bu test panosu, pil bölmesinin ön kısmından biraz sarkacak ve her iki tarafa da uzanacaktır. Devam etmeden önce test panosunun sıkı olduğundan emin olun. “A” satırı servoya en yakın olmalıdır.
Adım 6. Arduino mikro denetleyicisini servonun üstüne takın
Servoyu doğru takarsanız, iki servonun birbirine değen düz bir kısmı olmalıdır. Arduino kartını, USB ve Arduino güç konektörleri aşağı bakacak şekilde (test kartından uzağa) bu düz noktaya yapıştırın. Arduino'nun önü test panosu ile örtüşecektir.
Adım 7. Tekerlekleri servolara takın
Tekerlekleri dönen servo mekanizmaya sıkıca bastırın. Tekerlekler, servo ucun şekline tam olarak uyan deliklere sahip olacak şekilde tasarlandığından, bu önemli bir kuvvet gerektirebilir.
Adım 8. Serbest tekerleği test panosunun altına takın
Robotu ters çevirirseniz, pil bölmesinden sarkan küçük bir test tahtası göreceksiniz. Serbest tekerleği bu asılı parçaya takın. Gerekirse bir kama kullanın. Serbest tekerlek, robotun herhangi bir yöne kolaylıkla dönmesini sağlayan ön tekerlek görevi görür.
Bir kit satın aldıysanız, serbest tekerlek, tekerleğin yere temas etmesini sağlamak için kullanabileceğiniz bazı takozlara sahip olabilir
Bölüm 2/5: Robotu Kablolama
Adım 1. İki adet 3 pimli başlığı kesin
Bunu servoyu test panosuna bağlamak için kullanacaksınız. Pimleri başlıklardan aşağı doğru itin, böylece her iki tarafta eşit bir mesafe çıkar.
Adım 2. İki başlığı, test panosundaki E satırındaki 1-3 ve 6-8 numaralı pimlere yerleştirin
Sıkıca veya sıkıca yerleştirildiklerinden emin olun.
Adım 3. Servo kablolarını siyah kablo sol tarafta olacak şekilde başlık ile bağlayın (pim 1 ve 6)
Bu, servoyu test panosuna bağlayacaktır. Sol servonun sol başlığa ve sağ servonun sağ başlığa bağlı olduğundan emin olun.
Adım 4. C2 ve C7 pinlerinden kırmızı jumper kablosunu kırmızı ray pinine (pozitif) bağlayın
Test panosunun arkasındaki kırmızı rayı kullandığınızdan emin olun (robot gövdesinin geri kalanına daha yakın).
Adım 5. B1 ve B6 pinlerinden gelen siyah jumper kablosunu mavi ray pinine (toprak) bağlayın
Test panosunun arkasındaki mavi rayı kullandığınızdan emin olun. Kabloyu kırmızı ray pimine bağlamayın.
Adım 6. Arduino üzerindeki 12 ve 13 numaralı pinlerden gelen beyaz jumper kablolarını A3 ve A8'e bağlayın
Bu, Arduino'nun servoyu kontrol etmesine ve tekerleği döndürmesine izin verecektir.
Adım 7. Sensörü test panosunun önüne takın
Sensör, test kartındaki harici güç rayına değil, (J) harfli ilk iki pin sırasına monte edilmiştir. Her iki tarafında eşit sayıda boş iğne olacak şekilde tam ortasına yerleştirdiğinizden emin olun.
Adım 8. I14 piminden gelen siyah atlama kablosunu sensörün solundaki ilk mavi ray pimine bağlayın
Bu, sensörü topraklayacaktır.
Adım 9. Pin I17'den gelen kırmızı jumper kablosunu sensörün sağındaki ilk kırmızı ray pinine bağlayın
Bu, sensöre güç sağlayacaktır.
Adım 10. Beyaz jumper kablolarını Arduino'da pin I15'ten pin 9'a ve I16'dan pin 8'e bağlayın
Bu, sensörden mikrodenetleyiciye bilgi sağlayacaktır.
Bölüm 3/5: Güç Kablosunu Takma
Adım 1. İçerideki pil bölmesini görebilmek için robotu ters çevirin
Pil bölmesini, kablo sol alttan çıkacak şekilde düzenleyin.
Adım 2. Kırmızı kabloyu altta soldan ikinci yay ile bağlayın
Pil bölmesinin düzgün hizalandığından veya doğru yöne baktığından emin olun.
Adım 3. Siyah kabloyu sağ alttaki son yay ile bağlayın
Bu iki kablo, Arduino'ya doğru voltajı sağlamaya yardımcı olacaktır.
Adım 4. Kırmızı ve siyah kabloları, test panosunun sağ tarafında bulunan kırmızı ve mavi pinlere bağlayın
Siyah kablo pim 30'daki mavi ray pimine gitmelidir. Kırmızı kablo pim 30'daki kırmızı ray pimine gitmelidir.
Adım 5. Arduino üzerindeki GND pininden gelen siyah kabloyu mavi rayın arkasına bağlayın
Kabloyu mavi raydaki pim 28'e bağlayın.
Adım 6. Mavi rayın arkasından siyah kabloyu her iki ray için pim 29'daki mavi rayın önüne bağlayın
Arduino'ya zarar verebileceğinizden kırmızı rayı bağlamayın.
Adım 7. Kırmızı kabloyu pin 30'daki kırmızı rayın önünden Arduino'daki 5V pinine bağlayın
Bu Arduino'ya güç sağlayacaktır.
Adım 8. Basmalı düğmeyi 24-26 pimleri arasındaki boşluğa yerleştirin
Bu anahtar, gücü kapatmanıza gerek kalmadan robotu kapatmanıza olanak tanır.
Adım 9. H24'ten gelen kırmızı kabloyu, sensörün sağındaki bir sonraki boş pimdeki kırmızı raya bağlayın
Bu, düğmeye güç sağlayacaktır.
Adım 10. H26'yı mavi raya bağlamak için bir direnç kullanın
Önceki adımlarda bağladığınız siyah kablonun hemen yanındaki pime bağlayın.
Adım 11. G26'dan gelen beyaz kabloyu Arduino'daki pin 2'ye bağlayın
Bu, Arduino'nun butonları algılamasını sağlayacaktır.
Bölüm 4/5: Arduino Yazılımını Yükleme
Adım 1. Arduino IDE'yi indirin ve çıkarın
Arduino'nun geliştirildiği yer burasıdır ve daha sonra Arduino mikro denetleyicinize yükleyebileceğiniz talimatları programlamanıza izin verir. arduino.cc/en/main/software adresinden ücretsiz olarak indirebilirsiniz. İndirilen dosyayı, dosyaya çift tıklayarak ve içerdiği klasörü erişimi kolay bir konuma taşıyarak açın. Programı gerçekten kurmayacaksınız, bunun yerine arduino.exe'ye çift tıklayarak çıkarılan bir klasörden çalıştıracaksınız.
Adım 2. Pil bölmesini Arduino'ya bağlayın
Güç vermek için pilin arka soketini Arduino üzerindeki konektöre takın.
Adım 3. Arduino'yu USB üzerinden bilgisayarınıza takın
Şanslar, Windows cihazı tanımayacak.
Adım 4. tuşuna basın
Kazan + R ve yazın devmgmt.msc.
Bu komut Aygıt Yöneticisini açacaktır.
Adım 5. Diğer cihazlar altında Bilinmeyen cihaz'a sağ tıklayın ve Sürücü Yazılımını Güncelle'yi seçin
Bu seçeneği görmüyorsanız, Özellikler'e tıklayın, Sürücü sekmesini seçin ve ardından Sürücüyü Güncelle'ye tıklayın.
Adım 6. Sürücü yazılımı için bilgisayarıma gözat'ı seçin
Bu, Arduino IDE ile birlikte gelen yerleşik sürücüleri seçmenize izin verecektir.
7. Adım. Gözat'a tıklayın, ardından daha önce çıkardığınız klasörü açın
İçinde sürücüler klasörünü bulacaksınız.
Adım 8. Sürücüler klasörünü seçin ve Tamam'a tıklayın
Bilinmeyen yazılım hakkında uyarılırsanız devam etmek istediğinizi onaylayın.
Bölüm 5/5: Robotları Programlama
Adım 1. IDE klasöründeki arduino.exe dosyasına çift tıklayarak Arduino IDE'yi açın
Boş bir proje ile karşılaşacaksınız.
Adım 2. Robotunuzu geliştirmek için aşağıdaki kodu yapıştırın veya yapıştırın
Aşağıdaki kod Arduino'nuzu devam ettirecektir.
#include // programa “Servo” kütüphanesini ekler // aşağıdaki komut iki servo nesnesi oluşturur Servo leftMotor; Servo sağMotor; geçersiz kurulum() { leftMotor.attach(12); // servonuzun pin numaralarını yanlışlıkla değiştirdiyseniz, buradaki sayıları değiştirebilirsiniz rightMotor.attach(13); } geçersiz döngü() { leftMotor.write(180); // 360 derecelik bir dönüşle (sürekli dönüş), 180 sayısı servoya tam hızda “ileri” hareket etmesini söyler. sağMotor.write(0); // her iki değer de 180 ise servo ters çevrildiği için robot bir daire içinde dönecektir. "0", robota tam hızda "geri" hareket etmesini söyler. }
Adım 3. Programı oluşturun ve yükleyin
Bağlı Arduino'ya bir program oluşturmak ve yüklemek için sol üst köşedeki sağ ok düğmesine tıklayın.
Program yüklendikten sonra robot ileriye doğru yürümeye devam edeceğinden robotu yüzeyden kaldırmak isteyebilirsiniz
Adım 4. Bir durdurma anahtarı işlevi ekleyin (kilit anahtarı)
"write()" işlevinin üstüne bir durdurma anahtarı işlevi eklemek için kodunuzun "void loop()" bölümüne aşağıdaki kodu ekleyin.
if(digitalRead(2) == HIGH) // Arduino pin 2'de butona basıldığında bu komut çalışır { while(1) { leftMotor.write(90); // "90", servonun sağa dönmeyi durdurmasını söyleyen servo için nötr konumdurMotor.write(90); } }
Adım 5. Kodunuzu yükleyin ve kontrol edin
Durdurma anahtarı kodu zaten eklenmiş olarak, kodu yükleyebilir ve robotu test edebilirsiniz. Robotun durmasına neden olacak durdurma anahtarı düğmesine basana kadar robot ilerlemeye devam etmelidir. Tam kod şöyle görünecek:
#include // aşağıdaki komut iki Servo leftMotor servo nesnesi oluşturur; Servo sağMotor; geçersiz kurulum() { leftMotor.attach(12); sağMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) { while(1) { leftMotor.write(90); sağMotor.write(90); } } leftMotor.write(180); sağMotor.write(0); }
Örnek
Aşağıdaki kod, robot bir engelle karşılaştığında sola dönmesini sağlamak için robot üzerine kurulu sensörleri kullanacaktır. Her parçanın nasıl kullanılacağına ilişkin ayrıntılar için koddaki açıklamalara bakın. Aşağıdaki kod programın tamamıdır.
#include Servo solMotor; Servo sağMotor; const int serialPeriod = 250; // bu kod konsol çıktı gecikmesinin her 1/4 saniyede bir (250 ms) işaretsiz uzun süre olmasını verirSerialDelay = 0; const int döngüPeriod = 20; // bu kod, sensör okuma frekansını 20 ms'ye ayarlar, bu da 50 Hz işaretsiz uzun timeLoopDelay = 0; // bu kod Arduino üzerindeki pinlere TRIG ve ECHO fonksiyonlarını atar. Rakamları farklı bir şekilde bağlarsanız burada ayarlayın const int ultrasonic2TrigPin = 8; const int ultrasonik2EchoPin = 9; int ultrasonik2Mesafe; int ultrasonik2Süre; // bu kod iki olası robot durumunu tanımlar: ileri devam et veya sola dön #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int durum = DRIVE_FORWARD; // 0 = ileri devam (DEFAULT), 1 = sola dön void setup() { Serial.begin(9600); // bu sensör pin konfigürasyonunu belirler pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); // bu, motoru Arduino pinlerine leftMotor.attach(12) atar; sağMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // bu kod bir ''dur'' algılar { while(1) { leftMotor.write(90); sağMotor.write(90); } } debugOutput(); // bu kod hata ayıklama mesajlarını seri konsola yazdırır if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // bu kod sensöre ölçülen mesafe hakkındaki verileri okuması ve saklaması talimatını verir stateMachine(); timeLoopDelay = millis(); } } void stateMachine() { if(durum == DRIVE_FORWARD) // herhangi bir engel algılanmazsa { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // robotun önünde hiçbir şey yoksa. ultrasonikMesafe bazı ultrasonikler için engel yoksa negatif olacaktır { // ileri doğru sürMotor.write(180); leftMotor.write(0); } else // önümüzde bir nesne varsa { state = TURN_LEFT; } } else if(durum == TURN_LEFT) // bir engel algılanırsa sola dönün { unsigned long timeToTurnLeft = 500; // 90 derece döndürmek yaklaşık 0,5 saniye sürer. Tekerleklerinizin boyutu örnekteki boyuttan farklıysa bu değeri ayarlamanız gerekebilir unsigned long turnStartTime = millis(); // robot dönmeye başladığında koşulu koru while((millis()-turnStartTime) < timeToTurnLeft) // timeToTurnLeft (500) geçene kadar bu döngüyü sürdür { // sola dön, ikisi de "180" olduğunda hatırla, robot dönecek. sağMotor.write(180); leftMotor.write(180); } durum = DRIVE_FORWARD; } } void readUltrasonicSensors() { // bu ultrasonik 2 içindir. Farklı bir sensör kullanıyorsanız bu komutu değiştirmeniz gerekebilir. digitalWrite(ultrasonic2TrigPin, YÜKSEK); gecikmeMikrosaniye(10); // TRIG pinini en az 10 mikrosaniye için yukarı çekin digitalWrite(ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, YÜKSEK); ultrasonik2Mesafe = (ultrasonik2Süre/2)/29; } // aşağıdakiler konsolda hata ayıklamak içindir. void debugOutput() { if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: "); Serial.print(ultrasonic2Distance); Seri.print("cm"); Seri.println(); timeSerialDelay = millis(); } }