Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Контактами GPIO (общего назначения для ввода-вывода) можно управлять по отдельности. Это полезно для управления индикаторами, ретрансляторами и другими устройствами с отслеживанием состояния. В этом разделе вы будете использовать .NET и пины GPIO Raspberry Pi для питания светодиодных индикаторов и многократного мигания.
Предпосылки
- Компьютер на основе ARM (ARMv7 или более поздней версии) с одной платой (SBC)
- 5 мм светодиод
- Резистор 330 Ω
- Макет
- Перемычки
- Плата расширения для Raspberry Pi GPIO (необязательно/рекомендуется)
- SDK-пакет .NET версии 10 или более поздней
Примечание.
В этом руководстве предполагается, что целевое устройство — Raspberry Pi. Однако это руководство можно использовать для любого SBC на основе Linux, который поддерживает .NET, например Orange Pi, ODROID и многое другое.
Убедитесь, что SSH включен на устройстве. Для Raspberry Pi см. инструкции по настройке SSH-сервера в документации raspberry Pi.
Подготовка оборудования
Используйте аппаратные компоненты для построения канала, как показано на следующей схеме:
На приведенном выше рисунке показаны следующие подключения:
- GPIO 18 к аноду светодиода (более длинный, положительный вывод)
- Катод светодиода (короткий, отрицательный вывод) к резистору 330 Ω (любой конец)
- 330 Ω резистор (другой конец) на землю
При необходимости обратитесь к следующей схеме закреплений:
Изображение любезно Raspberry Pi Foundation.
Подсказка
Использование платы вывода GPIO в сочетании с макетной платой рекомендуется, чтобы упростить подключения к заголовку GPIO.
Создание приложения
Выполните следующие действия в предпочтительной среде разработки:
Создайте консольное приложение .NET с помощью .NET CLI или Visual Studio. Назовите его BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorialДобавьте в проект пакет System.Device.Gpio . Используйте .NET CLI из каталога проекта или Visual Studio.
dotnet package add System.Device.Gpio --version 4.0.1Замените содержимое файла Program.cs кодом, приведенным ниже.
using System; using System.Device.Gpio; using System.Threading; Console.WriteLine("Blinking LED. Press Ctrl+C to end."); int pin = 18; using var controller = new GpioController(); controller.OpenPin(pin, PinMode.Output); bool ledOn = true; while (true) { controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); Thread.Sleep(1000); ledOn = !ledOn; }В предыдущем коде:
-
Объявление using создает экземпляр
GpioController. Объявлениеusingгарантирует, что объект удаляется, а аппаратные ресурсы освобождаются должным образом. - Пин-код GPIO 18 открыт для выходных данных
- Цикл
whileвыполняется неограниченно. Каждая итерация:- Записывает значение в пин-код GPIO 18. Если
ledOnзадано значение true, он записываетPinValue.High(вкл.). В противном случае он записываетPinValue.Low. - Спит 1000 мс.
- Переключает значение
ledOn.
- Записывает значение в пин-код GPIO 18. Если
-
Объявление using создает экземпляр
сборка приложения. При использовании интерфейса командной строки .NET выполните
dotnet build. Чтобы создать Visual Studio, нажмите клавиши Ctrl+Shift+B.Разверните приложение в SBC как автономное приложение. Инструкции см. в разделе Deploy .NET приложения в Raspberry Pi. Обязательно предоставьте исполняемому файлу разрешение на выполнение с помощью
chmod +x.Запустите приложение на Raspberry Pi, переключившись в каталог развертывания и запустив исполняемый файл.
./BlinkTutorialСветодиодный индикатор мигает, включаясь и выключаясь каждую секунду.
Завершите программу, нажав клавиши CTRL+C.
Поздравляю! Вы использовали GPIO для мигания светодиодных индикаторов.
Получение исходного кода
Исходный код этого руководства доступен на GitHub.