- Điều kiện tiên quyết:
- Cài đặt VPython trên máy tính của bạn:
- Lập trình VPython:
- Chuẩn bị Arduino của bạn:
- Đang làm việc:
Trong hướng dẫn trước đây của chúng tôi, chúng tôi đã học cách cài đặt python trên máy tính Windows của mình và cách giao diện Arduino với python bằng cách sử dụng một dự án điều khiển LED đơn giản. Nếu bạn là người mới, tôi thực sự khuyên bạn nên quay lại hướng dẫn trước vì hướng dẫn này là sự tiếp nối của hướng dẫn tương tự.
Bạn có thể đã bắt đầu tự hỏi tại sao chúng ta cần python với Arduino nếu tất cả những gì nó có thể làm chỉ là giao tiếp qua cổng nối tiếp. Tuy nhiên, Python là nền tảng phát triển rất mạnh mẽ, trên đó có thể tích hợp rất nhiều ứng dụng thú vị trong đó máy học, thị giác máy tính và nhiều hơn thế nữa. Trong hướng dẫn này, chúng ta sẽ tìm hiểu Cách tạo giao diện đồ họa nhỏ bằng Python. Để làm điều này, chúng ta sẽ cần một mô-đun có tên là Vpython. Hướng dẫn sau chỉ áp dụng cho người dùng windows vì đối với người dùng Mac hoặc Linux, quy trình sẽ khác.
Ở cuối hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo GUI đơn giản bằng Python. Chúng tôi sẽ tạo một hoạt ảnh nhỏ phản hồi giá trị của cảm biến siêu âm được gắn vào Arduino. Ứng dụng này theo dõi đối tượng bằng cảm biến siêu âm và hiển thị nó ở dạng Đồ họa trên máy tính bằng VPython. Khi chúng ta di chuyển đối tượng, cảm biến siêu âm sẽ cảm nhận khoảng cách và gửi thông tin này đến chương trình Python bằng Arduino và nó cũng sẽ di chuyển đối tượng trong máy tính. Nghe thật thú vị phải không! Vì vậy, hãy bắt đầu…
Điều kiện tiên quyết:
- Arduino (Mọi phiên bản)
- Cảm biến siêu âm HC-SR04
- Kết nối dây
- Máy tính với Python
- Kiến thức về hướng dẫn trước
Cài đặt VPython trên máy tính của bạn:
Trong hướng dẫn trước đây của chúng tôi, chúng tôi đã học cách cài đặt python trên máy tính của bạn và cách di chuyển xung quanh nó và tạo một chương trình đơn giản với Arduino. Bây giờ chúng tôi đã cài đặt Visual Python (VPython) trên cùng để chúng tôi có thể tạo Đồ họa thú vị bằng Python cho Arduino. Đối với các bước đơn giản dưới đây để bắt đầu với VPython
Bước 1. Đảm bảo rằng Python đã được cài đặt theo nguyên tắc hướng dẫn trước đó.
Bước 2. Nhấp vào VPython để tải xuống tệp exe cho Visual Python. Không chọn cài đặt phiên bản 64-bit ngay cả khi máy của bạn chạy trên 64-bit. Chỉ cần làm theo liên kết được đưa ra.
Bước 3. Khởi chạy tệp exe và làm theo thiết lập. Không thay đổi đường dẫn thư mục mặc định và đảm bảo rằng bạn đã chọn “cài đặt đầy đủ”.
Bước 4. Sau khi cài đặt, bạn sẽ tìm thấy một ứng dụng mới có tên “VIDLE (VPython)” trên màn hình hoặc bảng điều khiển ứng dụng của bạn như hình dưới đây.
Bước 5. Khởi chạy ứng dụng và bạn sẽ nhận được một cửa sổ như hình dưới đây.
Bước 6. Đây là cửa sổ mà chúng ta sẽ nhập chương trình cho VPython. Tuy nhiên, bây giờ chúng ta hãy kiểm tra xem Vpython có đang hoạt động hay không bằng cách mở một chương trình ví dụ. Để thực hiện việc này, hãy chọn Tệp-> Mở-> Thoát
Bước 7. Bạn sẽ mở một chương trình ví dụ. Thử khởi chạy chương trình bằng Run -> Run Module . Nếu mọi thứ đang hoạt động như mong đợi, bạn sẽ nhận được màn hình sau.
Bạn sẽ thấy cửa sổ Shell (bên trái) với hai >>> cho biết biên dịch thành công và cửa sổ thực tế (phía trước) hiển thị một quả bóng nảy.
Bước 8. Bạn cũng có thể thử các chương trình ví dụ khác để khám phá sức mạnh của VPython, ví dụ như chương trình ví dụ có tên “động cơ điện” sẽ làm bạn ngạc nhiên trước màn hình sau đây.
Bước 9. Điều này có nghĩa là VPython của bạn đã sẵn sàng để sử dụng và bạn có thể chuyển sang chủ đề “ Lập trình Vpython của bạn ”.
Bước 10. Nếu không, nếu bạn giống một trong số nhiều người gặp phải "Lỗi numpy", đừng mất hy vọng vì chúng tôi sẽ phân loại vấn đề đó trong các bước tiếp theo
Bước 11. Mở Máy tính của tôi -> Ổ C -> Python 27 -> Scripts -> local.bat . Thao tác này sẽ khởi chạy một dấu nhắc lệnh như hình dưới đây
Bước 12. Bây giờ gõ “pip install --upgrade numpy” và nhấn enter. Phiên bản mới của Numpy sẽ được cài đặt trên máy của bạn. Bạn có thể phải đợi một lúc nếu kết nối internet của bạn chậm.
Bước 13. Sau khi hoàn tất, bạn có thể quay lại bước số 4 và thử một chương trình ví dụ và bạn sẽ có thể làm cho nó hoạt động.
Lập trình VPython:
Tiếp theo, chúng tôi bắt đầu lập trình vào cửa sổ VPython của chúng tôi. Trong chương trình này, chúng ta sẽ tạo ra hai đối tượng hình chữ nhật 3D, một đối tượng sẽ được đặt ở trung tâm của màn hình tham chiếu đến cảm biến Siêu âm tĩnh và đối tượng kia sẽ ở một vị trí động dựa trên khoảng cách giữa cảm biến Hoa Kỳ và đối tượng (giấy).
Các mã Python hoàn toàn có thể tìm thấy ở phần cuối của trang này. Sâu hơn nữa, tôi đã giải thích mã python này bằng cách chia chúng thành các đoạn mã nhỏ có ý nghĩa.
Dòng đầu tiên sẽ là nhập Thư viện trực quan để chúng ta có thể tạo các đối tượng 3D. Dòng dưới đây làm tương tự.
từ nhập trực quan *
Bạn nên làm quen với bốn dòng tiếp theo, vì chúng tôi đã sử dụng chúng trong hướng dẫn trước của chúng tôi. Chúng được sử dụng để nhập Serial và thư viện thời gian và cũng thiết lập kết nối nối tiếp với Arduino ở COM18 với 9600 làm tốc độ truyền
nhập nối tiếp #Serial được nhập cho thời gian nhập giao tiếp nối tiếp # Yêu cầu sử dụng các chức năng trì hoãn ArduinoSerial = serial.Serial ('com18', 9600) # Tạo đối tượng cổng nối tiếp được gọi là arduinoSerialData time.sleep (2) # Chờ 2 giây để giao tiếp tới được thành lập
Bây giờ, đã đến lúc tạo các đối tượng. Tôi đã tạo hai hình chữ nhật 3d có tên là obj và wall. Các wallL là một bức tường đứng yên trong màu lục lam được đặt ở trung tâm của màn hình và các obj là đối tượng di chuyển trong màu trắng. Tôi cũng đã đặt một dòng chữ “Cảm biến Hoa Kỳ” gần đối tượng trên tường.
obj = box (pos = (- 5,0,0), size = (0,1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0,2, 12,12), color = color.cyan) text (text = 'US sensor', axis = (0,1,0), pos = (- 2, -6,0), depth = -0.3, color = color.cyan)
Tôi chắc chắn rằng ba dòng trên sẽ xuất hiện dưới dạng tiếng Hy Lạp và tiếng Latinh đối với hầu hết những người đọc lần đầu tiên, nhưng với thời gian, bạn sẽ có thể hiểu nó. Mọi thứ được đề cập bên trong dấu ngoặc đều là tọa độ (x, y, z). Và các tọa độ này rất giống với tọa độ mà chúng ta tìm thấy ở lớp hình học cấp 3 như hình dưới đây.
Bây giờ, đồ họa và cổng nối tiếp đã sẵn sàng, tất cả những gì chúng ta phải làm là đọc dữ liệu và đặt “obj” (hình chữ nhật màu trắng) vào một nơi theo dữ liệu đến từ Arduino. Điều này có thể được thực hiện bằng các dòng sau, trong đó obj.pos.x điều khiển vị trí tọa độ X của đối tượng (Hình chữ nhật trắng).
t = int (ArduinoSerial.readline ()) # đọc dữ liệu nối tiếp và in nó dưới dạng dòng t = t * 0,05 obj.pos.x = t
Chuẩn bị Arduino của bạn:
Tập lệnh Python đã sẵn sàng để lắng nghe các giá trị từ cổng COM và tạo hiệu ứng đồ họa cho phù hợp, nhưng Arduino của chúng tôi vẫn chưa sẵn sàng. Đầu tiên chúng ta phải kết nối cảm biến siêu âm với Arduino theo Sơ đồ mạch sau đây. Nếu bạn hoàn toàn mới sử dụng cảm biến Hoa Kỳ và Arduino, thì bạn phải quay lại hướng dẫn Đo khoảng cách dựa trên cảm biến siêu âm & Arduino.
Sau đó tải lên Chương trình Arduino được đưa ra ở cuối trang này. Chương trình tự giải thích bằng cách sử dụng các dòng bình luận. Chúng ta biết rằng cảm biến siêu âm hoạt động bằng cách tính toán thời gian để xung đập vào một vật thể và quay trở lại. Giá trị này được tính bằng cách sử dụng hàm PulseIn trong Arduino. Sau đó, thời gian thực hiện được chuyển đổi thành khoảng cách bằng cách sử dụng dòng dưới đây.
dist = (timetaken / 2) / 2,91;
Ở đây khoảng cách được tính bằng milimét (mm).
Đang làm việc:
Công việc của dự án rất đơn giản. Khởi chạy chương trình Python và đặt một đối tượng trước cảm biến Hoa Kỳ như hình dưới đây:
Bây giờ khởi chạy chương trình python và bạn sẽ có thể nhận thấy hình chữ nhật màu trắng di chuyển cùng với giấy của bạn, khoảng cách giữa giấy và cảm biến của bạn cũng sẽ được hiển thị trong cửa sổ shell như trong hình dưới đây.
Đây là cách chúng ta có thể theo dõi chuyển động của đối tượng bằng cảm biến siêu âm và Python với Arduino.
Hy vọng bạn hiểu dự án và thích xây dựng một. Đây chỉ là một bước tinh tế đối với python nhưng bạn có thể xây dựng nhiều thứ sáng tạo hơn bằng cách sử dụng nó. Nếu bạn có bất kỳ ý tưởng nào về những gì cần xây dựng với điều này, hãy đăng chúng trên phần bình luận và sử dụng diễn đàn để được trợ giúp kỹ thuật. Hẹn gặp lại các bạn với một dự án python thú vị khác.