İçindekiler:

[Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır - Başparmak Robotu - Servo Motor - Kaynak Kodu: 26 Adım (Resimlerle)
[Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır - Başparmak Robotu - Servo Motor - Kaynak Kodu: 26 Adım (Resimlerle)

Video: [Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır - Başparmak Robotu - Servo Motor - Kaynak Kodu: 26 Adım (Resimlerle)

Video: [Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır - Başparmak Robotu - Servo Motor - Kaynak Kodu: 26 Adım (Resimlerle)
Video: Arduino, или сделай сам 2024, Kasım
Anonim
Image
Image
[Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır | Başparmak Robotu | Servo Motor | Kaynak kodu
[Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır | Başparmak Robotu | Servo Motor | Kaynak kodu

Başparmak Robotu. MG90S servo motorun bir potansiyometresi kullanıldı. Çok eğlenceli ve kolay! Kod çok basit. Sadece 30 satır civarında. Hareket yakalamaya benziyor.

Lütfen herhangi bir soru veya geri bildirim bırakın!

[Talimat]

  • Kaynak Kodu
  • 3D baskı dosyaları

[Yapımcı hakkında]

Youtube

Adım 1: ARDUINO PARÇALARI

ARDUINO PARÇALARI
ARDUINO PARÇALARI
ARDUINO PARÇALARI
ARDUINO PARÇALARI
ARDUINO PARÇALARI
ARDUINO PARÇALARI

Arduino IDE'yi yükleyin

https://www.arduino.cc/en/Main/Software

CH340 Sürücüsünü yükleyin (Çince versiyonu için)

https://www.wch.cn/download/CH341SER_ZIP.html

İNDİR - kaynak kodu

  • https://github.com/happythingsmaker/ThumbsRobot
  • Gördüğünüz gibi bir zip dosyası var. Tüm dosyayı ayıklayın ve kaynak kod dosyasına çift tıklayın.

Anakart / İşlemci / Com bağlantı noktası seçin

  • Arduino Nano
  • ATmega328P (Eski Önyükleyici)

arduino nano'nuzu takın

USB kablosunu takın, yeni bir bağlantı noktası görünecektir

Gelişmekte olan com portunu bulun / seçin

  • Görünen bağlantı noktasına tıklayın ve yükle düğmesine basın
  • Yükle düğmesine basın

Adım 2: 3D BASKI PARÇALARI

3D BASKI PARÇALARI
3D BASKI PARÇALARI

3d modelleme dosyalarını Thingiverse'den indirin

https://www.thingiverse.com/thing:2844993

Tüm parçaları tek tek yazdırın

Adım 3: Devre Parçası

Devre Parçası
Devre Parçası

Arduino Nano Genişletme Kartını kullanın. Arduino Nano'nun kendisinde çok fazla pin bulunmadığından, bir genişletme kartı kullanmanız gerekecektir.

Motora bağlı kablolara baktığınızda üç renk görebilirsiniz. Sarı, Kırmızı ve Kahverengi. Kahverengi G (Toprak) ile bağlanmalıdır.

Sonraki adımlarda, tekrar yakından inceleyeceğiz.

4. Adım: DONANIM BÖLÜMÜ - Tüm Parçaları Hazırlayın

DONANIM BÖLÜMÜ - Tüm Parçaları Hazırlayın
DONANIM BÖLÜMÜ - Tüm Parçaları Hazırlayın

[Parçalar]

  • 1 x Arduino Nano
  • 1 x Arduino Nano Genişletme Kartı
  • 6 x Servo Motor
  • 2 x Oyuncak göz topları
  • 12 x Vidalı Cıvata (2 * 6mm)

[Aletler]

  • 3 boyutlu yazıcı (Anet A8)
  • 3d baskı için filament (PLA 1.75mm)
  • Tel Makası
  • Tel Ayırıcı
  • Sıcakta eriyen tutkal tabancası
  • Tornavida (+)
  • Elektronik Bant
  • Lehimleme Aletleri(Hakko)
  • Lehimleme Eli
  • Elektrikli Tornavida

Adım 5: 3 Servo Motoru Konum Sensörüne Değiştirin

Aşağıdaki adımlar, bir servo motoru konum sensörüne nasıl değiştireceğinizi gösterir. temel olarak çoğu servo motor, bir açı değeri elde etmek için bir potansiyometre veya kodlayıcıya sahiptir.

Bu potansiyometrenin kendisini kullanacağız. kasayı açmamız, kartı sökmemiz ve yeniden kablolamamız gerekiyor.

Adım 6: Arka Taraftaki 4 Cıvatayı Sökün ve Ön Kasayı Açın

Arka Taraftaki 4 Cıvatayı Sökün ve Ön Kasayı Açın
Arka Taraftaki 4 Cıvatayı Sökün ve Ön Kasayı Açın
Arka Taraftaki 4 Cıvatayı Sökün ve Ön Kasayı Açın
Arka Taraftaki 4 Cıvatayı Sökün ve Ön Kasayı Açın

Çok küçük oldukları için küçük bir tornavidaya ihtiyacınız olacak. Motorun ön, gövde ve arka olmak üzere 3 parçası vardır.

Ön tarafı açtığınızda dişlileri göreceksiniz. Aslında bu motoru "motor" olarak kullanmıyoruz. Yani teorik olarak viteslere gerek kalmadı. Ancak, çalışma açısının hala dönme sınırlaması olması için bunların bir kısmını kullanacağız.

7. Adım: 3. Vites'i çıkarın

3. Vites'i çıkarın
3. Vites'i çıkarın
3. Vites'i çıkarın
3. Vites'i çıkarın
3. Vites'i çıkarın
3. Vites'i çıkarın

Servo motordaki potansiyometrenin 180 derece civarında bir açı sınırlaması vardır. Potansiyometrenin kendi sınırlama mekanizması vardır ancak çok zayıftır. Sıklıkla kolayca kırılır. Dişli onu korumak için başka bir mekanizma verir. Birinci vites, ikinci vitese temas edecek plastik bir tampona sahiptir.

Genel çerçeve için kesinlikle birinci vitese ihtiyacımız var, sınırlama için ikinci vitese ihtiyaç var. Dolayısıyla onlardan kurtulamayız. Bunların yerine üçüncü vitesi kaldırabiliriz.

Neden bir vitesi çıkarmamız gerektiğini merak ediyor olabilirsiniz. Bu üç servo motor açı bilgisi almak için kullanılacaktır. İçlerinde dişliler varsa, hareket sert olacaktır. Yani, onlardan bir dişliden kurtulmalıyız.

Adım 8: Yeniden Kablolama / Lehimleme

Yeniden kablolama / Lehimleme
Yeniden kablolama / Lehimleme

Motorlara bağlı olan kabloları kesin.

Adım 9: Bir Lehimleme Aleti Kullanın ve Kartı Çıkarın

Bir Lehimleme Aleti Kullanın ve Kartı Çıkarın
Bir Lehimleme Aleti Kullanın ve Kartı Çıkarın
Bir Lehimleme Aleti Kullanın ve Kartı Çıkarın
Bir Lehimleme Aleti Kullanın ve Kartı Çıkarın

Adım 10: Bir Tel Kesin ve Lehimlemeye Hazırlayın

Bir Tel Kesin ve Lehimlemeye Hazırlanın
Bir Tel Kesin ve Lehimlemeye Hazırlanın
Bir Tel Kesin ve Lehimlemeye Hazırlanın
Bir Tel Kesin ve Lehimlemeye Hazırlanın

ve biraz macun sürün ve kabloya biraz kurşun koyun

Adım 11: Lehimleyin

Lehimlemek
Lehimlemek
Lehimlemek
Lehimlemek
Lehimlemek
Lehimlemek
Lehimlemek
Lehimlemek

en sol taraftan kırmızı sarı ve kahverengi

Adım 12: Üzerine Biraz Yapıştırıcı Yapın

Üzerine Biraz Tutkal koyun
Üzerine Biraz Tutkal koyun
Üzerine Biraz Tutkal koyun
Üzerine Biraz Tutkal koyun

ve arka tarafını kurtar

2 potansiyometreye daha ihtiyacımız var. aynı işi diğer iki motor için yapın

Adım 13: İlk Ortak Bodrum Yapın

İlk Ortak Bodrum Yapın
İlk Ortak Bodrum Yapın
İlk Ortak Bodrum Yapın
İlk Ortak Bodrum Yapın
İlk Ortak Bodrum Yapın
İlk Ortak Bodrum Yapın

Bu projeyi yapmak için bir pişirme tahtası kullandım. onu kullanmak ucuz ve sağlamdır. Çerçeveyi tahtaya sabitlemek için sivri uçlu vidalar kullanmanız gerekecektir. Aynı anda delik ve iplik yapar.

6 motor var. Sol taraftaki 3 motor orijinal motorlardır. Öte yandan, önceki adımda modifiye edilmiş 3 motor vardır.

Adım 14: Yaw Joint Yapın

Yaw Eklemini Yapın
Yaw Eklemini Yapın
Yaw Eklemini Yapın
Yaw Eklemini Yapın

M2*6mm vidalı cıvata kullanmanız gerekecektir.

Adım 15: Sapma Mafsalını Birinci Motorla Birleştirin

Sapma Mafsalını Birinci Motorla Birleştirin
Sapma Mafsalını Birinci Motorla Birleştirin
Sapma Mafsalını Birinci Motorla Birleştirin
Sapma Mafsalını Birinci Motorla Birleştirin

Son resimde gördüğünüz gibi derzi yatay yönde yerleştirmeniz gerekecek. Ve konum, hem motorun hem de potansiyometrenin 90 derece olmalıdır.

Başka bir deyişle, bu yalpa mafsalını o konumdan saat yönünde ve saat yönünün tersine 90 derece döndürebilirsiniz.

Adım 16: Arduino Nano'yu Arduino Nano Genişletme Kartı ile Birleştirin

Arduino Nano Genişletme Kartı ile Arduino Nano'yu Birleştirin
Arduino Nano Genişletme Kartı ile Arduino Nano'yu Birleştirin
Arduino Nano Genişletme Kartı ile Arduino Nano'yu Birleştirin
Arduino Nano Genişletme Kartı ile Arduino Nano'yu Birleştirin

yönden emin olun. USB bağlantı noktası, DC jakı ile aynı tarafta olacaktır.

Adım 17: İlk Katman Bağlantısı

İlk Katman Bağlantısı
İlk Katman Bağlantısı
İlk Katman Bağlantısı
İlk Katman Bağlantısı

Potansiyometre Arduino'nun Analog 0 pinine bağlanır. Doğru şekilde takmanız gerekir. Bu Arduino Nano, 8 kanallı ADC'ye (Analog Dijital Dönüştürücü) sahiptir. Temel olarak, potansiyometre analog seviye veya voltaj verir. ADC pinlerini kullanarak bu volt değerini okuyabilirsiniz.

Diğer yandan servo motor Arduino'nun Digital 9'una bağlanmıştır. Servo motorlar PWM (Pulse Width Modulation) kullanılarak kontrol edilebilir. Arduino Nano, 6 kanallı PWM pinine (pin 9, 10, 11, 3, 5 ve 6) sahiptir. Yani 6 adete kadar servo motor kullanabiliriz.

Bu adımda, kaynak kodu şöyle görünür

#Dahil etmek

Servo servo[6];void setup() { pinMode(A0, INPUT); servo[0].attach(9);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180));}

Adım 18: İkinci Katmanı Birleştirin

İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin
İkinci Katmanı Birleştirin

İkinci katmanın yapımı da basittir. Dikkat etmeniz gereken kabloyu Arduino'ya takarken doğru yere koymaktır.

  • Sol Servomotor pin 10 ile bağlanır
  • Sağ potansiyometre A1 ile bağlanır

#Dahil etmek

Servo servo[6];void setup() { pinMode(A0, INPUT); pinMode(A1, GİRİŞ); servo[0].attach(9); servo[1].attach(10);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180)); tempADC[1] = analogRead(A1); servo[1].write(map(tempADC[1], 0, 1023, 0, 180));}

Adım 19: 3. Katman Çerçevelerini Birleştirin

3. Katman Çerçevelerini Birleştirin
3. Katman Çerçevelerini Birleştirin

Adım 20: 2. Motor / Potansiyometre ile Çerçeveyi Birleştirin

2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin
2. Motor / Potansiyometre ile Çerçeveyi Birleştirin

Adım 21: 3. Motoru Ortak Çerçeveye Monte Edin

3. Motoru Ortak Çerçeveye Monte Edin
3. Motoru Ortak Çerçeveye Monte Edin
3. Motoru Ortak Çerçeveye Monte Edin
3. Motoru Ortak Çerçeveye Monte Edin

Adım 22: Kabloyu Arduino'ya Takın

Kabloyu Arduino'ya Takın
Kabloyu Arduino'ya Takın
Kabloyu Arduino'ya Takın
Kabloyu Arduino'ya Takın
  • 3. motor pin 11 ile bağlanır
  • 3. potansiyometre A2 ile bağlanır

kod şuna benziyor

#include Servo servo[6];void setup() { pinMode(A0, INPUT); pinMode(A1, GİRİŞ); pinMode(A2, GİRİŞ); servo[0].attach(9); servo[1].attach(10); servo[2].attach(11);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180)); tempADC[1] = analogRead(A1); servo[1].write(map(tempADC[1], 0, 1023, 0, 180)); tempADC[2] = analogRead(A2); servo[2].write(map(tempADC[2], 0, 1023, 0, 180));}

Adım 23: Başparmak Çerçevesini Birleştirin

Başparmak Çerçevesini Birleştirin
Başparmak Çerçevesini Birleştirin
Başparmak Çerçevesini Birleştirin
Başparmak Çerçevesini Birleştirin

Adım 24: Test Edin ve Açıyı Ayarlayın

Test Et ve Açıyı Ayarla
Test Et ve Açıyı Ayarla
Test Et ve Açıyı Ayarla
Test Et ve Açıyı Ayarla
Test Et ve Açıyı Ayarla
Test Et ve Açıyı Ayarla

USB kablosunu herhangi bir güç kaynağına takın, robot yakında açılacaktır. Açı biraz farklı olabilir. Açıyı tek tek ayarlayın.

Adım 25: Bir Robot Daha?

Bir Robot Daha mı?
Bir Robot Daha mı?
Bir Robot Daha mı?
Bir Robot Daha mı?

Bir robot daha yapmak istersen, yapabilirsin. Servoları 3, 5 ve 6'ya takın.

#include Servo servo[6]; geçersiz kurulum() { pinMode(A0, INPUT); pinMode(A1, GİRİŞ); pinMode(A2, GİRİŞ); servo[0].attach(9); servo[1].attach(10); servo[2].attach(11); servo[3].attach(3); servo[4].attach(5); servo[5].attach(6);}int tempADC[3] = {0};void loop() { tempADC[0] = analogRead(A0); servo[0].write(map(tempADC[0], 0, 1023, 0, 180)); servo[3].write(map(tempADC[0], 0, 1023, 0, 180)); tempADC[1] = analogRead(A1); servo[1].write(map(tempADC[1], 0, 1023, 0, 180)); servo[4].write(map(tempADC[1], 0, 1023, 0, 180)); tempADC[2] = analogRead(A2); servo[2].write(map(tempADC[2], 0, 1023, 0, 180)); servo[5].write(map(tempADC[2], 0, 1023, 0, 180));}

Adım 26: Tamamlandı

Tamamlandı!
Tamamlandı!
Tamamlandı!
Tamamlandı!
Tamamlandı!
Tamamlandı!

Herhangi bir sorunuz varsa, lütfen bırakmaktan çekinmeyin:)

Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması

Mikrodenetleyici Yarışmasında İkincilik

Önerilen: