Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Bắt đầu với Micropython This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Getting Started With MicroPython

Bạn có quan tâm đến Internet of Things, tự động hóa gia đình và các thiết bị được kết nối? Bạn đã bao giờ tự hỏi sẽ như thế nào khi xây dựng một máy blaster, một thanh kiếm laser hoặc thậm chí là robot của riêng bạn? Nếu vậy, thì bạn đã may mắn! Micropython có thể giúp bạn làm tất cả những điều đó và hơn thế nữa.MicroPython can help you do all of those things and more.

Trong hướng dẫn này, bạn sẽ tìm hiểu về:

  • Lịch sử của micropythonhistory of MicroPython
  • Sự khác biệt giữa micropython và các ngôn ngữ lập trình khácdifferences between MicroPython and other programming languages
  • Phần cứng bạn sẽ sử dụng để xây dựng thiết bịhardware you’ll use to build devices
  • Quá trình thiết lập, mã và triển khai dự án micropython của riêng bạnprocess to set up, code, and deploy your own MicroPython project

Mọi thứ sắp tới Python

Sự nổi tiếng của Python đã tăng vọt trong những năm gần đây. Ngày nay, nó đã sử dụng ở mọi nơi từ DevOps đến phân tích thống kê và ngay cả trong phần mềm máy tính để bàn. Nhưng trong một thời gian dài, có một lĩnh vực mà việc sử dụng Python bị thiếu một cách rõ rệt. Các nhà phát triển làm việc với các vi điều khiển vẫn chưa áp dụng ngôn ngữ.

Tất cả điều đó đã thay đổi vào năm 2013 khi Damien George phát động một chiến dịch Kickstarter. Damien, một sinh viên tại Đại học Cambridge, là một lập trình viên robot cuồng nhiệt. Anh ta muốn di chuyển thế giới Python từ những cỗ máy làm việc với năng lực trong gigabyte xuống Kilobyte. Chiến dịch Kickstarter của anh ấy là một nỗ lực để ủng hộ sự phát triển của anh ấy trong khi anh ấy biến bằng chứng về khái niệm của mình thành một triển khai đã hoàn thành.

Nhiều nhà phát triển đã nhảy vào cơ hội, không chỉ sử dụng Python trên vi điều khiển mà còn để có được phiên bản sớm của phần cứng tham chiếu riêng của Damien, được xây dựng đặc biệt cho nhiệm vụ! Trên thực tế, vào cuối chiến dịch, Damien đã vượt qua mục tiêu 15.000 bảng của mình. Nhờ hơn 1.900 người ủng hộ, anh ta chỉ đạt 100.000 bảng.

Python vượt ra ngoài máy tính để bàn

Cuối cùng, Python đã rời khỏi máy tính để bàn và máy chủ và vào thế giới của các cảm biến, bộ truyền động, động cơ, màn hình LCD, nút và mạch. Trong khi điều này đưa ra nhiều thách thức, cũng có những cơ hội lớn. Phần cứng máy tính để bàn và máy chủ yêu cầu bộ xử lý Gigahertz, gigabyte của RAM và terabyte lưu trữ. Họ cũng cần các hệ điều hành chính thức, trình điều khiển thiết bị và đa nhiệm thực sự.

Tuy nhiên, trong thế giới vi điều khiển, Micropython là hệ điều hành. Về cơ bản, nó nằm trên đầu các bộ xử lý với tốc độ xung nhịp quay trở lại những năm 1980 và 90. Micropython không có sự giúp đỡ để đối phó với tất cả các điều phức tạp của việc thực thi mã, IO, lưu trữ, khởi động, v.v. Nếu bạn muốn giao tiếp với phần cứng, thì bạn cần tất cả mã để bật điều đó.MicroPython is the operating system. Essentially, it sits on top of the processors with clock speeds harking back to the 1980s and 90s. MicroPython has no help to deal with all the intricacies of code execution, IO, storage, booting, and so on. If you want to interface with hardware, then you need all code to enable that.

Tuy nhiên, bằng cách nào đó, Damien đã xoay sở để vắt một triển khai trăn mạnh mẽ, hiệu suất cao, nhỏ gọn vào các máy tính thu nhỏ này. Điều đó đã mở ra một thế giới hoàn toàn mới của tiềm năng. Nếu bạn quan tâm để tìm hiểu thêm về sự khác biệt giữa Cpython và Micropython, thì bạn có thể kiểm tra sự cố hoàn toàn trên repo Github chính thức.

Điện tử như một sở thích và con đường sự nghiệp

Micropython được hỗ trợ bởi một cộng đồng đa dạng của Pythonistas, những người có mối quan tâm sâu sắc trong việc nhìn thấy dự án thành công. Cùng với việc thử nghiệm và hỗ trợ chính cơ sở mã, các nhà phát triển đóng góp các hướng dẫn, thư viện mã và cổng phần cứng, đưa dự án vượt xa những gì Damien có thể đạt được một mình.

Trong những năm qua, Micropython đã thu hút các chuyên gia và người có sở thích từ các nền tảng khác, những người nhìn thấy tiềm năng và sự tiện lợi của ngôn ngữ. Những nhà phát triển này có thể đến từ các nền tảng trưởng thành hơn, như Arduino hoặc Pic. Nhiều người đã nhận ra lợi ích của việc sử dụng micropython, cũng như chỉ định Python và Micropython với nhau, không chỉ là tạo mẫu nhanh và thời gian nhanh hơn trên thị trường.MicroPython has attracted professionals and hobbyists from other platforms who see the potential and convenience of the language. These developers may have come from more mature platforms, like Arduino or PIC. Many came to realize the benefits of using MicroPython, as well as specifying Python and MicroPython together, not least for rapid prototyping and faster time-to-market.

Vì vậy, Micropython đã sẵn sàng cho công việc nghiêm túc, quan trọng? ESA, Cơ quan Vũ trụ Châu Âu, dường như nghĩ như vậy! Họ đã giúp tài trợ cho công việc của Damien trên Micropython vì họ muốn sử dụng Python trong không gian. Bạn ngày càng thấy một khối lượng quan trọng của những người có sở thích và người học chuyển đến học viện, và từ đó vào thế giới chuyên nghiệp của thiết bị điện tử. Tại thời điểm đó, Micropython sẽ thực sự cất cánh.

Python và thân cây

Các đối tượng STEM đã được dưới kính hiển vi giáo dục trong vài năm, dẫn đến một vụ nổ các dự án và sản phẩm nhắm vào lớp học. Python và Micropython đều được đặt tốt cho giáo viên và học sinh. Cú pháp cơ bản và thông dịch viên đi kèm cho mượn các ngôn ngữ này cho một môi trường học tập hiệu quả. Thực tế là không có môi trường phát triển nào được yêu cầu chỉ là một phần thưởng bổ sung!

Một vài năm trước, BBC đã đưa ra dự án micro: bit của mình để đưa thêm trẻ em vào các ứng dụng theo kiểu văn phòng. Mục tiêu của họ là đưa một bảng vi điều khiển vào tay mỗi học sinh ở Anh. Damien, thông qua người hàng xóm của mình, đã có được một trong những bảng này và nhanh chóng có mã của mình. Hàng ngàn phòng học đột nhiên có tùy chọn chạy Python trong các bài học của họ!Micro:Bit project to get more kids into computing beyond office-style applications. Their goal was to get a microcontroller board into the hands of every school student in the UK. Damien, through his neighbor, acquired one of these boards and quickly got his code running. Thousands of classrooms suddenly had the option to run Python in their lessons!

Gần đây nhất, Edublocks đã thực hiện Micro: bit và cho phép trải nghiệm Python kéo và thả giống như vết xước. Điều này cho phép nhiều trẻ em trải nghiệm vi điều khiển và lập trình robot lần đầu tiên. Patreon quyên góp hỗ trợ dự án tiếp tục tăng trưởng.

Điện toán vật lý

Khi nói đến Micropython, điện toán vật lý có nghĩa là gì? Thông thường, dự án của bạn sẽ bao gồm ba yếu tố:physical computing mean? Usually, your project will consist of three elements:

  1. Đầu vào: Một nút, tín hiệu, sự kiện internet hoặc đọc cảm biến có trong dữ liệu. A button, signal, internet event, or sensor reading takes in data.
  2. Xử lý: Một vi điều khiển xử lý đầu vào và cập nhật đầu ra. A microcontroller processes the input and updates the output.
  3. Đầu ra: Điều này có thể được gửi dưới dạng quay động cơ, đèn LED lên, thay đổi bộ đếm, gửi tin nhắn hoặc một số sự kiện tương tự. This can be sent in the form of a motor spinning, an LED lighting up, a counter changing, a message sending, or some similar event.

Các yếu tố này thường sẽ được kết nối bằng dây và được cung cấp bởi một số nguồn năng lượng.

Bộ vi điều khiển là gì?

Bạn có thể biết rằng một vi điều khiển nhỏ và không mạnh bằng máy tính trên máy tính để bàn của bạn hoặc trong giá đỡ máy chủ của bạn. Những gì bạn có thể không biết là các bộ vi điều khiển xung quanh bạn, thêm trí thông minh và kiểm soát cho các thiết bị của bạn. Họ đã nhúng vào mọi thứ, từ các thiết bị và thiết lập bảo mật nhà cho đến máy tạo nhịp tim, đến các hệ thống HVAC và hơn thế nữa.

Các bộ vi điều khiển làm những điều tương đối đơn giản ngày qua ngày, đáng tin cậy và trong một gói nhỏ gọn. Họ nén CPU, bộ nhớ và IO vào một chip có mục đích chung, thay vì yêu cầu toàn bộ bảng chip hợp tác để thực hiện một nhiệm vụ. Mã mà họ chạy được gọi là phần sụn, được flash hoặc ghi vào bộ nhớ có thể ghi trước khi thực thi. do relatively simple things day after day, reliably, and in a compact package. They compress a CPU, memory, and IO into one general-purpose chip, rather than requiring a whole board of chips that team up to perform a task. The code that they run is called firmware, which is flashed or burned onto writeable memory before executing.

Trong khi những người lớn lên với các máy vi tính sớm (như ZX81 và Commodore Vic20) có thể thấy những con chip này mạnh mẽ không thể tin được, về mặt kỹ thuật, bạn có nhiều năng lượng hơn trong smartwatch của mình. Tuy nhiên, các bộ vi điều khiển cực kỳ hữu ích, ngay cả khi khả năng xử lý và khả năng bộ nhớ của chúng bị hạn chế. Một thỏa thuận tuyệt vời có thể được thực hiện với những kẻ nhỏ bé này!

Tại sao micropython?

Nếu những bộ vi điều khiển này đã tăng sinh từ lâu trước khi Micropython được mơ ước, thì Micropython có lợi gì cho bạn đối với các thực tiễn truyền thống?

Đầu tiên, ngôn ngữ dễ tiếp cận hơn với người mới bắt đầu so với các ngôn ngữ cạnh tranh, trong khi vẫn đủ mạnh mẽ cho các trường hợp sử dụng công nghiệp. Bạn có thể đi từ học những điều cơ bản để làm công việc thực sự, và nhanh chóng.

Thứ hai, Python cho phép phản hồi nhanh chóng. Điều này là do bạn có thể tương tác nhập các lệnh và nhận phản hồi bằng cách sử dụng replin. Bạn thậm chí có thể điều chỉnh mã của mình và chạy nó ngay lập tức, thay vì lặp lại thông qua các chu kỳ mã hóa mã hóa mã.code-compile-upload-execute cycles.

Cuối cùng, sự giàu có của mã Python và kinh nghiệm ngoài kia có nghĩa là bạn có thể làm một số điều nhanh chóng và dễ dàng hơn với tư cách là một lập trình viên Python. Tôi thấy thư viện Python yêu cầu, xử lý chuỗi và các công cụ để xử lý JSON dễ sử dụng hơn nhiều trong thế giới Micropython so với C ++ chẳng hạn.

Còn C ++ thì sao?

C ++ nhanh, nhỏ gọn và có sẵn ở mọi nơi. Có hàng tấn lập trình viên C ++ ngoài kia, và một cộng đồng phong phú của các nhà phát triển Arduino và Pic đã sẵn sàng để giúp bạn. Do đó, có phải là C ++ không?

Theo tôi, Micropython đánh bại C ++ dễ sử dụng và thuận tiện. Cú pháp C ++ không dễ hiểu ngay lập tức. Hơn nữa, mã cần được biên dịch và sau đó được chuyển vào bảng của bạn trước khi bạn có thể nhận được kết quả, vì vậy bạn cần một trình biên dịch tiện dụng.ease of use and convenience. C++ syntax is not as easy to understand right away. What’s more, the code needs to be compiled and then transferred to your board before you can get a result, so you need a compiler handy.

Bây giờ, rõ ràng, các công cụ đang trở nên tốt hơn, nhưng Micropython vẫn có lợi thế. Mặc dù C ++ có thể có lợi thế tốc độ, Micropython đủ nhanh cho hầu hết các mục đích. Ngoài ra, nếu bạn thực sự cần C ++, thì bạn thậm chí có thể gọi mã C ++ của mình từ Micropython!

Còn nhà lắp ráp thì sao?

Đối với hiệu suất thô, không có trình biên dịch viên đánh bại. Tuy nhiên, điều đó cũng không loại trừ Micropython.

Một lần nữa, Micropython có xu hướng đủ nhanh. Nếu bạn cần sức mạnh cấp thấp nhất, thì bạn có thể thêm các nhà lắp ráp nội tuyến vào các dự án Micropython của mình.inline assemblers to your MicroPython projects.

Còn cơ bản thì sao?

Nếu bạn đã bật một trong những máy vi tính cũ từ đó vào ban ngày, thì họ gần như chắc chắn sẽ khởi động thành cơ bản. Ít nhất, họ sẽ có một phương ngữ cơ bản trong tay. Ngôn ngữ này phục vụ như một giới thiệu về lập trình cho cả một thế hệ. Điều này bao gồm Elon Musk, người dường như đã học viết mã trên Vic 20.BASIC. At the very least, they would have had a dialect of BASIC on hand. This language served as an introduction to programming for a whole generation. This includes Elon Musk, who apparently learned to code on a Vic 20.

Ngày nay, sự tỏa sáng của cơ bản đã giảm bớt phần nào. Python và các ngôn ngữ dựa trên khối khác đã thay thế nó trong không gian giáo dục, và nó hầu như không tạo ra một vết lõm trong ngành công nghệ. Python có tất cả những lợi thế của cơ bản, không có giới hạn nào.

Còn Raspberry Pi thì sao?

Raspberry Pi, điều hành Python, cũng có mặt rất nhiều trong giáo dục. Nó đã tìm thấy một thị trường thích hợp trong điện tử và điện toán vật lý nhờ các chân IO đa năng của nó. Raspberry Pi cũng là một máy tính để bàn Linux đa năng đầy đủ. Nó có rất nhiều năng lượng bộ xử lý, bộ nhớ và dung lượng lưu trữ, và nó thậm chí còn có GPU., which runs Python, is also heavily present in education. It’s found a niche in electronics and physical computing thanks to its general-purpose IO pins. The Raspberry Pi is also a fully-fledged general-purpose Linux desktop computer. It has lots of processor power, memory, and storage capacity, and it even has a GPU.

Tuy nhiên, khía cạnh cuối cùng đó thực sự có thể là một lý do để không chọn PI và thay vào đó là một bảng vi điều khiển! Khả năng chạy các ứng dụng máy tính để bàn và đa phương tiện là tuyệt vời, đặc biệt là khi các dự án của bạn có thể cần sức mạnh thô đó. Đây có thể là trường hợp cho AI, luồng video và các dự án cơ sở dữ liệu chẳng hạn.

Nhưng điều này có thể gây ra vấn đề khi trường hợp sử dụng của bạn yêu cầu xử lý thời gian thực. Nếu bạn cần thời gian rất chính xác, thì bạn không muốn mã của mình chờ đợi trong khi nó bắt kịp với hàng tá quy trình khác nhau mà tất cả đều muốn thực hiện cùng một lúc.real-time processing. If you need very precise timing, then you don’t want your code to wait while it catches up with dozens of different processes that all want to execute at the same time.

Nếu bạn muốn đầu vào tương tự, thì PI sẽ yêu cầu phần cứng bổ sung. Ngược lại, hầu hết các bộ vi điều khiển có khả năng chạy micropython có ít nhất một đầu vào tương tự và thậm chí có thể nhiều hơn. Ngoài ra, PI không hoàn toàn mạnh mẽ, và nó có thể đắt hơn. Bởi vì điều này, nó có thể có ý nghĩa tài chính hơn khi để lại một vi điều khiển trong dự án của bạn, thay vì toàn bộ PI.

Bạn không cần phải chọn cái này hay cái kia. Có lẽ việc ghép một Raspberry Pi với vi điều khiển là giải pháp tốt nhất cho dự án của bạn. Chẳng hạn, bạn có thể sử dụng PI để xử lý năng lượng và vi điều khiển để giao diện với phần cứng.

Phần cứng Micropython

Nếu bạn quan tâm đến việc thử Micropython, thì đó là điều tuyệt vời! Bạn sẽ cần một số phần cứng tương thích để cài đặt Micropython lên. May mắn thay, có nhiều lựa chọn, từ giá cả phải chăng đến các sản phẩm cao cấp. Có một cái gì đó cho mỗi ví và trường hợp sử dụng, vì vậy hãy dành chút thời gian để chọn giải pháp phù hợp với bạn.

Được xây dựng cho Python

Kickstarter đã khởi động Micropython cũng đã ra mắt phần cứng liên quan. Micropython Pyboard hiện lên đến v1.1.

