DiyПрограммирование

Как начать с Rust на Raspberry Pi

Как начать с Rust на Raspberry Pi

Если вы интересуетесь программированием, вы, наверное, слышали о Rust Язык, разработанный Mozilla, широко любим разработчиками и продолжает расти среди преданных.

Raspberry Pi — это швейцарский армейский нож небольших компьютеров, и он идеально подходит для изучения кода. Давайте объединим их и установим Rust на Raspberry Pi.

Настройка вашего Raspberry Pi

Для этого проекта вам понадобится:

  • Raspberry Pi.
  • СВЕТОДИОД.
  • Резистор 220-1к Ом.
  • Макетные и соединительные провода.

Принципиальная электрическая схема, показывающая светодиод и резистор, подключенный к контактам GPIO 18 и GND Raspberry Pi

Настройте вашу цепь с GPIO 18, подключенным к положительной ветви светодиодов, а отрицательной ветви светодиодов к резистору и обратно к выводу GND на Pi.

Этот урок был сделан с использованием Raspberry Pi 3B + с Raspbian Stretch в режиме рабочего стола. Он также прекрасно работает через удаленное соединение SSH, хотя разные модели Pi и разные операционные системы могут иметь разные результаты.

Как установить Rust на Raspberry Pi

Требуется команда терминала для установки Rust

Чтобы установить rust, перейдите на страницу установки rust-lang и скопируйте команду установки в свой терминал. При появлении запроса выберите установку по умолчанию.

Три варианта, представленные установщиком Rust.

Программа установки уведомит вас о завершении, хотя установка может занять некоторое время, в зависимости от вашего подключения.

После установки

Rustc и Cargo установлены, но не в настоящее время в PATH

Установка прошла успешно, но вы еще не можете начать ее использовать. Если вы попытаетесь проверить Rust и Cargo по версии, вы получите ошибку. Обычно вы должны добавить язык к вашей переменной PATH, чтобы использовать его в командной строке.

К счастью, Rust сделает это за вас, и все, что вам нужно сделать, это перезагрузить Pi или выйти из системы и войти снова. Теперь проверка на Rust и Cargo должна работать.

Тестирование Rust и Cargo в PATH с их номерами версий.

Вы будете компилировать и собирать все свои скрипты из терминала, но вам также понадобится редактор кода. В этом проекте я буду использовать Code-OSS, сборку сообщества Code VS, которую вы можете установить на Pi, но это не обязательно. Подойдет любой редактор кода.

Создание проекта Rust

Чтобы создать проект Rust, создайте новый каталог и введите его, набрав

mkdir YourFolder cd YourFolder 

Используйте Cargo для создания нового проекта Rust.

 cargo new YourProject 

Вы получите подтверждение, что новый проект был создан.
Создание нового каталога в терминале и добавление в него пустого проекта ржавчины

Войдите в новую папку проекта и перечислите ее содержимое.

 cd YourProject ls 

Вы увидите папку с именем src и файл с именем Cargo.toml . Эти два элемента составляют основу каждого проекта Rust.

Простой проект Rust, объяснил

Образец сценария Hello World

Во-первых, давайте откроем каталог src и откроем main.rs в редакторе кода. Вы увидите, что новый проект поставляется в комплекте со скриптом «Hello World», чтобы вы могли начать.

Синтаксис Rust будет знаком тем, кто раньше использовал языки C или Java. Это отличается от Python, который использует пробелы, точки с запятой и фигурные скобки для обозначения блоков кода. Rust-код должен компилироваться и компилироваться перед запуском.

Пустой файл Cargo.toml

Вернувшись в родительскую папку проекта, откройте Cargo.toml в редакторе кода. Любой, кто закодировал в JavaScript или Ruby, наверняка найдет это знакомым. Информация о проекте, инструкции по сборке и зависимости перечислены в этом файле. Пакеты называются Crates in Rust, и позже мы будем использовать один из них для доступа к выводам GPIO Raspberry Pi.

Создание примера проекта

Вернувшись в окно терминала, убедитесь, что вы находитесь в каталоге вашего проекта, и постройте проект.

 cargo build 

Использование команды Cargo Build для создания примера проекта

Это создаст другую папку в вашем проекте под названием target . Вы также заметите новый файл с именем Cargo.lock . При работе с командой или написании кода для развертывания на сервере этот файл блокирует проект до версии, которая ранее была скомпилирована и успешно создана. Во время обучения вы можете спокойно игнорировать этот файл.

В целевой папке находится подпапка debug , и именно там будет находиться ваш исполняемый файл. На Mac и Linux запустите свой проект, набрав:

 ./YourProject 

В Windows у вас будет новый EXE- файл, который вы можете запустить двойным щелчком мыши.

Структура файла встроенного проекта ржавчины вместе с запущенной программой hello world.

Успех! Давайте превратим этот проект во что-то, что использует контакты GPIO.

Настройка контактов GPIO

Добавление нулевого ящика Rust GPIO в файл Cargo.toml

Для этого проекта мы будем использовать ящик rust_gpiozero от Rahul Thakdoor . Хотя это не единственный способ получить доступ к выводам GPIO, этот ящик спроектирован так, чтобы быть похожим на библиотеку Python GPIO Zero.

Вместо ручной загрузки ящика, вставьте его имя под зависимости в файле Cargo.toml.

 [dependencies] rust_gpiozero = "0.2.0" 

Сохраните его и откройте свой терминал. На данном этапе нет смысла перестраивать проект, так как код не изменился. Cargo предоставляет функцию, которая проверяет, что код скомпилируется и что все зависимости присутствуют.

 cargo check 

Проверка груза проверит код на наличие ошибок и установит зависимости

В зависимости от вашего соединения это может занять несколько минут, но вам нужно сделать это только один раз, когда вы добавляете или изменяете элементы в файле Cargo.toml.

Привет блинк

Raspberry Pi со светодиодом

Теперь вы измените свой сценарий 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 довольно много шума, и есть много причин, по которым вы должны изучать язык !

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика