- Vật liệu thiết yếu:
- In 3D các bộ phận bắt buộc (Tùy chọn):
- Sơ đồ và phần cứng:
- Thiết lập ứng dụng Android của bạn:
- Lập trình Arduino của bạn:
- Đang làm việc:
Bạn đã bao giờ muốn xây dựng Cánh tay hoặc Robot theo dõi khuôn mặt bằng cách sử dụng Arduino chứ không phải bất kỳ chương trình nào khác như OpenCV, kiến thức cơ bản về hình ảnh C #, v.v.? Sau đó, hãy đọc cùng, trong dự án này, chúng tôi sẽ triển khai tính năng nhận diện khuôn mặt bằng cách kết hợp sức mạnh của Arduino và Android. Trong dự án này, camera di động sẽ di chuyển cùng với khuôn mặt của bạn với sự trợ giúp của Servos. Ưu điểm của việc sử dụng Điện thoại di động Android ở đây là bạn không cần đầu tư vào mô-đun máy ảnh và toàn bộ công việc phát hiện hình ảnh có thể được thực hiện trong chính điện thoại, bạn không cần kết nối Arduino với máy tính của mình để hoạt động. Ở đây chúng tôi đã sử dụng Mô-đun Bluetooth với Arduino để giao tiếp không dây với Di động.
Ứng dụng Android được sử dụng trong dự án này được tạo bằng Xử lý Android, bạn có thể cài đặt trực tiếp ứng dụng bằng cách tải xuống tệp APK (đọc thêm để biết liên kết) hoặc đặt mũ lập trình của bạn và tạo Ứng dụng Android hấp dẫn hơn của riêng bạn bằng cách sử dụng Mã xử lý được cung cấp thêm trong Hướng dẫn. Tìm hiểu thêm về Xử lý bằng cách kiểm tra các Dự án xử lý trước đây của chúng tôi.
Đến cuối hướng dẫn này, bạn sẽ có Cánh tay rô bốt Mini Tilt và Span có thể theo dõi khuôn mặt của bạn và di chuyển cùng với nó. Bạn có thể sử dụng tính năng này (với những tiến bộ hơn nữa) để quay video vlog hoặc thậm chí chụp ảnh tự sướng bằng camera sau của điện thoại di động vì nó đặt khuôn mặt của bạn chính xác ở giữa màn hình di động. Vì thế!! Nghe có vẻ thú vị? Kiểm tra Video giới thiệu ở cuối hướng dẫn này để xem nó hoạt động. Hãy xem cách chúng ta có thể xây dựng một…
Tôi đã cố gắng hết sức để làm cho dự án này hoạt động đơn giản nhất có thể, bất kỳ ai có kiến thức tối thiểu về phần cứng hoặc mã hóa đều có thể sử dụng hướng dẫn này để làm cho dự án này hoạt động nhanh chóng. Tuy nhiên, một khi bạn thực hiện nó, tôi khuyên bạn nên tìm hiểu các mã để bạn có thể thực sự biết điều gì làm cho thứ này hoạt động và như thế nào.
Vật liệu thiết yếu:
- Arduino Nano
- Động cơ servo SG90 - 2Nos
- Điện thoại Android có camera tốt
- Mô-đun Bluetooth HC-05 / HC-06
- Máy tính để lập trình
- Máy in 3D (tùy chọn)
- Pin 9V
In 3D các bộ phận bắt buộc (Tùy chọn):
Để xoay và nghiêng điện thoại di động của chúng tôi, chúng tôi cần một số cấu trúc cơ học như giá đỡ di động và một vài giá đỡ servo. Bạn có thể sử dụng bìa cứng để làm một cái, vì tôi có máy in 3D nên tôi quyết định in 3D những phần này.
In 3D là một công cụ tuyệt vời có thể đóng góp rất nhiều khi xây dựng các dự án nguyên mẫu hoặc thử nghiệm các thiết kế cơ khí mới. Nếu bạn chưa khám phá ra những lợi ích của máy in 3D hoặc cách nó hoạt động, bạn có thể đọc Hướng dẫn dành cho người mới bắt đầu về in 3D.
Nếu bạn sở hữu hoặc có quyền truy cập vào máy in 3D thì bạn có thể sử dụng các tệp STL có thể tải xuống từ đây để trực tiếp in và lắp ráp chúng. Tuy nhiên, một số bộ phận như giá đỡ điện thoại di động có thể cần một số sửa đổi dựa trên kích thước của điện thoại. Tôi đã thiết kế nó cho điện thoại di động MOTO G của mình. Tôi đã sử dụng một máy in rất cơ bản của mình để in tất cả các bộ phận. Máy in FABX v1 từ 3ding có giá cả phải chăng với khối lượng in 10 cm khối. Giá rẻ đi kèm với sự đánh đổi với độ phân giải in thấp và không có thẻ SD hoặc chức năng tiếp tục in. Tôi đang sử dụng phần mềm có tên là Cura để in các tệp STL. Các cài đặt mà tôi đã sử dụng để in tài liệu được đưa ra bên dưới, bạn có thể sử dụng giống nhau hoặc thay đổi chúng dựa trên máy in của bạn.
Khi bạn in tất cả các tài liệu cần thiết, bạn có thể cố định chúng vào vị trí bằng cách sử dụng vít và một số keo nóng. Sau khi bạn lắp ráp xong, nó sẽ trông giống như sau.
Sơ đồ và phần cứng:
Mạch cho dự án Theo dõi khuôn mặt trên điện thoại thông minh này được hiển thị trong hình ảnh bên dưới:
Mạch Bao gồm hai động cơ Servo, trong đó một động cơ được sử dụng để di chuyển điện thoại di động sang trái / phải và động cơ còn lại được sử dụng để nghiêng điện thoại di động lên / xuống. Hướng mà servo phải di chuyển sẽ được chỉ dẫn bởi Arduino Nano. Bản thân nó lấy thông tin từ mô-đun Bluetooth (HC-05). Toàn bộ mạch được cung cấp bởi một pin 9V.
Mạch này có thể được kết nối dễ dàng trên bảng mạch của bạn hoặc bạn cũng có thể hàn chúng trên bảng Perf nhỏ như tôi đã làm ở đây.
Thiết lập ứng dụng Android của bạn:
Như, tôi đã nói trước đó bộ não chính làm việc đằng sau dự án này là ứng dụng Android này. Ứng dụng android này được phát triển bằng Xử lý Android. Bạn có thể cài đặt trực tiếp ứng dụng này trên điện thoại di động của mình và khởi chạy ứng dụng đó bằng cách làm theo các bước bên dưới.
- Tải xuống tệp APK từ đây.
- Bật nguồn mạch hình trên.
- Trong cài đặt điện thoại của bạn, tìm kiếm mô-đun Bluetooth có tên “HC-05”
- Nếu bạn đã đặt tên nó khác ngoài “HC-05”, hãy đổi nó trở lại HC-05 vì chỉ khi đó ứng dụng mới hoạt động.
- Ghép nối với mô-đun Bluetooth của bạn bằng mật khẩu “1234” hoặc “0000”.
- Bây giờ, khởi chạy Ứng dụng ở chế độ dọc. Bạn sẽ thấy màn hình máy ảnh của mình và cả “Đã kết nối với: HC-05” trên đầu màn hình.
- Hãy thử di chuyển máy ảnh của bạn qua một khuôn mặt và một hộp màu xanh lá cây sẽ xuất hiện trên đầu nó và vị trí của nó cũng sẽ được hiển thị ở góc trên cùng bên trái của màn hình như hình dưới đây.
Bạn có thể đưa Dự án theo dõi khuôn mặt Arduino này lên cấp độ tiếp theo bằng cách mang lại nhiều cải tiến mà bạn sẽ không cần phải viết mã ứng dụng Android của riêng mình. Tạo một ứng dụng Android nghe có vẻ khó khăn nhưng hãy tin tôi với sự trợ giúp của Xử lý, bạn có thể học nó ngay lập tức. Bạn có thể tải xuống mã xử lý hoàn chỉnh được sử dụng để xây dựng ứng dụng này tại đây. Bạn có thể tự do thăng tiến với sự sáng tạo của riêng mình. Kiểm tra các dự án dưới đây để tìm hiểu thêm về Xử lý:
- Thực tế ảo sử dụng Arduino và Xử lý
- Trò chơi Ping Pong sử dụng Arduino
- Đài FM được điều khiển trên điện thoại thông minh bằng cách sử dụng Xử lý.
- Hệ thống rađa Arduino sử dụng cảm biến xử lý và siêu âm
Lập trình Arduino của bạn:
Ứng dụng Android sẽ phát hiện khuôn mặt và vị trí của khuôn mặt trên màn hình; sau đó nó sẽ quyết định hướng nó di chuyển dựa trên vị trí của khuôn mặt để khuôn mặt đó nằm ở giữa màn hình. Hướng này sau đó được gửi đến Arduino thông qua Mô-đun Bluetooth.
Chương trình Arduino cho dự án này khá đơn giản, chúng ta chỉ cần điều khiển hướng của hai động cơ servo dựa trên các giá trị nhận được từ Mô-đun Bluetooth. Các mã hoàn chỉnh có thể được tìm thấy ở phần cuối của hướng dẫn này, tôi cũng đã giải thích vài dòng quan trọng dưới đây.
Dòng mã dưới đây thiết lập kết nối nối tiếp với các chân D12 là RX và D11 là TX. Do đó, chân D12 phải được kết nối với TX của mô-đun BT và chân D11 với RX của mô-đun BT.
SoftwareSerial cam_BT (12, 11); // RX, TX
Sau đó, chúng tôi đã khởi tạo mô-đun Bluetooth với tốc độ truyền là 9600. Đảm bảo rằng mô-đun của bạn cũng hoạt động trên cùng tốc độ truyền. Khác thay đổi nó cho phù hợp.
cam_BT.begin (9600); // bắt đầu giao tiếp Bluetooth tại 9600 baudrate cam_BT.println ("Sẵn sàng thực hiện lệnh");
Dòng dưới đây cho biết những gì sẽ đến thông qua mô-đun Bluetooth. Ngoài ra, dữ liệu được lưu trong biến “BluetoothData”.
if (cam_BT.available ()) // Đọc thông tin gì đến qua Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("Nhap tu BT:"); Serial.println (BluetoothData); }
Dựa trên dữ liệu nhận được từ Bluetooth, hướng động cơ được điều khiển. Để quay động cơ sang trái, động cơ đang giảm giá trị 2 so với vị trí trước đó của nó. Bạn có thể tăng giá trị này lên 2 thành 4 hoặc 6 nếu bạn cần cánh tay di chuyển nhanh hơn. Tuy nhiên, nó có thể tạo ra một số hiện tượng giật khiến máy ảnh không ổn định.
if (BluetoothData == 49) // Rẽ trái {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // Rẽ Phải {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Quay lên {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // Tắt {pos2 + = 2; servo2.write (pos2);}
Đang làm việc:
Khi chúng ta đã sẵn sàng với phần cứng, mã và Ứng dụng Android, đã đến lúc thực hiện một số hành động. Chỉ cần cấp nguồn cho Arduino của bạn và mở ứng dụng Android. Ứng dụng sẽ tự động kết nối với mô-đun Bluetooth HC-05 (phải được đặt tên là HC-05) và sẽ đợi nhận diện khuôn mặt. Chỉ cần đặt điện thoại vào giá đỡ di động của chúng tôi và ngồi trước nó. Bạn sẽ nhận thấy các động cơ servo di chuyển điện thoại sao cho khuôn mặt của bạn sẽ được đặt ở giữa màn hình. Bây giờ hãy di chuyển trong phạm vi của máy ảnh và điện thoại di động của bạn sẽ theo dõi chuyển động của bạn. Bạn cũng có thể thử nó bằng cách đặt và di chuyển bất kỳ hình ảnh nào.
Toàn bộ hoạt động của dự án được hiển thị trong video dưới đây. Bạn có thể xây dựng rất nhiều