Pyboard là một trong những bảng được chỉ định tốt nhất. Nó dựa trên STM32 và có rất nhiều GPIO. Ngoài ra còn có một khe SD, gia tốc kế và RTC, với khả năng 168 MHzF. Nếu bạn có thể tìm thấy nó trong kho, thì nó sẽ tiêu tốn của bạn khoảng $ 40 USD.Pyboard is one of the most well-specified boards. It’s based on the STM32 and has lots of GPIO. There’s also an SD slot, an accelerometer, and RTC, with a capability of 168 MHzf. If you can find it in stock, then it’ll cost you around $40 USD.

ESP8266 hoặc ESP32

Ở đầu kia của thang giá là các bảng dựa trên ESP8266. Các bảng này chỉ có một đầu vào tương tự, và có nhiều chân như pyboard. Tuy nhiên, họ có khả năng WiFi. Bạn có thể tìm thấy chúng trong các bảng thân thiện với bánh mì (như NodeMCU) với giá 10 đô la trở xuống.ESP8266. These boards only have one analog input, and there aren’t as many pins as the Pyboard. However, they do have WiFi capability. You can find them in breadboard-friendly boards (such as the NodeMCU) for $10 or less.

ESP32 là người anh lớn của ESP8266. Nó tăng sức mạnh và khả năng trong khi thêm Bluetooth vào bộ tính năng, với chi phí bổ sung nhỏ. Một trong những phiên bản tốt nhất của các bảng này là Stack M5. Đơn vị này đi kèm với loa Peizo, pin, đầu đọc thẻ và màn hình màu.ESP32 is the big brother to the ESP8266. It increases the power and capabilities while adding Bluetooth to the feature set, for a small additional cost. One of the best versions of these boards is the M5 Stack. This unit comes with a peizo speaker, a battery, a card reader, and a color screen.

BBC Micro: bit

Micro: BIT là một bảng nhỏ gọn dựa trên vi điều khiển NRF51822 Bắc Âu. Nó đã tích hợp Bluetooth LE và cảm biến nhiệt độ, cộng với gia tốc kế, một vài nút hành động và lưới LED 5x5.Micro:Bit is a compact board based around the Nordic nRF51822 microcontroller. It has built-in Bluetooth LE and temperature sensing, plus an accelerometer, a couple of action buttons, and a 5x5 LED grid.

Nếu bạn ở Vương quốc Anh, thì bạn có thể đã có một trong những bảng này. Họ được phân phối cho các học sinh với hy vọng truyền cảm hứng cho một thế hệ lập trình viên mới. Rất nhiều bảng lấy cảm hứng từ Micro: BIT đang bắt đầu xuất hiện, vì vậy, nó ràng buộc để tăng mức độ phổ biến!

Adafruit và bảng điều khiển mạch máu

Ngay sau khi Micropython bắt đầu tăng tốc, Adafruit đã tạo ra một cái nĩa mà họ gọi là Circuitpython. Tuy nhiên, có một vài sự khác biệt chính giữa hai.CircuitPython. However, there are a few main differences between the two.

Một là CircuitPython cung cấp hỗ trợ cho phạm vi phần cứng AdAfruit. Một sự khác biệt khác là thực tế là hầu hết các triển khai ADAfruit đều có bảng xuất hiện dưới dạng ổ đĩa kết nối USB. Trong những trường hợp này, việc thêm mã của bạn cũng đơn giản như kéo nó vào đĩa.

Bảng giàu tính năng nhất của dòng sản phẩm cao cấp Adafruit là The CircuitPlayground Express, với một tiện ích bổ sung crickit tùy chọn. Khi bạn kết hợp hai bảng này, bạn sẽ có ghim, cảm biến, trình điều khiển động cơ, đèn LED RGB, v.v. Nếu bạn đang tìm kiếm một giải pháp tất cả trong một, thì đây là một giải pháp để kiểm tra.CircuitPlayground Express, with an optional Crickit add-on. When you combine these two boards, you’ll have pins, sensors, motor drivers, RGB LEDs, and more. If you’re looking for an all-in-one solution, then this is the one to check out.

Thật không may, Adafruit đã giảm khả năng tương thích với ESP8266, ngay cả đối với bảng lông vũ có trụ sở tại ESP8266 của riêng họ. Thay vào đó, họ đã chọn đi cùng với ESP32 hoàn toàn như một đồng xử lý WiFi trong các bản phát hành trong tương lai.

Quy trình làm việc của Micropython

Nếu bạn quen thuộc với chương trình Arduino hoặc PIC, thì bạn có thể mong đợi nói chuyện đầu tiên về trình biên dịch, môi trường phát triển và công cụ. Tuy nhiên, Micropython có một chút khác biệt ngay từ cái nhìn đầu tiên.

