Isi kandungan:
- Langkah 1: Komponen yang Diperlukan
- Langkah 2: Struktur Badan
- Langkah 3: Pendawaian dan Pengekodan
- Langkah 4: Raspberry Pi dan Pengecaman Imej
- Langkah 5: LCD dan Pembesar suara
- Langkah 6: Langkah Akhir
Video: NAIN 1.0 - Robot Humanoid Asas Menggunakan Arduino: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Nain 1.0 pada dasarnya akan mempunyai 5 modul yang boleh dilepas-
1) Lengan - yang boleh dikawal melalui servo.
2) Roda - yang boleh dikawal dengan motor dc.
3) Kaki - Nain akan dapat menukar antara roda atau kaki untuk pergerakan.
4) Kepala - Kepalanya dapat dikawal untuk pelbagai anggukan.
5) Modul kamera - yang boleh dihubungkan untuk Akses Pengecaman Wajah.
Bersama dengan NAIN ini akan dapat bercakap dan berinteraksi dengan pengguna dan dapat menunjukkan waktu dengan jam terbina dalam. Ia akan mempunyai kawalan tanpa wayar menggunakan Wi-fi / Bluetooth.
Langkah 1: Komponen yang Diperlukan
- Servo Motors -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Kamera Usb -1
- Penceramah -1
- Motor DC -2
- L293D -1
- Pek Bateri - 1
- Roda -2
- Roda Kastor - 2
Bersama-sama dengan ini, anda akan memerlukan jalur aluminium persegi untuk membuat badan dan srew dan kacang agar sesuai dengan betul.
Langkah 2: Struktur Badan
Struktur badan akan dibuat dari batang persegi aluminium ringan yang akan membantu memasangnya dengan mudah.
Sampai sekarang memasangkannya seperti yang ditunjukkan pada gambar dan juga memotong ruang yang tepat agar motor servo dipasang di lengan.
Pasang pangkalan kayu heksagon di bahagian bawah.
Di bawah dasar kayu, pasangkan motor DC dan roda seperti yang kita lakukan di mana-mana robot pengikut garis.
Menariknya, Tambah dua roda jarak - satu di bahagian depan dan yang lain di bahagian belakang robot.
Langkah 3: Pendawaian dan Pengekodan
Untuk memasang modul yang berlainan, rujuk kod yang terdapat di bahagian ini.
Mula-mula kami menguji setiap modul menggunakan kod yang berdiri sendiri dan kemudian kami menggabungkan semuanya dalam satu dan mengawal pergerakan roda dan Senjata menggunakan modul bluetooth.
Langkah 4: Raspberry Pi dan Pengecaman Imej
Pengecaman Imej dilakukan menggunakan Kamera USB dan Raspberry Pi.
Untuk itu, anda perlu memasang perpustakaan OPEN CV pada Pi anda.
Anda boleh melakukannya dari sini -
Maka anda perlu melakukan pengecaman gambar menggunakan haar cascade.
Anda boleh melakukannya dari sini -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Setelah mempelajari pautan di atas dan mengikutinya, saya telah membuat beberapa perubahan pada kod akhir yang telah saya gunakan yang saya tampalkan di bawah -
GENERATOR DATA:
importcv2
cam = cv2. VideoCapture (0)
pengesan = cv2. CascadeClassifier ('Classifiers / face.xml')
i = 0
mengimbangi = 50
name = raw_input ('masukkan id anda')
Walaupun Betul:
ret, im = cam.read ()
kelabu = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
wajah = detector.detectMultiScale (kelabu, skalaFactor = 1.2, minNeighbour = 5, minSize = (100, 100), flags = cv2. CASCADE_SCALE_IMAGE)
untuk (x, y, w, h) di muka:
i = i + 1
cv2.imwrite ("dataSet / face." + name + '.' + str (i) + ".jpg", kelabu [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 + offset, x-offset: x + w + offset])
jika cv2.waitKey (100) & 0xFF == ord ('q'):
rehat
# pecahkan jika nombor sampel lebih kurang 20
elif (i> 20):
rehat
pelepasan cam ()
cv2.destroyAllWindows ()
Ini akan membuat satu set data anda yang akan digunakan untuk pengesahan.
PELATIH:
importcv2, os
import numpy sebagai np
dari PIL import Imej
pengecam = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Pengelasan / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
jalan = 'dataSet'
def get_images_and_labels (jalan):
image_paths = [os.path.join (jalan, f) untuk f di os.listdir (jalan)]
# gambar akan mengandungi gambar wajah
gambar =
# label akan mengandungi label yang diberikan pada gambar
label =
untuk image_path di image_paths:
# Baca gambar dan ubah ke skala kelabu
image_pil = Image.open (image_path).convert ('L')
# Tukarkan format gambar menjadi susunan numpy
gambar = np.array (image_pil, 'uint8')
# Dapatkan label gambar
nbr = int (os.path.split (image_path) [- 1].split (".") [1].replace ("muka-", ""))
# nbr = int ( . gabung (str (ord (c)) untuk c dalam nbr))
cetak nbr
# Mengesan wajah dalam gambar
wajah = faceCascade.detectMultiScale (gambar)
# Jika wajah dikesan, tambahkan wajah ke gambar dan label ke label
untuk (x, y, w, h) di muka:
gambar.lampirkan (gambar [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Menambah wajah ke set latihan …", gambar [y: y + h, x: x + w])
cv2.waitKey (10)
# kembalikan senarai gambar dan senarai label
mengembalikan gambar, label
gambar, label = get_images_and_labels (jalan)
cv2.imshow ('test', gambar [0])
cv2.waitKey (1)
mengenali.train (gambar, np.array (label))
mengenali.save ('trainer / trainer.yml')
cv2.destroyAllWindows ()
PENGETUA
importcv2
import numpy sebagai np
import os
c = 0
pengecam = cv2.face.createLBPHFaceRecognizer ()
mengenali.load ('trainer / trainer.yml')
cascadePath = "Pengelasan / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
skala fon = 1
font warna = (255, 255, 255)
Walaupun Betul:
ret, im = cam.read ()
kelabu = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
wajah = faceCascade.detectMultiScale (kelabu, 1.2, 5)
untuk (x, y, w, h) di muka:
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
Id = mengenali.prediksi (kelabu [y: y + h, x: x + w])
jika (Id <70):
jika (Id == 1):
Id = "Shashank"
elif (Id == 2):
jika (c == 0):
Id = "Shivam"
c = c + 1
os.system ("espeak 'Welcome Shivam Access Diberikan'")
lain:
Id = "Shivam"
lain:
Id = "Tidak diketahui"
cv2.putText (im, str (Id), (x, y + h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
jika cv2.waitKey (10) & 0xFF == ord ('q'):
rehat
pelepasan cam ()
cv2.destroyAllWindows ()
Langkah 5: LCD dan Pembesar suara
Saya juga telah menggunakan Paparan LED I2C dan pembesar suara.
LED dikendalikan melalui Arduino Mega dan kodnya diberikan dalam kod akhir.
Untuk Speaker, ia dihubungkan dengan Raspberry Pi dan menggunakan eSpeak Utility.
Anda boleh mendapatkan rujukannya di sini -
Langkah 6: Langkah Akhir
Himpunkan segalanya dan bersiap sedia untuk meletup.
Disyorkan:
Menggunakan Flux - Asas Pematerian: 5 Langkah
Menggunakan Flux | Asas Pematerian: Setiap kali anda menyolder, pateri perlu membuat ikatan yang baik pada bahagian yang anda lekatkan. Logam bahagian dan logam pateri perlu bersentuhan langsung antara satu sama lain untuk mewujudkan ikatan yang baik. Tetapi sejak saya
Menggunakan Perfboard - Asas Pematerian: 14 Langkah (dengan Gambar)
Menggunakan Perfboard | Asas Pematerian: Sekiranya anda membina litar tetapi anda tidak mempunyai papan litar yang dirancang untuknya, menggunakan papan wangi adalah pilihan yang baik. Perfboards juga disebut Perforated Circuit Board, Prototyping Board, dan Dot PCB. Ini pada dasarnya adalah sekumpulan tembaga pad di
Cara Membuat Laman Web Asas Menggunakan Notepad: 4 Langkah
Cara Membuat Laman Web Asas Menggunakan Notepad: Adakah ada yang tertanya-tanya " bagaimana saya membuat laman web daripada program penulisan asas? &Quot; Baiklah, jelas, tidak secara khusus … Bagaimanapun, di sini saya akan menunjukkan kepada anda cara membuat ASAS laman web menggunakan notepad sahaja
Program Pro-mini Menggunakan Uno (Asas Arduino): 7 Langkah (dengan Gambar)
Program Pro-mini Menggunakan Uno (Arduino Basics): Hai semua, Dalam arahan ini saya ingin berkongsi pengalaman saya dengan Arduino pro-mini yang baru saya beli dan bagaimana saya berjaya memuat naik kod itu untuk pertama kalinya, menggunakan saya lama Arduino Uno.Arduino pro-mini mempunyai ciri-ciri berikut: Ia adalah
Asas Yang Sangat Asas dari Laman Web berasaskan Div: 7 Langkah
Asas Yang Sangat Asas dari Laman web yang berasaskan Div: Arahan ini akan menunjukkan kepada anda asas bagaimana membina laman web dengan div. Kerana jadual yang digunakan untuk susun atur adalah jahat !: pUntuk memahami arahan ini, anda perlu mengetahui html dan css asas. Sekiranya anda tidak memahami sesuatu, sila