Mục lục:

Robot ăn xin với tính năng theo dõi và điều khiển khuôn mặt bằng bộ điều khiển Xbox - Arduino: 9 bước (có hình ảnh)
Robot ăn xin với tính năng theo dõi và điều khiển khuôn mặt bằng bộ điều khiển Xbox - Arduino: 9 bước (có hình ảnh)

Video: Robot ăn xin với tính năng theo dõi và điều khiển khuôn mặt bằng bộ điều khiển Xbox - Arduino: 9 bước (có hình ảnh)

Video: Robot ăn xin với tính năng theo dõi và điều khiển khuôn mặt bằng bộ điều khiển Xbox - Arduino: 9 bước (có hình ảnh)
Video: Top 3 tựa Game NẶNG NHẤT! Nhiều máy tải về xong là đứt luôn. 🥲 2024, Tháng bảy
Anonim
Image
Image
Cài đặt và cấu hình OpenCV và C ++
Cài đặt và cấu hình OpenCV và C ++

Chúng tôi sẽ làm một robot ăn xin. Robot này sẽ cố gắng chọc tức hoặc thu hút sự chú ý của những người đi qua. Nó sẽ phát hiện khuôn mặt của họ và cố gắng bắn tia laser vào họ. Nếu bạn cho robot một đồng xu, nó sẽ hát một bài hát và nhảy. Robot sẽ cần một arduino, một nguồn cấp dữ liệu trực tiếp của một máy ảnh và một máy tính để chạy openCV. Robot cũng sẽ có thể được điều khiển bằng bộ điều khiển xBox nếu được kết nối với PC.

Bước 1: Vật liệu

Phần cứng điện tử

  • Arduino NANO hoặc UNO
  • Máy ảnh USB 2.0
  • Cáp nhảy (nam và nữ)
  • 2 x Servo - Chung (Kích thước siêu nhỏ)
  • 2 x LED - RGB CATHODE 5mm
  • 2 x 5mW laser
  • 1 x LED đỏ 5mm
  • 1 x Breadboard
  • Điện trở 4 x 220Ω
  • 1 x 1KΩ điện trở
  • 1 x protoboard
  • 1 x cảm biến sonar 4 chân
  • Bộ điều khiển Xbox

Tương tự phần cứng

  • Hộp gỗ (15 x 15 x 7 cm)
  • Keo dính
  • Băng điện

Phần mềm

  • Arduino IDE
  • Visual studio 2017
  • 3Ds Max (hoặc bất kỳ phần mềm tạo mô hình 3d nào khác)
  • Preform 2.14.0 trở lên
  • OpenCV 3.4.0 trở lên

Công cụ

  • Thiết bị hàn
  • Cưa và khoan
  • Kìm cắt dây

Bước 2: Cài đặt và cấu hình OpenCV và C ++

Cài đặt và cấu hình OpenCV và C ++
Cài đặt và cấu hình OpenCV và C ++

Bước 2.1: Lấy phần mềm

Visual studio 2017: Tải xuống gói Visual studio Comunity 2017openCV 3.4.0 Win: Đi tới trang tải xuống chính thức

Bước 2.2: Cài đặt OpenCV2.2.1: Giải nén tệp zip trên ổ đĩa Windows (: C) của bạn.2.2.2: Đi tới cài đặt hệ thống nâng cao của bạn. Điều này có thể được tìm thấy trong chức năng tìm kiếm win10 của bạn.2.2.3: Chúng tôi cần thiết lập các biến Môi trường mới. Xác định vị trí của môi trường "Path" và nhấn chỉnh sửa.2.2.4: Bây giờ chúng ta phải thêm vị trí của "bin map" vào một biến mới trong môi trường Path. Nếu bạn đã cài đặt openCV trên ổ C của mình, đường dẫn có thể đi như sau: C: / opencv / build / x64 / vc14 / bin Dán đường dẫn và nhấn "OK" trên tất cả các cửa sổ mà bạn có thể đã mở trong quá trình này.