Thay thế

Với Micropython, như với Python, ngôn ngữ có thể đã đi kèm với phần cứng của bạn và bạn có tùy chọn làm việc với nó một cách tương tác. Có hai cách để có được một phiên tương tác:

  1. Sử dụng kết nối thiết bị đầu cuối nối tiếp: Điều này thường được thực hiện thông qua dòng lệnh hoặc có lẽ là IDE. This is often done through the command line, or perhaps an IDE.
  2. Sử dụng webrepl: Đây là một tùy chọn cho các bảng với WiFi. This is an option for boards with WiFi.

Ví dụ, để có được một lần phát trên Mac, bạn có thể chạy màn hình chương trình đầu cuối đi kèm và chỉ định thiết bị của bạn và tốc độ baud:Screen and specify your device and the baud rate:

$ screen /dev/tty.wchusbserial1430 115200

Bạn có thể tìm thấy thiết bị của mình bằng cách liệt kê các kết nối nối tiếp đính kèm:

Quá trình này tương tự như những gì bạn sẽ làm trong thiết bị đầu cuối Linux.

Trên Windows, Putty là một ứng dụng thiết bị đầu cuối phổ biến. Ngoài ra còn có một người được gọi là TERA Term. Dù bằng cách nào, chỉ cần kết nối với cổng COM xuất hiện khi bạn đính kèm thiết bị của mình và chọn 115.200 làm tốc độ baud của bạn.

Khi bạn có kết nối lại, bạn có thể nhập các lệnh giống như bạn muốn từ phiên tương tác Python của bạn. Trong Micropython, giao diện này cũng là nơi bạn có thể muốn thực hiện công việc kiểu OS đơn giản, chẳng hạn như xóa các tệp hoặc tạo các thư mục.

Công cụ dòng lệnh

Dave Hyland, Rshell là một bộ công cụ có tính năng tốt để làm việc với các dự án Micropython của bạn.

Có một công cụ dòng lệnh tuyệt vời khác để tương tác với các bảng Micropython được gọi là Ampy. Điều này ban đầu được phát triển bởi Adafruit nhưng hiện đã được một thành viên cộng đồng tiếp tục, vì Adafruit chỉ tập trung vào phần cứng của riêng họ.

Micropython ides

Có một plugin pycharm bổ sung hỗ trợ micropython cho IDE của bạn. Nó có sẵn ngay trên thị trường plugin:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Đối với các bảng Micro: BIT và Circuitpython, trình soạn thảo tốt nhất hiện tại là biên tập viên MU từ Nicholas Tollervey. Nếu không, hãy để mắt đến Upycraft, có vẻ như có rất nhiều lời hứa và đã khá hữu ích.

Khi bạn đã kết nối đúng cổng nối tiếp và chọn loại thiết bị của mình, bạn sẽ có thể duyệt thiết bị:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Loại thiết bị của bạn sẽ là ESP8266, ESP32 hoặc micro: bit. Bây giờ bạn có thể tương tác trong bản sao!

Thiết lập micropython trên bảng của bạn

Có một lợi ích khi chọn UPYCraft, và đó là tùy chọn để dễ dàng ghi phần sụn micropython vào bảng của bạn mà không phải sử dụng các công cụ dòng lệnh. Bạn có thể chọn phần sụn mặc định của UPYCraft hoặc phần sụn bạn đã tải xuống:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

BBC Micro: BIT hiển thị dưới dạng ổ đĩa. Khi bạn sử dụng MU hoặc trình soạn thảo dựa trên web, họ sẽ tạo ra các tệp mà bạn có thể thả thẳng vào đĩa đó. Nếu bạn sử dụng bảng ESP8266 hoặc ESP32 với UPYCraft, thì bạn cũng có thể cài đặt Python Esptool với PIP và thiết lập phần sụn bảng của bạn bằng cách sử dụng đó.

Các bảng khác có thể đi kèm với Micropython hoặc CircuitPython được cài đặt hoặc thậm chí sử dụng trình cài đặt kéo và thả. Tuy nhiên, những loại bảng đó có thể bị hỏng hoặc đi vào các vòng vô hạn. Hãy chắc chắn rằng bạn dành thời gian để xem xét tài liệu bảng của bạn về cách thay thế phần sụn.

Tạo và triển khai mã của bạn

