Tại sao GPIO Zero lại tốt hơn RPi.GPIO cho các dự án Raspberry Pi

Tại sao GPIO Zero lại tốt hơn RPi.GPIO cho các dự án Raspberry Pi

Raspberry Pi là máy tính hoàn hảo để học tập. Hệ điều hành Raspbian dựa trên Linux được tích hợp sẵn Python, điều này làm cho nó trở thành một hệ thống đầu tiên tuyệt vời cho những người mới bắt đầu lập trình. Các chân Đầu vào / Đầu ra Mục đích Chung (GPIO) của nó giúp các nhà sản xuất dễ dàng thử nghiệm với các dự án điện tử DIY.





Đặc biệt dễ dàng khi bạn sử dụng các thư viện mã điều khiển các chân này và thư viện Python RPi.GPIO phổ biến là một ví dụ tuyệt vời về một thư viện như vậy. Nhưng nó có phải là con đường tốt nhất cho người mới bắt đầu? Tham gia với chúng tôi khi chúng tôi điều tra.





GPIO Zero là gì?

Thư viện GPIO Zero là một thư viện Python để làm việc với các chân GPIO. Nó đã được viết bởi Quản lý cộng đồng Raspberry Pi Ben Nuttall . Nhằm trực quan và 'thân thiện', nó hợp lý hóa mã Python cho hầu hết các trường hợp sử dụng Raspberry Pi thông thường.





Kết hợp các phương pháp đặt tên đơn giản và các chức năng mô tả, GPIO Zero dễ tiếp cận hơn cho người mới bắt đầu. Ngay cả những người dùng dày dạn kinh nghiệm của thư viện RPi.GPIO cũng có thể thích nó --- và để hiểu lý do tại sao, chúng ta hãy xem cách RPi.GPIO so sánh với GPIO Zero.

Có gì sai với RPi.GPIO?

Không. Không có gì đâu. RPi.GPIO được phát hành vào đầu năm 2012 bởi nhà phát triển Ben Croston. Nó là một thư viện mạnh mẽ cho phép người dùng kiểm soát các chân GPIO từ mã. Nó có tính năng hầu hết mọi dự án mới bắt đầu chúng tôi đã bảo hiểm.



cách xem động vật trong 3d trên google

Mặc dù được sử dụng rộng rãi, RPi.GPIO không bao giờ được thiết kế cho người dùng cuối. Đó là một minh chứng cho thiết kế tốt của RPi.GPIO mà rất nhiều người mới bắt đầu sử dụng nó.

Có gì tốt về GPIO Zero?

Khi bạn là học mã Python , bạn biết rằng nó phải dễ đọc và càng ngắn càng tốt. GPIO Zero nhằm mục đích bao gồm cả hai điểm. Được xây dựng dựa trên RPi.GPIO như một trình bao bọc ngôn ngữ front-end, nó đơn giản hóa việc thiết lập và sử dụng GPIO.





Hãy xem xét ví dụ sau, thiết lập và bật đèn LED:

Đoạn mã trên sẽ khá quen thuộc với những ai có đã sử dụng số Pi của họ để điều khiển đèn LED .





Thư viện RPi.GPIO được nhập và một chân cho đèn LED được khai báo. Kiểu bố trí chân được thiết lập (chế độ BCM và BOARD là được giải thích trong hướng dẫn GPIO của chúng tôi ), và chân được thiết lập như một đầu ra. Sau đó, ghim được bật.

Cách tiếp cận này có ý nghĩa, nhưng cách GPIO Zero thực hiện nó đơn giản hơn nhiều:

GPIO Zero có một mô-đun cho đèn LED, được nhập ngay từ đầu. Điều này có nghĩa là bạn có thể khai báo số pin và gọi led.on () phương pháp.

cách thay đổi âm thanh sạc trên iphone

Tại sao Phương pháp tiếp cận của GPIO Zero lại tốt hơn?

Có một số lý do tại sao phương pháp làm việc này là một cải tiến trên RPi.GPIO.

Thứ nhất, nó đáp ứng yêu cầu 'dễ đọc, ngắn gọn nhất có thể'. Mặc dù các câu lệnh thiết lập RPi.GPIO đủ dễ hiểu nhưng chúng không cần thiết. Đèn LED sẽ luôn là đầu ra, vì vậy GPIO Zero thiết lập các chân phía sau hậu trường. Kết quả chỉ là ba dòng mã để thiết lập, sau đó thắp sáng một đèn LED.

Bạn có thể nhận thấy rằng không có thiết lập chế độ bảng nào trong ví dụ GPIO Zero. Thư viện chỉ sử dụng cách đánh số Broadcom (BCM) cho các chân. Nhà thiết kế thư viện Ben Nuttall giải thích lý do tại sao trong năm 2015 Cuộc phỏng vấn RasPi.tv :

'Đánh số BOARD có vẻ đơn giản hơn nhưng tôi muốn nói rằng nó khiến người dùng mới nghĩ rằng tất cả các chân đều có mục đích chung --- và chúng không phải vậy. Kết nối một đèn LED với chân 11, tại sao không kết nối thêm một số nữa vào các chân 1, 2, 3 và 4? Giếng 1 là 3V3. 2 và 4 là 5V. Thiếu nhận thức về mục đích của các ghim có thể rất nguy hiểm. '

Nói theo cách này, việc sử dụng các số BCM là hoàn toàn hợp lý. Cho rằng GPIO Zero sẽ là tiêu chuẩn trong tài liệu Raspberry Pi về sau, điều đó rất đáng để học hỏi!

GPIO Zero có thực sự tốt hơn không?

Mặc dù bề ngoài có vẻ đơn giản hơn, nhưng liệu thư viện mới có gặp vấn đề gì không? Như với bất kỳ thư viện mã hóa mới nào, đó là một vấn đề quan điểm. Mặt khác, việc xóa mã thiết lập là rất tốt cho người mới bắt đầu và cả những lập trình viên dày dạn kinh nghiệm. Viết mã đơn giản hơn và nhanh hơn.

Mặt khác, biết chính xác những gì đang diễn ra rất quan trọng cho việc học. Lấy ví dụ về việc thiết lập một nút từ Tài liệu về GPIO Zero :

Các cái nút mô-đun đơn giản hóa thiết lập cho các nút nhấn. Nó biết các nút là đầu vào, vì vậy hãy sử dụng số pin đã khai báo để thiết lập. Kiểm tra một lần nhấn nút cũng dễ dàng hơn, với .bị ép buộc để phát hiện các lần nhấn nút.

Chúng tôi đã sử dụng chức năng chính xác này trong Hướng dẫn sử dụng nút Raspberry Pi , đó là một cách tuyệt vời để làm quen với sự khác biệt trong các thư viện.

Người dùng thư viện RPi.GPIO sẽ nhận thấy rằng các điện trở kéo lên / kéo xuống bên trong của Pi không được thiết lập trong mã. Điều này đặt ra một câu hỏi thú vị. Có cần thiết cho người mới bắt đầu biết về điện trở kéo lên / xuống không? Một lần nữa, Ben Nuttall có câu trả lời cho câu hỏi này:

'Bạn có thể tranh luận rằng thật tốt khi biết về kéo lên và kéo xuống, và bạn đã đúng --- nhưng tại sao tôi phải dạy điều đó vào ngày đầu tiên? [...] Nếu bạn muốn dạy điện tử trong sâu hơn có rất nhiều phạm vi cho điều đó --- nhưng nó không phải là bắt buộc nếu bạn mới bắt đầu. '

Nhìn chung, cách tiếp cận đơn giản của GPIO Zero có thể là một điều tốt cho người mới bắt đầu và cả những người lâu năm. Bên cạnh đó, RPi.GPIO sẽ không đi đâu cả. Nó sẽ luôn ở đó để chuyển về nếu cần.

Python có phải là lựa chọn duy nhất không?

Python là ngôn ngữ mà Pi được biết đến, nhưng nó không phải là lựa chọn duy nhất. Nếu bạn đã quen với việc lập trình bằng ngôn ngữ C, thì Dây Pi bạn đã bảo hiểm chưa.

Ngoài ra, nếu bạn đã lập trình bằng JavaScript, Node.js có thể dễ dàng được cài đặt trên Pi. Quyền truy cập GPIO có sẵn thông qua thư viện rpi-gpio npm . Viên ngọc trên tay vịn cũng có thể được cài đặt trên Raspberry Pi, mặc dù Pi có thể không phải là cách tốt nhất để học Rails!

Tất cả các lựa chọn thay thế này, cùng với các thư viện đa ngôn ngữ như rẻ có thể làm cho việc lựa chọn một thư viện trở nên khó hiểu. Đây là điểm mà GPIO Zero vượt trội: dành cho những người mới bắt đầu đang băn khoăn không biết bắt đầu như thế nào và bắt đầu từ đâu.

Nếu bạn đang ở một thời điểm mà bạn cần một cái gì đó mà nó không cung cấp, bạn sẽ sẵn sàng đi sâu vào các thư viện khác này theo tốc độ của riêng bạn.

Bắt đầu với GPIO Zero Yourself

GPIO Zero là thư viện mới nhất tạo nên tiếng vang cho Pi và có lý do chính đáng. Đối với hầu hết người dùng, nó giúp mã hóa các chân GPIO dễ đọc hơn và ghi nhanh hơn.

tbh trên instagram có nghĩa là gì

Với việc sử dụng Raspberry Pi trong giáo dục, bất cứ điều gì khiến việc học trở nên tự nhiên hơn đều là một điều tốt. Mặc dù RPi.GPIO đã hoàn hảo cho đến nay, nhưng GPIO Zero có một ý tưởng hay và làm cho nó thậm chí còn tốt hơn.

Một cách tuyệt vời để bắt đầu với GPIO Zero là thực hiện một dự án mới bắt đầu như Cảm biến cửa âm nhạc và chuyển nó vào thư viện mới.

Đă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
  • Raspberry Pi
  • Python
  • GPIO
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ý