Bước 2.3: Cấu hình Visual studio C ++ 2.3.1: Tạo một dự án C ++ trực quan mới. Biến nó thành dự án ứng dụng bảng điều khiển win32 trống. 2.3.2: Trong tab tệp nguồn, nhấp chuột phải và thêm tệp C ++ mới (.cpp) và đặt tên là "main.cpp".2.3.3: Nhấp chuột phải vào dự án- đặt tên trong Trình khám phá giải pháp và chọn Thuộc tính.2.3.4: Chúng ta cần thêm một Thư mục Bao gồm bổ sung. Điều này có thể được tìm thấy trong tab C / C ++ nói chung. Sao chép đường dẫn sau: C: / opencv / build / include và dán nó vào phía sau "AID" và nhấp vào áp dụng. chọn tab "Trình liên kết". nói chung, chúng tôi cần tạo một Thư mục Libary bổ sung khác. Dán đường dẫn sau vào phía sau "AID" C: / opencv / build / x64 / vc14 / lib và nhấn áp dụng một lần nữa.2.3.6: Trong cùng một tab Trình liên kết, hãy chọn tab "Đầu vào". Và nhấn "Phụ thuộc bổ sung> chỉnh sửa" và dán tệp sau opencv_world320d.lib và xinput.lib (Đối với bộ điều khiển) và nhấn áp dụng lại. Đóng cửa sổ. Bây giờ tệp C ++ của bạn đã sẵn sàng hoạt động.

Bước 3: Thiết lập Arduino

Thiết lập Arduino
Thiết lập Arduino
Thiết lập Arduino
Thiết lập Arduino
Thiết lập Arduino
Thiết lập Arduino
Thiết lập Arduino
Thiết lập Arduino

Đáp ứng các Servo: Các Servo có khả năng xoay ~ 160 ° Chúng cần có từ 4, 8 đến 6, 0 Volt để hoạt động bình thường. Servo có 3 chân: chân đất, 4, 8 - 6, chân 0 volt và một chân dữ liệu ghim. Đối với dự án của chúng tôi, chúng tôi sẽ thiết lập các chân dữ liệu cho các servos trên DigitalPin 9 và 10.

Đáp ứng với đèn LED RGB: Đèn LED RGB có 4 chân: chân đỏ, xanh lá cây, xanh lam và chân nối đất. Để tiết kiệm không gian trên arduino, chúng ta có thể kết nối 2 led RGB với nhau. Vì vậy, chúng tôi sẽ chỉ sử dụng 3 chân, chúng tôi có thể kết nối và hàn các đèn LED RGB trên một bảng mạch điện tử như trong hình ảnh. Chân màu đỏ => DigitalPin 3 (PWM) Chân xanh => Chân DigitalPin 4Blue => DigitalPin 7

Gặp người thổi còi Piezo: Robot nhỏ của chúng ta sẽ tạo ra một số tiếng ồn. Để làm được điều này, chúng ta cần cho anh ấy một tiếng nói! Chúng tôi có thể chọn để làm cho anh ấy thực sự lớn tiếng. Hoặc chúng ta có thể đặt một điện trở 220Ω trước còi piezo để làm cho anh ta bớt đáng ghét hơn một chút. Chúng tôi đang để bộ rung Piezo trên breadboard. Vì vậy, không cần hàn. Chúng tôi kết nối chân dữ liệu (+) với DigitalPin 2 và chân nối đất với mặt đất trên bảng mạch.

Gặp Sonar: Để ngăn không cho robot cố gắng nhắm vào người ở cách xa 10 mét. Chúng ta có thể cung cấp cho robot một khoảng cách từ nơi nó có thể nhắm vào con người. Chúng tôi làm điều này với một cảm biến sonar. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => mặt đất

Gặp máy dò tiền xu: Chúng tôi sẽ làm một máy dò tiền xu. Máy dò tiền xu sẽ hoạt động bằng cách phát hiện nếu mạch điện bị đóng hoặc bị hỏng. Nó gần như sẽ hoạt động giống như một công tắc. Nhưng chúng ta cần phải cẩn thận. Nếu chúng ta làm điều này sai, chúng ta sẽ tốn một arduino Đầu tiên: Kết nối AnalogPin A0 với cáp 5 volt. Nhưng hãy đảm bảo đặt một điện trở 1KΩ giữa nó. Thứ hai: Nối dây với đất. Ngay lập tức chúng ta có thể hàn các dây và điện trở vào cùng một bảng mạch điện với các đèn LED RGB. Bây giờ nếu chúng ta chạm vào 2 dây này to hơn thì arduino sẽ phát hiện ra một mạch điện đã đóng. Điều này có nghĩa là có một đồng xu! Gặp phải tia laser diệt vong, robot cần có vũ khí để bắn! Để tiết kiệm không gian, tôi hàn 2 tia laser lại với nhau, chúng sẽ vừa khít với khung của máy ảnh. Kết nối chúng với DigitalPin 11 và với mặt đất.