Để thực thi mã của bạn, trong hầu hết các trường hợp, bạn sẽ tạo các tệp văn bản .py và thực hiện chúng trên thiết bị Micropython của bạn. Quá trình này tương tự như những gì bạn sẽ làm với Cpython. Bạn sẽ chuyển các tệp vào bảng của mình theo một trong hai cách:

  1. Sử dụng IDE của bạn. Đây có thể là mu, upycraft, hoặc một cái gì đó tương tự. This can be Mu, uPyCraft, or something similar.
  2. Sử dụng một công cụ dòng lệnh. Đây có thể là rshell, ampy hoặc một cái gì đó tương tự. This can be RShell, Ampy, or something similar.

Khi các thiết bị đang chạy Micropython khởi động, họ sẽ tìm kiếm một tệp gọi là boot.py. Nếu tệp đó được tìm thấy, thì thiết bị sẽ tự động thực thi nó. Bạn cũng có thể thực thi các tệp .py từ lời nhắc REPLEP:

exec(open('my-program.py').read())

Trên thực tế, điều này tương tự như những gì Upycraft làm khi bạn chạy Python đã chỉnh sửa của mình. Nó chuyển tệp vào bảng của bạn và sau đó thực thi nó thông qua việc phát lại.

Viết mã micropython của bạn

Bạn sẽ bắt đầu với một người truyền thống, Hello Hello, thế giới! dự án. Bạn có thể thực hiện điều này trong bản sao bằng cách kết nối với cổng nối tiếp chính xác và nhập các mục sau:

Bạn sẽ thấy đầu ra sau:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Bạn đã xác nhận rằng thiết lập của bạn đang hoạt động.

Tạo đầu ra kỹ thuật số

Bây giờ, hãy để thay đổi loại đầu ra. Sử dụng mã sau, bạn có thể tạo đèn LED trên bo mạch:

import time
import machine
blueled = machine.Pin(2, machine.Pin.OUT)

# Blink 10 times
for i in range(1,11):
    blueled.value(0)
    time.sleep(0.5)
    blueled.value(1)
    time.sleep(0.5)

print("DONE!")

Bạn nhập time, cho phép bạn chèn độ trễ thời gian. Bạn cũng nhập machine, một mô -đun cho phép bạn truy cập dễ dàng vào các chân IO trên bảng của bạn. Bạn sử dụng mô -đun này để thiết lập một đối tượng gọi là

exec(open('my-program.py').read())
0, mà bạn định nghĩa là
exec(open('my-program.py').read())
1. (Trên các bảng khác, nó có thể là
exec(open('my-program.py').read())
2). Sau đó, bạn đặt nó như một pin đầu ra. Bạn sẽ thấy đầu ra sau:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Bạn có thể nhận thấy rằng trên ESP8266, đèn LED sáng lên khi nó tắt và tắt khi nó đưa ra một giá trị dương. Odd, nhưng đúng!

Điều gì sẽ xảy ra nếu bạn không có đèn LED tích hợp, hoặc bạn muốn thắp sáng đèn LED mà không phải trên bảng của bạn? Bạn sẽ cần một điện trở có kích thước phù hợp, chẳng hạn như điện trở 220ohm. Bạn cần phải kết nối nó với mặt đất và với chân ngắn của đèn LED của bạn. Chân dài, dài của đèn LED của bạn sẽ kết nối với chân GPIO 2. Trên bảng Wemos D1 Uno, GPIO 2 được gọi là pin kỹ thuật số 9 trên mặt trước của bảng. Nó có số GPIO bên dưới.

Trong trường hợp đèn LED bên ngoài, nó sẽ sáng lên khi giá trị là 1 hoặc BẬT:1 or on:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Bạn có thể thấy pin đã được thắp lên.

Đèn LED mờ dần

Trong ví dụ trước, bạn đã sử dụng vòng lặp

exec(open('my-program.py').read())
3, nhưng phần cứng của bạn thực sự có thể tự nhấp vào đèn LED. Để làm điều này, đặt đầu ra pin là
exec(open('my-program.py').read())
4, là viết tắt của điều chế độ rộng xung (PWM).Pulse Width Modulation (PWM).

Điều này cho phép bạn tạo một tín hiệu của các xung bật và tắt. Khi bạn bật và tắt đèn LED rất nhiều lần trong một giây, có vẻ như đèn LED được đặt ở một độ sáng nhất định do cách chúng ta hoạt động. Đây là cách mà mã của bạn trông như thế nào:on and off pulses. When you turn an LED on and off very quickly many times a second, it appears that the LED is set to a certain brightness due to how our eyes work. Here’s how your code would look:

from machine import Pin
from machine import PWM
import time

# Set our pin 2 to PWM
pwm = PWM(Pin(2))

