Kendi robotunuzu nasıl yapacağınızı öğrenmek ister misiniz? Kendi başınıza yapabileceğiniz birçok farklı robot türü var. Çoğu insan, A noktasından B noktasına hareket etmek gibi basit görevleri yerine getiren bir robot görmek ister. Tamamen analog bileşenlerden bir robot yapabilir veya sıfırdan bir başlangıç kiti satın alabilirsiniz! Kendi robotunuzu inşa etmek, kendinize hem elektronik hem de bilgisayar programlamayı öğretmenin harika bir yoludur.
adımlar
Bölüm 1/6: Robotu Birleştirme
Adım 1. Bileşenlerinizi toplayın
Temel bir robot oluşturmak için birkaç basit bileşene ihtiyacınız olacak. Bu bileşenlerin hepsini olmasa da çoğunu yerel elektronik hobi mağazanızda veya birkaç çevrimiçi perakendecide bulabilirsiniz. Bazı temel kitler, bu bileşenlerin tümünü de içerebilir. Bu robot herhangi bir lehimleme gerektirmez:
- Arduino Uno (veya başka bir mikrodenetleyici)
- 2 sürekli dönüş servosu
- Servolara uyan 2 tekerlek
- 1 tekerlekli silindir
- 1 küçük lehimsiz devre tahtası (her iki tarafında iki pozitif ve negatif çizgi bulunan bir devre tahtası arayın)
- 1 mesafe sensörü (dört pinli konnektör kablosu ile)
- 1 mini buton anahtarı
- 1 10kΩ direnç
- 1 USB A'dan B'ye kablo
- 1 set ayrılabilir başlık
- 9V DC güç jakına sahip 1 6 x AA pil tutucu
- 1 paket atlama teli veya 22 ayar bağlantı teli
- Güçlü çift taraflı bant veya sıcak tutkal
Adım 2. Düz arka kısmı yukarı bakacak şekilde pil takımını ters çevirin
Pil takımını temel olarak kullanarak robotun gövdesini oluşturacaksınız.
Adım 3. Pil takımının ucundaki iki servoyu hizalayın
Bu, pil takımının telinin dışarı çıktığı son olmalıdır. Servolar tabanlara temas etmeli ve her birinin döner mekanizmaları pil takımının kenarlarından dışarı bakmalıdır. Tekerleklerin düz gitmesi için servolar düzgün bir şekilde hizalanmalıdır. Servoların kabloları pil takımının arkasından çıkmalıdır.
Adım 4. Servoları bant veya yapıştırıcınızla yapıştırın
Pil takımına sağlam bir şekilde takıldıklarından emin olun. Servoların arkaları, pil takımının arkası ile aynı hizada olmalıdır.
Servolar şimdi pil takımının arka yarısını alıyor olmalıdır
Adım 5. Breadboard'u pil takımı üzerindeki açık alana dik olarak yapıştırın
Pil takımının ön tarafından biraz sarkmalı ve her iki tarafın ötesine uzanmalıdır. Devam etmeden önce güvenli bir şekilde sabitlendiğinden emin olun. "A" satırı servolara en yakın olmalıdır.
Adım 6. Arduino mikro denetleyicisini servoların tepesine takın
Servoları düzgün taktıysanız, dokunmaları ile düz bir boşluk olmalıdır. Arduino kartını bu düz alana, Arduino'nun USB ve Güç konektörleri arkaya bakacak şekilde (breadboard'dan uzağa) yapıştırın. Arduino'nun önü, breadboard ile zar zor örtüşmelidir.
Adım 7. Tekerlekleri servoların üzerine koyun
Tekerlekleri servonun dönen mekanizmasına sıkıca bastırın. Tekerlekler en iyi çekiş için mümkün olduğunca sıkı oturacak şekilde tasarlandığından, bu önemli miktarda kuvvet gerektirebilir.
Adım 8. Tekerleği devre tahtasının altına takın
Kasayı ters çevirirseniz, pil takımını geçen bir parça devre tahtası görmelisiniz. Gerekirse yükselticileri kullanarak tekeri bu uzatılmış parçaya takın. Tekerlek, ön tekerlek görevi görerek robotun herhangi bir yöne kolayca dönmesini sağlar.
Bir kit satın aldıysanız, tekerlek, tekerleğin yere ulaşmasını sağlamak için kullanabileceğiniz birkaç yükselticiyle birlikte gelmiş olabilir. ben
Bölüm 2/6: Robotu Kablolama
Adım 1. İki adet 3 pimli başlığı ayırın
Bunları servoları devre tahtasına bağlamak için kullanacaksınız. Pimlerin her iki tarafta eşit mesafede çıkması için pimleri başlıktan aşağı doğru itin.
Adım 2. İki başlığı, devre tahtasının E satırındaki 1-3 ve 6-8 numaralı pimlere yerleştirin
Sıkıca yerleştirildiklerinden emin olun.
Adım 3. Siyah kablo sol tarafta olacak şekilde servo kablolarını başlıklara bağlayın (pim 1 ve 6)
Bu, servoları breadboard'a 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 kablolarını kırmızı (pozitif) ray pinlerine bağlayın
Breadboard'un arkasındaki kırmızı rayı kullandığınızdan emin olun (kasanın geri kalanına daha yakın).
Adım 5. B1 ve B6 pinlerinden gelen siyah jumper kablolarını mavi (toprak) ray pinlerine bağlayın
Breadboard'un arkasındaki mavi rayı kullandığınızdan emin olun. Bunları kırmızı ray pimlerine takmayın.
Adım 6. Arduino'daki 12 ve 13 numaralı pinlerden beyaz jumper kablolarını A3 ve A8'e bağlayın
Bu, Arduino'nun servoları kontrol etmesine ve tekerlekleri döndürmesine izin verecektir.
Adım 7. Sensörü devre tahtasının önüne takın
Breadboard üzerindeki dış güç raylarına takılmaz, bunun yerine harfli pimlerin (J) ilk satırına takılır. Her iki tarafta eşit sayıda pim olacak şekilde tam ortasına yerleştirdiğinizden emin olun.
Adım 8. I14 piminden sensörün solundaki mevcut ilk mavi ray pimine siyah bir atlama teli bağlayın
Bu, sensörü topraklayacaktır.
Adım 9. I17 piminden sensörün sağındaki ilk mevcut kırmızı ray pimine kırmızı bir aktarma kablosu bağlayın
Bu sensöre güç verecektir.
Adım 10. Beyaz jumper kablolarını Arduino'daki pin I15'ten pin 9'a ve I16'dan pin 8'e bağlayın
Bu, sensörden mikrodenetleyiciye bilgi besleyecektir.
Bölüm 3/6: Gücü Kablolama
Adım 1. Paketteki pilleri görebilmek için robotu yan çevirin
Pil takımı kablosu altta soldan çıkacak şekilde yönlendirin.
Adım 2. Altta soldan ikinci yaya kırmızı bir kablo bağlayın
Pil takımının doğru yönlendirildiğinden emin olun.
Adım 3. Sağ alttaki son yaya siyah bir kablo 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ı, devre tahtasının arkasındaki en sağdaki kırmızı ve mavi pimlere bağlayın
Siyah kablo pim 30'daki mavi ray pimine takılmalıdır. Kırmızı kablo pim 30'daki kırmızı ray pimine takılmalıdır.
Adım 5. Arduino üzerindeki GND pininden siyah bir kabloyu arka mavi raya bağlayın
Mavi raydaki pim 28'e bağlayın.
Adım 6. Arka mavi raydan siyah bir kabloyu her biri için pim 29'daki ön mavi raya bağlayın
Arduino'ya zarar vereceğiniz için kırmızı rayları bağlamayın.
Adım 7. Pin 30'daki ön kırmızı raydan Arduino'daki 5V pinine kırmızı bir kablo bağlayın
Bu Arduino'ya güç sağlayacaktır.
Adım 8. Basmalı düğmeyi 24-26 numaralı pimlerdeki sıralar arasındaki boşluğa yerleştirin
Bu anahtar, gücü fişten çekmenize gerek kalmadan robotu kapatmanıza olanak tanır.
Adım 9. H24'ten kırmızı bir kabloyu sensörün sağındaki bir sonraki mevcut pimdeki kırmızı raya bağlayın
Bu, düğmeye güç verecektir.
Adım 10. H26'yı mavi raya bağlamak için direnci kullanın
Birkaç adım önce bağladığınız siyah kablonun hemen yanındaki pime bağlayın.
Adım 11. G26'dan Arduino'daki pin 2'ye beyaz bir kablo bağlayın
Bu, Arduino'nun basma düğmesini kaydetmesine izin verecektir.
Bölüm 4/6: Arduino Yazılımını Yükleme
Adım 1. Arduino IDE'yi indirin ve çıkarın
Bu Arduino geliştirme ortamıdır ve daha sonra Arduino mikro denetleyicinize yükleyebileceğiniz talimatları programlamanıza olanak tanır. arduino.cc/en/main/software adresinden ücretsiz olarak indirebilirsiniz. İndirilen dosyayı çift tıklatarak açın ve içindeki klasörü erişimi kolay bir konuma taşıyın. Programı gerçekten yüklemeyeceksiniz. Bunun yerine, arduino.exe'ye çift tıklayarak çıkarılan klasörden çalıştıracaksınız.
Adım 2. Pil takımını Arduino'ya bağlayın
Güç vermek için pil arka jakını Arduino üzerindeki konektöre takın.
Adım 3. Arduino'yu USB üzerinden bilgisayarınıza takın
Windows büyük olasılıkla aygıtı tanımayacaktır.
Adım 4. tuşuna basın
⊞ Kazan + R ve yazın devmgmt.msc.
Bu, Aygıt Yöneticisini başlatacaktır.
Adım 5. "Diğer cihazlar" bölümünde "Bilinmeyen cihaz" üzerine 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, bunun yerine "Özellikler"e tıklayın, "Sürücü" sekmesini seçin ve ardından "Sürücüyü Güncelle"ye tıklayın.
6. Adım. "Sürücü yazılımı için bilgisayarımı tara'yı seçin
" Bu, Arduino IDE ile birlikte gelen sürücüyü seçmenize izin verecektir.
7. Adım. "Gözat"a tıklayın ve daha önce çıkardığınız klasöre gidin
İçinde bir "sürücüler" klasörü bulacaksınız.
Adım 8. "Sürücüler" klasörünü seçin ve "Tamam" ı tıklayın
" Bilinmeyen yazılım hakkında uyarılırsanız devam etmek istediğinizi onaylayın.
Bölüm 5/6: Robotu Programlama
Adım 1. IDE klasöründeki arduino.exe dosyasına çift tıklayarak Arduino IDE'yi başlatın
Boş bir proje ile karşılaşacaksınız.
Adım 2. Robotunuzun düz gitmesini sağlamak için aşağıdaki kodu yapıştırın
Aşağıdaki kod Arduino'nuzun sürekli ilerlemesini sağlayacaktır.
#include // bu, programa "Servo" kitaplığını ekler // aşağıdaki iki servo nesnesi oluşturur Servo leftMotor; Servo sağMotor; geçersiz kurulum() { leftMotor.attach(12); // servolarınızın 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); // sürekli dönüş ile 180, servoya tam hızda "ileri" hareket etmesini söyler. doğruMotor. yaz (0); // bunların ikisi de 180'deyse, servolar ters çevrildiği için robot bir daire içinde gidecektir. "0," tam hızda "geri" hareket etmesini söyler. }
Adım 3. Programı oluşturun ve yükleyin
Programı oluşturmak ve bağlı Arduino'ya yüklemek için sol üst köşedeki sağ ok düğmesine tıklayın.
Program yüklendikten sonra ilerlemeye devam edeceğinden robotu yüzeyden kaldırmak isteyebilirsiniz
Adım 4. Kill switch işlevini ekleyin
Kill anahtarını etkinleştirmek için kodunuzun "void loop()" bölümüne, "write()" işlevlerinin üzerine aşağıdaki kodu ekleyin.
if(digitalRead(2) == HIGH) // Arduino'nun pin 2'sinde butona basıldığında bu kayıt olur { while(1) { leftMotor.write(90); // "90", servolar için sağa dönmeyi durdurmalarını söyleyen nötr konumdurMotor.write(90); } }
Adım 5. Kodunuzu yükleyin ve test edin
Eklenen kill switch kodu ile robotu yükleyip test edebilirsiniz. Siz düğmeye basana kadar ilerlemeye devam etmelidir, bu noktada hareket etmeyi durduracaktır. Tam kod şöyle görünmelidir:
#include // aşağıdaki iki servo nesnesi oluşturur Servo leftMotor; 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); }
Bölüm 6/6: Örnek
Adım 1. Bir örnek izleyin
Aşağıdaki kod, bir engelle karşılaştığında sola dönmesini sağlamak için robota bağlı sensörü kullanacaktır. Her parçanın ne yaptığıyla ilgili ayrıntılar için koddaki yorumlara bakın. Aşağıdaki kod programın tamamıdır.
#include Servo solMotor; Servo sağMotor; const int serialPeriod = 250; // bu konsola çıkışı her 1/4 saniyede bir unsigned long timeSerialDelay = 0; const int döngüPeriod = 20; // bu, sensörün ne sıklıkla okuma alacağını 20ms'ye ayarlar, bu 50Hz'lik bir frekanstır işaretsiz uzun timeLoopDelay = 0; // bu, Arduino üzerindeki pinlere TRIG ve ECHO fonksiyonlarını atar. Farklı bağladıysanız buradaki sayılarda ayarlamalar yapın const int ultrasonic2TrigPin = 8; const int ultrasonik2EchoPin = 9; int ultrasonik2Mesafe; int ultrasonik2Süre; // 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 durum = DRIVE_FORWARD; // 0 = ileri sür (DEFAULT), 1 = sola dön boşluk ayarı() { Serial.begin(9600); // bu sensör pin konfigürasyonları pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); // bu, motorları leftMotor.attach(12) Arduino pinlerine atar; sağMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // bu, kill anahtarını algılar { while(1) { leftMotor.write(90); sağMotor.write(90); } } debugOutput(); // hata ayıklama mesajlarını seri konsola yazdırır if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // bu sensöre ölçülen mesafeleri okuması ve kaydetmesi talimatını verir stateMachine(); timeLoopDelay = millis(); } } void stateMachine() { if(durum == DRIVE_FORWARD) // eğer hiçbir engel algılanmadıysa { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // robotun önünde hiçbir şey yoksa. ultrasonikMesafe, engel yoksa bazı ultrasonikler için 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önmesi yaklaşık 0,5 saniye sürer. Tekerlekleriniz, unsigned long turnStartTime = millis(); örneğinden farklı bir boyuttaysa bunu ayarlamanız gerekebilir. // dönmeye başladığımız zamanı kaydedin while((millis()-turnStartTime) < timeToTurnLeft) // timeToTurnLeft geçene kadar bu döngüde kalın { // sola dönün, her ikisi de "180" olarak ayarlandığında döneceğini unutmayın. 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 komutları değiştirmeniz gerekebilir. digitalWrite(ultrasonic2TrigPin, YÜKSEK); gecikmeMikrosaniye(10); // trig pinini en az 10 mikrosaniye boyunca yüksek tutar 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(); } }