Mánh lới quảng cáo tùy chọn. Chúng tôi có thể đặt một đèn LED màu đỏ bên dưới đồng xu. Đây sẽ là một mánh lới quảng cáo nhỏ thú vị khi trời tối. Kết nối một dây với DigitalPin 8 và đặt một điện trở 220Ω giữa đèn LED và dây để ngăn nó phát nổ. Kết nối chân ngắn của đèn LED với đất.

Bước 4: Mã C ++

Bước 4.1: Thiết lập mã main.cpp 4.1.1: Tải xuống "main.cpp" và sao chép mã vào main.cpp.4.1.2 của riêng bạn: Trên dòng 14, thay đổi "com" thành com mà arduino sử dụng. "\. / COM (thay đổi cái này)" 4.1.3: Trên dòng 21 và 22 đặt đúng đường dẫn cho các tệp "haarcascade_frontalface_alt.xml" và "haarcascade_eye_tree_eyeglasses.xml" Nếu openCV được cài đặt trên ổ C, các tệp này có thể được đặt tại đây: "C: / opencv / build / etc / haarcascades \" Giữ các dấu gạch chéo ngược kép hoặc thêm một dấu gạch chéo ngược ở nơi chỉ có một.

Bước 4.2: Thêm tserial.h và Tserial.cpp 2 tệp này sẽ đảm nhiệm việc giao tiếp giữa arduino và PC.4.2.1: Tải xuống tserial.h và Tserial.cpp.4.2.2: Đặt 2 tệp này vào dự án danh mục. Trong Trình khám phá giải pháp, hãy nhấp chuột phải vào dự án và chọn thêm> mục hiện có. Trong cửa sổ bật lên, chọn hai tệp sẽ được thêm vào.

Bước 4.2: Thêm CXBOXController.h và CXBOXController.h Các tệp này sẽ đảm nhận phần điều khiển của dự án.4.2.1: Trong Trình khám phá giải pháp, nhấp chuột phải vào dự án và chọn thêm> mục hiện có. Trong cửa sổ bật lên, hãy chọn hai tệp sẽ được thêm vào. Các tệp C ++ đã được thiết lập.

Bước 5: Mã Arduino

Bước 5.1: Thư viện NewPing5.1.1: Tải xuống ArduinoCode.ino và mở nó trong arduino IDE.5.1.2: Đi tới "Sketch> Bao gồm libary> Quản lý libaries".5.1.3: Tìm kiếm trong hộp bộ lọc thành "NewPing" và cài đặt thư viện này.

Bước 5.2: Thư viện Pitches5.2.1: Tải xuống pitchhes.txt và sao chép nội dung của pitchhes.txt.5.2.2: Trong Arduino IDE, nhấn CTRL + Shift + N để mở tab mới..5.2.3: Dán mã từ pitch.txt vào tab mới và lưu nó dưới dạng "pitchhes.h". Mã Arduino đã được thiết lập

Bước 6: In 3D và tinh chỉnh bản in

In 3D và tinh chỉnh bản in
In 3D và tinh chỉnh bản in
In 3D và tinh chỉnh bản in
In 3D và tinh chỉnh bản in

Bước 6.1: In tệp 3D Mở tệp printfile.form và kiểm tra xem mọi thứ đã ổn chưa. Nếu mọi thứ có vẻ ổn, hãy gửi lệnh in đến máy in. Nếu có vấn đề gì đó hoặc bạn muốn thay đổi kiểu máy. Tôi đã bao gồm các tệp 3Ds Max và tệp OBJ để bạn chỉnh sửa.

Bước 6.2: Hoàn thiện mô hình 6.1: Sau khi in xong, ngâm 2 mô hình vào cồn 70% để loại bỏ các vết in. làm cứng mô hình. Hoặc bạn có thể sử dụng đèn UV để làm cứng mô hình. Điều này cần được thực hiện vì mô hình sẽ bị dính.