# Brightness between 0 and 1023
pwm.duty(700)

# Frequency in Hertz
pwm.freq(1)

Trong mã mới này, bạn đặt độ sáng và tần số nhấp nháy trong Hertz, và sau đó để phần cứng tiếp quản.

Bạn cũng có thể sử dụng PWM để làm mờ đèn LED vào và ra:

from machine import Pin
from machine import PWM
import time

# Set our pin 2 to PWM
pwm = PWM(Pin(2))

# Frequency = 100hz
pwm.freq(100)

while 1:
  # Brightness between 0 and 1023
  for brightness in range (0, 1023, 100):
    pwm.duty(brightness)
    print(brightness)
    time.sleep(0.1)

  # Brightness between 1023 and 0
  for brightness in range (1023, 0, -100):
    pwm.duty(brightness)
    print(brightness)
    time.sleep(0.1)

Mã này mang lại hiệu ứng mềm, dễ chịu:

Hướng dẫn is python good for hardware programming? - python có tốt cho lập trình phần cứng không?

Nếu bạn sử dụng đèn LED trên bo mạch, thì ánh sáng thay vào đó có thể mờ dần và sau đó vào.

Sự kết luận

Nó không bao giờ dễ tiếp cận hơn với bạn để lập trình robot, vi điều khiển, thiết bị điện tử và phần cứng khác. Theo truyền thống, để lập trình các thiết bị này, bạn phải sử dụng các ngôn ngữ cấp thấp như trình biên dịch hoặc C ++ và hy sinh rất nhiều chức năng. Tất cả đã thay đổi với sự ra đời của Micropython, một phiên bản của Python 3 chen chúc vào công suất nhỏ của các thiết bị điện toán vật lý nhỏ hơn!MicroPython, a version of Python 3 crammed into the tiny capacity of smaller physical computing devices!

Trong hướng dẫn này, bạn tập trung vào Micropython và thế giới phần cứng điện tử. Bạn đã tìm hiểu về lịch sử của Micropython và cách nó so sánh với các nền tảng khác. Bạn cũng đã trải qua quy trình làm việc của Micropython, triển khai mã cho bảng của riêng bạn và mang lại hiệu ứng trong thế giới thực.electronics hardware. You’ve learned about the history of MicroPython and how it compares to other platforms. You also went through the MicroPython workflow, deployed code to your own board, and brought about a real-world effect.

Micropython đang tiếp tục phát triển. Các nhà phát triển trong cộng đồng luôn thêm mã, công cụ, dự án và hướng dẫn mới. Có một thời gian thú vị hơn để trở thành một nhà phát triển Micropython!

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Bắt đầu với Micropython This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Getting Started With MicroPython

Ngôn ngữ lập trình nào là tốt nhất cho lập trình phần cứng?

Top 5 ngôn ngữ lập trình phần cứng..
Python. Tại thời điểm Guido Van Rossum đã tạo ra Python trong những năm 1990 với tư cách là liên doanh bên của anh ấy, không ai nghĩ rằng đó sẽ là ngôn ngữ lập trình nổi tiếng nhất một ngày nào đó. ....
JavaScript. Khi tham gia với nút. ....
Java. ....
C# ... .

Python có gần với phần cứng hơn không?

Tốc độ: Python là một ngôn ngữ được giải thích và chậm so với C/C ++ hoặc Java. Không giống như C hoặc C ++, nó không gần với phần cứng hơn vì Python là ngôn ngữ cấp cao.it's not closer to hardware because Python is a high-level language.

Python có tốt cho đồ họa máy tính không?

Đồ họa máy tính Python cũng tốt để tạo các ứng dụng tập trung vào giao diện người dùng đồ họa như trò chơi.Nó có Tkinter, một thư viện GUI tiêu chuẩn, đơn giản và nhanh chóng trong việc tạo các ứng dụng GUI.Python is also good for creating graphical user interface-centric applications such as games. It has Tkinter, a standard GUI library, which is simple and quick in creating GUI applications.

Python phù hợp nhất là gì?

Python thường được sử dụng để phát triển các trang web và phần mềm, tự động hóa nhiệm vụ, phân tích dữ liệu và trực quan hóa dữ liệu.Vì nó tương đối dễ học, Python đã được nhiều người không lập trình viên áp dụng như kế toán và nhà khoa học, cho nhiều nhiệm vụ hàng ngày, như tổ chức tài chính.developing websites and software, task automation, data analysis, and data visualization. Since it's relatively easy to learn, Python has been adopted by many non-programmers such as accountants and scientists, for a variety of everyday tasks, like organizing finances.