Nếu bạn quan tâm đến lập trình, chắc chắn bạn đã nghe nói về ngôn ngữ lập trình Rust. Ngôn ngữ này do Mozilla thiết kế và được các nhà phát triển yêu thích.
Raspberry Pi rất thích hợp cho máy tính nhỏ và hoàn hảo để học code. Bài viết này sẽ hướng dẫn bạn cách kết hợp cả hai và cài đặt Rust trên Raspberry Pi.
Thiết lập Raspberry Pi của bạn
Đối với dự án này, bạn sẽ cần:
- Raspberry Pi.
- LED
- Điện trở 220-1k Ohm.
- Breadboard và dây hookup.
Thiết lập mạch của bạn với GPIO 18 được kết nối với chân dương của đèn LED và chân âm của đèn LED với điện trở và trở lại chân GND trên Pi.
Hướng dẫn này được thực hiện bằng Raspberry Pi 3B + với Raspbian Stretch ở chế độ máy tính. Nó cũng sẽ hoạt động hoàn hảo thông qua kết nối SSH từ xa, mặc dù các mô hình khác nhau của Pi và các hệ điều hành khác nhau có thể có kết quả khác nhau.
Cách cài đặt Rust trên Raspberry Pi
Để cài đặt gỉ, hãy truy cập trang cài đặt rust-lang và sao chép lệnh cài đặt vào terminal của bạn. Khi được nhắc, hãy chọn một cài đặt mặc định.
Trình cài đặt sẽ thông báo cho bạn khi hoàn tất, mặc dù quá trình cài đặt có thể mất một chút thời gian tùy thuộc vào kết nối của bạn.
Sau khi cài đặt
Quá trình cài đặt thành công, nhưng bạn vẫn chưa thể bắt đầu sử dụng nó. Nếu bạn cố gắng kiểm tra Rust and Cargo theo phiên bản, bạn sẽ gặp lỗi. Thông thường, bạn phải thêm một ngôn ngữ vào PATH của mình để sử dụng chúng trên dòng lệnh.
Rust thực hiện điều này cho bạn và tất cả những gì bạn cần làm là khởi động lại Pi của mình hoặc đăng xuất và đăng nhập lại. Bây giờ kiểm tra Rust và Cargo sẽ hoạt động.
Bạn sẽ biên dịch và xây dựng tất cả các tập lệnh của mình từ terminal, nhưng bạn cũng sẽ cần một trình soạn thảo mã. Trong dự án này, tôi sẽ sử dụng Code-OSS, một bản xây dựng cộng đồng của VS Code mà bạn có thể cài đặt trên Pi. Tuy nhiên, bạn có thể dùng bất kỳ trình soạn thảo mã nào.
Tạo một dự án Rust
Để tạo một dự án Rust, hãy tạo một thư mục mới và nhập nó bằng cách gõ
mkdir YourFolder
cd YourFolder
Sử dụng Cargo để tạo một dự án Rust mới.
cargo new YourProject
Bạn sẽ nhận được xác nhận rằng dự án mới đã được tạo.
Nhập thư mục dự án mới và liệt kê nội dung của nó.
cd YourProject
ls
Bạn sẽ thấy một thư mục có tên src và một tệp có tên là Cargo.toml. Hai yếu tố này tạo nên cơ sở của mọi dự án Rust.
Một dự án Rust đơn giản
Đầu tiên, hãy mở thư mục src và mở main.rs trong một trình soạn thảo mã. Bạn sẽ thấy rằng dự án mới đã hoàn thành với tập lệnh “Hello World” để giúp bạn bắt đầu.
Cú pháp Rust sẽ quen thuộc với những ai đã sử dụng ngôn ngữ C hoặc Java trước đây. Điều này khác với Python sử dụng khoảng trắng, dấu chấm phẩy và dấu ngoặc nhọn để biểu thị các khối mã. Mã Rust phải biên dịch và xây dựng trước khi nó chạy.
Quay lại thư mục mẹ của dự án, mở Cargo.toml trong trình chỉnh sửa mã. Bất kỳ ai đã viết mã bằng JavaScript hoặc Ruby sẽ có thể thấy điều này quen thuộc. Thông tin dự án, hướng dẫn xây dựng và phụ thuộc đều được liệt kê trong tệp này. Các gói được gọi là Crates in Rust và sau này chúng ta sẽ sử dụng một gói để truy cập các chân GPIO của Raspberry Pi.
Xây dựng dự án mẫu
Quay lại cửa sổ terminal, đảm bảo rằng bạn đang ở trong thư mục dự án của mình và xây dựng dự án.
cargo build
Điều này tạo ra một thư mục khác trong dự án của bạn được gọi là target. Bạn cũng sẽ nhận thấy một tệp mới có tên là Cargo.lock. Khi làm việc với nhóm hoặc code thứ gì đó để triển khai tới máy chủ, tệp này sẽ khóa dự án với phiên bản đã được biên dịch và xây dựng thành công trước đó. Trong khi học, bạn có thể bỏ qua tệp này một cách an toàn.
Trong thư mục đích có một thư mục con được gọi là debug và đây là nơi chứa tệp thực thi của bạn. Trên Mac và Linux, hãy chạy dự án của bạn bằng cách nhập:
./YourProject
Trên Windows, bạn sẽ có một tệp EXE mới mà bạn có thể chạy bằng cách nhấp đúp.
Thiết lập các chân GPIO
Chúng tôi sẽ sử dụng rust_gpiozero crate của Rahul Thakdoor cho dự án này. Mặc dù đây không phải là cách duy nhất để truy cập các chân GPIO, nhưng crate này được thiết kế tương tự như thư viện Python GPIO Zero.
Thay vì tải xuống crate theo cách thủ công, hãy dán tên crate dưới phần phụ thuộc trong tệp Cargo.toml.
[dependencies]
rust_gpiozero = "0.2.0"
Lưu nó và mở terminal của bạn. Ở giai đoạn này, không cần phải xây dựng lại dự án vì không có code nào thay đổi. Cargo cung cấp một chức năng sẽ kiểm tra xem mã sẽ biên dịch và tất cả các phụ thuộc đều có đủ.
cargo check
Tùy thuộc vào kết nối của bạn, việc này có thể mất vài phút nhưng bạn chỉ cần thực hiện một lần khi thêm hoặc thay đổi các mục trong tệp Cargo.toml.
Đèn nhấp nháy
Bây giờ bạn sẽ thay đổi tập lệnh hello world của mình thành một tập lệnh đèn nhấp nháy. Bắt đầu bằng cách mở main.rs trong trình soạn thảo của bạn. Nếu bạn muốn bỏ qua việc viết code, bạn có thể tìm thấy tập lệnh đã hoàn thành trên Github Gist.
Bạn cần cho trình biên dịch biết bạn đang sử dụng thư viện gỉ_gpiozero, vì vậy ở đầu tập lệnh, hãy thêm một tham chiếu vào thư viện.
use rust_gpiozero::*;
Chúng ta cần một cách để thêm độ trễ giữa việc bật và tắt đèn LED. Trong Rust, chúng ta sử dụng hai phần tử của thư viện chuẩn để thực hiện việc này:
use std::thread::sleep;
use std::time::Duration; // note the capital D!
Bây giờ trong hàm main của bạn, hãy thêm một biến cho chân LED của bạn và một vòng lặp để chứa các hướng dẫn nhấp nháy.
let led = LED::new(18); // sets a variable for the led pin
loop{ // starts a loop
led.on();
sleep(Duration::from_secs(1)); // creates a 1 second pause
led.off();
sleep(Duration::from_secs(1));
}
Lưu tập lệnh của bạn và quay lại terminal.
Kiểm tra
Xây dựng lại dự án để cập nhật tệp thực thi. Ngoài ra, lệnh run xây dựng và chạy tập lệnh trong một bước duy nhất:
cargo run
Bạn sẽ thấy một đèn LED nhấp nháy. Vậy là bạn vừa tạo chương trình phần cứng đầu tiên của mình với Rust. Nhấn Ctrl-C để thoát trở lại terminal. Nếu bạn có bất kỳ lỗi nào, hãy kiểm tra lại mã của bạn kỹ lưỡng để tìm bất kỳ dấu hai chấm, dấu chấm phẩy hoặc dấu ngoặc vuông nào bị bỏ sót.
Tương lai thú vị với Rust trên Raspberry Pi
Hiện tại, Python không có nguy cơ bị thay thế bởi Rust. Nó rất dễ học và Python sẽ có nhiều ứng dụng trong nhiều năm tới.
Tuy vậy, Rust ngày càng được yêu thích, và có nhiều lý do tại sao bạn nên học ngôn ngữ này!
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/tag/getting-started-rust-raspberry-pi/






















Bình luận (0
)