6.2.3: Loại bỏ khung hỗ trợ. Điều này có thể được thực hiện với một máy cắt dây. Hoặc bất kỳ công cụ nào khác có thể cắt nhựa.6.2.4: Một số phần của bản in 3D vẫn có thể mềm. Ngay cả khi mô hình ở trong điều kiện có nhiều tia UV, các bộ phận có thể bị mềm là những bộ phận gần với khung đỡ. Đặt mô hình dưới ánh nắng mặt trời nhiều tia UV hơn để cứng lại. Bạn có thể cố gắng lắp các Servos vào khung. Nếu chúng không vừa, bạn có thể sử dụng Dremel để chà nhám vật liệu. làm cho nó phù hợp.

Bước 7: Xây dựng hộp

Xây dựng hộp
Xây dựng hộp
Xây dựng hộp
Xây dựng hộp

Bước 7.1: Tạo lỗ Tôi đã bao gồm bản thiết kế của hộp được đề cập. Bản thiết kế không đúng tỷ lệ, nhưng tất cả các kích thước đều đúng. Các lỗ lớn hơn có thể được tạo theo kích thước bằng Dremel.7.1.3: Các lỗ hình vuông cũng có thể được khoan. Nhưng để làm cho chúng vuông vắn, bạn có thể lắp Dremel bằng một tệp nhỏ và dũa các góc nhọn. nếu chúng vừa vặn, bạn có thể đi! 7.1.5: Hãy để ý những mảnh gỗ vụn. Dùng giấy nhám để loại bỏ chúng.

Bước 7.2: Sơn7.2.1: Bắt đầu bằng việc chà nhám nắp. Chúng ta cần sơn để dính.

Bước 8: Hoàn thiện

Đang hoàn thiện
Đang hoàn thiện
Đang hoàn thiện
Đang hoàn thiện
Đang hoàn thiện
Đang hoàn thiện

Bây giờ chúng ta phải đặt mọi thứ vào đúng vị trí và để nó thực hiện. Bước 8.1: Máy dò tiền xu 8.1.1: Dán keo xuống một số nẹp kim loại cho máy phát hiện tiền xu. 8.1.2: Hàn từng dây từ đầu nối đến một nẹp.8.1.3: Kiểm tra kết nối với một đồng xu. Nếu không có mạch kín, hãy hàn dây nhiều hơn vào cạnh. Bước 8.2: Bảng điều khiển và đèn LED RGB 8.1: Đặt bảng mạch điện tử ở góc trên cùng bên phải và dán nó xuống! 8.2.2: Kết nối các đèn LED RGB với dây dẫn từ protoboard! 8.2.3: Kết nối tất cả các dây từ protoboard với arduino. Bước 8.3: Cảm biến sonar 8.3.1: Đặt cảm biến vào các lỗ mà chúng tôi đã tạo cho nó. Nếu bạn có dây nhảy nam và nữ, bạn có thể bỏ qua 8.3.28.3.2: Cắt đôi một số dây đực và cái rồi hàn dây cái và dây đực lại với nhau để tạo thành một sợi cáp duy nhất mà chúng ta có thể sử dụng để kết nối cảm biến với arduino.

Bước 8.4: Laser và camera 8.1: Dán khung nhỏ vào camera. Đảm bảo rằng nó thẳng đứng.8.4.2: Đặt cả tia laze vào khung. Dán chúng xuống để kẻ thù không cướp chúng!

Bước 8.5: Servos và bản in 3D 8.5.1: Dán keo servo vào lỗ của nắp 8.5.2: Tải tệp arduino lên arduino (điều này làm cho servo đứng ở đúng vị trí) 8.5.3: Với servo đi kèm cao nguyên tròn nhỏ. Đặt cái này lên phần servo trong nắp.8.5.4: Đặt bản in 3D lớn lên phần servo và tấm bình nguyên và vặn chúng chặt chẽ với nhau bằng vít. 8.5.5: Đặt servo thứ hai lên bản in 3D nhỏ và dán chúng lại với nhau. 8.5.6: Đặt máy ảnh vào vị trí và mọi thứ đã sẵn sàng!

Bước 9: Bắt đầu chương trình

Để khởi động rô bốt, hãy mở Tệp C ++ trong Visual studio. Đảm bảo rằng bạn đang ở "chế độ gỡ lỗi" Tải tệp arduino lên arduino. Khi điều đó được tải lên, hãy phát báo chí trong studio trực quan. Và robot sẽ bắn và thu thập tất cả các đồng xu trên thế giới !!!

Đề xuất: