Mục lục:

Thùng rác thông minh từ Magicbit: 5 bước
Thùng rác thông minh từ Magicbit: 5 bước

Video: Thùng rác thông minh từ Magicbit: 5 bước

Video: Thùng rác thông minh từ Magicbit: 5 bước
Video: Tutorial: Getting Started With OpenTTD 12.1 2024, Tháng mười một
Anonim
Image
Image

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách tạo một thùng rác thông minh bằng Magicbit dev. bo mạch với Arduino IDE. Hãy bắt đầu.

Quân nhu

  • Magicbit
  • Cáp USB-A đến Micro-USB
  • Cảm biến siêu âm - HC-SR04 (Chung)
  • SG90 động cơ micro-servo

Bước 1: Câu chuyện

Thiết lập phần cứng
Thiết lập phần cứng

Trước khi chuyển sang dự án, chúng ta hãy xem Thùng rác thông minh là gì. Có một hoặc nhiều thùng rác trong mỗi nhà. Trong nhiều lần bạn đã che nó. Vì điều đó sẽ gây mùi trong nhà bạn. Vì vậy, khi bạn muốn cho một số rác vào thùng rác, bạn phải mở nó ra. Nhưng nếu khi bạn đi đến gần thùng rác để bỏ rác và nắp đậy tự động mở ra thì nó sẽ như thế nào. Điên mất aaa…. vì vậy đó là thùng rác thông minh.

Bước 2: Lý thuyết và Phương pháp luận

Lý thuyết rất đơn giản. Khi bạn đi đến gần thùng rác, nó sẽ phát hiện ra bạn. Nếu khoảng cách giữa bạn và thùng rác nhỏ hơn một số khoảng cách xác định, thì nắp thùng rác sẽ tự động mở ra. Để hoàn thành cả hai đối tượng này, chúng tôi sử dụng cảm biến siêu âm HC-SRO4 và động cơ servo nhỏ. Bạn có thể nhận bất kỳ loại động cơ servo kỹ thuật số nào.

Bước 3: Thiết lập phần cứng

Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng
Thiết lập phần cứng

Đối với dự án này, chúng tôi chủ yếu sử dụng ba thành phần phần cứng. Đó là Magicbit, động cơ servo và cảm biến siêu âm. Kết nối giữa tất cả các bộ phận này được thể hiện trong Hình trên.

Cảm biến siêu âm được sử dụng 3,3 v để tăng sức mạnh. Do đó, chúng tôi đã sử dụng cổng dưới bên phải của bảng Magicbit để kết nối cảm biến siêu âm với Magicbit. Nhưng động cơ servo được sử dụng 5V để hoạt động bình thường, vì vậy chúng tôi đã sử dụng cổng bên trái phía dưới để kết nối động cơ servo với Magicbit. Trong trường hợp này, chúng tôi sử dụng mô-đun đầu nối servo Magic bit. Nhưng nếu bạn không có mô-đun đó, bạn có thể sử dụng ba dây jumper để kết nối 5V đến 5V, Gnd với Gnd và chân tín hiệu với chân 26 trên magicbit.

Bây giờ chúng ta hãy nhìn vào khía cạnh cơ học của dự án của chúng tôi. Để mở nắp chúng ta sử dụng cơ chế đòn bẩy rất đơn giản. Chúng tôi đã kết nối kẹp tay servo một bên với servo. Sau đó, chúng tôi kết nối lỗ góc trong kẹp và nắp thùng rác bằng cách sử dụng dây kim loại chắc chắn. Dây kim loại có thể xoay đối với kẹp servo và nắp thùng rác. Bằng cách nghiên cứu hình ảnh và video hàng đầu, bạn có thể xây dựng điều đó rất dễ dàng.

Bước 4: Thiết lập phần mềm

Thiết lập phần mềm
Thiết lập phần mềm

Phần phần mềm cũng rất dễ dàng. Hãy xem mã Arduino IDE và cách mã đó hoạt động.

Để điều khiển servo, chúng tôi sử dụng thư viện servo ESP32. Thư viện này gần như bao gồm trong trình quản lý bảng bit ma thuật trong Arduino IDE. Để đối phó với cảm biến siêu âm, chúng tôi sử dụng thư viện newPing. Điều này có thể được tải xuống từ liên kết sau.

bitbucket.org/teckel12/arduino-new-ping/d…

Tải xuống tệp zip và truy cập công cụ> bao gồm thư viện> thêm thư viện Zip trong Arduino. bây giờ hãy chọn tệp zip đã tải xuống của bạn của thư viện ghim mới. trong đoạn mã đầu tiên chúng ta khai báo thư viện cảm biến servo và siêu âm. Trong chức năng vòng lặp, chúng tôi luôn kiểm tra khoảng cách từ thùng rác đến vật thể phía trước gần nhất. Nếu grater đó lớn hơn 200, thì khoảng cách đầu ra của thư viện là 0. Khi khoảng cách nhỏ hơn 60cm, thì nó thực hiện vòng lặp for để mở nắp bằng cách xoay servo. Nếu khoảng cách lớn hơn 60cm thì tấm bìa sẽ đặt xuống. Bằng cách sử dụng biến boolean, chúng tôi luôn kiểm tra trạng thái của bìa. Nếu nắp đậy xuống thì chỉ có nó sẽ mở ra. Ngoài ra, ngược lại. Bây giờ hãy chọn đúng cổng COM và bo mạch dưới dạng magcibit, Sau đó tải lên mã. Bây giờ thùng rác thông minh của bạn đã sẵn sàng để sử dụng.

Bước 5: Mã Arduino

#bao gồm

# xác định TRIGGER_PIN 21 # xác định ECHO_PIN 22 # xác định MAX_DISTANCE 200 sonar mớiPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // bao gồm thư viện servo int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Xác định chân nào là độ trễ gắn động cơ servo (3000); } void loop () {// quay động cơ servo từ 15 đến 165 độ for (int i = 0; i <= 180; i ++) {RadarServo.write (i); chậm trễ (50); distance = sonar.ping_cm (); // Gọi hàm tính khoảng cách được đo bởi Cảm biến siêu âm cho từng độ for (int j = 0; j0) {break; } Serial.print (i); // Gửi mức độ hiện tại vào Serial Port Serial.print (","); // Gửi ký tự bổ sung ngay bên cạnh giá trị trước đó cần thiết sau này trong IDE xử lý để lập chỉ mục Serial.print (j); // Gửi mức độ hiện tại vào Serial Port Serial.print ("*"); Serial.print (1); // Gửi giá trị khoảng cách vào Serial Port Serial.print ("/"); // Gửi ký tự bổ sung ngay bên cạnh giá trị trước đó cần thiết sau này trong IDE Xử lý để lập chỉ mục Serial.print (distance); // Gửi giá trị khoảng cách vào Serial Port Serial.print ("."); // Gửi ký tự cộng ngay bên cạnh giá trị trước đó cần thiết sau này trong IDE xử lý để lập chỉ mục}} // Lặp lại các dòng trước đó từ 165 đến 15 độ for (int i = 180; i> = 0; i -) {RadarServo.write (i); chậm trễ (50); khoảng cách = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continue; } Serial.print (i); // Gửi mức độ hiện tại vào Serial Port Serial.print (","); // Gửi ký tự bổ sung ngay bên cạnh giá trị trước đó cần thiết sau này trong IDE xử lý để lập chỉ mục Serial.print (j); // Gửi mức độ hiện tại vào Serial Port Serial.print ("*"); Serial.print (-1); // Gửi giá trị khoảng cách vào Serial Port Serial.print ("/"); // Gửi ký tự bổ sung ngay bên cạnh giá trị trước đó cần thiết sau này trong IDE Xử lý để lập chỉ mục Serial.print (distance); // Gửi giá trị khoảng cách vào Serial Port Serial.print ("."); // Gửi ký tự bổ sung ngay bên cạnh giá trị trước đó cần thiết sau này trong IDE xử lý để lập chỉ mục}}}

Đề xuất: