Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
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
- Motor Servo -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Kamera Usb -1
- Pembicara -1
- Motor DC -2
- L293D -1
- Paket Baterai - 1
- Roda -2
- 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 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
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
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.