Cách lập trình và điều khiển Arduino bằng Python

Cách lập trình và điều khiển Arduino bằng Python

Python đã gây bão thế giới mã hóa. Cùng với sự nổi lên của ngôn ngữ mới này, bối cảnh thiết bị điện tử DIY cũng phát triển mạnh mẽ. Bảng phát triển và máy tính bảng đơn từ các công ty như Arduino và Raspberry Pi đã thay đổi cách mọi người tạo ra thiết bị điện tử ủ tại nhà. Sẽ không tuyệt vời nếu bạn có thể lập trình Arduino bằng Python phải không?





kết nối wii u gamepad với máy tính

Không có cảm giác nào tuyệt vời hơn là kết hợp hai thứ hay ho. Đáng buồn là không thể lập trình trực tiếp Arduino với Python, vì các bảng không có tùy chọn để giải thích ngôn ngữ trên bo mạch. Tuy nhiên, điều có thể thực hiện là kiểm soát trực tiếp USB bằng chương trình Python.





Bài viết này sẽ hướng dẫn bạn cách thiết lập Arduino UNO (mặc dù bất kỳ bảng tương thích nào với Arduino đều có thể hoạt động ở đây) để được lập trình và điều khiển từ dòng lệnh bằng các chương trình Python. Hướng dẫn này được viết cho Windows 10, nhưng cũng hoạt động cho Mac và Linux. Bạn thậm chí có thể sử dụng quy trình làm việc này để điều khiển Arduino trực tiếp từ Raspberry Pi để có trải nghiệm tự làm kép hoàn hảo.





Thiết lập Arduino của bạn cho Python

Đối với dự án hôm nay, chúng tôi sẽ sử dụng Arduino Uno, cùng với giao diện pyFirmata cho Python. Bạn có thể sử dụng hầu hết mọi bảng tương thích với Arduino cho việc này, mặc dù tại thời điểm viết chỉ có Arduino Uno, Mega, Due và Nano được giao diện pyFfirmata hỗ trợ. Nếu bạn đã là một chuyên gia về Python, bạn có thể thêm hỗ trợ bảng của riêng mình vào pyFirmata - hãy nhớ cập nhật GitHub của họ nếu bạn làm như vậy!

Nếu bạn chưa có, hãy cài đặt Arduino IDE. Nếu bạn là người hoàn toàn mới với thế giới vi điều khiển, hướng dẫn cho người mới bắt đầu về Arduino sẽ giúp bạn đưa mọi thứ vào đúng vị trí.



Kết nối bảng Arduino của bạn và mở IDE. Đảm bảo rằng bạn đã chọn đúng bảng và cổng trong Công cụ thực đơn. Tải lên StandardFirmata phác thảo ví dụ và tải nó lên bảng. Điều này sẽ cho phép bạn điều khiển Arduino trực tiếp miễn là nó được kết nối với máy tính qua USB. Với điều kiện các bản phác thảo được tải lên bảng của bạn mà không có bất kỳ lỗi nào, bạn đã sẵn sàng để tiếp tục.

Python và Điều khiển dòng lệnh

Chúng tôi sẽ sử dụng Python 3.4 để điều khiển Arduino của mình, vì mô-đun bạn sẽ cài đặt chỉ định đây là phiên bản tương thích mới nhất. Bất kỳ phiên bản nào trước phiên bản này sẽ hoạt động tốt và các phiên bản sau đã được báo cáo là hoạt động. Bạn có thể tải xuống Python 3.4 cho Windows 10 từ Tổ chức phần mềm Python Địa điểm. Nếu bạn muốn chạy nhiều phiên bản Python, hướng dẫn về môi trường ảo Python của chúng tôi sẽ có thể giúp bạn.





