Mục lục:

NearBot đa năng: 11 bước (có hình ảnh)
NearBot đa năng: 11 bước (có hình ảnh)

Video: NearBot đa năng: 11 bước (có hình ảnh)

Video: NearBot đa năng: 11 bước (có hình ảnh)
Video: Dạy học trên nearpod hướng dẫn từ A đến Z 2024, Tháng bảy
Anonim
Image
Image

Tài liệu hướng dẫn này sẽ chỉ cho bạn cách chế tạo một bộ kích hoạt rô bốt đa năng có thể di chuyển một thứ gì đó chẳng hạn như nút, công tắc hoặc quay số trên các thiết bị khác nhau khi bạn (với điện thoại hoặc đèn hiệu trong túi) ở gần. Điều này có nghĩa là nó có thể tự động mở khóa và khóa lại chốt cửa khi * chỉ bạn * đi qua, tắt van phun nước để bạn có thể đi qua nước mà không bị tổn thương như kiểu Moses ngoại ô, giảm âm lượng loa khi bạn đang ở trong nhà để xe phòng ban nhạc, kích hoạt iPod phát một giai điệu đầu vào ấn tượng hoặc kể một câu chuyện cười (tweet của Jaden Smith?) khi bạn đang ở trong phòng, hoặc tạm dừng một bộ phim khi bạn đứng dậy để sử dụng phòng vệ sinh.

Dự án này không yêu cầu hàn hoặc các công cụ đặc biệt

Nếu bạn cảm thấy thích thú với tài liệu hướng dẫn này, hãy cân nhắc bỏ phiếu cho tài liệu hướng dẫn này trong cuộc thi Robotics 2017!

Bước 1: Mua các bộ phận phần cứng

Bạn sẽ cần:

  • NodeMCU v2 hoặc V3
  • Động cơ Servo Micro 9G khoảng $ 1,40 USD miễn phí vận chuyển trên eBay hoặc Aliexpress
  • Arduino Jumper có dây từ Nữ sang Nam.
  • Vỏ bọc cho NearBot - Tôi đã sử dụng một hộp nhựa vụn mà tôi tìm thấy.
  • Cáp dữ liệu micro USB (bộ phận điện thoại phế liệu)
  • Nguồn điện USB (bộ sạc điện thoại phế liệu)

Nếu bạn không có điện thoại thông minh có tính năng điểm phát sóng di động, bạn cũng sẽ cần:

  • Mô-đun ESP-01 khoảng $ 2,50 USD miễn phí vận chuyển trên DealExtreme, GearBest, Ebay hoặc Aliexpress.
  • 1 cặp pin AAA
  • giá đỡ pin AAA kép có công tắc

Bước 2: Bắt đầu nhanh

Bước này có một hướng dẫn bắt đầu nhanh trong trường hợp bạn thích loại điều đó. Phần còn lại của tài liệu hướng dẫn này sẽ đi từng bước và bổ sung thêm thông tin chuyên sâu

// Danh sách mua sắm: // Vi điều khiển NodeMCU V3 (Lolin) ESP8266

// Động cơ Servo SG90 9G

// Ngân hàng điện USB hoặc bộ chuyển đổi gắn tường USB.

// Cáp sạc / dữ liệu Micro USB

// Dây nhảy loại nam sang nữ của Arduino

//TRƯỚC KHI BẠN BẮT ĐẦU:

// 1. Nếu bạn chưa tải xuống Arduino IDE, hãy tải xuống miễn phí (tùy chọn đóng góp) tại:

// 2. mở Arduino IDE (nếu bạn chưa đọc được IDE này trong Arduino IDE!)…

// 3. Đi tới tệp và nhấp vào tùy chọn trong Arduino IDE…

//4. sao chép mã bên dưới trong Trình quản lý bảng bổ sung: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. nhấp vào OK để đóng tab tùy chọn…

// 6. Đi tới công cụ và bảng, sau đó chọn người quản lý bảng…

// 7. Điều hướng đến esp8266 bởi cộng đồng esp8266 và cài đặt phần mềm cho Arduino…

//số 8. Bạn có thể cần tải xuống và cài đặt trình điều khiển CH340 nếu bạn không thể kết nối NodeMCU với IDE Arduino của mình:

// Khi tất cả quá trình trên đã hoàn tất, chúng ta sẽ đọc để lập trình vi điều khiển esp8266 NodeMCU của chúng ta với Arduino IDE.

//9. Chọn NodeMCU V1.0 ESP12E từ menu bảng /

/ 10. Chọn cổng COM bạn đang sử dụng.

// 11. chọn mã (tải xuống từ www.makersa.ga) và nhấp vào tải lên. /

/ 12. Cắm servo vào NodeMCU bằng dây nhảy. D0 để báo hiệu, nối đất xuống đất, + VCC tới VO hoặc 3V. /

/ 13. Điều chỉnh còi servo bằng tuốc nơ vít.

// 14. Điều chỉnh mức độ chuyển động tối đa và tối thiểu bằng cách sử dụng mã.

// 15. Tải lại lên NodeMCU bất cứ khi nào mã được cập nhật.

// Bạn có thể thấy điều quan trọng là phải tìm ra phiên bản NodeMCU nào bạn có. Đây là hướng dẫn so sánh:

frightanic.com/iot/comparison-of-esp8266-no… // Sơ đồ sơ đồ chân NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // Sơ đồ sơ đồ chân NodeMCU v2: https://frightanic.com/iot/comparison-of-esp8266-no… // Sơ đồ sơ đồ chân NodeMCU v3:

// Giải thích về giàn:

// Được làm từ vi điều khiển NodeMCU ESP8266, nguồn điện từ pin hoặc USB và SG90 Servo

// Bạn có thể sử dụng mô-đun esp8266 chưa sửa đổi thứ hai làm điểm phát sóng báo hiệu AP thay vì sử dụng điện thoại thông minh, không cần lập trình.

Bước 3: Mua các bộ phận phần mềm

Trước tiên, bạn sẽ cần tải xuống Arduino IDE miễn phí

Arduino Web Editor không hoạt động với NodeMCU tại thời điểm tôi viết bài này, vì vậy bạn sẽ phải cài đặt IDE vào máy tính của mình.

Bạn cũng sẽ cần lấy các tệp NearBot từ www. MakerSa.ga - Liên kết tải xuống tệp cho dự án này được liệt kê trên trang web đó.

Bước 4: Cài đặt Trình điều khiển và Cấu hình Bảng

Một số thông tin hữu ích
Một số thông tin hữu ích

Bên trong zip NearBot mà bạn đã tải xuống và giải nén sẽ là trình điều khiển cho mô-đun NodeMCU. Cài đặt chúng vào máy tính của bạn.

Nếu những cách đó không phù hợp với bạn, bạn có thể tìm thấy các trình điều khiển của CH340G tại wemos.cc/downloads

NodeMCU của bạn có thể không sử dụng chip CH340G, vì vậy bạn có thể cần phải nhận xét với trình điều khiển bạn đang tìm kiếm và tôi sẽ trả lời bằng liên kết tải xuống trình điều khiển đó.

  1. Tiếp theo, mở Arduino IDE và đi tới Tùy chọn tệp Trình quản lý bảng bổ sung trong Arduino IDE.
  2. Dán mã sau vào đó:
  3. Bấm OK để đóng tab tùy chọn.
  4. Đi tới công cụ và bảng, sau đó chọn người quản lý bảng.
  5. Điều hướng đến "esp8266 của cộng đồng esp8266" và cài đặt phần mềm cho Arduino.

Khi tất cả quá trình trên đã hoàn tất, chúng tôi đã sẵn sàng lập trình vi điều khiển esp8266 NodeMCU của mình với Arduino IDE!

Bước 5: Một số thông tin hữu ích

Một số thông tin hữu ích
Một số thông tin hữu ích
Một số thông tin hữu ích
Một số thông tin hữu ích

Bạn có thể thấy hữu ích khi tìm ra phiên bản NodeMCU mà bạn có. Đây là hướng dẫn so sánh:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Mỗi phiên bản có cách sắp xếp pin khác nhau. Tôi đã mua phiên bản v3 (Lolin) vì nó có chân ra 5V để cấp nguồn cho động cơ Servo. Cuối cùng, thay vào đó, tôi đã sử dụng chân nguồn 3 volt để đảm bảo an toàn (Chân I / O của NodeMCU không chịu được 5V), nhưng bạn có thể muốn sử dụng chân 5V vì về mặt kỹ thuật, những loại động cơ servo này được chỉ định cho nguồn 4,5 đến 5 volt.

Bước 6: Tải mã vào NodeMCU

Tải mã vào NodeMCU
Tải mã vào NodeMCU
Tải mã vào NodeMCU
Tải mã vào NodeMCU
  1. Cắm NodeMCU vào máy tính của bạn bằng bất kỳ cáp micro USB nào.
  2. Mở Arduino IDE và trong "Bo mạch", chọn "ESP12E" và cổng COM cho NodeMCU.
  3. Trong IDE, đi tới FileOpen và duyệt qua thư mục zip đã tải xuống trước đó từ makera.ga để mở bản phác thảo Arduino có tên "ProximityActuator013017DonovanMagryta.ino"
  4. Sau đó, chỉnh sửa dòng mã có chứa mã này để thêm tên và mật khẩu của đèn hiệu WiFi của bạn. Thêm về điều đó bên dưới! Ví dụ:

const char * ssid = "mywifi"; // Đặt tên điểm phát sóng của bạn bên trong dấu ngoặc kép

const char * password = "mywifipassword"; // Đặt mật khẩu điểm phát sóng của bạn bên trong dấu ngoặc kép

Sau đó nhấp vào "tải lên" để flash mã vào bảng NodeMCU.

NearBot sử dụng đèn hiệu WiFi bỏ túi để xác định bạn và ước tính khoảng cách. Cũng giống như chìa khóa tiệm cận một số xe ô tô mới hơn có chức năng mở khóa cửa xe khi bạn đến gần.

Bạn có thể sử dụng điểm phát sóng di động trên điện thoại thông minh của mình làm đèn hiệu hoặc sử dụng mô-đun WiFi ESP-01 giá rẻ được cung cấp bởi một cặp pin AAA hoặc pin lithium 3.7v nhỏ. Không cần lập trình ESP-01, nó mặc định ở chế độ điểm phát sóng khi bật nguồn. Sơ đồ mạch cho điều đó được hiển thị ở bước này.

Bước 7: Gắn Servo vào NodeMCU

Bạn sẽ cần một số dây jumper để cắm servo vào NodeMCU V3.

Sơ đồ mạch rất đơn giản.

Chân D0 vào tín hiệu trong dây dẫn (dây màu sáng nhất trên servo. Thường là màu vàng hoặc trắng.)

Chân 3V hoặc chân VO vào dây dẫn đầu vào 5V (dây màu sáng thứ hai trên servo, thường là màu đỏ hoặc cam.)

Ghim GND vào dây dẫn nối đất (dây màu tối nhất trên servo, thường là màu nâu hoặc đen.)

Bước 8: Tinh chỉnh NearBot

Mã chuyển đổi cường độ tín hiệu thành ước tính khoảng cách. Nó hoạt động đáng tin cậy cho khoảng cách phản ứng dưới 2 mét hoặc 6,5 feet. Bởi vì nó là một chuyển đổi trực tiếp, nó không trơn tru cho khoảng cách xa hơn 3 mét vì nó có thể có một phương pháp tính toán tốt hơn. Thêm về điều đó sau.

Bạn có thể muốn điều chỉnh vị trí đặt còi servo (cánh tay nhỏ màu trắng di chuyển). Điều này được thực hiện đơn giản bằng cách tháo vặn cánh tay servo bằng tuốc nơ vít và định vị lại nó.

Phần tiếp theo là điều chỉnh mức độ chuyển động tối đa và tối thiểu bằng cách sử dụng mã.

Điều này có thể được thực hiện bằng cách thay đổi các số có trong các dòng trông như thế này:

myservo.write (10); // di chuyển cánh tay servo sang góc quay 10 độ

Bạn cũng có thể điều chỉnh độ nhạy cường độ tín hiệu bằng cách thay đổi các số âm trong các dòng giống như sau:

if (rssi> -30 && rssi <-5) {// Nếu cường độ tín hiệu mạnh hơn -30 và yếu hơn -5. sau đó làm như sau…

Bước 9: Cách thức hoạt động

  1. Đầu tiên, NearBot kết nối trước với điểm phát sóng khi người dùng tiếp cận.
  2. Nó quét RSSI (cường độ tín hiệu nhận được) và chuyển đổi đó thành khoảng cách gần đúng.
  3. Trong khi khoảng cách nằm trong phạm vi được chỉ định, nó sẽ di chuyển cánh tay đòn của động cơ servo đến vị trí 1.
  4. Nếu không, mô tơ servo được di chuyển sang vị trí 2.

Khi tôi thử nghiệm điều này, điều chỉnh RSSI (-50) này sẽ di chuyển servo đến vị trí 1 trong khi khoảng cách từ 0 đến 1,5 mét với đèn hiệu ESP-01 hoặc điểm phát sóng điện thoại trong túi của tôi.

RSSI thường nằm trong phạm vi từ -90 đến -20, với -20 là cường độ tín hiệu mạnh nhất.

Nếu bạn mở Arduino IDE Serial Monitor trong khi NearBot được cắm vào máy tính, nó sẽ hiển thị cường độ tín hiệu và các điểm kích hoạt theo thời gian thực để bạn có phản hồi hữu ích.

Đây là mã hoàn chỉnh:

//TRƯỚC KHI BẠN BẮT ĐẦU:

// 1. Nếu bạn chưa tải xuống Arduino IDE, hãy tải xuống miễn phí (tùy chọn đóng góp) tại: https://www.arduino.cc/en/Main/Software // 2. mở Arduino IDE (nếu bạn chưa đọc được IDE này trong Arduino IDE!)… // 3. Đi tới tệp và nhấp vào tùy chọn trong Arduino IDE… // 4. sao chép liên kết dưới đây trong Trình quản lý bảng bổ sung: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. bấm OK để đóng tab tùy chọn… // 6. Đi tới công cụ và bảng, sau đó chọn người quản lý bảng… // 7. Điều hướng đến esp8266 bởi cộng đồng esp8266 và cài đặt phần mềm cho Arduino… // 8. Bạn có thể cần tải xuống và cài đặt trình điều khiển CH340 nếu bạn không thể có được NodeMCU nói chuyện với IDE Arduino của mình: https://www.arduino.cc/en/Main/Software // Khi tất cả quá trình trên đã hoàn tất, chúng tôi đọc để lập trình vi điều khiển esp8266 NodeMCU của chúng tôi với Arduino IDE. Bạn có thể muốn tìm ra phiên bản NodeMCU mà bạn có. Dưới đây là hướng dẫn so sánh: https://www.arduino.cc/en/Main/Software // Được làm từ vi điều khiển NodeMCU ESP8266, nguồn điện từ pin hoặc USB và SG90 Servo // Bạn có thể sử dụng mô-đun esp8266 chưa sửa đổi thứ hai làm đèn hiệu điểm phát sóng AP thay vì sử dụng điện thoại thông minh. // Mạch NearBot: // Chân D0 đến dây tín hiệu Servo (dây màu sáng nhất) // Chân 3V đến dây 5v servo (dây giữa) (nối song song với cáp usb hoặc chân VO trên NodeMCU nếu bạn có V3. / / Nguồn USB với đầu cắm USB trên NodeMCU // Chân GND vào dây Servo Ground (dây màu tối nhất) // Các dòng ghi chú bắt đầu bằng hai dấu gạch chéo về phía trước và bị máy tính bỏ qua. Ghi chú chỉ dành cho con người chúng ta! #Include #include // Có thể cần để in nối tiếp. #Include // Thư viện Servo #define D0 16 // Xác định các chân để gán các chân dễ dàng hơn. #Define D1 5 // I2C Bus SCL (clock) #define D2 4 // I2C Bus SDA (dữ liệu) #define D3 0 #define D4 2 // Tương tự như "LED_BUILTIN", nhưng ngược logic #define D5 14 // SPI Bus SCK (clock) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Serial console) #define D10 1 // TX0 (Serial console) Servo myservo; // Tạo đối tượng servo có tên myservo // Điện thoại hoặc mô-đun ESP8266 bổ sung được đặt thành chế độ AP điểm phát sóng: const ch ar * ssid = ""; // Đặt tên điểm phát sóng của bạn bên trong dấu ngoặc kép const char * password = ""; // Đặt mật khẩu điểm phát sóng của bạn bên trong dấu ngoặc kép void setup () {Serial.begin (115200); // đặt tốc độ truyền nối tiếp để bộ vi điều khiển có thể nói chuyện với giao diện in nối tiếp trong Arduino IDE - Bạn có thể cần phải thay đổi nó thành 9600 để thay thế! myservo.attach (D0); // gắn servo trên chân D0 aka GPIO16 vào đối tượng servo - Xem thêm tại: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // di chuyển cánh tay đòn của servo sang góc quay 10 độ Serial.println ("Đã khóa"); // xuất ra màn hình nối tiếp từ "Đã khóa" WiFi.mode (WIFI_STA); // Đặt wifi thành chế độ Trạm WiFi.begin (ssid, password); // Kết nối với đèn hiệu của điểm phát sóng} void loop () {// Vòng lặp chạy đi chạy lại rất nhanh if (WiFi.status ()! = WL_CONNECTED) {// Nếu KHÔNG kết nối được wifi, hãy làm như sau… Serial.println ("Không thể kết nối Wi-Fi"); myservo.write (10); // Di chuyển nhánh servo sang 10 độ Serial.println ("Đã khóa"); } else {// Nếu WiFi IS được kết nối, hãy làm như sau… long rssi = WiFi. RSSI (); // Tạo một biến có tên là rssi và gán nó cho hàm trả về giá trị cường độ tín hiệu của đèn hiệu điểm phát sóng Serial.print (rssi); // xuất giá trị đọc rssi tới màn hình nối tiếp if (rssi> -50 && rssi <-5) {// Nếu cường độ tín hiệu mạnh hơn -50 và yếu hơn -5. sau đó làm như sau… myservo.write (170); // Xoay cánh tay servo đến 170 độ Serial.println ("Đã mở khóa"); } else {// Nếu các điều kiện trên không được đáp ứng thì hãy làm như sau… myservo.write (10); // Xoay cánh tay servo trở lại 10 độ. Serial.println ("Đã khóa"); }}}

Bước 10: Bạn nên biết…

Tuyên bố từ chối trách nhiệm:

Sự lặp lại hiện tại của mã NearBot hoạt động đáng tin cậy ở khoảng cách dưới 2 mét hoặc 6,5 feet. Ngoài ra, nó trở nên kém chính xác hơn, nhưng vẫn hoạt động.

Điều này có thể được sửa chữa, nhưng hiện tại tôi không biết phải làm như thế nào. Tôi rất thích nếu ai đó làm việc với tôi để tôi có thể cập nhật tài liệu hướng dẫn này với phương pháp tính khoảng cách chính xác hơn!

Các liên kết này có thể hữu ích: YouTuber CNLohr đã phát triển phần sụn cảm biến khoảng cách và vị trí cho ESP8266 với thành công hạn chế:

Espressif đã phát triển chức năng phát hiện khoảng cách Thời gian bay sẽ hoạt động với Arduino IDE cho ESP8266, nhưng chưa bao giờ phát hành:

Hệ thống định vị SubPos sử dụng mô-đun ESP8266 và Tính toán tổn thất đường dẫn, đó là những gì tôi không biết cách triển khai trong Arduino IDE:

Tôi đã tìm thấy một ví dụ bằng ngôn ngữ Java, nhưng tôi không biết cách sao chép đây là Arduino IDE:

double distance = Math.pow (10.0, (((double) (tx_pwr / 10)) - rx_pwr - 10 * Math.log10 (4 * Math. PI / (c / frequency))) / (20 * mu));

Bước 11: Đó là tất cả

Nếu bạn tạo NearBot của riêng mình, hãy đăng "Tôi đã tạo ra nó" trong phần nhận xét bên dưới!

Nếu bạn có thêm bất kỳ ý tưởng nào về việc sử dụng nền tảng NearBot đa năng để làm gì, hãy bình luận ý kiến của bạn! Nó có thể là nguồn cảm hứng tuyệt vời cho những người dùng hướng dẫn khác!

Nếu bạn thích hướng dẫn này, hãy cân nhắc bỏ phiếu cho hướng dẫn này trong các cuộc thi!

Đề xuất: