- Программируем Raspberry Pi на голом железе
- В чем подвох?
- Что нам понадобится?
- Приготовления.
- Первая программа.
- Kali Linux на Raspberry Pi: просто, быстро, понятно
- Основы программирования на Raspberry Pi (Raspberry Pi programming basics)
- Введение
- Комплектация Raspberry Pi
- Инсталляция ОС Raspbian
- «Hello world!» на Python
- «Hello world!» на Си
- Пример проекта: мигание светодиодов
- Лучшие IDE для Raspberry Pi
- Почему Raspberry Pi отлично подходит в качестве настольного компьютера программиста?
- Geany: лучшая многоязычная IDE
- BlueJ: лучшая IDE для Java
- Thonny: лучшая IDE для начинающих Python-разработчиков
- Ninja-IDE
- Greenfoot: лучшая IDE для новичков
- IDE Lazarus
- Adafruit WebIDE: лучшая браузерная IDE
- Code::Blocks: лучшая IDE для начинающих C++-программистов
- Итоги
Программируем Raspberry Pi на голом железе
До сих пор Raspberry Pi остается одним из самых популярных технологических гаджетов.На эту плату Вы можете установить практически любую операционную систему. Но сегодня мы поговорим о том, как писать программы для этой платы без операционной системе, пользуясь лишь аппаратными средствами.
В чем подвох?
Что нам понадобится?
1) Сама Raspberry Pi, карта памяти к ней и питание.
2) Даташит на процессор
3) Компьютер с установленным Linux (но может быть можно и на Винде. Не знаю, не пробовал).
4) Кросскомпилятор, установленный на компьютере из пункта 3. Я использую arm-none-eabi-gcc
5) Содержимое этой папочки.
Приготовления.
Нам нужно отформатировать карту памяти в FAT16 и закинуть на нее содержимое этой папки. Это загрузчик плюс ядро. Затем удаляем оттуда файлы kernel.img и kernel_emergency.img. Это ядро Linux, а оно нам не нужно.
Первая программа.
Теперь мы можем приступить к написанию первой программы. Создаем файл main.c и пишем следующий код
Как видите, эта программа ничего не делает. Функция exit зачем-то нужна компилятору.
Теперь соберем её.
arm-none-eabi-gcc -O2 -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -nostartfiles main.c -o kernel.elf
arm-none-eabi-objcopy kernel.elf -O binary kernel.img
Полученный файл kernel.img кидаем на карту памяти. Готово!
#define GPIO_GPFSEL1 1
#define GPIO_GPCLR0 10
Ну и наконец модифицируем главную функцию для зажигания лампочки:
Собираем, прошиваем и радуемся.
В следующей части попробуем поиграться с таймерами и прерываниями.
Источник
Kali Linux на Raspberry Pi: просто, быстро, понятно
Заинтересовался я тут на днях, можно ли знаменитый в кругах хакеров и пентестеров Kali Linux на Raspberry Pi запустить. Полных, рабочих и понятных инструкций не нашел, вот и решил написать об этом пост. Выполнено на примере Raspberry Pi 3B+
1) Что нам понадобится:
- Собственно RPi (Подойдет любая, кроме Pi 1)
- Micro SD карта объемом не менее 16 гБ, класс 10
- Компьютер
- Дисплей с разъемом HDMI (к нему будем подключать малинку)
- Кабель питания (рекомендую брать с силой тока не менее 2А)
- Клавиатура и мышь
2) Подготовка софта
Во-первых, нам понадобится образ Kali Linux для RPi. Взять его можно вот здесь. Скроллим до слов Raspberrypi Foundation и выбираем нужный образ. Я взял образ «Kali Linux RaspberryPi 2 (v1.2), 3 and 4 (64-Bit)», RPi 3B+ спокойно его тянет.
Когда образ скачается, открываем ему с помощью архиватора и экстрактим.
Также вот отсюда качаем Etcher, им будем записывать образ на SD карту для малинки.
Открываем Etcher, подключаем microSD, в пункте «Select Image» указываем путь до файла, потом выбираем нашу microSD как девайс для прошивки, жмём Flash. Завариваем чаёк, и ждем, пока прошьётся.
Берем RPi, подключаем к ней microSD, дисплей, клавиатуру и мышь и ТОЛЬКО ПОТОМ втыкаем кабель питания, иначе ничего не получится. Ждём, пока на экране не появится графический интерфейс. Вводим логин и пароль (kali и kali).
Далее подключаемся к Wi-Fi или к проводному интернету (при надобности подключаем Wi-Fi донгл), нажав иконку сети в правом верхнем углу (там при первой загрузке нарисован порт Ethernet), выбрав сеть и введя пароль. Далее открываем консоль и пишем:
Может вылететь ошибка (когда перед одной из ссылок написано Err), тогда пишем код:
Нам откроется файл, все содержимое которого нужно удалить и ввести новое:
Потом снова запускаем команду:
И все должно заработать. Затем начинаем обновление пакетов:
Когда у нас спросят подтверждение, жмем Y и enter. А теперь снова завариваем чаёк и ждем, пока обновление завершится (советую заварить литров 10, так как обновляется все это ну очень медленно, у меня заняло около 6 часов).
Источник
Основы программирования на Raspberry Pi (Raspberry Pi programming basics)
Tags: Инсталляция Raspbian микрокомпьютер Raspberry Pi Hello world Python C++
Введение
Raspberry Pi может делать одну вещь гораздо более эффективнее, чем любой домашний компьютер — он может управлять внешними устройствами. Устройства могут быть абсолютно любыми, от обычной лампочки, до беспилотного летательного аппарата.
Под Raspberry Pi адаптированы почти все популярные языки программирования. Основные языки — Python и C/C++. Первый отличается простотой, второй — быстродействием.
На сайте приводятся ряд статей , в которых рассматривается программирование на языке Python(см. например, Быстрый старт с Python в Visual Studio) и на языке C/C++ (см. Язык Си в примерах и ООП на С++ примерах) в редакторе Visual Studio и операционной системе Windows, установленных на ноутбуке.
В этой статье прокладывается мостик к программированию на совершенно другой платформе — в операционной системе Raspbian, установленной на микрокомпьютере Raspberry Pi.
Комплектация Raspberry Pi
Приобретаю через интернет Raspberry Pi B4Gb и блок питания к нему.
Корпус покупать не обязательно. Без него микропроцессор лучше охлаждается. Все остальное можно докупить в любом компьютерном магазине. Для установки ОС Raspbian и дальнейшей работы еще понадобятся:
-
- SD карта объемом >= 16 Gb, класса >= 10 (у меня 32 Gb).
- USB micro Reader (устройство для чтения SD-карт).
- Монитор (телевизор с HDMI разъемом).
- USB мышь и клавиатура. При необходимости можно еще приобрести USB hub (разветвитель).
- Микро HDMI шнур (с одной стороны обычный HDMI разъем, с другой — микро разъем).
Инсталляция ОС Raspbian
Создаю образ ОС Raspbian на SD карте в Windows на ноутбуке. Для этого сначала скачиваю c официального сайта Raspbian файл 2020-02-13-raspbian-buster-full.zip (2.5G). Разархивирую его, получаю файл 2020-02-13-raspbian-buster-full.img (6.8G).
Вставляю SD карту в USB micro Reader. Затем USB micro Reader вставляю в USB разъем ноутбука (в положении, как показано на рисунке справа). В проводнике Windows появляется диск F.
Скачиваю и запускаю программу Win32 Disk Imager и перенаправляю (кнопка Write) файл 2020-02-13-raspbian-buster-full.img на диск F.
На диске F создается образ ОС Rasbian, представляющий собой множество входящих в него файлов.
Отмечу, что SD карта с образом Rasbian отображается в Windows некорректно — у меня с объемом всего 252 Мб и несуществующим реально диском G. Не обращайте на это внимания.
Перед созданием образа диск F с SD картой необходимо отформатировать (подробнее см. Как записать образ img на флешку). После форматирования или неправильного извлечения USB micro Reader возможно реальное уменьшение объема объема памяти SD карты (см. Восстановление объема флешки).
Извлекаю SD карту с образом Rasbian из USB micro Reader и вставляю ее в разъем Raspberry Pi.
Подсоединяю другие компоненты через соответствующие разъемы:
- клавиатуру и мышку через USB разъемы;
- шнур блока питания вставляю в Power port;
- телевизор и Raspberry Pi соединяются микро HDMI шнуром через HDMI разъемы.
Необходимо заранее в настройках телевизора установить HDMI вместо обычного AV. Это выполняется через меню, которое открывается, например, в LG кнопкой на пульте INPUT. Подробнее см. Как подключить телевизор к компьютеру или ноутбуку.
Включаю телевизор, а затем блок питания Raspberry Pi. Начинается инсталляция ОС Rasbian, результаты которой отображаются на экране.
Первая инсталляция была остановлена с ошибкой (Error 179.2). Создал заново образ ОС Rasbian. Перед этим очистил память SD карты (см. Восстановление объема флешки). Повторная инсталляция прошла успешно.
Даю ответы на вопросы системы (в основном — Next), подключаюсь к интернету через Wi-Fi. Появляется рабочий стол ОС с пиктограммами стандартных программ. Использую браузер для запуска своего сайта:
Удивительно! Устройство, которое по объему меньше мышки, заменяет системный блок.
«Hello world!» на Python
В верхнем левом углу рабочего стола выбираю пиктограмму с изображением малины, затем: Programming>Thorny Python IDE. Открывается редактор для написания программ.
Далее все как обычно:
- Создаю файл (New)
- Набираю текст программы:
- Сохраняю программу (Save>Create Folder(имя папки)>Name (имя файла)>Ok,
- Запускаю программу (Run)
- В окне консоли выводится сообщение: Hello world!
«Hello world!» на Си
В верхнем левом углу рабочего стола выбираю пиктограмму с изображением малины, затем: Programming>Geany Programmer’s Editor. Открывается редактор для написания программ на C/С++.
Если на языке Python код сразу запускается (интерпретируется), то на языке Си код cначала компилируется Build>Build (F9), и лишь потом запускается Build>Execute(F5).
В чем разница между компиляцией и интерпретацией? Разница в том, что компилятор преобразует код алгоритмического языка в исполняемый (байт-код либо нативный) код (в пределе — в машинные коды), в то время как интерпретатор самостоятельно распознаёт и выполняет построчно инструкции программного кода.
В чем разница между building и compiling? Compiling — это часть building. В свою очередь building может еще включать testing, packaging и другие действия.
Пример проекта: мигание светодиодов
Для работы понадобятся плата Raspberry Pi, светодиод, резистор на 200 Ом и соединительные провода (подробное описание проекта см. здесь и здесь).
Программный код включает светодиод на 10 секунд и отключает его.
Код на Python (подробное описание кода см. здесь )
Код 1 на C/C++ (подробное описание кода см. здесь)
Код 2 на C/C++ (подробное описание кода см. здесь )
Источник
Лучшие IDE для Raspberry Pi
Raspberry Pi — это, может, и не единственный одноплатный компьютер (single-board computer, SBC) на рынке, но он, определённо, является самым популярным. Raspberry Pi пользуется огромное количество людей, он является центром экосистемы, в которую входит множество официальных и неофициальных ресурсов и изделий — от книг и дополнительного оборудования до форумов и учебных курсов. Raspberry Pi снабжён отличной, поддерживаемой в актуальном состоянии документацией. Благодаря Raspberry Pi Foundation регулярно выходят новые модели SBC, появляются и усовершенствования моделей предыдущих поколений. Raspberry Pi, учитывая его серьёзную вычислительную мощность, отлично показывает себя в роли настольного компьютера. Он подходит и тем, кто занимается программированием.
Из этого материала вы узнаете о том, почему Raspberry Pi имеет смысл рассматривать как компьютер, подходящий для разработчика ПО. Здесь же мы поговорим о выборе интегрированной среды разработки (integrated development environment, IDE). Среди рассмотренных IDE можно найти инструменты для программирования практически на любом языке.
Почему Raspberry Pi отлично подходит в качестве настольного компьютера программиста?
Raspberry Pi, скромный одноплатный компьютер размером с кредитную карточку, скрывает в себе гораздо большую вычислительную мощь, чем кажется на первый взгляд. Так, например, хотя новый Raspberry Pi 4 и не крупнее сравнимых моделей предыдущих поколений, он несёт в себе много улучшений. В нём больше памяти, которая быстрее, чем раньше. Есть варианты с 1, 2, 4Гб RAM, а через некоторое время после выхода появился и вариант с 8Гб памяти. В Pi 4 имеется новая однокристальная система Broadcom BCM2711 и четырёхъядерный 64-битный процессор Cortex-A72 ARM v8, работающий на частоте 1,5 ГГц. В распоряжении пользователя есть пара USB 2.0-портов, два HDMI-порта, способных выводить 4K-видео, двухдиапазонный Wi-Fi-адаптер, Bluetooth 5.0 BLE. Raspberry Pi обладает всеми атрибутами нормального настольного компьютера.
Я, в качестве эксперимента, неделю, в роли настольного компьютера, пользовался Raspberry Pi с 4 Гб памяти. Я с лёгкостью справился со всеми своими обычными делами. Я писал тексты, редактировал изображения и аудиозаписи, смотрел веб-страницы, открывая кучу вкладок браузера. Raspberry Pi достойно справился с этими задачами. А если в таком же качестве использовать 8-гигабайтный вариант платы, то можно будет совершенно спокойно работать, запуская сразу много программ. При таком раскладе скорее окажется так, что работой будет перегружен процессор, но забить под завязку память, вероятно, не удастся. Для Raspberry Pi существует множество дистрибутивов Linux. Поэтому перед нами — отличный миниатюрный компьютер, который можно приспособить под решение самых разных задач. Если поставить на Pi с 4 или 8 Гб памяти какой-нибудь 64-битный дистрибутив Linux, вроде Ubuntu или Raspberry Pi OS (ранее эта ОС называлась Raspbian), можно будет на полную мощность задействовать ресурсы памяти устройства и запускать 64-битные приложения. В результате оказывается, что у программиста, который решил сделать этот компьютер рабочей машиной, есть возможность воспользоваться целой кучей IDE.
У того, что на базе Raspberry Pi можно создать отличный компьютер для программиста, есть несколько причин:
- Множество совместимых дистрибутивов Linux.
- Доступность.
- Маленькие размеры.
- Отличное соотношение цена/качество.
- Наличие массы IDE.
Geany: лучшая многоязычная IDE
Geany — это нетребовательная к ресурсам и весьма функциональная IDE, пользовательский интерфейс которой, очень хорошо сделанный, основан на GTK+ и Scintilla. Это — универсальная система, поддерживающая несколько языков программирования. В частности — PHP, Java, Perl, Ruby, C++, C и C#. Geany может похвастаться множеством различных полезных возможностей. Среди них — автозавершение ввода, подсветка синтаксиса, возможность сворачивания и разворачивания блоков кода. Эту IDE, потребляющую немного системных ресурсов и дающую возможность писать на множестве языков, можно признать лучшей интегрированной средой разработки для Raspberry Pi.
Среди основных особенностей Geany можно отметить следующие:
- Поддержка множества языков (PHP, Java, Perl, Ruby, C++, C#).
- Автозавершение ввода, подсветка синтаксиса, работа с блоками кода.
- Скромные системные требования.
BlueJ: лучшая IDE для Java
BlueJ — это замечательная IDE для Java-разработчиков. Она отличается простым и удобным интерфейсом, существует её портативный вариант. Это — хороший инструмент для тех, кто занимается объектно-ориентированным программированием. BlueJ, помимо написания кода, позволяет выполнять программы. Изначально эта IDE была создана в качестве инструмента для обучения программированию Поэтому она подойдёт начинающим и опытным разработчикам. Учебное прошлое IDE видно, например, в её возможности визуализировать разные сущности и процессы вроде классов, объектов и вызова функций. А опенсорсная библиотека Pi4J из Java SE позволяет работать с аппаратным обеспечением, подключённым к компьютеру.
Среди основных особенностей BlueJ отметим следующие:
- Поддержка Java.
- Отличная приспособленность для объектно-ориентированного программирования.
- Наличие большого количества справочных материалов (вроде книг и документации), хорошая техподдержка.
Thonny: лучшая IDE для начинающих Python-разработчиков
Thonny — это продвинутая Python-IDE, которая хорошо подходит для новичков. Хотя пользоваться ей вполне могут и профессионалы, некоторые черты этой IDE говорят о том, что она особенно хороша для начинающих питонистов. Она даёт в распоряжение программиста возможности по пошаговому выполнению выражений, средства визуализации стека вызовов и множество других полезных мелочей. Если новичок возьмёт всё это на вооружение — он не только улучшит свои навыки Python-программирования, но и будет лучше понимать то, что происходит во время выполнения кода.
Вот главные особенности Thonny:
- Поддержка Python.
- Простой в использовании отладчик.
- Удобство для новичков.
- Вычисление выражений.
- Подсветка синтаксических ошибок.
- Вспомогательные средства, помогающие разобраться в коде.
Ninja-IDE
Редактор кода Ninja-IDE описан на его сайте как «Not Just Another IDE» («не просто ещё одна IDE»). Это — IDE, написанная на Python, которая просто восхитительно работает на Raspberry Pi. Nindja — это до крайности нетребовательный и приятный редактор кода, который подходит для разработки на многих языках, в число которых входит и Python. Например, здесь имеется очень удобное средство для поиска нужных фрагментов кода. Вызывается оно комбинацией клавиш CTRL + K . Тут, кроме того, есть поддержка множества других полезных возможностей, что делает Ninja отличным выбором для программиста. Среди того, что умеет Ninja, можно отметить автоматическую расстановку отступов, работу с файлами, подсветку ошибок в соответствии с PEP 8. Более того, в Ninja есть инструменты для управления проектами, этот редактор поддерживает целую кучу плагинов.
Вот главные особенности Ninja-IDE:
- Скромные системные требования.
- Подсветка ошибок.
- Мощные средства для поиска фрагментов кода.
- Автоматическая расстановка отступов.
- Инструменты для управления проектами.
- Множество плагинов.
Greenfoot: лучшая IDE для новичков
IDE Greenfoot основана на Java. Она ориентирована на обучение программированию. Поэтому в ней можно найти много приятных мелочей вроде системы автозавершения кода и подсветки синтаксиса. Greenfoot отличается чрезвычайно интерактивным интерфейсом, который легко освоить. Хотя этой IDE вполне могут пользоваться и опытные разработчики, она лучше всего подойдёт для, так сказать, «зелёных» программистов.
Вот основные особенности Greenfoot:
- Ориентированность на новичков.
- Эта IDE основана на Java.
- Поддержка Java.
- Встроенные средства для управления проектами.
- Автозавершение кода, подсветка синтаксиса, автоматическое исправление ошибок.
IDE Lazarus
Отличная IDE Lazarus, которую можно запустить на Raspberry Pi, отличается кроссплатформенностью и бесплатностью. Она использует компилятор Free Pascal и прекрасно подходит для быстрой разработки. А именно, код она компилирует очень быстро, поддерживает кросс-компиляцию. Код она тоже выполняет с весьма высокой скоростью. Lazarus поддерживает анализ производительности кода. В ней имеется множество встроенных компонентов, а если их окажется недостаточно, то можно найти дополнительные компоненты в файлах пакетов Lazarus. Перед нами — хорошо документированный опенсорсный проект, поддерживающий множество языков программирования.
Среди особенностей Lazarus можно отметить следующие:
- Быстрая компиляция и быстрое выполнение кода.
- Удобство использования.
- Поддержка визуального режима разработки, множество встроенных компонентов, возможность использования дополнительных компонентов.
- Использование Free Pascal.
- Поддержка множества языков.
Adafruit WebIDE: лучшая браузерная IDE
Большинство IDE нужно загружать и устанавливать. А вот Adafruit WebIDE — это интегрированная среда разработки для Raspberry Pi, основанная на веб-технологиях. Вот видеодемонстрация этой IDE. Учитывая то, что эта IDE работает в браузере, она отлично подходит для программирования на Chromebook и даже для разработки программ на планшетных компьютерах. Adafruit WebIDE может компилировать код, написанный на разных языках программирования. Среди них — JavaScript, Ruby и Python. Но то, что эта IDE работает в браузере, не значит, что она бедна возможностями. Работая с ней, код можно загружать в Git-репозиторий. Здесь даже имеется встроенный отладчик и система, упрощающая перемещение по коду.
Среди основных особенностей Adafruit WebIDE можно отметить следующие:
- Работа в браузере.
- Поддержка загрузки кода в Git-репозитории.
- Простые компиляция и запуск кода.
- Наличие отладчика и удобных средств для перемещения по коду.
Code::Blocks: лучшая IDE для начинающих C++-программистов
IDE Code::Blocks ориентирована на C++. Это — бесплатный, опенсорсный, кроссплатформенный проект. Эта IDE поддерживает множество компиляторов, таких, как Clang, Visual C++ и GCC. Это — мощная, но, в то же время, простая и удобная среда разработки. Среди её возможностей — подсветка синтаксиса, автозавершение ввода, поддержка плагинов, возможность работы с блоками кода. Тут имеется интеллектуальный отладчик, с помощью которого удобно искать причины программных ошибок. Хотя эта IDE была создана для разработки на C++, в список поддерживаемых ей языков входят ещё C и Fortran.
Вот её главные особенности:
- Интеллектуальный отладчик.
- Отличная поддержка компиляторов, среди которых можно отметить C++, GCC, Visual C++, Intel C++, Watcom, Borland C++.
- Поддержка C, C++ и Fortran.
- Подсветка синтаксиса.
- Форматирование кода, автозавершение ввода, работа с блоками кода.
- Поддержка плагинов.
Итоги
Хотя на рабочих столах программистов обычно встречаются компьютеры, работающие под управлением macOS, Linux и, что там говорить, даже Windows, Raspberry Pi при решении многих задач выглядит на их фоне вполне достойно. Это — отличный вариант второго компьютера. На базе Raspberry Pi можно сделать «песочницу» для всяких экспериментов, эта система вполне может стать и первым компьютером, скажем — для ребёнка, который учится программировать. Существует огромное количество различных IDE, которые позволяют использовать Raspberry Pi для написания кода на практически любом языке программирования. Среди этих IDE есть самые разные проекты — от универсальных, до узкоспециализированных. А некоторые IDE уже встроены в операционные системы, устанавливаемые на Raspberry Pi.
Пользуетесь ли вы Raspberry Pi в качестве рабочей машины программиста?
Источник