Khi bạn đã cài đặt Python, chúng tôi muốn thêm nó vào biến PATH của hệ thống của bạn. Điều này sẽ cho phép chúng tôi chạy mã Python trực tiếp từ Dòng lệnh mà không cần phải ở trong thư mục mà nó đã được cài đặt. Bạn có thể thực hiện việc này bằng cách mở Bảng điều khiển , tìm kiếm Môi trường và nhấp vào Chỉnh sửa các biến môi trường hệ thống . Ở cuối cửa sổ, hãy chọn Các biến môi trường . Thao tác này sẽ hiển thị cửa sổ này:

Nếu bạn đã thấy CON ĐƯỜNG trong danh sách, hãy nhấp vào chỉnh sửa và thêm PythonPython / Tập lệnh danh mục. Nếu bạn không có biến PATH, hãy nhấp vào mới và thêm biến đó. Lưu ý rằng Python đã được cài đặt trực tiếp vào NS: ở đây. Nếu bạn đã cài đặt nó ở nơi khác, bạn sẽ cần phải sửa đổi nó để phản ánh điều này. Nhấp OK trở lại chuỗi cửa sổ và bạn gần như đã sẵn sàng để điều khiển Arduino của mình bằng Python!





Mỡ ma thuật

Bạn sẽ cần một mảnh ghép cuối cùng để Python nói chuyện tốt với Arduino của chúng tôi. Điều này có dạng một giao diện Python được gọi là pyFirmata . Giao diện này, được tạo bởi Tino de Bruijn là có sẵn để tải xuống từ github, mặc dù bạn có thể cài đặt nó ngay từ dòng lệnh bằng cách gõ:

pip install pyfirmata

Tất cả đều ổn, nó sẽ cài đặt và trông như thế này:

Nếu nó không thành công, hãy thêm Python vào Biến môi trường và đảm bảo rằng bạn đã cung cấp đúng đường dẫn đến thư mục Python của mình.

Làm nó xảy ra đi

Bây giờ mọi thứ đã được thiết lập và bạn có thể tạo một chương trình Python cho Arduino của mình để kiểm tra nó. Mở IDE mà bạn chọn. Chúng tôi sẽ sử dụng Nhật thực ngày nay, nhưng bạn có thể dễ dàng sử dụng bất kỳ trình soạn thảo văn bản nào hoặc thậm chí là IDE trên đám mây.

Tạo một tập lệnh mới và lưu nó dưới dạng flash.py . Phá vỡ truyền thống với chương trình đèn LED nhấp nháy tiêu chuẩn, bạn sẽ tạo một chương trình nhắc người dùng về số lần họ muốn đèn LED nhấp nháy trước khi thực hiện. Đó là một chương trình ngắn, mà bạn có thể tải xuống ở đây nếu bạn muốn đi thẳng vào vấn đề, nhưng hãy chia nhỏ nó ra.

Trước tiên, bạn sẽ muốn nhập những gì bạn cần từ pyFirmata mô-đun, cùng với Python tiêu chuẩn Thời gian mô-đun.

lề trên và dưới của google docs
from pyfirmata import Arduino, util
import time

Bây giờ bạn sẽ muốn thiết lập bảng Arduino. Bài viết này giả định rằng bạn đang sử dụng một Arduino una bảng, mặc dù một số bảng Arduino khác được hỗ trợ. Tham khảo github pyFirmata để biết chi tiết về hỗ trợ trên bo mạch.

Kiểm tra cổng COM nào bạn đang sử dụng trong Arduino IDE và nhập nó vào mã của bạn làm biến bảng .

board = Arduino('COM3')

