Если вы интересуетесь программированием, вы, наверное, слышали о Rust Язык, разработанный Mozilla, широко любим разработчиками и продолжает расти среди преданных.
Raspberry Pi — это швейцарский армейский нож небольших компьютеров, и он идеально подходит для изучения кода. Давайте объединим их и установим Rust на Raspberry Pi.
Настройка вашего Raspberry Pi
Для этого проекта вам понадобится:
- Raspberry Pi.
- СВЕТОДИОД.
- Резистор 220-1к Ом.
- Макетные и соединительные провода.
Настройте вашу цепь с GPIO 18, подключенным к положительной ветви светодиодов, а отрицательной ветви светодиодов к резистору и обратно к выводу GND на Pi.
Этот урок был сделан с использованием Raspberry Pi 3B + с Raspbian Stretch в режиме рабочего стола. Он также прекрасно работает через удаленное соединение SSH, хотя разные модели Pi и разные операционные системы могут иметь разные результаты.
Как установить Rust на Raspberry Pi
Чтобы установить rust, перейдите на страницу установки rust-lang и скопируйте команду установки в свой терминал. При появлении запроса выберите установку по умолчанию.
Программа установки уведомит вас о завершении, хотя установка может занять некоторое время, в зависимости от вашего подключения.
После установки
Установка прошла успешно, но вы еще не можете начать ее использовать. Если вы попытаетесь проверить Rust и Cargo по версии, вы получите ошибку. Обычно вы должны добавить язык к вашей переменной PATH, чтобы использовать его в командной строке.
К счастью, Rust сделает это за вас, и все, что вам нужно сделать, это перезагрузить Pi или выйти из системы и войти снова. Теперь проверка на Rust и Cargo должна работать.
Вы будете компилировать и собирать все свои скрипты из терминала, но вам также понадобится редактор кода. В этом проекте я буду использовать Code-OSS, сборку сообщества Code VS, которую вы можете установить на Pi, но это не обязательно. Подойдет любой редактор кода.
Создание проекта Rust
Чтобы создать проект Rust, создайте новый каталог и введите его, набрав
mkdir YourFolder cd YourFolder
Используйте Cargo для создания нового проекта Rust.
cargo new YourProject
Вы получите подтверждение, что новый проект был создан.
Войдите в новую папку проекта и перечислите ее содержимое.
cd YourProject ls
Вы увидите папку с именем src и файл с именем Cargo.toml . Эти два элемента составляют основу каждого проекта Rust.
Простой проект Rust, объяснил
Во-первых, давайте откроем каталог src и откроем main.rs в редакторе кода. Вы увидите, что новый проект поставляется в комплекте со скриптом «Hello World», чтобы вы могли начать.
Синтаксис Rust будет знаком тем, кто раньше использовал языки C или Java. Это отличается от Python, который использует пробелы, точки с запятой и фигурные скобки для обозначения блоков кода. Rust-код должен компилироваться и компилироваться перед запуском.
Вернувшись в родительскую папку проекта, откройте Cargo.toml в редакторе кода. Любой, кто закодировал в JavaScript или Ruby, наверняка найдет это знакомым. Информация о проекте, инструкции по сборке и зависимости перечислены в этом файле. Пакеты называются Crates in Rust, и позже мы будем использовать один из них для доступа к выводам GPIO Raspberry Pi.
Создание примера проекта
Вернувшись в окно терминала, убедитесь, что вы находитесь в каталоге вашего проекта, и постройте проект.
cargo build
Это создаст другую папку в вашем проекте под названием target . Вы также заметите новый файл с именем Cargo.lock . При работе с командой или написании кода для развертывания на сервере этот файл блокирует проект до версии, которая ранее была скомпилирована и успешно создана. Во время обучения вы можете спокойно игнорировать этот файл.
В целевой папке находится подпапка debug , и именно там будет находиться ваш исполняемый файл. На Mac и Linux запустите свой проект, набрав:
./YourProject
В Windows у вас будет новый EXE- файл, который вы можете запустить двойным щелчком мыши.
Успех! Давайте превратим этот проект во что-то, что использует контакты GPIO.
Настройка контактов GPIO
Для этого проекта мы будем использовать ящик rust_gpiozero от Rahul Thakdoor . Хотя это не единственный способ получить доступ к выводам GPIO, этот ящик спроектирован так, чтобы быть похожим на библиотеку Python GPIO Zero.
Вместо ручной загрузки ящика, вставьте его имя под зависимости в файле Cargo.toml.
[dependencies] rust_gpiozero = "0.2.0"
Сохраните его и откройте свой терминал. На данном этапе нет смысла перестраивать проект, так как код не изменился. Cargo предоставляет функцию, которая проверяет, что код скомпилируется и что все зависимости присутствуют.
cargo check
В зависимости от вашего соединения это может занять несколько минут, но вам нужно сделать это только один раз, когда вы добавляете или изменяете элементы в файле Cargo.toml.
Привет блинк
Теперь вы измените свой сценарий hello world на сценарий мигающего света. Начните с открытия main.rs в вашем редакторе. Если вы хотите пропустить кодирование, вы можете найти готовый скрипт на Github Gist .
Вам нужно сообщить компилятору, что вы используете библиотеку rust_gpiozero, поэтому в самом верху скрипта добавьте ссылку на библиотеку.
use rust_gpiozero::*;
Подобно обычному мигающему эскизу на основе Python, нам нужен способ добавить задержку между включением и выключением светодиода. В Rust для этого мы используем два элемента стандартной библиотеки:
use std::thread::sleep; use std::time::Duration; // note the capital D!
Теперь в вашей основной функции добавьте переменную для вашего светодиодного контакта и цикл, содержащий мигающие инструкции.
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)); }
Это оно! Сохраните ваш скрипт и вернитесь в терминал.
Проверьте это
Снова соберите проект, чтобы обновить исполняемый файл. В качестве альтернативы команда run создает и запускает скрипт за один шаг:
cargo run
Вы должны увидеть мигающий светодиод. Отлично сработано! Вы только что сделали свою первую аппаратную программу с Rust. Нажмите Ctrl-C, чтобы выйти обратно в терминал. Если у вас есть какие-либо ошибки, тщательно проверьте свой код на наличие пропущенных двоеточий, точек с запятой или скобок.
Увлекательное будущее с Rust на Raspberry Pi
В настоящее время Python не подвергается опасности быть замененным на Rust. Его легко выучить, и у Python будет много приложений на долгие годы .
Тем не менее, в Rust довольно много шума, и есть много причин, по которым вы должны изучать язык !