İçindekiler:

NAIN 1.0 - Arduino Kullanan Temel İnsansı Robot: 6 Adım
NAIN 1.0 - Arduino Kullanan Temel İnsansı Robot: 6 Adım

Video: NAIN 1.0 - Arduino Kullanan Temel İnsansı Robot: 6 Adım

Video: NAIN 1.0 - Arduino Kullanan Temel İnsansı Robot: 6 Adım
Video: Самый Маленький Пистолет Nerf в Мире Стреляет в Муравья 2024, Kasım
Anonim
NAIN 1.0 - Arduino Kullanan Temel İnsansı Robot
NAIN 1.0 - Arduino Kullanan Temel İnsansı Robot

Nain 1.0, temelde 5 ayrılabilir modüle sahip olacaktır.

1) Kol – servolarla kontrol edilebilen.

2) Tekerlekler – DC motorlarla kontrol edilebilen.

3) Bacak – Nain, hareket için tekerlekler veya bacaklar arasında geçiş yapabilecektir.

4) Baş – Başı çeşitli sallanmalar için kontrol edilebilir.

5) Yüz Tanıma Erişimi için arayüz oluşturulabilen kamera modülü.

Bununla birlikte NAIN, kullanıcılarla konuşabilecek ve etkileşime geçebilecek ve dahili saatiyle size zamanı gösterebilecek. Wi-fi/Bluetooth kullanarak kablosuz kontrole sahip olacaktır.

Adım 1: Gerekli Bileşenler

Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
  1. Servo Motorlar -4
  2. Arduino Mega - 1
  3. Ahududu Pi - 1
  4. Usb Kamera -1
  5. Hoparlör -1
  6. DC Motorlar -2
  7. L293D -1
  8. Pil Paketi - 1
  9. Tekerlekler -2
  10. Tekerlek Tekerlekleri - 2

Bunlarla birlikte, gövdeyi yapmak için alüminyum kare şeritlere ve bunlara uygun şekilde oturması için vida ve somunlara ihtiyacınız olacak.

Adım 2: Vücut Yapısı

Vücut yapısı
Vücut yapısı

Gövde yapısı, kolayca monte edilmesine yardımcı olacak hafif alüminyum kare çubuklardan yapılacaktır.

Şimdi bunları şekilde gösterildiği gibi birleştirin ve ayrıca servo motorların kollara takılacağı uygun boşlukları kesin.

Altına altıgen bir ahşap taban takın.

Ahşap tabanın altına, herhangi bir çizgi izleyen robotta yaptığımız gibi DC motorları ve tekerlekleri takın.

İlginç bir şekilde, biri robotun önüne diğeri arkasına olmak üzere iki tekerlek ekleyin.

Adım 3: Kablolama ve Kodlama

Kablolama ve Kodlama
Kablolama ve Kodlama
Kablolama ve Kodlama
Kablolama ve Kodlama

Farklı modülleri bağlamak için bu bölümde ekli kodlara bakın.

Önce bağımsız kodlar kullanarak her bir modülü test ettik ve ardından hepsini bir araya getirdik ve bir bluetooth modülü kullanarak tekerleklerin ve Kolların hareketini kontrol ettik.

4. Adım: Raspberry Pi ve Görüntü Tanıma

Raspberry Pi ve Görüntü Tanıma
Raspberry Pi ve Görüntü Tanıma
Raspberry Pi ve Görüntü Tanıma
Raspberry Pi ve Görüntü Tanıma

Görüntü Tanıma, bir USB Kamera ve Raspberry Pi kullanılarak gerçekleştirilir.

Bunun için Pi'nize OPEN CV kütüphanesini kurmanız gerekecek.

Bunu buradan yapabilirsiniz -

Ardından, haar kaskadını kullanarak görüntü tanıma gerçekleştirmeniz gerekecektir.

Bunu buradan yapabilirsiniz -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc

Yukarıdaki bağlantıyı inceledikten ve bunu takip ettikten sonra, kullandığım son kodda aşağıya yapıştırdığım bazı değişiklikler yaptım -

VERİ SETİ JENERATÖRÜ:

importcv2

kamera = cv2. VideoCapture(0)

dedektör=cv2. CascadeClassifier('Classifiers/face.xml')

ben=0

ofset=50

name=raw_input('kimliğinizi girin')

Doğru iken:

ret, im =cam.read()

gri=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)

yüzler=detektör.detectMultiScale(gri, scaleFactor=1,2, minNeighbors=5, minSize=(100, 100), flags=cv2. CASCADE_SCALE_IMAGE)

yüzlerde for(x, y, w, h):

ben=i+1

cv2.imwrite("dataSet/face."+name +'.'+ str(i) + ".jpg", gri[y-offset:y+h+offset, x-offset:x+w+offset])

cv2.rectangle(im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)

cv2.imshow('im', im[y-offset:y+h+ofset, x-offset:x+w+ofset])

if cv2.waitKey(100) & 0xFF == ord('q'):

kırmak

# numune sayısı 20'den fazla ise ara

elif (i>20):

kırmak

kamera sürümü()

cv2.destroyAllWindows()

Kimlik doğrulama için kullanılacak fotoğraflarınızın bir tarih kümesini oluşturacaktır.

EĞİTİMCİ:

importcv2, işletim sistemi

numpy'yi np olarak içe aktar

PIL içe aktarma Görüntüsünden

tanıyıcı = cv2.face.createLBPHFaceRecognizer()

cascadePath = "Sınıflandırıcılar/face.xml"

faceCascade = cv2. CascadeClassifier(cascadePath);

yol = 'veri kümesi'

def get_images_and_labels(yol):

image_paths = [os.path.join(path, f) for os.listdir(path)]

# resim yüz resimleri içerecek

resimler =

# etiket, görüntüye atanan etiketi içerecek

etiketler =

image_paths içindeki image_path için:

# Resmi okuyun ve gri tonlamaya dönüştürün

image_pil = Image.open(image_path).convert('L')

# Görüntü biçimini numpy dizisine dönüştürün

resim = np.array(image_pil, 'uint8')

# Resmin etiketini alın

nbr = int(os.path.split(image_path)[-1].split(".")[1].replace("face-", ""))

#nbr=int(''.join(str(ord(c)) c için nbr))

baskı numarası

# Görüntüdeki yüzü algıla

yüzler = faceCascade.detectMultiScale(image)

# Yüz algılanırsa, yüzü görüntülere ve etiketi etiketlere ekleyin

yüzlerde (x, y, w, h) için:

resimler.append(resim[y: y + y, x: x + w])

etiketler.append(nbr)

cv2.imshow("Eğitim kümesine yüzler ekleniyor…", image[y: y + h, x: x + w])

cv2.beklemeAnahtarı(10)

# resim listesini ve etiket listesini döndür

dönüş resimleri, etiketler

resimler, etiketler = get_images_and_labels(path)

cv2.imshow('test', resimler[0])

cv2.bekleme Anahtarı(1)

tanıyıcı.tren(görüntüler, np.array(etiketler))

tanıyıcı.save('eğitmen/eğitmen.yml')

cv2.destroyAllWindows()

DEDEKTÖR

importcv2

numpy'yi np olarak içe aktar

işletim sistemini içe aktar

c=0

tanıyıcı = cv2.face.createLBPHFaceRecognizer()

tanıyıcı.load('eğitmen/eğitmen.yml')

cascadePath = "Sınıflandırıcılar/face.xml"

faceCascade = cv2. CascadeClassifier(cascadePath);

kamera = cv2. VideoCapture(0)

fontface = cv2. FONT_HERSHEY_SIMPLEX

yazı tipi ölçeği = 1

yazı tipi rengi = (255, 255, 255)

Doğru iken:

ret, im =cam.read()

gri=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)

yüzler=faceCascade.detectMultiScale(gri, 1,2, 5)

yüzlerde for(x, y, w, h):

cv2.rectangle(im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)

Id = tanıyıcı.tahmin(gri[y:y+h, x:x+w])

if(Id<70):

if(Id==1):

Id="Shashank"

elif(Id==2):

if(c==0):

Id="Şivam"

c=c+1

os.system("'Hoş Geldiniz Shivam Erişimi Verildi'")

Başka:

Id="Şivam"

Başka:

Id="Bilinmeyen"

cv2.putText(im, str(Id), (x, y+h), yazı tipi yüzü, yazı tipi ölçeği, yazı tipi rengi)

cv2.imshow('im', im)

eğer cv2.waitKey(10) & 0xFF==ord('q'):

kırmak

kamera sürümü()

cv2.destroyAllWindows()

Adım 5: LCD ve Hoparlör

Ayrıca bir I2C LED Ekran ve bir hoparlör kullandım.

LED Arduino Mega üzerinden kontrol edilir ve kodu son kodda verilir.

Hoparlör için Raspberry Pi ile bağlantılıdır ve eSpeak Utility kullanır.

Referansını burada bulabilirsiniz -

Adım 6: Son Adımlar

Her şeyi bir araya getirin ve patlamaya hazır olun.

Önerilen: