Знакомство с одноплатным миникомпьютером Orange Pi Zero

Сайт: 

В настоящее время в продаже появилось большое разнообразие одноплатных миникомпьютеров на базе ARM-процессоров различных производителей, которые вызывают большой интерес у embedded-программистов  и просто любителей. Среди них достаточно известными являются Raspberry Pi, Orange Pi, Banana Pi и др. Это достаточно хорошая альтернатива обычным микроконтроллерам, т.к. миникомпьютер (или, если точнее сравнивать, ARM-процессор архитектуры Application) обладает достаточно высокой вычислительной мощностью по сравнению с обычным микроконтроллером, при наличии привычных всем стандартных интерфейсов SPI, USART, I2C и т.д. А так же главным достоинством  является то, что работают они под управлением ОС Linux или Android, что избавляет разработчиков от низкоуровневого программирования и позволяет сразу сфокусироваться на поставленной задаче. Можно с легкостью, к примеру, запустить веб-сервер не вдаваясь в тонкости работы с PHY и MAC-уровнем Ethernet, легко поработать с USB-устройством, при написании программы не нужно постоянно помнить об ограниченном количестве памяти и быстродействии процессора, как это часто бывает при работе с обычными микроконтроллерами. И при всех названных достоинствах, одноплатный миникомпьютер можно купить за гораздо меньшие деньги, чем, к примеру, отладочные платы на микроконтроллерах.

В своих статьях я хочу поделиться с читателями сайта своим опытом работы с миникомпьютером Orange Pi Zero. Надо сказать, что познакомился с ним впервые я еще пару лет назад, когда мне нужно было разработать устройство контроля доступа на его базе с возможностью удаленного администрирования по веб-интерфейсу, но написать статью решил только сейчас. За это время многое уже забылось, так что я постараюсь вместе с читателями заново пройти путь от первого включения, до разработки какого-либо полезного приложения. Надеюсь, что читатели поддержат меня в комментариях и эта статья не будет первой и последней на эту тему:-)

Фото Orange Pi Zero

Почему выбрал именно эту плату? В основном из-за низкой цены при широких возможностях. Ну, и просто как первое устройство из этой группы, на которое не жалко потратить деньги не зная на сколько оно будет полезным в дальнейшем. Данные миникомпьютеры стоят порядка 10$. Хотя в последнее время появились также доработанные версии Zero Plus  и Zero Plus 2 с интерфейсом CSI для подключения камеры и hdmi-интерфейсом для подключения монитора, которые стоят уже дороже. В стандартной же версии из набора периферии: Ethernet, Wi-Fi, два USB-порта на плате и два дополнительных подключаемых, видеовыход TV OUT (крайне бесполезный по-моему), интерфейсы для подключения микрофона, наушников, ИК-приемника и названные выше стандартные интерфейсы SPI, I2C, USART. Впечатляет при стоимости в 10$, не правда ли? Также  при покупке необходимо обратить внимание на то, что выпускают данные компьютеры с объемом ОЗУ 256 и 512 МБ. Первый дешевле. Именно такой вариант и у меня. Но я бы рекомендовал покупать вариант с 512 МБ ОЗУ, если планируется запускать тяжелые приложения и сервисы, как например MySQL-сервер (от которого я отказался из-за того, что он пожирает много памяти ОЗУ, причем с постоянно нарастающим аппетитом :-). Кстати, бывает, что еще производители устанавливают SPI Flash микросхему, которая мне кажется вообще бессмысленной в этом устройстве, ведь вся информация хранится на SD-карточке. Пусть читателя также не пугает отсутствие стандартных видео-интерфейсов для подключения монитора. Он и не понадобится, так как работать можно через терминал сначала подключаясь по стандартному последовательному интерфейсу, а затем поcле настройки Ethernet по протоколу SSH. А еще скажу по секрету, что графику можно пробрасывать по протоколу SSH и запускать графические приложения уже на ПК под управлением ОС Windows (хотя это больше баловство, чем необходимость).

Подробнее о миникомпьютере Orange Pi Zero можно почитать на сайте http://www.orangepi.org/orangepizero/

Так же на сайте имеется информация о других моделях и дистрибутивы Linux и Android под конкретные целевые устройства, а также схемы и другая техническая документация http://www.orangepi.org/downloadresources/

Итак, поехали. Первое, что нужно сделать, это записать дистрибутив Linux на SD-карту. SD-карта подойдет любая, главное чтобы она была объемом больше образа дистрибутива и меньше 32 ГБ. У меня установлена сейчас карточка на 16 ГБ, но я пробовал сначала работать с карточкой 2 ГБ. В дальнейшем придется устанавливать различные приложения, поэтому здесь лучше не экономить. Дистрибутив можно скачать с сайта orangepi.org, но я начинал свое первое знакомство с дистрибутива Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113, который скачивал на сайте armbian.com. Сейчас доступна более новая версия Armbian_5.65_Orangepizero_Ubuntu_bionic_next_4.14.78 https://www.armbian.com/orange-pi-zero/ Ее и будем устанавливать.

Выбрал именно версию bionic, потому что она построена на основе Linux Ubuntu, который мне ближе. Рекомендую читателям поступить так же, чтобы не было в дальнейшем различий между тем, что я пишу здесь, и что происходит у вас на компьютерах.

Залить образ на SD-карту можно с помощью программы Win32DiskImager. Ее легко найти на просторах интернета.

Распаковываем скачанный дистрибутив и указываем путь к img-файлу. Дальше просто нажимаем кнопку Write, соглашаемся с предупреждением о перезаписи данных на карточке и ждем порядка нескольких минут до завершения записи.

После этого вставляем карточку в Orange Pi и подключаем плату к компьютеру через micro USB кабеля. Спустя какое-то время (время загрузки системы) ОС Windows обнаружит новое устройство. Это последовательный виртуальный COM-порт. Драйвер для него можно скачать здесь. Он нам понадобится для того, чтобы подключиться к терминалу Armbian.

Дальше нам понадобится широко известное среди программистов приложение Putty, которое также легко можно найти в интернете. В нем нам необходимо настроить сессию для подключения по последовательному порту к Orange. В настройках указываем порт, который можно посмотреть в диспетчере устройств. Скорость обмена устанавливаем 115200 бит/с. Настройки лучше сохранить, чтобы в дальнейшем не вводить их заново при каждом запуске программы. Важное замечание! В более старых версиях дистрибутива при подключении устройства к USB-порту компьютера виртуального COM-порта не было (его можно было настроить уже самостоятельно) и достучаться до терминала Armbian можно было только с помощью переходника USB/COM (или еще называют USB/TTL), подключенного к 3-м пинам на плате, называемым Debug Serial Port (на картинке выше видны). Крайний пин – это земля GND, остальные - RX и TX. Кто из них кто никогда не мог запомнить, а на плате это не помечено, поэтому всегда подключал наугад)) Если не работает терминал, то просто менял местами провода. Главное питание не подать от переходника на эти пины и подключить землю правильно.

Нажимаем кнопку Open. Если увидите только черный экран, попробуйте нажать клавишу Enter пару раз (либо поменять местами провода rx, tx в случае установки старой версии дистрибутива и использования USB/COM переходника).

При первом входе в терминал необходимо ввести логин root и пароль 1234.Далее будет предложено изменить пароль суперпользователя root. Если все сделаете правильно, то увидите приветствие Orange Pi Zero и некоторые показатели: занятая память ОЗУ, температуру процессора, IP-адрес устройства и т.д.

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

Все, первая настройка окончена. При последующих запусках терминала нужно будет вводить логин созданного пользователя и его пароль. Операции, требующие привилегий супепользователя, запускаются с командой sudo под паролем root-пользователя, который задавался вначале. Дальше можете поиграться с терминалом, вводить какие-либо команды, например ls –la, pwd, top. Если введете команду sudo reboot или sudo poweroff, то терминал придется перезапускать спустя какое-то время, так как виртуальный COM-порт перезапустится. В этом не будет необходимости, если подключаться через USB/COM переходник. В последнем случае можно еще видеть лог загрузки или выгрузки, что иногда полезно, когда устройство имеет какие-либо аппаратные проблемы.

На этом завершаю первую статью на тему Orange Pi. В следующей статье расскажу как настроить сеть и подключиться к терминалу по протоколу SSH.