Bây giờ bạn sẽ thiết lập lời nhắc người dùng. Những người quen thuộc với Python sẽ nhận ra mọi thứ ở đây. Bạn in một câu hỏi ra màn hình bằng cách sử dụng đầu vào và lưu trữ câu trả lời dưới dạng một biến. Khi người dùng đã cung cấp một số, chương trình sẽ báo cáo lại số lần đèn LED sẽ nhấp nháy.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Để làm cho đèn LED nhấp nháy với số lần thích hợp, bạn sử dụng vòng lặp for . Nếu bạn là mới đối với Python , hãy cẩn thận với thụt lề, vì không giống như các ngôn ngữ khác, khoảng trắng là một phần của cú pháp. Lưu ý rằng chân 13 là đèn LED trên bo mạch cho Arduino Uno, bạn sẽ cần phải sửa đổi điều này nếu bo mạch của bạn khác.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Bạn sẽ truyền loopTimes biến thành số nguyên ở đây, vì dữ liệu đầu vào từ người dùng sẽ được tự động lưu trữ dưới dạng chuỗi. Trong bản demo đơn giản này, chúng tôi giả sử người dùng sẽ nhập một giá trị số. Bất kỳ mục nhập nào khác chẳng hạn như 'tám' sẽ gây ra lỗi.

Lưu tập lệnh của bạn và mở Dấu nhắc lệnh .

Đèn nhấp nháy và những tiết lộ khác

Mọi thứ đã sẵn sàng, tất cả những gì bạn cần làm là điều hướng đến vị trí của script và chạy nó. Làm điều này bằng cách gõ cd [đường dẫn đến thư mục của script] và sau đó gõ python nháy.py .

Tất cả đều tốt, chương trình của bạn sẽ bắt đầu với một chút chậm trễ khi Arduino khởi tạo, nhắc bạn một số và sau đó nhấp nháy nhiều lần bằng cách sử dụng đèn LED trên bo mạch.

Đầu ra của chương trình sẽ giống như sau:

Ngay sau khi bạn nhấn enter sau số lần nhấp nháy đã chọn, Arduino sẽ thực hiện lệnh của bạn.

Khởi đầu nhỏ

Dự án này là một bước khởi đầu cơ bản để giao tiếp giữa Python và bảng Arduino. Cách tiếp cận này rất khác với quy trình tải tập lệnh lên Arduino thông thường, nhưng nó mở ra một cách hoàn toàn mới để làm việc với nền tảng này, đặc biệt nếu bạn thích ngôn ngữ lập trình Python.

Nếu bạn sử dụng một Máy chủ Linux tại nhà, phương pháp giao tiếp với bảng Arduino này có thể mở rộng máy chủ đó thành một hệ thống Tự động hóa tại nhà hoàn chỉnh. Bằng cách kết hợp các tập lệnh Python điều khiển bộ vi điều khiển với mạch tự động hóa DIY, hộp lưu trữ NAS của bạn có thể đảm nhận một loạt các chức năng hữu ích hoàn toàn mới.

cách tạo ăng-ten truyền hình kỹ thuật số

Để biến nó thành trải nghiệm DIY cuối cùng, tại sao không xây dựng hộp NAS của riêng bạn và sử dụng nó để kiểm soát các thiết bị của bạn? Hãy tưởng tượng sẽ tuyệt như thế nào khi nhấn phát trên máy chủ Plex của bạn và đèn tự động tắt!

Bạn đã điều khiển Arduino bằng Python chưa? Có những cách giải quyết tuyệt vời nào mà chúng ta chưa biết không? Hãy cho chúng tôi biết trong phần bình luận bên dưới đây!

Đăng lại Đăng lại tiếng riu ríu E-mail 5 mẹo để nạp đầy năng lượng cho máy VirtualBox Linux của bạn

Bạn mệt mỏi với hiệu suất kém do các máy ảo cung cấp? Đây là những gì bạn nên làm để tăng hiệu suất VirtualBox của mình.

Đọc tiếp
Chủ đề liên quan
  • DIY
  • Lập trình
  • Arduino
  • Tự động hóa gia đình
  • Python
Giới thiệu về tác giả Ian Buckley(216 bài báo đã xuất bản)

Ian Buckley là một nhà báo tự do, nhạc sĩ, nghệ sĩ biểu diễn và nhà sản xuất video sống ở Berlin, Đức. Khi không viết hay trên sân khấu, anh ấy sẽ mày mò với các thiết bị điện tử hoặc mã tự làm với hy vọng trở thành một nhà khoa học điên rồ.

Xem thêm từ Ian Buckley

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký