Raspberry Pi — семейство миниатюрных одноплатных компьютеров. Они нашли применение в различных проектах из сферы IoT и домашней автоматизации, а обширные возможности и обилие подробной документации привлекают к Pi внимание энтузиастов компьютерной техники. С помощью этой платформы весьма удобно учиться написанию кода: программирование Raspberry Pi возможно на разных языках, а написанную программу можно тут же загрузить в память компьютера и протестировать. Для успешной профессиональной (и любительской) работы с «одноплатником» также понадобятся навыки программирования.
Рекомендуем к прочтению: изучите дополнительный материал об упрощенной версии малинки Raspberry Zero.
За прошедшие со дня выпуска первой версии микрокомпьютера годы для него адаптировали практически все современные языки программирования. Некоторые специфические обладают лишь ограниченной поддержкой, но самые популярные работают без ограничений.
Raspberry также поддерживает исполнение кода Java, на основе компьютера можно создавать интерактивные веб-приложения HTML5 и PHP.
Рассмотрим пример программирования RPI на популярном языке Python
«Питон» идеально подходит для Raspberry: он достаточно прост в освоении, функционален обладает множеством возможностей. На Python разрабатываются как небольшие программы для собственного использования, так и крупные проекты международного уровня. Этот язык станет хорошим стартом для новичков в мире IT и отличным инструментом обучения кодингу, устройству и принципам работы компьютеров.
Для разработки на «Питоне» под Raspberry потребуется изучить некоторые базовые понятия. Программист обязательно должен освоить:
Несмотря на кажущийся объем, изучение синтаксиса языка и базовых приемов работы с ним занимает несколько вечеров.
Важно: желательно знать английский хотя бы на уровне чтения. Хотя и сам RPI, и Python обладают хорошим стеком русскоязычной документации, некоторые сведения полнее изложены в английском варианте или доступны только в нем. Кроме того, знание иностранного открывает доступ к ресурсам англоязычного комьюнити, позволяет общаться с коллегами со всего мира, делиться опытом и так далее.
Так, например, взаимодействие с «Малинкой» через «Питон» хорошо описано в пособии для начинающих с названием Python programming with Raspberry Pi, которое на русский не переведено.
Программирование на Python нуждается в соответствующем инструментарии. В случае с Python это интерпретатор, компилятор и среда разработки, поставляющиеся единым пакетом и доступные для загрузки с официального сайта. На нем присутствуют дистрибутивы под разные платформы.
Можно также воспользоваться адаптированным под «одноплатник» дистрибутивом Raspbian, где весь инструментарий предустановлен.
Помимо среды разработки, понадобятся некоторые специфические библиотеки, в частности, для взаимодействия с GPIO Raspberry. В «официальном» дистрибутиве ОС все они присутствуют.
Итак, допустим, что у нас есть:
Лампочка подсоединена к пину 10 платы.
Следующая программа включает диод на 5 секунд, после чего выключает.
# подключаем одну из упомянутых библиотек взаимодействия.
Import RPi.GPIO as GPIO
# далее подключим библиотеку времени (нужна для таймера включения/выключения диода).
Import time
# вводим функцию для запуска GPIO.
GPIO.setmode(GPIO.BOARD)
# Указываем интерпретатору номер порта и направление (пин 10, на выход).
GPIO.SETUP(10, GPIO.OUT)
# Включаем светодиод на 5 секунд.
GPIO.output(10, 1)
time.sleep(5)
# И выключаем.
GPIO.output(10, 0)
Написанную программу следует сохранить в файл с расширением .py, который далее выполняется на «малинке». По аналогичному принципу пишутся и другие программы.
Raspberry Pi — многоцелевая платформа, программировать которую можно на большинстве современных языков. Выбор конкретного зависит только от личных желаний и предпочтений программиста, а также особенностей реализуемого проекта.
Для начинающих хорошо подойдет язык Python, как нативный для «малинки», хорошо документированный и простой в исполнении. Детям и молодежи также должен понравиться Scratch, дающий возможность освоить техники программирования в визуальном режиме почти без написания собственно кода.