Как программировать raspberry pi

Raspberry Pi — это микрокомпьютеры. И, поскольку это микрокомпьютеры, то они имеют свою операционную систему. Следовательно, разработка программного обеспечения для этой операционной системы имеет свои особенности, которые и описаны в данной книге (щёлкните по картинке, чтобы перейти на страницу книгу).

Raspberry Pi — это действительно микрокомпьютер. Его размеры сопоставимы с размерами кредитной карты, а стоимость базовой модели во времена начала производства была всего 25 долларов. Сейчас, в связи с известными событиями, цены в России, конечно, выше. Но главное, что товар есть в продаже, и это всё равно намного дешевле стационарных компьютеров или ПЛК.

Изначально этот микрокомпьютер был основан на процессоре Broadcom архитектуры ARM11, с тактовой частотой 700 МГц. Но и этого с лихвой хватало для большинства задач.

Несмотря на свои размеры, Raspberry Pi — это полноценный системный блок, с помощью которого можно воспроизводить видео, программировать, пользоваться Интернетом, слушать музыку и выполнять другие действия, которые выполняет обычный компьютер. Но, в отличие от обычного компьютера, Raspberry Pi имеет набор специальных портов ввода-вывода, которые в сочетании с небольшим размером позволяют использовать этот компьютер в других устройствах, в том числе и в робототехнике.

Питание компьютера обычно выполняется через USB, а потребление сравнительно небольшое: для большинства задач достаточно 0,5…07 А.

К компьютеру подключается SD-карта, без которой он не включится, поскольку операционная система записана на SD-карте.

Монитор можно подключить через HDMI. При желании можно использовать переходники и более привычные интерфейсы, такие как VGA.

Кроме всего прочего имеются разъёмы для подключения внешних устройств, таких как платы расширения, датчики, внешние контроллеры и т.п. И это позволяет строить на основе Raspberry Pi разнообразные устройства, применение которых почти не имеет ограничений.

То есть Raspberry Pi — это, можно сказать, навороченная версия Ардуино, с более мощным процессором и с операционной системой.

В качестве операционной системы можно использовать некоторые версии Linux. Однако есть и другие операционные системы, причём список их довольно обширен (в том числе и Андроид).

В общем, это очень крутая штука для “рукастых”. На основе Raspberry Pi можно собрать что угодно — от умного дома до робота. Или встроить его в клавиатуру и получить домашний компьютер без системного блока, который вечно мешается где-то под ногами.

Конечно, для этого придётся немного помучиться с изучением как самого компьютера, так и с изучением способов его программирования. Один из способов как раз и рассмотрен в книге:

Основы программирования Raspberry Pi на Python.

Raspberry Pi 4: GPIO все что нужно знать для начала работы

Продолжаем наш курс по Raspberry Pi, продвигаемся от самых основ, и сегодня разберем, как выполнять программы, написанные на Python. Как водится, напишем базовый пример, конечно же, «Hello, World». Итак, начнем с настройки Raspberry. В операционной системе Raspberry Pi OS пакет Python уже установлен, но если бы он отсутствовал, то команда для установки:

sudo apt-get install python

При этом по умолчанию установлены версии 2 и 3. Чтобы узнать, какая из версий используется, вводим команду:

python —version

Если результат будет таким (конкретная версия может отличаться), то значит по умолчанию используется Python 2:

Версия Python

И для того, чтобы это изменить, необходимо отредактировать файл ~/.bashrc. Этот файл находится в домашнем каталоге текущего пользователя и представляет из себя скрипт, который выполняется каждый раз, когда пользователь открывает консоль, подключается по SSH и т. д. Файл используется для настройки окружения пользователя. Используем редактор nano:

nano ~/.bashrc

После вызова команды файл будет открыт непосредственно в консоли. Обратите внимание на сочетания клавиш для работы с редактором, которые указаны внизу. К примеру, для закрытия редактора используем Ctrl + X:

Редактор Nano

Прокручиваем файл до самого конца и добавляем строку:
alias python=’/usr/bin/python3′

Редактирование файла

  • Ctrl + X
  • далее Y для подтверждения сохранения
  • вводим имя файла и жмем Enter

Перезапускаем терминал, перелогиниваемся в случае SSH, либо запускаем скрипт командой:

source ~/.bashrc

И теперь уже видим другую картину:

Python version

С подготовкой на этом закончили

Для того, чтобы выполнять команды при помощи интерпретатора Python возможны несколько вариантов. К примеру, можно запустить интерпретатор командой:

python

Символы >>> приглашают нас вводить команды непосредственно в командную строку. Печатаем:

print(«Hello, World!»)

Hello, World!

Что получается в итоге? Мы запустили интерпретатор Python и передали ему команду на выполнение, собственно, сразу и увидели результат в виде напечатанной строки «Hello, World!». Кстати для выхода используется сочетание Ctrl + D, либо команда:

exit()

Но такой способ, конечно, нас не очень интересует. Гораздо более практичным будет создание файла или файлов с кодом программы, которая уже будет выполняться (однократно или многократно — зависит от целей).

Итак, создадим новый файл. Причем разберем универсальный случай, когда Raspberry Pi используется без дисплея, то есть все действия будем производить через командную строку, подключившись по SSH. При наличии дисплея и элементов управления (клавиатуры, мыши), конечно, также можно использовать исключительно терминал, но кроме того, можно и создавать/редактировать файлы средствами операционной системы.

Действуем. Создаем файл test.py:

nano test.py

По умолчанию файл будет создан в папке /home/pi. После ввода команды мы снова оказывается в редакторе nano, поэтому прямо в консоли изменяем файл. А именно добавляем строку:

print(«Hello, World!»)

Файл Python

Сохраняем изменения файла так же как делали это ранее. И теперь для запуска просто вводим команду:

python test.py

Результат ожидаемый и аналогичный:

Python на Raspberry Pi

Вот, собственно, на этом и заканчиваем рассмотрение базовых способов использования Python на Raspberry Pi. В ближайших статьях курса рассмотрим работу с периферией платы (GPIO, I2C, SPI и т. д.).

Установка C/C++ SDK для Raspberry Pi Pico на Linux систему

Для установки C/C++ SDK для программирования платы Raspberry Pi Pico автор данного проекта (ссылка на оригинал приведена в конце статьи) использовал операционную систему Ubuntu 20.04 LTS.

Организация Raspberry Pi Foundation поставляет скрипт установки для операционных систем Linux и Raspberry Pi OS, который автоматически создает и устанавливает все необходимые компоненты для C/C++ SDK и кросс-платформенной IDE Visual Studio Code. Для скачивания скрипта установки (setup script) C/C++ SDK выполните следующую последовательность команд:

Использование OpenOCD и GDB

Чтобы использовать отладку через SWD, вам необходимо запустить openocd как сервер и gdb как клиент:

$ openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl

Open On-Chip Debugger 0.10.0+dev-g18b4c35-dirty (2021-08-12-18:55)

Licensed under GNU GPL v2

For bug reports, read http://openocd.org/doc/doxygen/bugs.html

Info : only one transport option; autoselect ‘swd’

Warn : Transport «swd» was already selected adapter speed: 5000 kHz

Info : Hardware thread awareness created

Info : Hardware thread awareness created

Info : RP2040 Flash Bank Command

Info : Listening on port 6666 for tcl connections

Info : Listening on port 4444 for telnet connections

Info : clock speed 5000 kHz

Info : SWD DPIDR 0x0bc12477

Info : SWD DLPIDR 0x00000001

Info : SWD DPIDR 0x0bc12477

Info : SWD DLPIDR 0x10000001

Info : rp2040.core0: hardware has 4 breakpoints, 2 watchpoints

Info : rp2040.core1: hardware has 4 breakpoints, 2 watchpoints

Info : starting gdb server for rp2040.core0 on 3333

Info : Listening on port 3333 for gdb connections

$ sudo apt install gdb-multiarch -y

(gdb) target remote loacalhost:3333

Конечно же вы можете отлаживать свое приложение в своей любимой IDE, в этом случае IDE работает как клиент.

Автоматическая генерация проекта

Для автоматического создания нового проекта вы можете использовать скрипт Python, который может работать как в режиме графического интерфейса пользователя, так и в режиме командной строки.

Чтобы воспользоваться этим, вам нужно будет клонировать скрипт создания проекта из Git репозитория :

$ cd ~/pico git clone https://github.com/raspberrypi/pico-project-generator.git

Не забудьте установить библиотеку TKInter для использования GUI:

$ sudo apt-get install python3-tk

Затем его можно запустить в графическом режиме:

Установка Geany на Raspberry Pi

По умолчанию на Raspberry OS установлен Geany, но возможна ситуация когда его удалили вручную или была установлена обрезаная версия операционной системы Raspberry OS.

Geany можно легко установить через терминал из репозитория следующей командой.

sudo apt install geany

установка geany через терминал

Возможно перед установкой потребуется обновить информацию о новых версия программ в репозитории и обновить установленные программы.

sudo apt update sudo apt upgrade

Запуск Geany

После установки запустить Geany можно через меню или через терминал.

geany в меню raspberry os

geany

Программа для мигания светодиодом на Raspberry Pi

Для автономной работы светодиода нам потребуется написать и запустить программу. Для этого откроем предустановленную программу IDLE 3 и в меню File нажмем New. В открывшемся окне мы можем писать программу.

Напишем:
import RPi.GPIO as GPIO #импорт библиотеки для работы с GPIO
import time #импорт библиотеки для ожидания
GPIO.setmode(GPIO.BOARD) #»запуск» GPIO
GPIO.setup(7, GPIO.OUT) #объявление порта 7 как выход
while True: #бесконечный цикл
____GPIO.output(7, 1) #включение светодиода
____time.sleep(1) #ожидание 1 секунды
____GPIO.output(7, 0) #выключение светодиода
____time.sleep(1) #ожидание 1 секунды

Сохраним программу в папке /home/pi.

Теперь мы можем запустить программу из LXTerminal с помощью команды
sudo python programname.py

Управление светодиодом с помощью кнопки

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

Для этого подключим кнопку к порту 5.

Для управления нам потребуется следующая программа:

import RPi.GPIO as GPIO #импорт библиотеки GPIO
GPIO.setmode(GPIO.BOARD) #»включение GPIO»
GPIO.setup(7, GPIO.OUT) #объявление порта 7 как выход
GPIO.setup(3, GPIO.IN) #объявление порта 3 как вход
while True: #бесконечный цикл
____if GPIO.input(3) == False: #если кнопка зажата
________GPIO.output(7, 1) #включаем светодиод
____else: #иначе
________GPIO.output(7, 0) #выключаем

Начало работы с Raspberry Pi Pico с использованием языков программирования MicroPython и C

Плата Raspberry Pi Pico была выпущена только в прошлый четверг, и благодаря Cytron мы получили образец уже через несколько часов после выпуска. У нас было достаточно времени поэкспериментировать с платой, используя языки программирования MicroPython и C.

Для начала работы мы обратились к официальной документации. Однако, чтобы добиться того, что мы хотели сделать, а именно попеременно мигать светодиодами, нам пришлось немного потрудиться, поэтому представим вам наш опыт работы с Raspberry Pi Pico с использованием компьютера, работающего на операционной системе Ubuntu 20.04. Инструкции будут аналогичными для Windows и Mac OS.

Подготовка оборудования

Мы могли бы просто начать работу только с платы, но мы решили так же воспользоваться возможностью опробовать паяльник Pinecil Pine64, работающий от источника питания MINIX NEO P2 USB-C.

Паяльник работал отлично около минуты, а потом начались проблемы… Посмотрев на экран, мы увидели, что устройство перешло в спящий режим и температуру упала. Видимо, мы недостаточно сдвигали паяльник и, не обнаружив никакой активности, устройство погрузилось в спящий режим. Изменение чувствительности к движению или интервала сна может легко решить эту проблему.

Было бы обидно не использовать эти разъемы, поэтому мы вставили Raspberry Pi Pico в макет и добавили светодиод с сопутствующей схемой.

5 В подключен к VBUS (контакт 40), GND – к контакту 38, и мы решили использовать GPIO, ближайший к светодиоду, а именно GP15 (контакт 20). Маркировка GPIO на Raspberry Pi Pico отображается только на нижней части платы, поэтому, когда плата подключена к макетной плате, помогает распиновка.

На этом настройка оборудования завершена, и все, что нам нужно, это кабель Micro USB-USB-A для подключения платы к ноутбуку.

Оцените статью
TutShema
Добавить комментарий