Mục lục:
- Bước 1: Các thành phần cần thiết
- Bước 2: Cấu trúc cơ thể
- Bước 3: Đấu dây và mã hóa
- Bước 4: Raspberry Pi và nhận dạng hình ảnh
- Bước 5: Màn hình LCD và loa
- Bước 6: Các bước cuối cùng
Video: NAIN 1.0 - Robot hình người cơ bản sử dụng Arduino: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Nain 1.0 về cơ bản sẽ có 5 mô-đun có thể tháo rời-
1) Cánh tay - có thể được điều khiển thông qua Servos.
2) Bánh xe - có thể được điều khiển bằng động cơ một chiều.
3) Chân - Nain sẽ có thể chuyển đổi giữa các bánh xe hoặc chân để di chuyển.
4) Đầu - Đầu của nó có thể được điều khiển theo nhiều kiểu gật đầu khác nhau.
5) Mô-đun máy ảnh- có thể được giao diện để Truy cập nhận dạng khuôn mặt.
Cùng với NAIN này sẽ có thể nói chuyện và tương tác với người dùng và có thể hiển thị cho bạn thời gian bằng đồng hồ có sẵn của nó. Nó sẽ có một điều khiển không dây bằng Wi-fi / Bluetooth.
Bước 1: Các thành phần cần thiết
- Động cơ Servo -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Usb Camera -1
- Loa -1
- Động cơ DC -2
- L293D -1
- Bộ pin - 1
- Bánh xe -2
- Bánh xe thầu dầu - 2
Cùng với những thứ này, bạn sẽ cần các dải nhôm vuông để làm thân và các vít và đai ốc để lắp chúng đúng cách.
Bước 2: Cấu trúc cơ thể
Cấu trúc thân xe sẽ được làm bằng các thanh nhôm vuông nhẹ giúp lắp ráp dễ dàng.
Hiện tại, hãy lắp ráp chúng như thể hiện trong hình và cũng cắt ra không gian thích hợp để gắn các động cơ servo vào trong các cánh tay.
Gắn một đế gỗ hình lục giác ở phía dưới.
Bên dưới đế gỗ, gắn động cơ DC và bánh xe như chúng tôi làm trong bất kỳ robot theo dòng nào.
Điều thú vị là Thêm hai bánh xe thầu dầu - một ở phía trước và một ở phía sau của robot.
Bước 3: Đấu dây và mã hóa
Để kết nối các mô-đun khác nhau, hãy tham khảo mã đính kèm trong phần này.
Đầu tiên, chúng tôi đã thử nghiệm từng mô-đun bằng cách sử dụng mã độc lập và sau đó chúng tôi kết hợp tất cả chúng thành một và điều khiển chuyển động của bánh xe và Cánh tay bằng mô-đun bluetooth.
Bước 4: Raspberry Pi và nhận dạng hình ảnh
Nhận dạng hình ảnh được thực hiện bằng Máy ảnh USB và Raspberry Pi.
Để làm được điều đó, bạn sẽ cần cài đặt thư viện OPEN CV trên Pi của mình.
Bạn có thể làm điều đó từ đây -
Sau đó, bạn sẽ cần thực hiện nhận dạng hình ảnh bằng cách sử dụng thác haar.
Bạn có thể làm điều đó từ đây -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Sau khi nghiên cứu liên kết ở trên và làm theo liên kết đó, tôi đã thực hiện một số thay đổi trong mã cuối cùng mà tôi đã sử dụng mà tôi đang dán bên dưới -
MÁY PHÁT ĐIỆN DATASET:
importcv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('Bộ phân loại / face.xml')
i = 0
bù đắp = 50
name = raw_input ('nhập id của bạn')
trong khi Đúng:
ret, im = cam.read ()
màu xám = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
face = detector.detectMultiScale (xám, scaleFactor = 1.2, minNeighbors = 5, minSize = (100, 100), flags = cv2. CASCADE_SCALE_IMAGE)
for (x, y, w, h) in the face:
i = i + 1
cv2.imwrite ("dataSet / face." + name + '.' + str (i) + ".jpg", gray [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])
if cv2.waitKey (100) & 0xFF == ord ('q'):
nghỉ
# break nếu số lượng mẫu nhiều hơn 20
elif (i> 20):
nghỉ
cam.release ()
cv2.destroyAllWindows ()
Nó sẽ tạo ra một tập hợp các bức ảnh của bạn sẽ được sử dụng để xác thực.
TRAINER:
importcv2, hệ điều hành
nhập numpy dưới dạng np
từ Hình ảnh nhập PIL
Recogzer = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Phân loại / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (đường dẫn):
image_paths = [os.path.join (path, f) for f in os.listdir (path)]
# hình ảnh sẽ chứa hình ảnh khuôn mặt
hình ảnh =
# nhãn sẽ chứa nhãn được gán cho hình ảnh
nhãn =
cho image_path trong image_paths:
# Đọc hình ảnh và chuyển đổi sang thang độ xám
image_pil = Image.open (image_path).convert ('L')
# Chuyển đổi định dạng hình ảnh thành mảng numpy
image = np.array (image_pil, 'uint8')
# Lấy nhãn của hình ảnh
nbr = int (os.path.split (image_path) [- 1].split (".") [1].replace ("face-", ""))
# nbr = int (''. join (str (ord (c)) for c in nbr))
in nbr
# Phát hiện khuôn mặt trong ảnh
face = faceCascade.detectMultiScale (hình ảnh)
# Nếu khuôn mặt được phát hiện, hãy nối khuôn mặt vào hình ảnh và nhãn vào nhãn
for (x, y, w, h) in the face:
images.append (hình ảnh [y: y + h, x: x + w])
label.append (nbr)
cv2.imshow ("Thêm khuôn mặt vào tập trang …", hình ảnh [y: y + h, x: x + w])
cv2.waitKey (10)
# return danh sách hình ảnh và danh sách nhãn
trả lại hình ảnh, nhãn
hình ảnh, nhãn = get_images_and_labels (đường dẫn)
cv2.imshow ('test', hình ảnh [0])
cv2.waitKey (1)
Recogzer.train (hình ảnh, np.array (nhãn))
Recogzer.save ('trainer / trainr.yml')
cv2.destroyAllWindows ()
NGƯỜI PHÁT HIỆN
importcv2
nhập numpy dưới dạng np
nhập hệ điều hành
c = 0
Recogzer = cv2.face.createLBPHFaceRecognizer ()
Recogzer.load ('trainer / trainr.yml')
cascadePath = "Phân loại / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontcale = 1
fontcolor = (255, 255, 255)
trong khi Đúng:
ret, im = cam.read ()
màu xám = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
face = faceCascade.detectMultiScale (xám, 1,2, 5)
for (x, y, w, h) in the face:
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
Id = Recogzer.p Dự đoán (xám [y: y + h, x: x + w])
nếu (Id <70):
nếu (Id == 1):
Id = "Shashank"
elif (Id == 2):
if (c == 0):
Id = "Shivam"
c = c + 1
os.system ("đặc biệt 'Chào mừng bạn đã được cấp quyền truy cập Shivam'")
khác:
Id = "Shivam"
khác:
Id = "Không xác định"
cv2.putText (im, str (Id), (x, y + h), fontface, fontcale, fontcolor)
cv2.imshow ('im', im)
if cv2.waitKey (10) & 0xFF == ord ('q'):
nghỉ
cam.release ()
cv2.destroyAllWindows ()
Bước 5: Màn hình LCD và loa
Tôi cũng đã sử dụng Màn hình LED I2C và loa.
Đèn LED được điều khiển thông qua Arduino Mega và mã của nó được đưa ra trong mã cuối cùng.
Đối với Loa, nó được kết nối với Raspberry Pi và sử dụng Tiện ích eSpeak.
Bạn có thể tìm tài liệu tham khảo của nó tại đây -
Bước 6: Các bước cuối cùng
Lắp ráp mọi thứ và sẵn sàng cho vụ nổ.
Đề xuất:
Làm thế nào để sử dụng đồng hồ vạn năng trong tiếng Tamil. Hướng dẫn cho người mới bắt đầu - Đồng hồ vạn năng cho người mới bắt đầu: 8 bước
Làm thế nào để sử dụng đồng hồ vạn năng trong tiếng Tamil. Hướng dẫn cho người mới bắt đầu | Đồng hồ vạn năng dành cho người mới bắt đầu: Xin chào các bạn, Trong hướng dẫn này, tôi đã giải thích cách sử dụng đồng hồ vạn năng trong tất cả các loại mạch điện tử theo 7 bước khác nhau, chẳng hạn như 1) kiểm tra tính liên tục khi phần cứng gặp sự cố 2) Đo dòng điện một chiều 3) kiểm tra Diode và đèn LED 4) Đo Resi
Trình đọc / ghi và ghi âm thanh ScanUp NFC cho người mù, người khiếm thị và mọi người khác: 4 bước (có hình ảnh)
Máy đọc / ghi âm thanh ScanUp NFC và Máy ghi âm cho Người mù, Khiếm thị và Mọi người Khác: Tôi học thiết kế công nghiệp và dự án là công việc trong học kỳ của tôi. Mục đích là để hỗ trợ người khiếm thị và người mù bằng một thiết bị cho phép ghi lại âm thanh ở định dạng WAV trên thẻ SD và gọi thông tin đó bằng thẻ NFC. Vì vậy, trong
Bàn ủi hàn được cung cấp năng lượng từ pin Lithium do người dùng chế tạo: 8 bước (có hình ảnh)
Bàn ủi hàn chạy bằng pin Lithium do người dùng xây dựng: Gần đây, tôi đã tìm thấy một nguồn dư thừa cho Mẹo hàn chạy bằng pin Weller (r) BP1. Tôi thường xây dựng các công cụ của riêng mình, việc tìm kiếm các giải pháp giá đỡ quá tốn kém
Một cách thực sự đơn giản / dễ dàng / không phức tạp để làm cho con người / con người / động vật / rô bốt trông giống như họ có tầm nhìn nhiệt thực sự tuyệt vời / sáng sủa (Màu sắc do bạn lựa chọn) Sử dụng GIMP: 4 bước
Một cách thực sự đơn giản / dễ dàng / không phức tạp để làm cho con người / con người / động vật / rô bốt trông giống như họ có tầm nhìn nhiệt thực sự tuyệt vời / sáng sủa (Màu sắc do bạn lựa chọn) Sử dụng GIMP: Đọc … tiêu đề
Twitchy, Người bạn lãng phí điện tử của bạn: 11 bước (có hình ảnh)
Twitchy, Người bạn lãng phí điện tử của bạn: Anh ấy sạch sẽ hơn một con chuột hamster, và có cá tính hơn hầu hết các loài bò sát, và thông minh hơn nhiều so với con chó này mà tôi từng nuôi. Thêm vào đó, anh ấy được làm từ rác và rất thú vị khi xây dựng. Dân số loài người có thể (và được cho là nên được) chia thành