- Vật liệu thiết yếu:
- Cài đặt Python trên máy tính của bạn:
- Bắt PySerial bằng Python:
- Chương trình Python Arduino đầu tiên của chúng tôi:
- Điều khiển đèn LED bằng Python và Arduino:
Arduino luôn là một nền tảng học tập / phát triển mạnh mẽ và dễ sử dụng khi nói đến phát triển phần cứng nguồn mở. Trong thế giới hiện đại ngày nay, mọi phần cứng đều được cung cấp bởi một ngôn ngữ lập trình mục đích chung cấp cao để làm cho nó hiệu quả hơn và thân thiện hơn với người dùng. Một trong những ngôn ngữ như vậy là Python. Python là một ngôn ngữ lập trình cấp cao được thông dịch, hướng đối tượng, có ngữ nghĩa động với cấu trúc dữ liệu cấp cao được xây dựng trong cấu trúc dữ liệu, kết hợp với tính năng nhập động và liên kết động, làm cho nó rất hấp dẫn cho Phát triển ứng dụng nhanh.
Kết hợp sức mạnh của Arduino và Python sẽ mở ra nhiều khả năng vì python có năng suất tăng lên với khả năng tương tác với các nền tảng khác như openCV, Matlab, v.v. Vì vậy, trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt python trên máy tính của mình và cách sử dụng nó với Arduino để bật tắt đèn LED trên bo mạch của Arduino.
Vậy hãy bắt đầu….
Vật liệu thiết yếu:
- Arduino Uno (hoặc bất kỳ Bo mạch Arduino nào)
- Máy tính có kết nối Internet
Cài đặt Python trên máy tính của bạn:
Rõ ràng là bước đầu tiên trong hướng dẫn này là cài đặt Python trên máy tính của chúng tôi. Các bước được đề cập bên dưới chỉ áp dụng cho người dùng windows chạy HĐH 32 bit hoặc 64 bit. Quy trình cài đặt cho MAC và Linux là khác nhau.
- Nhấp vào Python-2.7.9 32-bit và thao tác này sẽ cài đặt Python IDLE 32-bit trên Máy tính của bạn. Không tải xuống phiên bản 64-bit hoặc các phiên bản cập nhật vì chúng không cung cấp hỗ trợ cho các Thư viện Arduino của chúng tôi. Ngay cả khi Máy tính của bạn đang hoạt động trên 64-bit, bạn có thể sử dụng chính Python 32-bit.
- Mở tệp exe đã tải xuống và làm theo hướng dẫn. Không thay đổi thư mục mà python đang được cài đặt. Nó sẽ là C: \ Python27 theo mặc định và để nguyên như vậy.
- Trong khi quá trình cài đặt diễn ra, bạn có thể nhận được cảnh báo từ chương trình chống vi-rút (nếu có) trong trường hợp đó, hãy nhấp vào cho phép.
Vậy là xong !, python đã được cài đặt thành công trên máy tính của chúng tôi. Bạn có thể xác minh nó bằng cách tìm kiếm “Python IDLE” trong hộp tìm kiếm của Windows và mở nó.
Khi mở ra, bạn sẽ nhận được màn hình sau. Cửa sổ này được gọi là Python Shell và chúng tôi sẽ gọi nó là “ Python shell ” từ bây giờ.
Màn hình này được gọi là Python Shell. Bạn có thể viết mã trực tiếp tại đây và nhận kết quả trên cùng một màn hình hoặc tạo một tệp mới và viết chương trình ở đó và xác minh chương trình tại đây. Sau đó chúng ta sẽ đi vào chi tiết của việc tạo một chương trình python, bây giờ chúng ta hãy kiểm tra xem python có hoạt động không.
Để làm như vậy, chỉ cần gõ “ print (1 + 1) ” và nhấn enter. Bạn sẽ thấy kết quả được in như hình dưới đây.
Bắt PySerial bằng Python:
Bước tiếp theo là cài đặt pyserial. PySerial là một mô-đun API Python được sử dụng để đọc và ghi dữ liệu nối tiếp vào Arduino hoặc bất kỳ Vi điều khiển nào khác.
Nhấp vào Pyserial Windows để tải xuống PySerial. Kết quả tải xuống sẽ là một tệp exe có thể được cài đặt trực tiếp. Không thay đổi bất kỳ cài đặt nào trong khi cài đặt. Để nó vào thư mục mặc định và cài đặt mặc định.
Bây giờ, chúng ta hãy kiểm tra xem PySerial đã được cài đặt đúng chưa. Để thực hiện việc này, hãy mở lại Python Shell và nhập
nhập nối tiếp . Nếu thư viện đã được cài đặt thành công thì bạn sẽ không nhận được bất kỳ thông báo lỗi nào như trong hình bên dưới. Nếu bạn gặp bất kỳ lỗi nào, hãy đăng chúng trên phần bình luận và chúng tôi sẽ cố gắng giải quyết.
Hướng dẫn này giả định rằng bạn đã quen thuộc với Arduino và có kinh nghiệm tải các dự án lên Arduino. Vì vậy, chúng ta hãy trực tiếp chuyển sang chương trình Python của mình. Nếu bạn là người mới bắt đầu với Arduino, hãy xem các Dự án Arduino của chúng tôi và bắt đầu từ Đèn LED nhấp nháy với Arduino.
Chương trình Python Arduino đầu tiên của chúng tôi:
Như đã nói trước đó, chúng tôi sẽ điều khiển đèn LED bảng Arduino tích hợp bằng cách sử dụng tập lệnh Python. Hãy để chúng tôi bắt đầu với mã Arduino.
Chương trình cho Arduino:
Chương trình hoàn chỉnh cho hướng dẫn Python Arduino này được đưa ra ở cuối trang này. Đọc thêm để biết nó hoạt động như thế nào.
Bên trong chức năng thiết lập, chúng tôi khởi tạo giao tiếp nối tiếp ở tốc độ 9600 baud và tuyên bố rằng chúng tôi sẽ sử dụng đèn LED tích hợp làm đầu ra và chuyển nó xuống mức thấp trong khi bắt đầu chương trình. Chúng tôi cũng đã gửi một thông báo chào mừng đến python qua bản in nối tiếp như hình dưới đây:
void setup () {Serial.begin (9600); // khởi tạo COM nối tiếp tại 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // tạo chân LED (13) làm đầu ra digitalWrite (LED_BUILTIN, LOW); Serial.println ("Xin chào !, tôi là Arduino"); }
Bên trong hàm vòng lặp , chúng tôi đọc bất kỳ dữ liệu nào đến theo thứ tự và gán giá trị cho biến “data”. Bây giờ, dựa trên giá trị của biến này (“dữ liệu”), chúng tôi chuyển đổi hướng dẫn tích hợp như được hiển thị bên dưới.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); else if (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Chương trình cho Python:
Chương trình python hoàn chỉnh cho hướng dẫn này được đưa ra ở cuối trang này. Đọc thêm để biết cách viết và sử dụng tương tự.
- Mở Python Shell của bạn (Python IDLE) và nhấp vào Tệp-> Mới
- Thao tác này sẽ mở một tệp văn bản mới nơi bạn có thể nhập vào chương trình của mình.
- Trước khi chúng ta nhập bất cứ thứ gì, hãy lưu tệp bằng Ctrl + S. Nhập tên bất kỳ và nhấp vào lưu. Thao tác này sẽ tự động lưu tệp của bạn trong phần mở rộng “.py”.
- Bây giờ, hãy nhập chương trình hoặc dán mã python được đưa ra ở cuối trang này. Giải thích cho điều tương tự được đưa ra bên dưới và cuối cùng là chạy chương trình.
Trong chương trình của chúng tôi, bước đầu tiên sẽ là nhập thư viện tuần tự và thời gian. Thư viện nối tiếp như đã nói trước đó sẽ được sử dụng để đọc và ghi dữ liệu nối tiếp và thư viện thời gian sẽ được sử dụng để tạo ra độ trễ trong chương trình của chúng tôi. Hai thư viện này có thể được nhập vào chương trình của chúng tôi bằng hai dòng sau:
nhập nối tiếp # Đã nhập nối tiế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
Bước tiếp theo sẽ là khởi tạo một đối tượng nối tiếp bằng cách sử dụng thư viện nối tiếp của chúng tôi. Trong chương trình này, chúng tôi đã đặt tên cho đối tượng nối tiếp của mình là “ArduinoSerial” . Trong dòng này, chúng ta phải đề cập đến tên của cổng COM mà Arduino của chúng ta được kết nối và tốc độ truyền nó đang hoạt động như hình dưới đây.
ArduinoSerial = serial.Serial ('com18', 9600)
Lưu ý: Điều rất quan trọng là phải đề cập đến tên cổng COM chính xác. Nó có thể được tìm thấy bằng cách sử dụng Trình quản lý thiết bị trên máy tính của bạn.
Ngay sau khi đối tượng nối tiếp được khởi tạo, chúng ta nên giữ chương trình trong hai giây để thiết lập giao tiếp nối tiếp. Điều này có thể được thực hiện bằng cách sử dụng dòng dưới đây:
time.sleep (2)
Bây giờ chúng ta có thể đọc hoặc ghi bất cứ thứ gì từ / vào Bảng Arduino của mình.
Dòng sau sẽ đọc bất cứ thứ gì đến từ Arduino và sẽ in nó trên cửa sổ shell
in ArduinoSerial.readline ()
Bạn cũng có thể gán giá trị cho một biến và sử dụng nó để tính toán.
Dòng sau sẽ ghi giá trị của tham số vào Arduino Board.
ArduinoSerial.write ('1')
Dòng này sẽ ghi '1' vào Arduino. Bạn có thể gửi bất kỳ thứ gì từ số thập phân sang chuỗi bằng cách sử dụng cùng một dòng.
Bây giờ, quay lại chương trình của chúng ta, bên trong vòng lặp while vô hạn, chúng ta có các dòng sau
var = raw_input () #get đầu vào từ người dùng in "bạn đã nhập", var # in đầu vào để xác nhận if (var == '1'): # nếu giá trị là 1 ArduinoSerial.write ('1') #send 1 print ("LED đã BẬT") time.sleep (1) if (var == '0'): # nếu giá trị là 0 ArduinoSerial.write ('0') #send 0 print ("LED đã TẮT") time.sleep (1)
Dòng var = raw_input sẽ nhận bất kỳ giá trị nào được nhập trong tập lệnh Shell và gán giá trị đó cho biến var .
Sau đó, nếu giá trị là 1, nó sẽ in '1' nối tiếp vào Arduino và nếu 0, nó sẽ in '0' nối tiếp vào Arduino. Mã trong Chương trình Arduino của chúng tôi (đã thảo luận ở trên), chúng tôi sẽ chuyển đổi đèn LED dựa trên giá trị nhận được.
Sau khi hoàn thành chương trình hoàn chỉnh, tập lệnh của bạn sẽ trông giống như sau
Bây giờ nhấp vào Chạy -> Chạy Mô-đun hoặc nhấn F5, điều này có thể yêu cầu bạn lưu chương trình và sau đó sẽ khởi chạy nó.
Điều khiển đèn LED bằng Python và Arduino:
Công việc của dự án này khá suôn sẻ. Tải chương trình lên Arduino của bạn và xác minh rằng nó được kết nối với cùng một cổng COM như đã đề cập trong chương trình python. Sau đó, khởi chạy chương trình Python như đã đề cập ở trên.
Thao tác này sẽ khởi chạy một tập lệnh shell python như được hiển thị bên dưới. Cửa sổ bên trái là cửa sổ shell hiển thị đầu ra và cửa sổ bên phải là script hiển thị chương trình.
Như bạn có thể thấy chuỗi “Xin chào !, Tôi là Arduino” được nhập trong chương trình Arduino được Python nhận và hiển thị trên cửa sổ shell của nó.
Khi cửa sổ shell yêu cầu nhập giá trị, chúng ta có thể nhập 0 hoặc 1. Nếu chúng ta gửi 1 đèn LED trên Bảng Arduino sẽ BẬT và nếu chúng ta gửi 0, đèn LED trên Bảng Arduino sẽ TẮT. Hiển thị kết nối thành công giữa Chương trình Arduino và Python của chúng tôi.
Có hai chương trình được đưa ra dưới đây, một chương trình được tải lên và chạy từ Arduino và chương trình thứ hai sẽ được chạy từ Python Shell trong Windows.
Hy vọng bạn hiểu dự án và có thể làm cho nó hoạt động. Nếu không, hãy đăng vấn đề của bạn trong bình luận bên dưới và tôi sẽ sẵn lòng trợ giúp bạn. Trong dự án tiếp theo của chúng tôi, chúng tôi sẽ tìm hiểu những gì khác có thể được thực hiện thú vị với Python và Arduino bằng cách khám phá sâu vào các mô-đun python khác như Vpython, gamepython, v.v. Cho đến khi đó, hãy tiếp tục theo dõi….