Mục lục:
- Bước 1: Các bộ phận
- Bước 2: Lắp ráp phần cứng
- Bước 3: Đấu dây
- Bước 4: Cài đặt MicroPython
- Bước 5: Thiết lập mạng
- Bước 6: Cài đặt chương trình chính
- Bước 7: Cải tiến trong tương lai
Video: MicroPython IoT Rover dựa trên WEMOS D1 (ESP-8266EX): 7 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
** Cập nhật: Tôi đã đăng một video mới cho v2 với một cây thương **
Tôi tổ chức các hội thảo về Robot cho trẻ nhỏ và tôi luôn tìm kiếm các nền tảng kinh tế để xây dựng các dự án hấp dẫn. Mặc dù các bản sao của Arduino rẻ nhưng nó sử dụng ngôn ngữ C / C ++ mà trẻ em không quen thuộc. Ngoài ra, nó không có WiFi tích hợp sẵn cho các dự án IoT. Mặt khác, mặc dù Raspberry Pi có WIFI và trẻ em có thể lập trình nó bằng Python, nhưng nó vẫn là một nền tảng đắt tiền để chỉ cần điều khiển một vài cổng GPIO để bật và tắt thiết bị. Tôi cần một cái gì đó ở giữa có cả khả năng WIFI và Python. Có vẻ như tôi đã tìm thấy câu trả lời của mình trong MicroPython trên một bảng mạch dựa trên ESP8266 giá rẻ.
Micropython là gì?
Theo trang web của mình, MicroPython là một triển khai gọn gàng và hiệu quả của các ngôn ngữ lập trình Python 3 bao gồm một tập hợp con nhỏ của thư viện chuẩn Python và nó được tối ưu hóa để chạy trên vi điều khiển và trong môi trường hạn chế (chẳng hạn như ESP8266). Về cơ bản nó là Python IDE trên một con chip. Một lợi ích chính là bạn có thể tạo mã và thay đổi mã nhanh chóng bằng cách sử dụng ứng dụng khách trình duyệt web có tên là Webrepl. (Hãy thử làm điều đó trong Arduino.) Bạn cũng có thể xem dữ liệu cảm biến trong thời gian thực trên Webrepl thay vì dựa vào ghi dữ liệu hoặc màn hình LED trong Arduino.
ESP8266 là gì?
Tóm lại, hãy nghĩ về nó như một Arduino với khả năng kết nối mạng tích hợp. Bạn có thể sử dụng Arduino IDE để lập trình bo mạch ESP8266 bằng C / C ++ hoặc bạn có thể flash nó bằng NodeMCU hoặc MicroPython. Trong dự án này, tôi sẽ cài đặt MicroPython lên bảng ESP8266.
Tôi quyết định chọn WEMOS D1 dựa trên ESP8266-12EX cho dự án đơn giản này, nơi tôi sẽ điều hướng một chiếc xe 2WD bằng trình duyệt web. Có những bảng khác được thiết kế cho MicroPython nhưng tôi muốn một thứ gì đó rẻ tiền mà tôi có thể vứt đi nếu nó không đáp ứng tiêu chí của tôi. Như mong đợi, nó đáp ứng tất cả các yêu cầu của tôi và rất có thể tôi sẽ kết hợp WeMos và Micropython vào các dự án trong tương lai.
Bước 1: Các bộ phận
- Wemos D1 hoặc bất kỳ bo mạch dựa trên ESP8266 nào
- Tấm chắn động cơ (Tôi đang sử dụng L293D giá rẻ của AliExpress)
- Giá đỡ pin cho 4 x AA và 9V (4 x pin AA dành cho động cơ và 9V dành cho bo mạch Wemos)
- Khung gầm xe 2WD
- Cáp Dupont
Có thể cần mỏ hàn, tua vít và súng bắn keo để ghép mọi thứ lại với nhau.
Bước 2: Lắp ráp phần cứng
Đầu tiên, lắp ráp khung xe theo hướng dẫn.
Sau đó, keo nóng các thành phần khác như hình.
Dây động cơ nên được hàn vào các đầu cuối của động cơ và sử dụng keo nóng để gia cố các mối nối đầu cuối.
Gắn một công tắc nhỏ vào ngăn chứa pin 4AA. Thao tác này sẽ bật / tắt nguồn cho tấm chắn động cơ.
Bước 3: Đấu dây
Làm theo sơ đồ đấu dây của tôi như được hiển thị.
Wemos đến Motor Shield:
D1 IN2
D2 IN1 D3 IN4 ** bỏ qua D4 D5 IN3 GND -> GND
Tấm chắn động cơ đến động cơ / nguồn:
Một thiết bị đầu cuối -> Động cơ bên trái
Đầu cuối B -> Động cơ phải VCC -> Pin (+) GND -> Pin (-)
Bước 4: Cài đặt MicroPython
Đầu tiên, Wemos có một chip nối tiếp / USB dựa trên CH304G. Đây là con chip tương tự được tìm thấy trong các bản sao Arduino rẻ tiền và bạn phải cài đặt trình điều khiển thích hợp cho Mac hoặc PC. Làm theo hướng dẫn trên trang web này để cài đặt trình điều khiển.
Kết nối Wemos với máy tính của bạn và xác nhận rằng máy tính của bạn có thể phát hiện ra Wemos. Trên Mac, hãy chạy lệnh sau và bạn sẽ thấy một thiết bị có tên /dev/tty.wchusbserial640.
$ ls -lt / dev / tty * | cái đầu
crw-rw-rw- 1 root wheel 17, 4 tháng 3 2 23:31 /dev/tty.wchusbserial640
Nếu bạn đang sử dụng PC, bạn có thể sử dụng Tài liệu hướng dẫn này làm tài liệu tham khảo.
Tiếp theo, bạn sẽ cần thiết lập Python 2 hoặc 3 trên máy tính của mình vì công cụ flash, esptool.py, dựa trên Python. Mặc dù hướng dẫn MicroPython có thể nói rằng công cụ chỉ hoạt động với Python 2.7, nhưng tôi đã có thể chạy nó trong Python 3 mà không gặp bất kỳ vấn đề nào. Tải xuống Python mới nhất từ https://www.python.org và làm theo hướng dẫn cài đặt cho PC hoặc Mac của bạn.
Cuối cùng, bạn sẽ cần cài đặt MicroPython trên Wemos. Trang MicroPython có một hướng dẫn tuyệt vời về cách thiết lập MicroPython trên ESP8266. Chỉ cần làm theo hướng dẫn cài đặt trong Bắt đầu với MicroPython trên ESP8266.
Dưới đây là các lệnh tôi đã sử dụng:
$ esptool.py --port /dev/tty.wchusbserial640 delete_flash
esptool.py v1.3 Đang kết nối…. Đang chạy sơ khai flash Cesanta… Xóa flash (quá trình này có thể mất một lúc)… Quá trình xóa mất 10,5 giây
$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin
esptool.py v1.3 Đang kết nối…. Đang chạy sơ khai của bộ nhấp nháy Cesanta… Các thông số flash được đặt thành 0x0240 Đã viết 589824 byte ở 0x0 trong 50,8 giây (92,8 kbit / s)… Đang rời khỏi…
MicroPython hiện đã được cài đặt trên bảng của bạn!
Bước 5: Thiết lập mạng
Mặc dù MicroPython hiện đã được cài đặt trên Wemos của bạn nhưng nó vẫn chưa được kết nối với mạng của bạn. Trước tiên, bạn cần kích hoạt mạng. Trên Mac, thực hiện lệnh SCREEN để bắt đầu phiên đầu cuối nối tiếp tới Wemos.
$ screen /dev/tty.wchusbserial640 115200
Khi bạn thấy màn hình trống, hãy nhấn QUAY LẠI để xem lời nhắc:
>>
(Lưu ý: Để thoát, hãy nhập CTRL-A CTRL- )
Bây giờ, hãy kích hoạt quyền truy cập webclient. Gõ "import webrepl_setup" để chạy chương trình thiết lập. Nhập E để bật WebREPL và sau đó đặt mật khẩu. Khởi động lại để kích hoạt các thay đổi.
>> nhập webrepl_setup
Trạng thái tự động khởi động trình nền WebREPL: bị vô hiệu Bạn có muốn (E) điều khiển hoặc (D) có thể chạy khi khởi động không? (Dòng trống để thoát)> E Để bật WebREPL, bạn phải đặt mật khẩu cho nó Mật khẩu mới: xxxxx Xác nhận mật khẩu: xxxxx Các thay đổi sẽ được kích hoạt sau khi khởi động lại Bạn có muốn khởi động lại ngay bây giờ không? (y / n) y
Cuối cùng, tải ứng dụng Webrepl xuống máy của bạn. Đây là tùy chọn nhưng máy khách đi kèm với các công cụ hữu ích khác mà bạn có thể muốn sử dụng sau này. Ví dụ: webrepl_cli.py là lệnh sao chép tệp vào Wemos theo cú pháp giống scp. Sử dụng git để tải xuống ứng dụng khách. (Cài đặt công cụ git nếu bạn chưa có.)
git clone
Mở trình duyệt web của bạn và trên trường URL, nhập vị trí của vị trí tệp khách hàng webrepl đã tải xuống của bạn, chẳng hạn như:
tệp: ///Users/xxxxx/wemos/webrepl/webrepl.html
Điều này sẽ hiển thị ứng dụng webrepl trên trình duyệt của bạn. Trước khi bạn có thể kết nối với nó, trước tiên bạn phải kết nối với Điểm truy cập WIFi của nó. Nếu bạn nhìn vào WIFI khả dụng cho máy tính của mình, bạn sẽ thấy một mạng bắt đầu bằng MicroPython-xxxx. Kết nối với mạng đó. (Cảnh báo: Sau khi kết nối với mạng đó, bạn sẽ mất quyền truy cập Internet.)
Quay lại ứng dụng webrepl của bạn và nhấp vào Kết nối. Nó sẽ nhắc nhập mật khẩu. Nhập mật khẩu Wemos của bạn và bạn sẽ kết nối.
Chào mừng bạn đến với MicroPython!
Mật khẩu: Đã kết nối WebREPL >>>
Wemos của bạn vẫn đang chạy ở Chế độ AccessPoint. Mặc dù điều này là OK, nhưng tôi thích nó chạy ở Chế độ Trạm nơi nó kết nối với WIFI gia đình của tôi để máy tính của tôi có thể truy cập nó thông qua WIFI gia đình và vẫn có thể truy cập Internet. Để làm điều đó, bạn sẽ phải tạo một tệp có tên boot.py với cấu hình mạng và tải nó lên Wemos.
Đây là một mẫu boot.py. Thay đổi ssid và mật khẩu cho mạng WIFI gia đình của bạn. Ngoài ra, tôi muốn cấp cho nó một IP tĩnh là 192.168.0.32. Thay đổi nó thành địa chỉ IP có sẵn của WIFI tại nhà của bạn.
boot.py (bạn có thể tải xuống từ bên dưới)
nhập gc
import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) nếu không sta_if.isconnected (): print ('đang kết nối với mạng…') sta_if.active (True) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') khi không sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()
Sử dụng biểu mẫu "Gửi tệp" của ứng dụng khách Webrepl để gửi tệp boot.py tới Wemos của bạn. Nhấn nút đặt lại để khởi động lại. Nếu bạn vẫn kết nối qua USB bằng lệnh SCREEN, bạn sẽ thấy:
kết nối với mạng… cấu hình mạng: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Trình nền WebREPL bắt đầu trên ws: //192.168.4.1: 8266 Trình nền WebREPL bắt đầu trên ws: //192.168.0.32: 8266 Webrepl đã khởi động ở chế độ bình thường không thể mở tệp 'main.py' để đọc MicroPython v1.8.7-7-gb5a1a20a3 vào ngày 2017-01-09; Mô-đun ESP với ESP8266 Nhập "help ()" để biết thêm thông tin. >>>
Điều này xác nhận rằng Wemos của bạn được kết nối với WIFI gia đình của bạn bằng địa chỉ ipad là 192.168.0.32.
Bạn có thể ping địa chỉ IP đó để xác thực.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 byte dữ liệu
64 byte từ 192.168.0.32: icmp_seq = 0 ttl = 255 time = 9.334 ms. 64 byte từ 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11.071 ms..
Bước 6: Cài đặt chương trình chính
Cuối cùng, bạn sẽ cần cài đặt chương trình chính sẽ tiếp tục chạy trên Wemos của bạn.
Quay lại trình duyệt web của bạn và chạy chương trình ứng dụng khách webrepl. Thay đổi địa chỉ ip thành địa chỉ IP Wemos của bạn. Trong trường hợp của tôi, bây giờ là 192.168.0.32. Nhập mật khẩu Wemos của bạn và bây giờ bạn sẽ được kết nối với Wemos.
Hãy tải lên chương trình main.py đính kèm. Tải tệp đính kèm xuống máy tính của bạn. Nhấp vào Chọn tệp để chọn main.py đã tải xuống và nhấp vào Đã gửi tới thiết bị.
Bạn sẽ cần nhấn nút Rest để tải chương trình main.py. Sau khi nhấn nút Đặt lại, bạn sẽ thấy:
kết nối với mạng…
cấu hình mạng: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL daemon bắt đầu trên ws: //192.168.4.1: 8266 WebREPL daemon bắt đầu trên ws: //192.168.0.32: 8266 Đã khởi động webrepl ở chế độ bình thường Đang nghe, hãy kết nối trình duyệt của bạn với…
Điều này có nghĩa là chương trình main.py của bạn đã được kích hoạt và liệt kê đến cổng 80.
Để kiểm tra, hãy mở trình duyệt web của bạn và nhập
Điều này sẽ hiển thị màn hình điều khiển ô tô như trong video. Nếu dây của bạn được kết nối đúng cách, các nút điều khiển sẽ gửi tín hiệu thích hợp đến các cổng GPIO của bạn để di chuyển xe.
Bước 7: Cải tiến trong tương lai
Những việc cần làm sau đây nằm trong danh sách v2 của tôi:
- Sử dụng PWM để điều khiển tốc độ động cơ
- Cải thiện giao diện web. Có lẽ sử dụng khuôn khổ aREST. Tôi không tin rằng lib aREST có sẵn trên MicroPython vào lúc này, vì vậy tôi có thể phải hack nó.
Cảm ơn bạn đã đọc hướng dẫn này. Hãy theo dõi tôi trên Facebook, Youtube, và các bảng hướng dẫn để biết thêm các dự án khác trong tương lai.
Đề xuất:
Lập mô hình dựa trên hình ảnh / Chân dung bằng phép đo ảnh: 4 bước
Mô hình dựa trên hình ảnh / Chân dung phép đo ảnh: Xin chào mọi người, Trong bài viết có thể hướng dẫn này, tôi sẽ chỉ cho các bạn quy trình tạo mô hình 3D bằng hình ảnh kỹ thuật số. Quá trình này được gọi là Photogrammetry, còn được gọi là Lập mô hình dựa trên hình ảnh (IBM). Cụ thể, loại quy trình này được sử dụng để tái
Nhiệt kế hồng ngoại không tiếp xúc dựa trên Arduino - Nhiệt kế dựa trên IR sử dụng Arduino: 4 bước
Nhiệt kế hồng ngoại không tiếp xúc dựa trên Arduino | Nhiệt kế dựa trên IR sử dụng Arduino: Xin chào các bạn trong phần hướng dẫn này, chúng tôi sẽ tạo một Nhiệt kế không tiếp xúc bằng arduino. nhiệt độ sau đó trong phạm vi đó
Trình tạo nhạc dựa trên thời tiết (Trình tạo âm trung dựa trên ESP8266): 4 bước (có hình ảnh)
Trình tạo nhạc dựa trên thời tiết (Trình tạo âm trung dựa trên ESP8266): Xin chào, hôm nay tôi sẽ giải thích cách tạo trình tạo nhạc dựa trên thời tiết nhỏ của riêng bạn. Nó dựa trên ESP8266, giống như Arduino và nó phản ứng với nhiệt độ, mưa và cường độ ánh sáng. Đừng mong đợi nó có thể tạo ra toàn bộ bài hát hoặc hợp âm
Diều hâu: Robot điều khiển bằng cử chỉ bằng tay sử dụng giao diện dựa trên xử lý hình ảnh: 13 bước (có hình ảnh)
Gesture Hawk: Robot điều khiển bằng cử chỉ bằng tay sử dụng giao diện dựa trên xử lý hình ảnh: Gesture Hawk đã được giới thiệu trong TechEvince 4.0 như một giao diện người-máy xử lý hình ảnh đơn giản. Tiện ích của nó nằm ở chỗ không cần thiết bị cảm biến hoặc thiết bị đeo bổ sung nào ngoại trừ một chiếc găng tay để điều khiển chiếc xe robot chạy trên
Cách Flash Firmware MicroPython trên Công tắc thông minh dựa trên Sonoff ESP8266: 3 bước (có Hình ảnh)
Cách Flash Firmware MicroPython trên Công tắc thông minh Sonoff dựa trên ESP8266: Sonoff là gì? Sonoff là dòng thiết bị dành cho Nhà thông minh do ITEAD phát triển. Một trong những thiết bị linh hoạt và rẻ tiền nhất từ dòng đó là Sonoff Basic và Sonoff Dual. Đây là các thiết bị chuyển mạch hỗ trợ Wi-Fi dựa trên một con chip tuyệt vời, ESP8266. Trong khi