Daftar Isi:

NAIN 1.0 - Robot Humanoid Dasar Menggunakan Arduino: 6 Langkah
NAIN 1.0 - Robot Humanoid Dasar Menggunakan Arduino: 6 Langkah

Video: NAIN 1.0 - Robot Humanoid Dasar Menggunakan Arduino: 6 Langkah

Video: NAIN 1.0 - Robot Humanoid Dasar Menggunakan Arduino: 6 Langkah
Video: Persiapan Menggunakan Arduino Nano //Let's Talk Arduino Part-2// Dasar Arduino 2024, Desember
Anonim
NAIN 1.0 - Robot Humanoid Dasar Menggunakan Arduino
NAIN 1.0 - Robot Humanoid Dasar Menggunakan Arduino

Nain 1.0 pada dasarnya akan memiliki 5 modul yang dapat dilepas-

1) Lengan – yang dapat dikontrol melalui servos.

2) Roda – yang dapat dikendalikan dengan motor dc.

3) Kaki – Nain akan dapat berpindah antar roda atau kaki untuk bergerak.

4) Kepala – Kepalanya dapat dikontrol untuk berbagai anggukan.

5) Modul kamera- yang dapat dihubungkan untuk Akses Pengenalan Wajah.

Bersamaan dengan ini NAIN akan dapat berbicara dan berinteraksi dengan pengguna dan dapat menunjukkan waktu kepada Anda dengan jam bawaannya. Ini akan memiliki kontrol nirkabel menggunakan Wi-fi / Bluetooth.

Langkah 1: Komponen yang Dibutuhkan

Komponen yang Dibutuhkan
Komponen yang Dibutuhkan
Komponen yang Dibutuhkan
Komponen yang Dibutuhkan
Komponen yang Dibutuhkan
Komponen yang Dibutuhkan
  1. Motor Servo -4
  2. Arduino Mega - 1
  3. Raspberry Pi - 1
  4. Kamera Usb -1
  5. Pembicara -1
  6. Motor DC -2
  7. L293D -1
  8. Paket Baterai - 1
  9. Roda -2
  10. Roda Kastor - 2

Bersamaan dengan ini, Anda akan membutuhkan strip aluminium persegi untuk membuat bodi dan sekrup dan mur agar pas dengan benar.

Langkah 2: Struktur Tubuh

Struktur Tubuh
Struktur Tubuh

Struktur bodi akan dibuat dari batang aluminium persegi ringan yang akan membantu dalam perakitan dengan mudah.

Mulai sekarang rakit mereka seperti yang ditunjukkan pada gambar dan juga potong ruang yang tepat untuk motor servo untuk dipasang di lengan.

Pasang alas kayu heksagonal di bagian bawah.

Di bawah dasar kayu, pasang motor dan roda DC seperti yang kita lakukan pada robot pengikut garis manapun.

Menariknya, Tambahkan dua roda kastor - satu di bagian depan dan lainnya di bagian belakang robot.

Langkah 3: Pengkabelan dan Pengodean

Pengkabelan dan Pengkodean
Pengkabelan dan Pengkodean
Pengkabelan dan Pengkodean
Pengkabelan dan Pengkodean

Untuk memasang modul yang berbeda, lihat kode yang terlampir di bagian ini.

Pertama kami menguji setiap modul menggunakan kode mandiri dan kemudian kami menggabungkan semuanya menjadi satu dan mengontrol pergerakan roda dan Lengan menggunakan modul bluetooth.

Langkah 4: Raspberry Pi dan Pengenalan Gambar

Raspberry Pi dan Pengenalan Gambar
Raspberry Pi dan Pengenalan Gambar
Raspberry Pi dan Pengenalan Gambar
Raspberry Pi dan Pengenalan Gambar

Pengenalan Gambar dilakukan menggunakan Kamera USB dan Raspberry Pi.

Untuk itu, Anda perlu menginstal pustaka OPEN CV di Pi Anda.

Anda dapat melakukannya dari sini -

Kemudian Anda perlu melakukan pengenalan gambar menggunakan haar cascade.

Anda dapat melakukannya dari sini -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc

Setelah mempelajari tautan di atas dan mengikutinya, saya telah membuat beberapa perubahan pada kode terakhir yang saya gunakan yang saya tempel di bawah ini -

PEMBANGKIT DATASET:

imporcv2

cam = cv2. VideoCapture(0)

detector=cv2. CascadeClassifier('Classifiers/face.xml')

saya=0

offset = 50

nama=raw_input('masukkan id anda')

sementara Benar:

ret, saya =cam.read()

abu-abu=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)

face=detector.detectMultiScale(abu-abu, scaleFactor=1.2, minNeighbors=5, minSize=(100, 100), flags=cv2. CASCADE_SCALE_IMAGE)

untuk (x, y, w, h) di wajah:

saya=i+1

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

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

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

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

merusak

# pecah jika jumlah sampel lebih dari 20

elif (i>20):

merusak

cam.rilis()

cv2.destroySemuaWindows()

Ini akan membuat dataset foto Anda yang akan digunakan untuk otentikasi.

PELATIH:

importcv2, os

impor numpy sebagai np

dari Gambar impor PIL

pengenal = cv2.face.createLBPHFaceRecognizer()

cascadePath = "Pengklasifikasi/face.xml"

faceCascade = cv2. CascadeClassifier(cascadePath);

jalur = 'kumpulan data'

def get_images_and_labels(jalur):

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

# gambar akan berisi gambar wajah

gambar =

# label akan berisi label yang ditetapkan ke gambar

label =

untuk image_path di image_paths:

# Baca gambar dan ubah ke skala abu-abu

image_pil = Gambar.buka(jalur_gambar).convert('L')

# Ubah format gambar menjadi array numpy

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

# Dapatkan label gambar

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

#nbr=int(''.join(str(ord(c)) untuk c di nbr))

cetak nbr

# Deteksi wajah dalam gambar

wajah = faceCascade.detectMultiScale(gambar)

# Jika wajah terdeteksi, tambahkan wajah ke gambar dan label ke label

untuk (x, y, w, h) di wajah:

images.append(gambar[y: y + h, x: x + w])

labels.tambahkan(nbr)

cv2.imshow("Menambahkan wajah ke set pelatihan…", image[y: y + h, x: x + w])

cv2.waitKey(10)

# kembalikan daftar gambar dan daftar label

kembalikan gambar, label

gambar, label = get_images_and_labels(path)

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

cv2.waitKey(1)

pengenal.train(gambar, np.array(label))

pengenal.save('pelatih/pelatih.yml')

cv2.destroySemuaWindows()

DETEKTOR

imporcv2

impor numpy sebagai np

impor os

c=0

pengenal = cv2.face.createLBPHFaceRecognizer()

pengenal.load('pelatih/pelatih.yml')

cascadePath = "Pengklasifikasi/face.xml"

faceCascade = cv2. CascadeClassifier(cascadePath);

cam = cv2. VideoCapture(0)

fontface = cv2. FONT_HERSHEY_SIMPLEX

skala font = 1

warna font = (255, 255, 255)

sementara Benar:

ret, saya =cam.read()

abu-abu=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)

face=faceCascade.detectMultiScale(abu-abu, 1.2, 5)

untuk (x, y, w, h) di wajah:

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

Id = pengenal.prediksi(abu-abu[y:y+h, x:x+w])

jika (Id<70):

jika(Id==1):

Id = "Shashank"

elif(Id==2):

jika(c==0):

Id = "Siwa"

c=c+1

os.system("katakanlah 'Selamat Datang Akses Shivam Diberikan'")

lain:

Id = "Siwa"

lain:

Id = "Tidak Diketahui"

cv2.putText(im, str(Id), (x, y+h), fontface, fontscale, fontcolor)

cv2.imshow('saya', saya)

jika cv2.waitKey(10) & 0xFF==ord('q'):

merusak

cam.rilis()

cv2.destroySemuaWindows()

Langkah 5: LCD dan Speaker

Saya juga menggunakan I2C LED Display dan speaker.

LED dikendalikan melalui Arduino Mega dan kodenya diberikan dalam kode akhir.

Untuk Speaker, terhubung dengan Raspberry Pi dan menggunakan eSpeak Utility.

Anda dapat menemukan referensinya di sini -

Langkah 6: Langkah Terakhir

Kumpulkan semuanya dan bersiaplah untuk ledakan.

Direkomendasikan: